PushMessageReceiver.java

 1package eu.siacs.conversations.services;
 2
 3import android.content.Intent;
 4import androidx.core.content.ContextCompat;
 5import android.util.Log;
 6
 7import com.google.firebase.messaging.FirebaseMessagingService;
 8import com.google.firebase.messaging.RemoteMessage;
 9
10import java.util.Map;
11
12import eu.siacs.conversations.Config;
13import eu.siacs.conversations.utils.Compatibility;
14
15public class PushMessageReceiver extends FirebaseMessagingService {
16
17	@Override
18	public void onMessageReceived(RemoteMessage message) {
19		if (!EventReceiver.hasEnabledAccounts(this)) {
20			Log.d(Config.LOGTAG,"PushMessageReceiver ignored message because no accounts are enabled");
21			return;
22		}
23		final Map<String, String> data = message.getData();
24		final Intent intent = new Intent(this, XmppConnectionService.class);
25		intent.setAction(XmppConnectionService.ACTION_FCM_MESSAGE_RECEIVED);
26		intent.putExtra("account", data.get("account"));
27		Compatibility.startService(this, intent);
28	}
29
30	@Override
31	public void onNewToken(String token) {
32		if (!EventReceiver.hasEnabledAccounts(this)) {
33			Log.d(Config.LOGTAG,"PushMessageReceiver ignored new token because no accounts are enabled");
34			return;
35		}
36		final Intent intent = new Intent(this, XmppConnectionService.class);
37		intent.setAction(XmppConnectionService.ACTION_FCM_TOKEN_REFRESH);
38		Compatibility.startService(this, intent);
39	}
40
41}