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

464 lines
19 KiB
Java

package com.google.firebase;
import K.k;
import android.annotation.TargetApi;
import android.app.Application;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.text.TextUtils;
import android.util.Log;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.api.internal.BackgroundDetector;
import com.google.android.gms.common.internal.Objects;
import com.google.android.gms.common.internal.Preconditions;
import com.google.android.gms.common.util.Base64Utils;
import com.google.android.gms.common.util.PlatformVersion;
import com.google.android.gms.common.util.ProcessUtils;
import com.google.android.gms.measurement.api.AppMeasurementSdk;
import com.google.firebase.components.Component;
import com.google.firebase.components.ComponentDiscovery;
import com.google.firebase.components.ComponentDiscoveryService;
import com.google.firebase.components.ComponentRegistrar;
import com.google.firebase.components.ComponentRuntime;
import com.google.firebase.components.Lazy;
import com.google.firebase.concurrent.ExecutorsRegistrar;
import com.google.firebase.concurrent.UiExecutor;
import com.google.firebase.events.Publisher;
import com.google.firebase.heartbeatinfo.DefaultHeartBeatController;
import com.google.firebase.inject.Provider;
import com.google.firebase.internal.DataCollectionConfigStorage;
import com.google.firebase.provider.FirebaseInitProvider;
import com.google.firebase.tracing.ComponentMonitor;
import com.google.firebase.tracing.FirebaseTrace;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import s.j;
/* loaded from: classes3.dex */
public class FirebaseApp {
public static final String DEFAULT_APP_NAME = "[DEFAULT]";
private static final String LOG_TAG = "FirebaseApp";
private final Context applicationContext;
private final ComponentRuntime componentRuntime;
private final Lazy<DataCollectionConfigStorage> dataCollectionConfigStorage;
private final Provider<DefaultHeartBeatController> defaultHeartBeatController;
private final String name;
private final FirebaseOptions options;
private static final Object LOCK = new Object();
static final Map<String, FirebaseApp> INSTANCES = new j(0);
private final AtomicBoolean automaticResourceManagementEnabled = new AtomicBoolean(false);
private final AtomicBoolean deleted = new AtomicBoolean();
private final List<BackgroundStateChangeListener> backgroundStateChangeListeners = new CopyOnWriteArrayList();
private final List<FirebaseAppLifecycleListener> lifecycleListeners = new CopyOnWriteArrayList();
@KeepForSdk
/* loaded from: classes3.dex */
public interface BackgroundStateChangeListener {
@KeepForSdk
void onBackgroundStateChanged(boolean z3);
}
@TargetApi(14)
/* loaded from: classes3.dex */
public static class GlobalBackgroundStateListener implements BackgroundDetector.BackgroundStateChangeListener {
private static AtomicReference<GlobalBackgroundStateListener> INSTANCE = new AtomicReference<>();
private GlobalBackgroundStateListener() {
}
public static void ensureBackgroundStateListenerRegistered(Context context) {
if (PlatformVersion.isAtLeastIceCreamSandwich() && (context.getApplicationContext() instanceof Application)) {
Application application = (Application) context.getApplicationContext();
if (INSTANCE.get() == null) {
GlobalBackgroundStateListener globalBackgroundStateListener = new GlobalBackgroundStateListener();
AtomicReference<GlobalBackgroundStateListener> atomicReference = INSTANCE;
while (!atomicReference.compareAndSet(null, globalBackgroundStateListener)) {
if (atomicReference.get() != null) {
return;
}
}
BackgroundDetector.initialize(application);
BackgroundDetector.getInstance().addListener(globalBackgroundStateListener);
}
}
}
@Override // com.google.android.gms.common.api.internal.BackgroundDetector.BackgroundStateChangeListener
public void onBackgroundStateChanged(boolean z3) {
synchronized (FirebaseApp.LOCK) {
try {
Iterator it = new ArrayList(FirebaseApp.INSTANCES.values()).iterator();
while (it.hasNext()) {
FirebaseApp firebaseApp = (FirebaseApp) it.next();
if (firebaseApp.automaticResourceManagementEnabled.get()) {
firebaseApp.notifyBackgroundStateChangeListeners(z3);
}
}
} catch (Throwable th) {
throw th;
}
}
}
}
@TargetApi(24)
/* loaded from: classes3.dex */
public static class UserUnlockReceiver extends BroadcastReceiver {
private static AtomicReference<UserUnlockReceiver> INSTANCE = new AtomicReference<>();
private final Context applicationContext;
public UserUnlockReceiver(Context context) {
this.applicationContext = context;
}
public static void ensureReceiverRegistered(Context context) {
if (INSTANCE.get() == null) {
UserUnlockReceiver userUnlockReceiver = new UserUnlockReceiver(context);
AtomicReference<UserUnlockReceiver> atomicReference = INSTANCE;
while (!atomicReference.compareAndSet(null, userUnlockReceiver)) {
if (atomicReference.get() != null) {
return;
}
}
context.registerReceiver(userUnlockReceiver, new IntentFilter("android.intent.action.USER_UNLOCKED"));
}
}
@Override // android.content.BroadcastReceiver
public void onReceive(Context context, Intent intent) {
synchronized (FirebaseApp.LOCK) {
try {
Iterator<FirebaseApp> it = FirebaseApp.INSTANCES.values().iterator();
while (it.hasNext()) {
it.next().initializeAllApis();
}
} catch (Throwable th) {
throw th;
}
}
unregister();
}
public void unregister() {
this.applicationContext.unregisterReceiver(this);
}
}
public FirebaseApp(Context context, String str, FirebaseOptions firebaseOptions) {
this.applicationContext = (Context) Preconditions.checkNotNull(context);
this.name = Preconditions.checkNotEmpty(str);
this.options = (FirebaseOptions) Preconditions.checkNotNull(firebaseOptions);
StartupTime startupTime = FirebaseInitProvider.getStartupTime();
FirebaseTrace.pushTrace("Firebase");
FirebaseTrace.pushTrace("ComponentDiscovery");
List<Provider<ComponentRegistrar>> discoverLazy = ComponentDiscovery.forContext(context, ComponentDiscoveryService.class).discoverLazy();
FirebaseTrace.popTrace();
FirebaseTrace.pushTrace("Runtime");
ComponentRuntime.Builder processor = ComponentRuntime.builder(UiExecutor.INSTANCE).addLazyComponentRegistrars(discoverLazy).addComponentRegistrar(new FirebaseCommonRegistrar()).addComponentRegistrar(new ExecutorsRegistrar()).addComponent(Component.of(context, (Class<Context>) Context.class, (Class<? super Context>[]) new Class[0])).addComponent(Component.of(this, (Class<FirebaseApp>) FirebaseApp.class, (Class<? super FirebaseApp>[]) new Class[0])).addComponent(Component.of(firebaseOptions, (Class<FirebaseOptions>) FirebaseOptions.class, (Class<? super FirebaseOptions>[]) new Class[0])).setProcessor(new ComponentMonitor());
if (k.a(context) && FirebaseInitProvider.isCurrentlyInitializing()) {
processor.addComponent(Component.of(startupTime, (Class<StartupTime>) StartupTime.class, (Class<? super StartupTime>[]) new Class[0]));
}
ComponentRuntime build = processor.build();
this.componentRuntime = build;
FirebaseTrace.popTrace();
this.dataCollectionConfigStorage = new Lazy<>((Provider) new a(this, context));
this.defaultHeartBeatController = build.getProvider(DefaultHeartBeatController.class);
addBackgroundStateChangeListener(new BackgroundStateChangeListener() { // from class: com.google.firebase.b
@Override // com.google.firebase.FirebaseApp.BackgroundStateChangeListener
public final void onBackgroundStateChanged(boolean z3) {
FirebaseApp.this.lambda$new$1(z3);
}
});
FirebaseTrace.popTrace();
}
private void checkNotDeleted() {
Preconditions.checkState(!this.deleted.get(), "FirebaseApp was deleted");
}
public static void clearInstancesForTest() {
synchronized (LOCK) {
INSTANCES.clear();
}
}
private static List<String> getAllAppNames() {
ArrayList arrayList = new ArrayList();
synchronized (LOCK) {
try {
Iterator<FirebaseApp> it = INSTANCES.values().iterator();
while (it.hasNext()) {
arrayList.add(it.next().getName());
}
} catch (Throwable th) {
throw th;
}
}
Collections.sort(arrayList);
return arrayList;
}
public static List<FirebaseApp> getApps(Context context) {
ArrayList arrayList;
synchronized (LOCK) {
arrayList = new ArrayList(INSTANCES.values());
}
return arrayList;
}
public static FirebaseApp getInstance() {
FirebaseApp firebaseApp;
synchronized (LOCK) {
try {
firebaseApp = INSTANCES.get(DEFAULT_APP_NAME);
if (firebaseApp == null) {
throw new IllegalStateException("Default FirebaseApp is not initialized in this process " + ProcessUtils.getMyProcessName() + ". Make sure to call FirebaseApp.initializeApp(Context) first.");
}
firebaseApp.defaultHeartBeatController.get().registerHeartBeat();
} catch (Throwable th) {
throw th;
}
}
return firebaseApp;
}
public void initializeAllApis() {
if (!k.a(this.applicationContext)) {
Log.i(LOG_TAG, "Device in Direct Boot Mode: postponing initialization of Firebase APIs for app " + getName());
UserUnlockReceiver.ensureReceiverRegistered(this.applicationContext);
return;
}
Log.i(LOG_TAG, "Device unlocked: initializing all Firebase APIs for app " + getName());
this.componentRuntime.initializeEagerComponents(isDefaultApp());
this.defaultHeartBeatController.get().registerHeartBeat();
}
public static FirebaseApp initializeApp(Context context) {
synchronized (LOCK) {
try {
if (INSTANCES.containsKey(DEFAULT_APP_NAME)) {
return getInstance();
}
FirebaseOptions fromResource = FirebaseOptions.fromResource(context);
if (fromResource == null) {
Log.w(LOG_TAG, "Default FirebaseApp failed to initialize because no default options were found. This usually means that com.google.gms:google-services was not applied to your gradle project.");
return null;
}
return initializeApp(context, fromResource);
} catch (Throwable th) {
throw th;
}
}
}
public /* synthetic */ DataCollectionConfigStorage lambda$new$0(Context context) {
return new DataCollectionConfigStorage(context, getPersistenceKey(), (Publisher) this.componentRuntime.get(Publisher.class));
}
public /* synthetic */ void lambda$new$1(boolean z3) {
if (z3) {
return;
}
this.defaultHeartBeatController.get().registerHeartBeat();
}
private static String normalize(String str) {
return str.trim();
}
public void notifyBackgroundStateChangeListeners(boolean z3) {
Log.d(LOG_TAG, "Notifying background state change listeners.");
Iterator<BackgroundStateChangeListener> it = this.backgroundStateChangeListeners.iterator();
while (it.hasNext()) {
it.next().onBackgroundStateChanged(z3);
}
}
private void notifyOnAppDeleted() {
Iterator<FirebaseAppLifecycleListener> it = this.lifecycleListeners.iterator();
while (it.hasNext()) {
it.next().onDeleted(this.name, this.options);
}
}
@KeepForSdk
public void addBackgroundStateChangeListener(BackgroundStateChangeListener backgroundStateChangeListener) {
checkNotDeleted();
if (this.automaticResourceManagementEnabled.get() && BackgroundDetector.getInstance().isInBackground()) {
backgroundStateChangeListener.onBackgroundStateChanged(true);
}
this.backgroundStateChangeListeners.add(backgroundStateChangeListener);
}
@KeepForSdk
public void addLifecycleEventListener(FirebaseAppLifecycleListener firebaseAppLifecycleListener) {
checkNotDeleted();
Preconditions.checkNotNull(firebaseAppLifecycleListener);
this.lifecycleListeners.add(firebaseAppLifecycleListener);
}
public void delete() {
if (this.deleted.compareAndSet(false, true)) {
synchronized (LOCK) {
INSTANCES.remove(this.name);
}
notifyOnAppDeleted();
}
}
public boolean equals(Object obj) {
if (obj instanceof FirebaseApp) {
return this.name.equals(((FirebaseApp) obj).getName());
}
return false;
}
@KeepForSdk
public <T> T get(Class<T> cls) {
checkNotDeleted();
return (T) this.componentRuntime.get(cls);
}
public Context getApplicationContext() {
checkNotDeleted();
return this.applicationContext;
}
public String getName() {
checkNotDeleted();
return this.name;
}
public FirebaseOptions getOptions() {
checkNotDeleted();
return this.options;
}
@KeepForSdk
public String getPersistenceKey() {
return Base64Utils.encodeUrlSafeNoPadding(getName().getBytes(Charset.defaultCharset())) + "+" + Base64Utils.encodeUrlSafeNoPadding(getOptions().getApplicationId().getBytes(Charset.defaultCharset()));
}
public int hashCode() {
return this.name.hashCode();
}
public void initializeAllComponents() {
this.componentRuntime.initializeAllComponentsForTests();
}
@KeepForSdk
public boolean isDataCollectionDefaultEnabled() {
checkNotDeleted();
return this.dataCollectionConfigStorage.get().isEnabled();
}
@KeepForSdk
public boolean isDefaultApp() {
return DEFAULT_APP_NAME.equals(getName());
}
@KeepForSdk
public void removeBackgroundStateChangeListener(BackgroundStateChangeListener backgroundStateChangeListener) {
checkNotDeleted();
this.backgroundStateChangeListeners.remove(backgroundStateChangeListener);
}
@KeepForSdk
public void removeLifecycleEventListener(FirebaseAppLifecycleListener firebaseAppLifecycleListener) {
checkNotDeleted();
Preconditions.checkNotNull(firebaseAppLifecycleListener);
this.lifecycleListeners.remove(firebaseAppLifecycleListener);
}
public void setAutomaticResourceManagementEnabled(boolean z3) {
checkNotDeleted();
if (this.automaticResourceManagementEnabled.compareAndSet(!z3, z3)) {
boolean isInBackground = BackgroundDetector.getInstance().isInBackground();
if (z3 && isInBackground) {
notifyBackgroundStateChangeListeners(true);
} else {
if (z3 || !isInBackground) {
return;
}
notifyBackgroundStateChangeListeners(false);
}
}
}
@KeepForSdk
public void setDataCollectionDefaultEnabled(Boolean bool) {
checkNotDeleted();
this.dataCollectionConfigStorage.get().setEnabled(bool);
}
public String toString() {
return Objects.toStringHelper(this).add(AppMeasurementSdk.ConditionalUserProperty.NAME, this.name).add("options", this.options).toString();
}
@KeepForSdk
@Deprecated
public void setDataCollectionDefaultEnabled(boolean z3) {
setDataCollectionDefaultEnabled(Boolean.valueOf(z3));
}
@KeepForSdk
public static String getPersistenceKey(String str, FirebaseOptions firebaseOptions) {
return Base64Utils.encodeUrlSafeNoPadding(str.getBytes(Charset.defaultCharset())) + "+" + Base64Utils.encodeUrlSafeNoPadding(firebaseOptions.getApplicationId().getBytes(Charset.defaultCharset()));
}
public static FirebaseApp getInstance(String str) {
FirebaseApp firebaseApp;
String str2;
synchronized (LOCK) {
try {
firebaseApp = INSTANCES.get(normalize(str));
if (firebaseApp != null) {
firebaseApp.defaultHeartBeatController.get().registerHeartBeat();
} else {
List<String> allAppNames = getAllAppNames();
if (allAppNames.isEmpty()) {
str2 = "";
} else {
str2 = "Available app names: " + TextUtils.join(", ", allAppNames);
}
throw new IllegalStateException("FirebaseApp with name " + str + " doesn't exist. " + str2);
}
} finally {
}
}
return firebaseApp;
}
public static FirebaseApp initializeApp(Context context, FirebaseOptions firebaseOptions) {
return initializeApp(context, firebaseOptions, DEFAULT_APP_NAME);
}
public static FirebaseApp initializeApp(Context context, FirebaseOptions firebaseOptions, String str) {
FirebaseApp firebaseApp;
GlobalBackgroundStateListener.ensureBackgroundStateListenerRegistered(context);
String normalize = normalize(str);
if (context.getApplicationContext() != null) {
context = context.getApplicationContext();
}
synchronized (LOCK) {
Map<String, FirebaseApp> map = INSTANCES;
Preconditions.checkState(!map.containsKey(normalize), "FirebaseApp name " + normalize + " already exists!");
Preconditions.checkNotNull(context, "Application context cannot be null.");
firebaseApp = new FirebaseApp(context, normalize, firebaseOptions);
map.put(normalize, firebaseApp);
}
firebaseApp.initializeAllApis();
return firebaseApp;
}
}