From 3a66fef2030be00615e47a725cdf375e96ad3093 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Mon, 21 May 2018 20:54:46 +0200 Subject: migrate to fcm library --- .../pixart/messenger/services/InstanceIdService.java | 7 +++---- .../pixart/messenger/services/MaintenanceReceiver.java | 7 +++---- .../messenger/services/PushManagementService.java | 18 +++++------------- .../pixart/messenger/services/PushMessageReceiver.java | 12 ++++++------ 4 files changed, 17 insertions(+), 27 deletions(-) (limited to 'src/standardPush/java/de/pixart/messenger') diff --git a/src/standardPush/java/de/pixart/messenger/services/InstanceIdService.java b/src/standardPush/java/de/pixart/messenger/services/InstanceIdService.java index e97d7181a..3db7219c0 100644 --- a/src/standardPush/java/de/pixart/messenger/services/InstanceIdService.java +++ b/src/standardPush/java/de/pixart/messenger/services/InstanceIdService.java @@ -1,15 +1,14 @@ package de.pixart.messenger.services; import android.content.Intent; +import com.google.firebase.iid.FirebaseInstanceIdService; -import com.google.android.gms.iid.InstanceIDListenerService; - -public class InstanceIdService extends InstanceIDListenerService { +public class InstanceIdService extends FirebaseInstanceIdService { @Override public void onTokenRefresh() { Intent intent = new Intent(this, XmppConnectionService.class); - intent.setAction(XmppConnectionService.ACTION_GCM_TOKEN_REFRESH); + intent.setAction(XmppConnectionService.ACTION_FCM_TOKEN_REFRESH); startService(intent); } } diff --git a/src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java b/src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java index e66dc60e5..9ee13c6cd 100644 --- a/src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java +++ b/src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java @@ -5,7 +5,7 @@ import android.content.Context; import android.content.Intent; import android.util.Log; -import com.google.android.gms.iid.InstanceID; +import com.google.firebase.iid.FirebaseInstanceId; import java.io.IOException; @@ -23,11 +23,10 @@ public class MaintenanceReceiver extends BroadcastReceiver { private void renewInstanceToken(final Context context) { new Thread(() -> { - InstanceID instanceID = InstanceID.getInstance(context); try { - instanceID.deleteInstanceID(); + FirebaseInstanceId.getInstance().deleteInstanceId(); Intent intent = new Intent(context, XmppConnectionService.class); - intent.setAction(XmppConnectionService.ACTION_GCM_TOKEN_REFRESH); + intent.setAction(XmppConnectionService.ACTION_FCM_TOKEN_REFRESH); context.startService(intent); } catch (IOException e) { Log.d(Config.LOGTAG, "unable to renew instance token", e); diff --git a/src/standardPush/java/de/pixart/messenger/services/PushManagementService.java b/src/standardPush/java/de/pixart/messenger/services/PushManagementService.java index b68cec70e..b9aff036b 100644 --- a/src/standardPush/java/de/pixart/messenger/services/PushManagementService.java +++ b/src/standardPush/java/de/pixart/messenger/services/PushManagementService.java @@ -1,17 +1,11 @@ package de.pixart.messenger.services; -import android.provider.Settings; import android.util.Log; -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GoogleApiAvailability; -import com.google.android.gms.gcm.GoogleCloudMessaging; -import com.google.android.gms.iid.InstanceID; - import de.pixart.messenger.Config; -import de.pixart.messenger.R; import de.pixart.messenger.entities.Account; import de.pixart.messenger.utils.Namespace; +import de.pixart.messenger.utils.PhoneHelper; import de.pixart.messenger.xml.Element; import de.pixart.messenger.xmpp.XmppConnection; import de.pixart.messenger.xmpp.forms.Data; @@ -30,7 +24,7 @@ public class PushManagementService { void registerPushTokenOnServer(final Account account) { Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": has push support"); - retrieveGcmInstanceToken(token -> { + retrieveFcmInstanceToken(token -> { final String androidId = PhoneHelper.getAndroidId(mXmppConnectionService); IqPacket packet = mXmppConnectionService.getIqGenerator().pushTokenToAppServer(APP_SERVER, token, androidId); mXmppConnectionService.sendIqPacket(account, packet, (a, p) -> { @@ -68,14 +62,12 @@ public class PushManagementService { }); } - private void retrieveGcmInstanceToken(final OnGcmInstanceTokenRetrieved instanceTokenRetrieved) { + private void retrieveFcmInstanceToken(final OnGcmInstanceTokenRetrieved instanceTokenRetrieved) { new Thread(() -> { - InstanceID instanceID = InstanceID.getInstance(mXmppConnectionService); try { - String token = instanceID.getToken(mXmppConnectionService.getString(R.string.gcm_defaultSenderId), GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); - instanceTokenRetrieved.onGcmInstanceTokenRetrieved(token); + instanceTokenRetrieved.onGcmInstanceTokenRetrieved(FirebaseInstanceId.getInstance().getToken()); } catch (Exception e) { - Log.d(Config.LOGTAG, "unable to get push token"); + Log.d(Config.LOGTAG, "unable to get push token", e); } }).start(); diff --git a/src/standardPush/java/de/pixart/messenger/services/PushMessageReceiver.java b/src/standardPush/java/de/pixart/messenger/services/PushMessageReceiver.java index 33c5119e0..ffbb93425 100644 --- a/src/standardPush/java/de/pixart/messenger/services/PushMessageReceiver.java +++ b/src/standardPush/java/de/pixart/messenger/services/PushMessageReceiver.java @@ -1,17 +1,17 @@ package de.pixart.messenger.services; import android.content.Intent; -import android.os.Bundle; -import com.google.android.gms.gcm.GcmListenerService; +import java.util.Map; -public class PushMessageReceiver extends GcmListenerService { +public class PushMessageReceiver extends FirebaseMessagingService { @Override - public void onMessageReceived(String from, Bundle data) { + public void onMessageReceived(RemoteMessage message) { + Map data = message.getData(); Intent intent = new Intent(this, XmppConnectionService.class); - intent.setAction(XmppConnectionService.ACTION_GCM_MESSAGE_RECEIVED); - intent.replaceExtras(data); + intent.setAction(XmppConnectionService.ACTION_FCM_MESSAGE_RECEIVED); + intent.putExtra("account", data.get("account")); startService(intent); } } -- cgit v1.2.3