Files

260 lines
14 KiB
Java

package com.google.firebase.remoteconfig;
import C.w;
import android.app.Application;
import android.content.Context;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.api.internal.BackgroundDetector;
import com.google.android.gms.common.util.BiConsumer;
import com.google.android.gms.common.util.Clock;
import com.google.android.gms.common.util.DefaultClock;
import com.google.android.gms.tasks.Tasks;
import com.google.firebase.FirebaseApp;
import com.google.firebase.abt.FirebaseABTesting;
import com.google.firebase.analytics.connector.AnalyticsConnector;
import com.google.firebase.annotations.concurrent.Blocking;
import com.google.firebase.concurrent.g;
import com.google.firebase.inject.Provider;
import com.google.firebase.installations.FirebaseInstallationsApi;
import com.google.firebase.remoteconfig.internal.ConfigCacheClient;
import com.google.firebase.remoteconfig.internal.ConfigContainer;
import com.google.firebase.remoteconfig.internal.ConfigFetchHandler;
import com.google.firebase.remoteconfig.internal.ConfigFetchHttpClient;
import com.google.firebase.remoteconfig.internal.ConfigGetParameterHandler;
import com.google.firebase.remoteconfig.internal.ConfigMetadataClient;
import com.google.firebase.remoteconfig.internal.ConfigRealtimeHandler;
import com.google.firebase.remoteconfig.internal.ConfigStorageClient;
import com.google.firebase.remoteconfig.internal.Personalization;
import com.google.firebase.remoteconfig.internal.rollouts.RolloutsStateFactory;
import com.google.firebase.remoteconfig.internal.rollouts.RolloutsStateSubscriptionsHandler;
import com.google.firebase.remoteconfig.interop.FirebaseRemoteConfigInterop;
import com.google.firebase.remoteconfig.interop.rollouts.RolloutsStateSubscriber;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.Executor;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.atomic.AtomicReference;
@KeepForSdk
/* loaded from: classes3.dex */
public class RemoteConfigComponent implements FirebaseRemoteConfigInterop {
public static final String ACTIVATE_FILE_NAME = "activate";
public static final long CONNECTION_TIMEOUT_IN_SECONDS = 60;
public static final String DEFAULTS_FILE_NAME = "defaults";
public static final String DEFAULT_NAMESPACE = "firebase";
public static final String FETCH_FILE_NAME = "fetch";
private static final String FIREBASE_REMOTE_CONFIG_FILE_NAME_PREFIX = "frc";
private static final String PREFERENCES_FILE_NAME = "settings";
private final Provider<AnalyticsConnector> analyticsConnector;
private final String appId;
private final Context context;
private Map<String, String> customHeaders;
private final ScheduledExecutorService executor;
private final FirebaseABTesting firebaseAbt;
private final FirebaseApp firebaseApp;
private final FirebaseInstallationsApi firebaseInstallations;
private final Map<String, FirebaseRemoteConfig> frcNamespaceInstances;
private static final Clock DEFAULT_CLOCK = DefaultClock.getInstance();
private static final Random DEFAULT_RANDOM = new Random();
private static final Map<String, FirebaseRemoteConfig> frcNamespaceInstancesStatic = new HashMap();
/* loaded from: classes3.dex */
public static class GlobalBackgroundListener implements BackgroundDetector.BackgroundStateChangeListener {
private static final AtomicReference<GlobalBackgroundListener> INSTANCE = new AtomicReference<>();
private GlobalBackgroundListener() {
}
public static void ensureBackgroundListenerIsRegistered(Context context) {
Application application = (Application) context.getApplicationContext();
AtomicReference<GlobalBackgroundListener> atomicReference = INSTANCE;
if (atomicReference.get() == null) {
GlobalBackgroundListener globalBackgroundListener = new GlobalBackgroundListener();
while (!atomicReference.compareAndSet(null, globalBackgroundListener)) {
if (atomicReference.get() != null) {
return;
}
}
BackgroundDetector.initialize(application);
BackgroundDetector.getInstance().addListener(globalBackgroundListener);
}
}
@Override // com.google.android.gms.common.api.internal.BackgroundDetector.BackgroundStateChangeListener
public void onBackgroundStateChanged(boolean z3) {
RemoteConfigComponent.notifyRCInstances(z3);
}
}
public RemoteConfigComponent(Context context, @Blocking ScheduledExecutorService scheduledExecutorService, FirebaseApp firebaseApp, FirebaseInstallationsApi firebaseInstallationsApi, FirebaseABTesting firebaseABTesting, Provider<AnalyticsConnector> provider) {
this(context, scheduledExecutorService, firebaseApp, firebaseInstallationsApi, firebaseABTesting, provider, true);
}
private ConfigCacheClient getCacheClient(String str, String str2) {
String str3 = this.appId;
StringBuilder sb = new StringBuilder("frc_");
sb.append(str3);
sb.append("_");
sb.append(str);
sb.append("_");
return ConfigCacheClient.getInstance(this.executor, ConfigStorageClient.getInstance(this.context, w.r(sb, str2, ".json")));
}
private ConfigGetParameterHandler getGetHandler(ConfigCacheClient configCacheClient, ConfigCacheClient configCacheClient2) {
return new ConfigGetParameterHandler(this.executor, configCacheClient, configCacheClient2);
}
public static ConfigMetadataClient getMetadataClient(Context context, String str, String str2) {
return new ConfigMetadataClient(context.getSharedPreferences("frc_" + str + "_" + str2 + "_settings", 0));
}
private static Personalization getPersonalization(FirebaseApp firebaseApp, String str, Provider<AnalyticsConnector> provider) {
if (isPrimaryApp(firebaseApp) && str.equals(DEFAULT_NAMESPACE)) {
return new Personalization(provider);
}
return null;
}
private RolloutsStateSubscriptionsHandler getRolloutsStateSubscriptionsHandler(ConfigCacheClient configCacheClient, ConfigGetParameterHandler configGetParameterHandler) {
return new RolloutsStateSubscriptionsHandler(configCacheClient, RolloutsStateFactory.create(configGetParameterHandler), this.executor);
}
private static boolean isAbtSupported(FirebaseApp firebaseApp, String str) {
return str.equals(DEFAULT_NAMESPACE) && isPrimaryApp(firebaseApp);
}
private static boolean isPrimaryApp(FirebaseApp firebaseApp) {
return firebaseApp.getName().equals(FirebaseApp.DEFAULT_APP_NAME);
}
public static /* synthetic */ AnalyticsConnector lambda$getFetchHandler$0() {
return null;
}
public static synchronized void notifyRCInstances(boolean z3) {
synchronized (RemoteConfigComponent.class) {
Iterator<FirebaseRemoteConfig> it = frcNamespaceInstancesStatic.values().iterator();
while (it.hasNext()) {
it.next().setConfigUpdateBackgroundState(z3);
}
}
}
@KeepForSdk
public synchronized FirebaseRemoteConfig get(String str) {
Throwable th;
RemoteConfigComponent remoteConfigComponent;
ConfigCacheClient cacheClient;
ConfigCacheClient cacheClient2;
ConfigCacheClient cacheClient3;
ConfigMetadataClient metadataClient;
ConfigGetParameterHandler getHandler;
try {
try {
cacheClient = getCacheClient(str, FETCH_FILE_NAME);
cacheClient2 = getCacheClient(str, ACTIVATE_FILE_NAME);
cacheClient3 = getCacheClient(str, DEFAULTS_FILE_NAME);
metadataClient = getMetadataClient(this.context, this.appId, str);
getHandler = getGetHandler(cacheClient2, cacheClient3);
final Personalization personalization = getPersonalization(this.firebaseApp, str, this.analyticsConnector);
if (personalization != null) {
try {
getHandler.addListener(new BiConsumer() { // from class: com.google.firebase.remoteconfig.c
@Override // com.google.android.gms.common.util.BiConsumer
public final void accept(Object obj, Object obj2) {
Personalization.this.logArmActive((String) obj, (ConfigContainer) obj2);
}
});
} catch (Throwable th2) {
th = th2;
remoteConfigComponent = this;
throw th;
}
}
} catch (Throwable th3) {
th = th3;
remoteConfigComponent = this;
th = th;
throw th;
}
} catch (Throwable th4) {
th = th4;
}
return get(this.firebaseApp, str, this.firebaseInstallations, this.firebaseAbt, this.executor, cacheClient, cacheClient2, cacheClient3, getFetchHandler(str, cacheClient, metadataClient), getHandler, metadataClient, getRolloutsStateSubscriptionsHandler(cacheClient2, getHandler));
}
public FirebaseRemoteConfig getDefault() {
return get(DEFAULT_NAMESPACE);
}
public synchronized ConfigFetchHandler getFetchHandler(String str, ConfigCacheClient configCacheClient, ConfigMetadataClient configMetadataClient) {
try {
} catch (Throwable th) {
throw th;
}
return new ConfigFetchHandler(this.firebaseInstallations, isPrimaryApp(this.firebaseApp) ? this.analyticsConnector : new g(4), this.executor, DEFAULT_CLOCK, DEFAULT_RANDOM, configCacheClient, getFrcBackendApiClient(this.firebaseApp.getOptions().getApiKey(), str, configMetadataClient), configMetadataClient, this.customHeaders);
}
public ConfigFetchHttpClient getFrcBackendApiClient(String str, String str2, ConfigMetadataClient configMetadataClient) {
return new ConfigFetchHttpClient(this.context, this.firebaseApp.getOptions().getApplicationId(), str, str2, configMetadataClient.getFetchTimeoutInSeconds(), configMetadataClient.getFetchTimeoutInSeconds());
}
public synchronized ConfigRealtimeHandler getRealtime(FirebaseApp firebaseApp, FirebaseInstallationsApi firebaseInstallationsApi, ConfigFetchHandler configFetchHandler, ConfigCacheClient configCacheClient, Context context, String str, ConfigMetadataClient configMetadataClient) {
return new ConfigRealtimeHandler(firebaseApp, firebaseInstallationsApi, configFetchHandler, configCacheClient, context, str, configMetadataClient, this.executor);
}
@Override // com.google.firebase.remoteconfig.interop.FirebaseRemoteConfigInterop
public void registerRolloutsStateSubscriber(String str, RolloutsStateSubscriber rolloutsStateSubscriber) {
get(str).getRolloutsStateSubscriptionsHandler().registerRolloutsStateSubscriber(rolloutsStateSubscriber);
}
public synchronized void setCustomHeaders(Map<String, String> map) {
this.customHeaders = map;
}
public RemoteConfigComponent(Context context, ScheduledExecutorService scheduledExecutorService, FirebaseApp firebaseApp, FirebaseInstallationsApi firebaseInstallationsApi, FirebaseABTesting firebaseABTesting, Provider<AnalyticsConnector> provider, boolean z3) {
this.frcNamespaceInstances = new HashMap();
this.customHeaders = new HashMap();
this.context = context;
this.executor = scheduledExecutorService;
this.firebaseApp = firebaseApp;
this.firebaseInstallations = firebaseInstallationsApi;
this.firebaseAbt = firebaseABTesting;
this.analyticsConnector = provider;
this.appId = firebaseApp.getOptions().getApplicationId();
GlobalBackgroundListener.ensureBackgroundListenerIsRegistered(context);
if (z3) {
Tasks.call(scheduledExecutorService, new com.google.firebase.installations.b(this, 1));
}
}
public synchronized FirebaseRemoteConfig get(FirebaseApp firebaseApp, String str, FirebaseInstallationsApi firebaseInstallationsApi, FirebaseABTesting firebaseABTesting, Executor executor, ConfigCacheClient configCacheClient, ConfigCacheClient configCacheClient2, ConfigCacheClient configCacheClient3, ConfigFetchHandler configFetchHandler, ConfigGetParameterHandler configGetParameterHandler, ConfigMetadataClient configMetadataClient, RolloutsStateSubscriptionsHandler rolloutsStateSubscriptionsHandler) {
RemoteConfigComponent remoteConfigComponent;
String str2;
try {
try {
if (this.frcNamespaceInstances.containsKey(str)) {
remoteConfigComponent = this;
str2 = str;
} else {
remoteConfigComponent = this;
str2 = str;
FirebaseRemoteConfig firebaseRemoteConfig = new FirebaseRemoteConfig(this.context, firebaseApp, firebaseInstallationsApi, isAbtSupported(firebaseApp, str) ? firebaseABTesting : null, executor, configCacheClient, configCacheClient2, configCacheClient3, configFetchHandler, configGetParameterHandler, configMetadataClient, getRealtime(firebaseApp, firebaseInstallationsApi, configFetchHandler, configCacheClient2, this.context, str, configMetadataClient), rolloutsStateSubscriptionsHandler);
firebaseRemoteConfig.startLoadingConfigsFromDisk();
remoteConfigComponent.frcNamespaceInstances.put(str2, firebaseRemoteConfig);
frcNamespaceInstancesStatic.put(str2, firebaseRemoteConfig);
}
return remoteConfigComponent.frcNamespaceInstances.get(str2);
} catch (Throwable th) {
th = th;
throw th;
}
} catch (Throwable th2) {
th = th2;
throw th;
}
}
}