diff options
author | Christian Schneppe <christian@pix-art.de> | 2017-09-24 21:49:48 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2017-09-24 21:49:48 +0200 |
commit | befe4a6ea448fd6be78863d851923b153103e051 (patch) | |
tree | 872b9331cf3f6b5af3d759c94bd47a60fa15637e /src/standardPush | |
parent | 76beff245abef47c952bc59516cc88a69cce2878 (diff) |
add maintanence intent to renewe instance id
Diffstat (limited to 'src/standardPush')
-rw-r--r-- | src/standardPush/AndroidManifest.xml | 9 | ||||
-rw-r--r-- | src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java | 41 |
2 files changed, 50 insertions, 0 deletions
diff --git a/src/standardPush/AndroidManifest.xml b/src/standardPush/AndroidManifest.xml index dcce3cda3..27c2b6e14 100644 --- a/src/standardPush/AndroidManifest.xml +++ b/src/standardPush/AndroidManifest.xml @@ -19,6 +19,15 @@ </intent-filter> </receiver> + <receiver + android:name=".services.MaintenanceReceiver" + android:exported="true" + android:permission="android.permission.CHANGE_CONFIGURATION"> + <intent-filter> + <action android:name="eu.siacs.conversations.RENEW_INSTANCE_ID" /> + </intent-filter> + </receiver> + <service android:name=".services.PushMessageReceiver" android:exported="false"> diff --git a/src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java b/src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java new file mode 100644 index 000000000..5cfcbe920 --- /dev/null +++ b/src/standardPush/java/de/pixart/messenger/services/MaintenanceReceiver.java @@ -0,0 +1,41 @@ +package de.pixart.messenger.services; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +import com.google.android.gms.iid.InstanceID; + +import java.io.IOException; + +import eu.siacs.conversations.Config; + +public class MaintenanceReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + Log.d(Config.LOGTAG, "received intent in maintenance receiver"); + if ("eu.siacs.conversations.RENEW_INSTANCE_ID".equals(intent.getAction())) { + renewInstanceToken(context); + + } + } + + private void renewInstanceToken(final Context context) { + new Thread(new Runnable() { + @Override + public void run() { + InstanceID instanceID = InstanceID.getInstance(context); + try { + instanceID.deleteInstanceID(); + Intent intent = new Intent(context, XmppConnectionService.class); + intent.setAction(XmppConnectionService.ACTION_GCM_TOKEN_REFRESH); + context.startService(intent); + } catch (IOException e) { + Log.d(Config.LOGTAG, "unable to renew instance token", e); + } + } + }).start(); + + } +}
\ No newline at end of file |