PushMessageReceiver.java

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