diff options
Diffstat (limited to 'src/standardPush/java/de/pixart/messenger/services/PushMessageReceiver.java')
-rw-r--r-- | src/standardPush/java/de/pixart/messenger/services/PushMessageReceiver.java | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/src/standardPush/java/de/pixart/messenger/services/PushMessageReceiver.java b/src/standardPush/java/de/pixart/messenger/services/PushMessageReceiver.java index f07167f8d..594225f3b 100644 --- a/src/standardPush/java/de/pixart/messenger/services/PushMessageReceiver.java +++ b/src/standardPush/java/de/pixart/messenger/services/PushMessageReceiver.java @@ -1,16 +1,16 @@ package de.pixart.messenger.services; -import android.content.Intent; -import android.support.v4.content.ContextCompat; -import android.util.Log; + import android.content.Intent; + import android.support.v4.content.ContextCompat; + import android.util.Log; -import com.google.firebase.messaging.FirebaseMessagingService; -import com.google.firebase.messaging.RemoteMessage; + import com.google.firebase.messaging.FirebaseMessagingService; + import com.google.firebase.messaging.RemoteMessage; -import java.util.Map; + import java.util.Map; -import de.pixart.messenger.Config; -import de.pixart.messenger.utils.Compatibility; + import de.pixart.messenger.Config; + import de.pixart.messenger.utils.Compatibility; public class PushMessageReceiver extends FirebaseMessagingService { @@ -32,7 +32,27 @@ public class PushMessageReceiver extends FirebaseMessagingService { startService(intent); } } catch (IllegalStateException e) { - Log.e(Config.LOGTAG, "PushMessageReceiver is not allowed to start service"); + Log.e(Config.LOGTAG, "PushMessageReceiver is not allowed to start service after receiving message"); + } + } + + @Override + public void onNewToken(String token) { + if (!EventReceiver.hasEnabledAccounts(this)) { + Log.d(Config.LOGTAG, "PushMessageReceiver ignored new token because no accounts are enabled"); + return; + } + final Intent intent = new Intent(this, XmppConnectionService.class); + intent.setAction(XmppConnectionService.ACTION_FCM_TOKEN_REFRESH); + try { + if (Compatibility.runsAndTargetsTwentySix(this)) { + intent.putExtra(EventReceiver.EXTRA_NEEDS_FOREGROUND_SERVICE, true); + ContextCompat.startForegroundService(this, intent); + } else { + startService(intent); + } + } catch (IllegalStateException e) { + Log.e(Config.LOGTAG, "PushMessageReceiver is not allowed to start service after receiving new token"); } } }
\ No newline at end of file |