Files
adif-api-reverse-engineering/apk_decompiled/sources/com/google/firebase/messaging/FirebaseMessagingService.java

181 lines
6.3 KiB
Java

package com.google.firebase.messaging;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import com.google.android.gms.cloudmessaging.CloudMessage;
import com.google.android.gms.cloudmessaging.Rpc;
import com.google.firebase.messaging.Constants;
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.concurrent.ExecutorService;
/* loaded from: classes3.dex */
public class FirebaseMessagingService extends EnhancedIntentService {
public static final String ACTION_DIRECT_BOOT_REMOTE_INTENT = "com.google.firebase.messaging.RECEIVE_DIRECT_BOOT";
static final String ACTION_NEW_TOKEN = "com.google.firebase.messaging.NEW_TOKEN";
static final String ACTION_REMOTE_INTENT = "com.google.android.c2dm.intent.RECEIVE";
static final String EXTRA_TOKEN = "token";
private static final int RECENTLY_RECEIVED_MESSAGE_IDS_MAX_SIZE = 10;
private static final Queue<String> recentlyReceivedMessageIds = new ArrayDeque(10);
private Rpc rpc;
private boolean alreadyReceivedMessage(String str) {
if (TextUtils.isEmpty(str)) {
return false;
}
Queue<String> queue = recentlyReceivedMessageIds;
if (!queue.contains(str)) {
if (queue.size() >= 10) {
queue.remove();
}
queue.add(str);
return false;
}
if (!Log.isLoggable(Constants.TAG, 3)) {
return true;
}
Log.d(Constants.TAG, "Received duplicate message: " + str);
return true;
}
private void dispatchMessage(Intent intent) {
Bundle extras = intent.getExtras();
if (extras == null) {
extras = new Bundle();
}
extras.remove("androidx.content.wakelockid");
if (NotificationParams.isNotification(extras)) {
NotificationParams notificationParams = new NotificationParams(extras);
ExecutorService newNetworkIOExecutor = FcmExecutors.newNetworkIOExecutor();
try {
if (new DisplayNotification(this, notificationParams, newNetworkIOExecutor).handleNotification()) {
return;
}
newNetworkIOExecutor.shutdown();
if (MessagingAnalytics.shouldUploadScionMetrics(intent)) {
MessagingAnalytics.logNotificationForeground(intent);
}
} finally {
newNetworkIOExecutor.shutdown();
}
}
onMessageReceived(new RemoteMessage(extras));
}
private String getMessageId(Intent intent) {
String stringExtra = intent.getStringExtra(Constants.MessagePayloadKeys.MSGID);
return stringExtra == null ? intent.getStringExtra(Constants.MessagePayloadKeys.MSGID_SERVER) : stringExtra;
}
private Rpc getRpc(Context context) {
if (this.rpc == null) {
this.rpc = new Rpc(context.getApplicationContext());
}
return this.rpc;
}
private void handleMessageIntent(Intent intent) {
if (!alreadyReceivedMessage(intent.getStringExtra(Constants.MessagePayloadKeys.MSGID))) {
passMessageIntentToSdk(intent);
}
getRpc(this).messageHandled(new CloudMessage(intent));
}
private void passMessageIntentToSdk(Intent intent) {
String stringExtra = intent.getStringExtra(Constants.MessagePayloadKeys.MESSAGE_TYPE);
if (stringExtra == null) {
stringExtra = Constants.MessageTypes.MESSAGE;
}
char c4 = 65535;
switch (stringExtra.hashCode()) {
case -2062414158:
if (stringExtra.equals(Constants.MessageTypes.DELETED)) {
c4 = 0;
break;
}
break;
case 102161:
if (stringExtra.equals(Constants.MessageTypes.MESSAGE)) {
c4 = 1;
break;
}
break;
case 814694033:
if (stringExtra.equals(Constants.MessageTypes.SEND_ERROR)) {
c4 = 2;
break;
}
break;
case 814800675:
if (stringExtra.equals(Constants.MessageTypes.SEND_EVENT)) {
c4 = 3;
break;
}
break;
}
switch (c4) {
case 0:
onDeletedMessages();
return;
case 1:
MessagingAnalytics.logNotificationReceived(intent);
dispatchMessage(intent);
return;
case 2:
onSendError(getMessageId(intent), new SendException(intent.getStringExtra(Constants.IPC_BUNDLE_KEY_SEND_ERROR)));
return;
case 3:
onMessageSent(intent.getStringExtra(Constants.MessagePayloadKeys.MSGID));
return;
default:
Log.w(Constants.TAG, "Received message with unknown type: ".concat(stringExtra));
return;
}
}
public static void resetForTesting() {
recentlyReceivedMessageIds.clear();
}
@Override // com.google.firebase.messaging.EnhancedIntentService
public Intent getStartCommandIntent(Intent intent) {
return ServiceStarter.getInstance().getMessagingEvent();
}
@Override // com.google.firebase.messaging.EnhancedIntentService
public void handleIntent(Intent intent) {
String action = intent.getAction();
if (ACTION_REMOTE_INTENT.equals(action) || ACTION_DIRECT_BOOT_REMOTE_INTENT.equals(action)) {
handleMessageIntent(intent);
} else {
if (ACTION_NEW_TOKEN.equals(action)) {
onNewToken(intent.getStringExtra("token"));
return;
}
Log.d(Constants.TAG, "Unknown intent action: " + intent.getAction());
}
}
public void onDeletedMessages() {
}
public void onMessageReceived(RemoteMessage remoteMessage) {
}
public void onMessageSent(String str) {
}
public void onNewToken(String str) {
}
public void onSendError(String str, Exception exc) {
}
public void setRpcForTesting(Rpc rpc) {
this.rpc = rpc;
}
}