Files

535 lines
22 KiB
Java

package com.google.firebase.messaging;
import android.annotation.SuppressLint;
import android.app.Application;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.Keep;
import com.google.android.gms.common.internal.Preconditions;
import com.google.android.gms.common.util.concurrent.NamedThreadFactory;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.TaskCompletionSource;
import com.google.android.gms.tasks.Tasks;
import com.google.firebase.DataCollectionDefaultChange;
import com.google.firebase.FirebaseApp;
import com.google.firebase.events.Event;
import com.google.firebase.events.EventHandler;
import com.google.firebase.events.Subscriber;
import com.google.firebase.heartbeatinfo.HeartBeatInfo;
import com.google.firebase.iid.internal.FirebaseInstanceIdInternal;
import com.google.firebase.inject.Provider;
import com.google.firebase.installations.FirebaseInstallationsApi;
import com.google.firebase.messaging.FirebaseMessaging;
import com.google.firebase.messaging.Store;
import com.google.firebase.platforminfo.UserAgentPublisher;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executor;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/* loaded from: classes3.dex */
public class FirebaseMessaging {
private static final String EXTRA_DUMMY_P_INTENT = "app";
static final String GMS_PACKAGE = "com.google.android.gms";
@Deprecated
public static final String INSTANCE_ID_SCOPE = "FCM";
private static final long MAX_DELAY_SEC = TimeUnit.HOURS.toSeconds(8);
private static final long MIN_DELAY_SEC = 30;
private static final String SEND_INTENT_ACTION = "com.google.android.gcm.intent.SEND";
private static final String SUBTYPE_DEFAULT = "";
static final String TAG = "FirebaseMessaging";
private static Store store;
static ScheduledExecutorService syncExecutor;
@SuppressLint({"FirebaseUnknownNullness"})
static T1.g transportFactory;
private final AutoInit autoInit;
private final Context context;
private final Executor fileExecutor;
private final FirebaseApp firebaseApp;
private final FirebaseInstallationsApi fis;
private final GmsRpc gmsRpc;
private final FirebaseInstanceIdInternal iid;
private final Executor initExecutor;
private final Application.ActivityLifecycleCallbacks lifecycleCallbacks;
private final Metadata metadata;
private final RequestDeduplicator requestDeduplicator;
private boolean syncScheduledOrRunning;
private final Executor taskExecutor;
private final Task<TopicsSubscriber> topicsSubscriberTask;
/* loaded from: classes3.dex */
public class AutoInit {
private static final String AUTO_INIT_PREF = "auto_init";
private static final String FCM_PREFERENCES = "com.google.firebase.messaging";
private static final String MANIFEST_METADATA_AUTO_INIT_ENABLED = "firebase_messaging_auto_init_enabled";
private Boolean autoInitEnabled;
private EventHandler<DataCollectionDefaultChange> dataCollectionDefaultChangeEventHandler;
private boolean initialized;
private final Subscriber subscriber;
public AutoInit(Subscriber subscriber) {
this.subscriber = subscriber;
}
public /* synthetic */ void lambda$initialize$0(Event event) {
if (isEnabled()) {
FirebaseMessaging.this.startSyncIfNecessary();
}
}
private Boolean readEnabled() {
ApplicationInfo applicationInfo;
Bundle bundle;
Context applicationContext = FirebaseMessaging.this.firebaseApp.getApplicationContext();
SharedPreferences sharedPreferences = applicationContext.getSharedPreferences("com.google.firebase.messaging", 0);
if (sharedPreferences.contains(AUTO_INIT_PREF)) {
return Boolean.valueOf(sharedPreferences.getBoolean(AUTO_INIT_PREF, false));
}
try {
PackageManager packageManager = applicationContext.getPackageManager();
if (packageManager == null || (applicationInfo = packageManager.getApplicationInfo(applicationContext.getPackageName(), 128)) == null || (bundle = applicationInfo.metaData) == null || !bundle.containsKey(MANIFEST_METADATA_AUTO_INIT_ENABLED)) {
return null;
}
return Boolean.valueOf(applicationInfo.metaData.getBoolean(MANIFEST_METADATA_AUTO_INIT_ENABLED));
} catch (PackageManager.NameNotFoundException unused) {
return null;
}
}
public synchronized void initialize() {
try {
if (this.initialized) {
return;
}
Boolean readEnabled = readEnabled();
this.autoInitEnabled = readEnabled;
if (readEnabled == null) {
EventHandler<DataCollectionDefaultChange> eventHandler = new EventHandler() { // from class: com.google.firebase.messaging.j
@Override // com.google.firebase.events.EventHandler
public final void handle(Event event) {
FirebaseMessaging.AutoInit.this.lambda$initialize$0(event);
}
};
this.dataCollectionDefaultChangeEventHandler = eventHandler;
this.subscriber.subscribe(DataCollectionDefaultChange.class, eventHandler);
}
this.initialized = true;
} catch (Throwable th) {
throw th;
}
}
public synchronized boolean isEnabled() {
Boolean bool;
try {
initialize();
bool = this.autoInitEnabled;
} catch (Throwable th) {
throw th;
}
return bool != null ? bool.booleanValue() : FirebaseMessaging.this.firebaseApp.isDataCollectionDefaultEnabled();
}
public synchronized void setEnabled(boolean z3) {
try {
initialize();
EventHandler<DataCollectionDefaultChange> eventHandler = this.dataCollectionDefaultChangeEventHandler;
if (eventHandler != null) {
this.subscriber.unsubscribe(DataCollectionDefaultChange.class, eventHandler);
this.dataCollectionDefaultChangeEventHandler = null;
}
SharedPreferences.Editor edit = FirebaseMessaging.this.firebaseApp.getApplicationContext().getSharedPreferences("com.google.firebase.messaging", 0).edit();
edit.putBoolean(AUTO_INIT_PREF, z3);
edit.apply();
if (z3) {
FirebaseMessaging.this.startSyncIfNecessary();
}
this.autoInitEnabled = Boolean.valueOf(z3);
} catch (Throwable th) {
throw th;
}
}
}
public FirebaseMessaging(FirebaseApp firebaseApp, FirebaseInstanceIdInternal firebaseInstanceIdInternal, Provider<UserAgentPublisher> provider, Provider<HeartBeatInfo> provider2, FirebaseInstallationsApi firebaseInstallationsApi, T1.g gVar, Subscriber subscriber) {
this(firebaseApp, firebaseInstanceIdInternal, provider, provider2, firebaseInstallationsApi, gVar, subscriber, new Metadata(firebaseApp.getApplicationContext()));
}
public static synchronized void clearStoreForTest() {
synchronized (FirebaseMessaging.class) {
store = null;
}
}
public static void clearTransportFactoryForTest() {
transportFactory = null;
}
public static synchronized FirebaseMessaging getInstance() {
FirebaseMessaging firebaseMessaging;
synchronized (FirebaseMessaging.class) {
firebaseMessaging = getInstance(FirebaseApp.getInstance());
}
return firebaseMessaging;
}
private static synchronized Store getStore(Context context) {
Store store2;
synchronized (FirebaseMessaging.class) {
try {
if (store == null) {
store = new Store(context);
}
store2 = store;
} catch (Throwable th) {
throw th;
}
}
return store2;
}
private String getSubtype() {
return FirebaseApp.DEFAULT_APP_NAME.equals(this.firebaseApp.getName()) ? "" : this.firebaseApp.getPersistenceKey();
}
public static T1.g getTransportFactory() {
return transportFactory;
}
/* renamed from: invokeOnTokenRefresh */
public void lambda$new$0(String str) {
if (FirebaseApp.DEFAULT_APP_NAME.equals(this.firebaseApp.getName())) {
if (Log.isLoggable("FirebaseMessaging", 3)) {
Log.d("FirebaseMessaging", "Invoking onNewToken for app: " + this.firebaseApp.getName());
}
Intent intent = new Intent("com.google.firebase.messaging.NEW_TOKEN");
intent.putExtra("token", str);
new FcmBroadcastProcessor(this.context).process(intent);
}
}
public /* synthetic */ Task lambda$blockingGetToken$10(String str, Store.Token token) {
return this.gmsRpc.getToken().onSuccessTask(this.fileExecutor, new f(this, str, token));
}
public /* synthetic */ Task lambda$blockingGetToken$9(String str, Store.Token token, String str2) throws Exception {
getStore(this.context).saveToken(getSubtype(), str, str2, this.metadata.getAppVersionCode());
if (token == null || !str2.equals(token.token)) {
lambda$new$0(str2);
}
return Tasks.forResult(str2);
}
public /* synthetic */ void lambda$deleteToken$5(TaskCompletionSource taskCompletionSource) {
try {
this.iid.deleteToken(Metadata.getDefaultSenderId(this.firebaseApp), INSTANCE_ID_SCOPE);
taskCompletionSource.setResult(null);
} catch (Exception e4) {
taskCompletionSource.setException(e4);
}
}
public /* synthetic */ void lambda$deleteToken$6(TaskCompletionSource taskCompletionSource) {
try {
Tasks.await(this.gmsRpc.deleteToken());
getStore(this.context).deleteToken(getSubtype(), Metadata.getDefaultSenderId(this.firebaseApp));
taskCompletionSource.setResult(null);
} catch (Exception e4) {
taskCompletionSource.setException(e4);
}
}
public /* synthetic */ void lambda$getToken$4(TaskCompletionSource taskCompletionSource) {
try {
taskCompletionSource.setResult(blockingGetToken());
} catch (Exception e4) {
taskCompletionSource.setException(e4);
}
}
public /* synthetic */ void lambda$new$1() {
if (isAutoInitEnabled()) {
startSyncIfNecessary();
}
}
public /* synthetic */ void lambda$new$2(TopicsSubscriber topicsSubscriber) {
if (isAutoInitEnabled()) {
topicsSubscriber.startTopicsSyncIfNecessary();
}
}
public /* synthetic */ void lambda$new$3() {
ProxyNotificationInitializer.initialize(this.context);
}
public static /* synthetic */ Task lambda$subscribeToTopic$7(String str, TopicsSubscriber topicsSubscriber) throws Exception {
return topicsSubscriber.subscribeToTopic(str);
}
public static /* synthetic */ Task lambda$unsubscribeFromTopic$8(String str, TopicsSubscriber topicsSubscriber) throws Exception {
return topicsSubscriber.unsubscribeFromTopic(str);
}
private synchronized void startSync() {
if (!this.syncScheduledOrRunning) {
syncWithDelaySecondsInternal(0L);
}
}
public void startSyncIfNecessary() {
FirebaseInstanceIdInternal firebaseInstanceIdInternal = this.iid;
if (firebaseInstanceIdInternal != null) {
firebaseInstanceIdInternal.getToken();
} else if (tokenNeedsRefresh(getTokenWithoutTriggeringSync())) {
startSync();
}
}
public String blockingGetToken() throws IOException {
FirebaseInstanceIdInternal firebaseInstanceIdInternal = this.iid;
if (firebaseInstanceIdInternal != null) {
try {
return (String) Tasks.await(firebaseInstanceIdInternal.getTokenTask());
} catch (InterruptedException | ExecutionException e4) {
throw new IOException(e4);
}
}
Store.Token tokenWithoutTriggeringSync = getTokenWithoutTriggeringSync();
if (!tokenNeedsRefresh(tokenWithoutTriggeringSync)) {
return tokenWithoutTriggeringSync.token;
}
String defaultSenderId = Metadata.getDefaultSenderId(this.firebaseApp);
try {
return (String) Tasks.await(this.requestDeduplicator.getOrStartGetTokenRequest(defaultSenderId, new f(this, defaultSenderId, tokenWithoutTriggeringSync)));
} catch (InterruptedException | ExecutionException e5) {
throw new IOException(e5);
}
}
public Task<Void> deleteToken() {
if (this.iid != null) {
TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
this.initExecutor.execute(new i(this, taskCompletionSource, 1));
return taskCompletionSource.getTask();
}
if (getTokenWithoutTriggeringSync() == null) {
return Tasks.forResult(null);
}
TaskCompletionSource taskCompletionSource2 = new TaskCompletionSource();
FcmExecutors.newNetworkIOExecutor().execute(new i(this, taskCompletionSource2, 2));
return taskCompletionSource2.getTask();
}
public boolean deliveryMetricsExportToBigQueryEnabled() {
return MessagingAnalytics.deliveryMetricsExportToBigQueryEnabled();
}
@SuppressLint({"ThreadPoolCreation"})
public void enqueueTaskWithDelaySeconds(Runnable runnable, long j4) {
synchronized (FirebaseMessaging.class) {
try {
if (syncExecutor == null) {
syncExecutor = new ScheduledThreadPoolExecutor(1, new NamedThreadFactory("TAG"));
}
syncExecutor.schedule(runnable, j4, TimeUnit.SECONDS);
} catch (Throwable th) {
throw th;
}
}
}
public Context getApplicationContext() {
return this.context;
}
public Task<String> getToken() {
FirebaseInstanceIdInternal firebaseInstanceIdInternal = this.iid;
if (firebaseInstanceIdInternal != null) {
return firebaseInstanceIdInternal.getTokenTask();
}
TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
this.initExecutor.execute(new i(this, taskCompletionSource, 0));
return taskCompletionSource.getTask();
}
public Store.Token getTokenWithoutTriggeringSync() {
return getStore(this.context).getToken(getSubtype(), Metadata.getDefaultSenderId(this.firebaseApp));
}
public Task<TopicsSubscriber> getTopicsSubscriberTask() {
return this.topicsSubscriberTask;
}
public boolean isAutoInitEnabled() {
return this.autoInit.isEnabled();
}
public boolean isGmsCorePresent() {
return this.metadata.isGmscorePresent();
}
public boolean isNotificationDelegationEnabled() {
return ProxyNotificationInitializer.isProxyNotificationEnabled(this.context);
}
@Deprecated
public void send(RemoteMessage remoteMessage) {
if (TextUtils.isEmpty(remoteMessage.getTo())) {
throw new IllegalArgumentException("Missing 'to'");
}
Intent intent = new Intent(SEND_INTENT_ACTION);
Intent intent2 = new Intent();
intent2.setPackage("com.google.example.invalidpackage");
intent.putExtra(EXTRA_DUMMY_P_INTENT, PendingIntent.getBroadcast(this.context, 0, intent2, 67108864));
intent.setPackage("com.google.android.gms");
remoteMessage.populateSendMessageIntent(intent);
this.context.sendOrderedBroadcast(intent, "com.google.android.gtalkservice.permission.GTALK_SERVICE");
}
public void setAutoInitEnabled(boolean z3) {
this.autoInit.setEnabled(z3);
}
public void setDeliveryMetricsExportToBigQuery(boolean z3) {
MessagingAnalytics.setDeliveryMetricsExportToBigQuery(z3);
}
public Task<Void> setNotificationDelegationEnabled(boolean z3) {
return ProxyNotificationInitializer.setEnableProxyNotification(this.initExecutor, this.context, z3);
}
public synchronized void setSyncScheduledOrRunning(boolean z3) {
this.syncScheduledOrRunning = z3;
}
@SuppressLint({"TaskMainThread"})
public Task<Void> subscribeToTopic(String str) {
return this.topicsSubscriberTask.onSuccessTask(new e(str, 0));
}
public synchronized void syncWithDelaySecondsInternal(long j4) {
enqueueTaskWithDelaySeconds(new SyncTask(this, Math.min(Math.max(MIN_DELAY_SEC, 2 * j4), MAX_DELAY_SEC)), j4);
this.syncScheduledOrRunning = true;
}
public boolean tokenNeedsRefresh(Store.Token token) {
return token == null || token.needsRefresh(this.metadata.getAppVersionCode());
}
@SuppressLint({"TaskMainThread"})
public Task<Void> unsubscribeFromTopic(String str) {
return this.topicsSubscriberTask.onSuccessTask(new e(str, 1));
}
@Keep
public static synchronized FirebaseMessaging getInstance(FirebaseApp firebaseApp) {
FirebaseMessaging firebaseMessaging;
synchronized (FirebaseMessaging.class) {
firebaseMessaging = (FirebaseMessaging) firebaseApp.get(FirebaseMessaging.class);
Preconditions.checkNotNull(firebaseMessaging, "Firebase Messaging component is not present");
}
return firebaseMessaging;
}
public FirebaseMessaging(FirebaseApp firebaseApp, FirebaseInstanceIdInternal firebaseInstanceIdInternal, Provider<UserAgentPublisher> provider, Provider<HeartBeatInfo> provider2, FirebaseInstallationsApi firebaseInstallationsApi, T1.g gVar, Subscriber subscriber, Metadata metadata) {
this(firebaseApp, firebaseInstanceIdInternal, firebaseInstallationsApi, gVar, subscriber, metadata, new GmsRpc(firebaseApp, metadata, provider, provider2, firebaseInstallationsApi), FcmExecutors.newTaskExecutor(), FcmExecutors.newInitExecutor(), FcmExecutors.newFileIOExecutor());
}
public FirebaseMessaging(FirebaseApp firebaseApp, FirebaseInstanceIdInternal firebaseInstanceIdInternal, FirebaseInstallationsApi firebaseInstallationsApi, T1.g gVar, Subscriber subscriber, Metadata metadata, GmsRpc gmsRpc, Executor executor, Executor executor2, Executor executor3) {
this.syncScheduledOrRunning = false;
transportFactory = gVar;
this.firebaseApp = firebaseApp;
this.iid = firebaseInstanceIdInternal;
this.fis = firebaseInstallationsApi;
this.autoInit = new AutoInit(subscriber);
Context applicationContext = firebaseApp.getApplicationContext();
this.context = applicationContext;
FcmLifecycleCallbacks fcmLifecycleCallbacks = new FcmLifecycleCallbacks();
this.lifecycleCallbacks = fcmLifecycleCallbacks;
this.metadata = metadata;
this.taskExecutor = executor;
this.gmsRpc = gmsRpc;
this.requestDeduplicator = new RequestDeduplicator(executor);
this.initExecutor = executor2;
this.fileExecutor = executor3;
Context applicationContext2 = firebaseApp.getApplicationContext();
if (applicationContext2 instanceof Application) {
((Application) applicationContext2).registerActivityLifecycleCallbacks(fcmLifecycleCallbacks);
} else {
Log.w("FirebaseMessaging", "Context " + applicationContext2 + " was not an application, can't register for lifecycle callbacks. Some notification events may be dropped as a result.");
}
if (firebaseInstanceIdInternal != null) {
firebaseInstanceIdInternal.addNewTokenListener(new k(this));
}
final int i = 0;
executor2.execute(new Runnable(this) { // from class: com.google.firebase.messaging.g
/* renamed from: b, reason: collision with root package name */
public final /* synthetic */ FirebaseMessaging f6011b;
{
this.f6011b = this;
}
@Override // java.lang.Runnable
public final void run() {
int i4 = i;
FirebaseMessaging firebaseMessaging = this.f6011b;
switch (i4) {
case 0:
firebaseMessaging.lambda$new$1();
return;
default:
firebaseMessaging.lambda$new$3();
return;
}
}
});
Task<TopicsSubscriber> createInstance = TopicsSubscriber.createInstance(this, metadata, gmsRpc, applicationContext, FcmExecutors.newTopicsSyncExecutor());
this.topicsSubscriberTask = createInstance;
createInstance.addOnSuccessListener(executor2, new OnSuccessListener() { // from class: com.google.firebase.messaging.h
@Override // com.google.android.gms.tasks.OnSuccessListener
public final void onSuccess(Object obj) {
FirebaseMessaging.this.lambda$new$2((TopicsSubscriber) obj);
}
});
final int i4 = 1;
executor2.execute(new Runnable(this) { // from class: com.google.firebase.messaging.g
/* renamed from: b, reason: collision with root package name */
public final /* synthetic */ FirebaseMessaging f6011b;
{
this.f6011b = this;
}
@Override // java.lang.Runnable
public final void run() {
int i42 = i4;
FirebaseMessaging firebaseMessaging = this.f6011b;
switch (i42) {
case 0:
firebaseMessaging.lambda$new$1();
return;
default:
firebaseMessaging.lambda$new$3();
return;
}
}
});
}
}