aboutsummaryrefslogtreecommitdiffstats
path: root/src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java')
-rw-r--r--src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java b/src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java
index 9368913bc..5706a487a 100644
--- a/src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java
+++ b/src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java
@@ -3,6 +3,7 @@ package de.pixart.messenger.services;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.support.v4.content.ContextCompat;
import android.util.Log;
import com.google.firebase.iid.FirebaseInstanceId;
@@ -10,6 +11,7 @@ import com.google.firebase.iid.FirebaseInstanceId;
import java.io.IOException;
import de.pixart.messenger.Config;
+import de.pixart.messenger.utils.Compatibility;
public class MaintenanceReceiver extends BroadcastReceiver {
@Override
@@ -25,9 +27,14 @@ public class MaintenanceReceiver extends BroadcastReceiver {
new Thread(() -> {
try {
FirebaseInstanceId.getInstance().deleteInstanceId();
- Intent intent = new Intent(context, XmppConnectionService.class);
+ final Intent intent = new Intent(context, XmppConnectionService.class);
intent.setAction(XmppConnectionService.ACTION_FCM_TOKEN_REFRESH);
- context.startService(intent);
+ if (Compatibility.runsAndTargetsTwentySix(context)) {
+ intent.putExtra(EventReceiver.EXTRA_NEEDS_FOREGROUND_SERVICE, true);
+ ContextCompat.startForegroundService(context, intent);
+ } else {
+ context.startService(intent);
+ }
} catch (IOException e) {
Log.d(Config.LOGTAG, "unable to renew instance token", e);
}