MaintenanceReceiver.java

 1package eu.siacs.conversations.services;
 2
 3import android.content.BroadcastReceiver;
 4import android.content.Context;
 5import android.content.Intent;
 6import androidx.core.content.ContextCompat;
 7import android.util.Log;
 8
 9import com.google.firebase.iid.FirebaseInstanceId;
10
11import java.io.IOException;
12
13import eu.siacs.conversations.Config;
14import eu.siacs.conversations.utils.Compatibility;
15
16public class MaintenanceReceiver extends BroadcastReceiver {
17	@Override
18	public void onReceive(Context context, Intent intent) {
19		Log.d(Config.LOGTAG, "received intent in maintenance receiver");
20		if ("eu.siacs.conversations.RENEW_INSTANCE_ID".equals(intent.getAction())) {
21			renewInstanceToken(context);
22
23		}
24	}
25
26	private void renewInstanceToken(final Context context) {
27		new Thread(() -> {
28			try {
29				FirebaseInstanceId.getInstance().deleteInstanceId();
30				final Intent intent = new Intent(context, XmppConnectionService.class);
31				intent.setAction(XmppConnectionService.ACTION_FCM_TOKEN_REFRESH);
32				Compatibility.startService(context, intent);
33			} catch (IOException e) {
34				Log.d(Config.LOGTAG, "unable to renew instance token", e);
35			}
36		}).start();
37
38	}
39}