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}