PushMessageReceiver.java

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