.class public Lcom/google/firebase/perf/config/RemoteConfigManager; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation build Landroidx/annotation/Keep; .end annotation # static fields .field private static final FETCH_NEVER_HAPPENED_TIMESTAMP_MS:J = 0x0L .field private static final FIREPERF_FRC_NAMESPACE_NAME:Ljava/lang/String; = "fireperf" .field private static final MIN_APP_START_CONFIG_FETCH_DELAY_MS:J = 0x1388L .field private static final RANDOM_APP_START_CONFIG_FETCH_DELAY_MS:I = 0x61a8 .field private static final TIME_AFTER_WHICH_A_FETCH_IS_CONSIDERED_STALE_MS:J .field private static final instance:Lcom/google/firebase/perf/config/RemoteConfigManager; .field private static final logger:Lcom/google/firebase/perf/logging/AndroidLogger; # instance fields .field private final allRcConfigMap:Ljava/util/concurrent/ConcurrentHashMap; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/concurrent/ConcurrentHashMap<", "Ljava/lang/String;", "Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;", ">;" } .end annotation .end field .field private final appStartConfigFetchDelayInMs:J .field private final appStartTimeInMs:J .field private final cache:Lcom/google/firebase/perf/config/DeviceCacheManager; .field private final executor:Ljava/util/concurrent/Executor; .field private firebaseRemoteConfig:Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig; .annotation build Landroidx/annotation/Nullable; .end annotation .end field .field private firebaseRemoteConfigLastFetchTimestampMs:J .field private firebaseRemoteConfigProvider:Lcom/google/firebase/inject/Provider; .annotation build Landroidx/annotation/Nullable; .end annotation .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/firebase/inject/Provider;" } .end annotation .end field # direct methods .method public static synthetic $r8$lambda$UXwCdFHI01xlPUI2A7eNdEqJc9Y(Lcom/google/firebase/perf/config/RemoteConfigManager;Ljava/lang/Boolean;)V .locals 0 .line 0 invoke-direct {p0, p1}, Lcom/google/firebase/perf/config/RemoteConfigManager;->lambda$triggerFirebaseRemoteConfigFetchAndActivateOnSuccessfulFetch$0(Ljava/lang/Boolean;)V return-void .end method .method public static synthetic $r8$lambda$_aGDiB9GMfjMPuPbVe_5Bcqb6Vw(Lcom/google/firebase/perf/config/RemoteConfigManager;Ljava/lang/Exception;)V .locals 0 .line 0 invoke-direct {p0, p1}, Lcom/google/firebase/perf/config/RemoteConfigManager;->lambda$triggerFirebaseRemoteConfigFetchAndActivateOnSuccessfulFetch$1(Ljava/lang/Exception;)V return-void .end method .method static constructor ()V .locals 3 .line 52 invoke-static {}, Lcom/google/firebase/perf/logging/AndroidLogger;->getInstance()Lcom/google/firebase/perf/logging/AndroidLogger; move-result-object v0 sput-object v0, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; .line 53 new-instance v0, Lcom/google/firebase/perf/config/RemoteConfigManager; invoke-direct {v0}, Lcom/google/firebase/perf/config/RemoteConfigManager;->()V sput-object v0, Lcom/google/firebase/perf/config/RemoteConfigManager;->instance:Lcom/google/firebase/perf/config/RemoteConfigManager; .line 55 sget-object v0, Ljava/util/concurrent/TimeUnit;->HOURS:Ljava/util/concurrent/TimeUnit; const-wide/16 v1, 0xc .line 56 invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J move-result-wide v0 sput-wide v0, Lcom/google/firebase/perf/config/RemoteConfigManager;->TIME_AFTER_WHICH_A_FETCH_IS_CONSIDERED_STALE_MS:J return-void .end method .method private constructor ()V .locals 10 .annotation build Landroid/annotation/SuppressLint; value = { "ThreadPoolCreation" } .end annotation .line 76 invoke-static {}, Lcom/google/firebase/perf/config/DeviceCacheManager;->getInstance()Lcom/google/firebase/perf/config/DeviceCacheManager; move-result-object v1 new-instance v9, Ljava/util/concurrent/ThreadPoolExecutor; const/4 v3, 0x0 const/4 v4, 0x1 const-wide/16 v5, 0x0 sget-object v7, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; new-instance v8, Ljava/util/concurrent/LinkedBlockingQueue; invoke-direct {v8}, Ljava/util/concurrent/LinkedBlockingQueue;->()V move-object v2, v9 invoke-direct/range {v2 .. v8}, Ljava/util/concurrent/ThreadPoolExecutor;->(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V const/4 v3, 0x0 new-instance v0, Ljava/util/Random; invoke-direct {v0}, Ljava/util/Random;->()V const/16 v2, 0x61a8 .line 85 invoke-virtual {v0, v2}, Ljava/util/Random;->nextInt(I)I move-result v0 int-to-long v4, v0 const-wide/16 v6, 0x1388 add-long/2addr v4, v6 .line 86 invoke-static {}, Lcom/google/firebase/perf/config/RemoteConfigManager;->getInitialStartupMillis()J move-result-wide v6 move-object v0, p0 move-object v2, v9 .line 75 invoke-direct/range {v0 .. v7}, Lcom/google/firebase/perf/config/RemoteConfigManager;->(Lcom/google/firebase/perf/config/DeviceCacheManager;Ljava/util/concurrent/Executor;Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig;JJ)V return-void .end method .method public constructor (Lcom/google/firebase/perf/config/DeviceCacheManager;Ljava/util/concurrent/Executor;Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig;JJ)V .locals 2 .annotation build Landroidx/annotation/VisibleForTesting; .end annotation .line 106 invoke-direct {p0}, Ljava/lang/Object;->()V const-wide/16 v0, 0x0 iput-wide v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfigLastFetchTimestampMs:J iput-object p1, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->cache:Lcom/google/firebase/perf/config/DeviceCacheManager; iput-object p2, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->executor:Ljava/util/concurrent/Executor; iput-object p3, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfig:Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig; if-nez p3, :cond_0 .line 112 new-instance p1, Ljava/util/concurrent/ConcurrentHashMap; invoke-direct {p1}, Ljava/util/concurrent/ConcurrentHashMap;->()V goto :goto_0 .line 113 :cond_0 new-instance p1, Ljava/util/concurrent/ConcurrentHashMap; invoke-virtual {p3}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig;->getAll()Ljava/util/Map; move-result-object p2 invoke-direct {p1, p2}, Ljava/util/concurrent/ConcurrentHashMap;->(Ljava/util/Map;)V :goto_0 iput-object p1, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->allRcConfigMap:Ljava/util/concurrent/ConcurrentHashMap; iput-wide p6, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->appStartTimeInMs:J iput-wide p4, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->appStartConfigFetchDelayInMs:J return-void .end method .method public static getInitialStartupMillis()J .locals 2 .annotation build Landroidx/annotation/VisibleForTesting; .end annotation .line 92 invoke-static {}, Lcom/google/firebase/FirebaseApp;->getInstance()Lcom/google/firebase/FirebaseApp; move-result-object v0 const-class v1, Lcom/google/firebase/StartupTime; invoke-virtual {v0, v1}, Lcom/google/firebase/FirebaseApp;->get(Ljava/lang/Class;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/firebase/StartupTime; if-eqz v0, :cond_0 .line 94 invoke-virtual {v0}, Lcom/google/firebase/StartupTime;->getEpochMillis()J move-result-wide v0 return-wide v0 .line 96 :cond_0 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v0 return-wide v0 .end method .method public static getInstance()Lcom/google/firebase/perf/config/RemoteConfigManager; .locals 1 sget-object v0, Lcom/google/firebase/perf/config/RemoteConfigManager;->instance:Lcom/google/firebase/perf/config/RemoteConfigManager; return-object v0 .end method .method private getRemoteConfigValue(Ljava/lang/String;)Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue; .locals 3 .line 296 invoke-direct {p0}, Lcom/google/firebase/perf/config/RemoteConfigManager;->triggerRemoteConfigFetchIfNecessary()V .line 298 invoke-virtual {p0}, Lcom/google/firebase/perf/config/RemoteConfigManager;->isFirebaseRemoteConfigAvailable()Z move-result v0 if-eqz v0, :cond_0 iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->allRcConfigMap:Ljava/util/concurrent/ConcurrentHashMap; invoke-virtual {v0, p1}, Ljava/util/concurrent/ConcurrentHashMap;->containsKey(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_0 iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->allRcConfigMap:Ljava/util/concurrent/ConcurrentHashMap; .line 299 invoke-virtual {v0, p1}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue; .line 301 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->getSource()I move-result v1 const/4 v2, 0x2 if-ne v1, v2, :cond_0 sget-object v1, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; .line 304 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asString()Ljava/lang/String; move-result-object v2 filled-new-array {v2, p1}, [Ljava/lang/Object; move-result-object p1 const-string v2, "Fetched value: \'%s\' for key: \'%s\' from Firebase Remote Config." .line 302 invoke-virtual {v1, v2, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;[Ljava/lang/Object;)V return-object v0 :cond_0 const/4 p1, 0x0 return-object p1 .end method .method public static getVersionCode(Landroid/content/Context;)I .locals 2 .annotation build Landroidx/annotation/VisibleForTesting; .end annotation const/4 v0, 0x0 .line 436 :try_start_0 invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v1 invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String; move-result-object p0 invoke-virtual {v1, p0, v0}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo; move-result-object p0 .line 437 iget p0, p0, Landroid/content/pm/PackageInfo;->versionCode:I :try_end_0 .catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 return p0 :catch_0 return v0 .end method .method private hasAppStartConfigFetchDelayElapsed(J)Z .locals 2 iget-wide v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->appStartTimeInMs:J sub-long/2addr p1, v0 iget-wide v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->appStartConfigFetchDelayInMs:J cmp-long p1, p1, v0 if-ltz p1, :cond_0 const/4 p1, 0x1 goto :goto_0 :cond_0 const/4 p1, 0x0 :goto_0 return p1 .end method .method private hasLastFetchBecomeStale(J)Z .locals 2 iget-wide v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfigLastFetchTimestampMs:J sub-long/2addr p1, v0 sget-wide v0, Lcom/google/firebase/perf/config/RemoteConfigManager;->TIME_AFTER_WHICH_A_FETCH_IS_CONSIDERED_STALE_MS:J cmp-long p1, p1, v0 if-lez p1, :cond_0 const/4 p1, 0x1 goto :goto_0 :cond_0 const/4 p1, 0x0 :goto_0 return p1 .end method .method private synthetic lambda$triggerFirebaseRemoteConfigFetchAndActivateOnSuccessfulFetch$0(Ljava/lang/Boolean;)V .locals 0 iget-object p1, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfig:Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig; .line 347 invoke-virtual {p1}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig;->getAll()Ljava/util/Map; move-result-object p1 invoke-virtual {p0, p1}, Lcom/google/firebase/perf/config/RemoteConfigManager;->syncConfigValues(Ljava/util/Map;)V return-void .end method .method private synthetic lambda$triggerFirebaseRemoteConfigFetchAndActivateOnSuccessfulFetch$1(Ljava/lang/Exception;)V .locals 2 sget-object v0, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; const-string v1, "Call to Remote Config failed: %s. This may cause a degraded experience with Firebase Performance. Please reach out to Firebase Support https://firebase.google.com/support/" filled-new-array {p1}, [Ljava/lang/Object; move-result-object p1 .line 351 invoke-virtual {v0, v1, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->warn(Ljava/lang/String;[Ljava/lang/Object;)V const-wide/16 v0, 0x0 iput-wide v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfigLastFetchTimestampMs:J return-void .end method .method private shouldFetchAndActivateRemoteConfigValues()Z .locals 3 .line 405 invoke-virtual {p0}, Lcom/google/firebase/perf/config/RemoteConfigManager;->getCurrentSystemTimeMillis()J move-result-wide v0 .line 406 invoke-direct {p0, v0, v1}, Lcom/google/firebase/perf/config/RemoteConfigManager;->hasAppStartConfigFetchDelayElapsed(J)Z move-result v2 if-eqz v2, :cond_0 .line 407 invoke-direct {p0, v0, v1}, Lcom/google/firebase/perf/config/RemoteConfigManager;->hasLastFetchBecomeStale(J)Z move-result v0 if-eqz v0, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 return v0 .end method .method private triggerFirebaseRemoteConfigFetchAndActivateOnSuccessfulFetch()V .locals 3 .line 344 invoke-virtual {p0}, Lcom/google/firebase/perf/config/RemoteConfigManager;->getCurrentSystemTimeMillis()J move-result-wide v0 iput-wide v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfigLastFetchTimestampMs:J iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfig:Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig; .line 346 invoke-virtual {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig;->fetchAndActivate()Lcom/google/android/gms/tasks/Task; move-result-object v0 iget-object v1, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->executor:Ljava/util/concurrent/Executor; new-instance v2, Lcom/google/firebase/perf/config/RemoteConfigManager$$ExternalSyntheticLambda0; invoke-direct {v2, p0}, Lcom/google/firebase/perf/config/RemoteConfigManager$$ExternalSyntheticLambda0;->(Lcom/google/firebase/perf/config/RemoteConfigManager;)V .line 347 invoke-virtual {v0, v1, v2}, Lcom/google/android/gms/tasks/Task;->addOnSuccessListener(Ljava/util/concurrent/Executor;Lcom/google/android/gms/tasks/OnSuccessListener;)Lcom/google/android/gms/tasks/Task; move-result-object v0 iget-object v1, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->executor:Ljava/util/concurrent/Executor; new-instance v2, Lcom/google/firebase/perf/config/RemoteConfigManager$$ExternalSyntheticLambda1; invoke-direct {v2, p0}, Lcom/google/firebase/perf/config/RemoteConfigManager$$ExternalSyntheticLambda1;->(Lcom/google/firebase/perf/config/RemoteConfigManager;)V .line 348 invoke-virtual {v0, v1, v2}, Lcom/google/android/gms/tasks/Task;->addOnFailureListener(Ljava/util/concurrent/Executor;Lcom/google/android/gms/tasks/OnFailureListener;)Lcom/google/android/gms/tasks/Task; return-void .end method .method private triggerRemoteConfigFetchIfNecessary()V .locals 2 .line 332 invoke-virtual {p0}, Lcom/google/firebase/perf/config/RemoteConfigManager;->isFirebaseRemoteConfigAvailable()Z move-result v0 if-nez v0, :cond_0 return-void :cond_0 iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->allRcConfigMap:Ljava/util/concurrent/ConcurrentHashMap; .line 335 invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;->isEmpty()Z move-result v0 if-eqz v0, :cond_1 iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->allRcConfigMap:Ljava/util/concurrent/ConcurrentHashMap; iget-object v1, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfig:Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig; .line 336 invoke-virtual {v1}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig;->getAll()Ljava/util/Map; move-result-object v1 invoke-virtual {v0, v1}, Ljava/util/concurrent/ConcurrentHashMap;->putAll(Ljava/util/Map;)V .line 338 :cond_1 invoke-direct {p0}, Lcom/google/firebase/perf/config/RemoteConfigManager;->shouldFetchAndActivateRemoteConfigValues()Z move-result v0 if-eqz v0, :cond_2 .line 339 invoke-direct {p0}, Lcom/google/firebase/perf/config/RemoteConfigManager;->triggerFirebaseRemoteConfigFetchAndActivateOnSuccessfulFetch()V :cond_2 return-void .end method # virtual methods .method public getBoolean(Ljava/lang/String;)Lcom/google/firebase/perf/util/Optional; .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", ")", "Lcom/google/firebase/perf/util/Optional;" } .end annotation if-nez p1, :cond_0 sget-object p1, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; const-string v0, "The key to get Remote Config boolean value is null." .line 204 invoke-virtual {p1, v0}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;)V .line 205 invoke-static {}, Lcom/google/firebase/perf/util/Optional;->absent()Lcom/google/firebase/perf/util/Optional; move-result-object p1 return-object p1 .line 208 :cond_0 invoke-direct {p0, p1}, Lcom/google/firebase/perf/config/RemoteConfigManager;->getRemoteConfigValue(Ljava/lang/String;)Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue; move-result-object v0 if-eqz v0, :cond_1 .line 211 :try_start_0 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asBoolean()Z move-result v1 invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; move-result-object v1 invoke-static {v1}, Lcom/google/firebase/perf/util/Optional;->of(Ljava/lang/Object;)Lcom/google/firebase/perf/util/Optional; move-result-object p1 :try_end_0 .catch Ljava/lang/IllegalArgumentException; {:try_start_0 .. :try_end_0} :catch_0 return-object p1 .line 213 :catch_0 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asString()Ljava/lang/String; move-result-object v1 invoke-virtual {v1}, Ljava/lang/String;->isEmpty()Z move-result v1 if-nez v1, :cond_1 sget-object v1, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; .line 214 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asString()Ljava/lang/String; move-result-object v0 filled-new-array {v0, p1}, [Ljava/lang/Object; move-result-object p1 const-string v0, "Could not parse value: \'%s\' for key: \'%s\'." invoke-virtual {v1, v0, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;[Ljava/lang/Object;)V .line 218 :cond_1 invoke-static {}, Lcom/google/firebase/perf/util/Optional;->absent()Lcom/google/firebase/perf/util/Optional; move-result-object p1 return-object p1 .end method .method public getCurrentSystemTimeMillis()J .locals 2 .annotation build Landroidx/annotation/VisibleForTesting; .end annotation .line 387 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v0 return-wide v0 .end method .method public getDouble(Ljava/lang/String;)Lcom/google/firebase/perf/util/Optional; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", ")", "Lcom/google/firebase/perf/util/Optional;" } .end annotation if-nez p1, :cond_0 sget-object p1, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; const-string v0, "The key to get Remote Config double value is null." .line 152 invoke-virtual {p1, v0}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;)V .line 153 invoke-static {}, Lcom/google/firebase/perf/util/Optional;->absent()Lcom/google/firebase/perf/util/Optional; move-result-object p1 return-object p1 .line 156 :cond_0 invoke-direct {p0, p1}, Lcom/google/firebase/perf/config/RemoteConfigManager;->getRemoteConfigValue(Ljava/lang/String;)Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue; move-result-object v0 if-eqz v0, :cond_1 .line 159 :try_start_0 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asDouble()D move-result-wide v1 invoke-static {v1, v2}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; move-result-object v1 invoke-static {v1}, Lcom/google/firebase/perf/util/Optional;->of(Ljava/lang/Object;)Lcom/google/firebase/perf/util/Optional; move-result-object p1 :try_end_0 .catch Ljava/lang/IllegalArgumentException; {:try_start_0 .. :try_end_0} :catch_0 return-object p1 .line 161 :catch_0 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asString()Ljava/lang/String; move-result-object v1 invoke-virtual {v1}, Ljava/lang/String;->isEmpty()Z move-result v1 if-nez v1, :cond_1 sget-object v1, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; .line 162 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asString()Ljava/lang/String; move-result-object v0 filled-new-array {v0, p1}, [Ljava/lang/Object; move-result-object p1 const-string v0, "Could not parse value: \'%s\' for key: \'%s\'." invoke-virtual {v1, v0, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;[Ljava/lang/Object;)V .line 166 :cond_1 invoke-static {}, Lcom/google/firebase/perf/util/Optional;->absent()Lcom/google/firebase/perf/util/Optional; move-result-object p1 return-object p1 .end method .method public getLong(Ljava/lang/String;)Lcom/google/firebase/perf/util/Optional; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", ")", "Lcom/google/firebase/perf/util/Optional;" } .end annotation if-nez p1, :cond_0 sget-object p1, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; const-string v0, "The key to get Remote Config long value is null." .line 178 invoke-virtual {p1, v0}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;)V .line 179 invoke-static {}, Lcom/google/firebase/perf/util/Optional;->absent()Lcom/google/firebase/perf/util/Optional; move-result-object p1 return-object p1 .line 182 :cond_0 invoke-direct {p0, p1}, Lcom/google/firebase/perf/config/RemoteConfigManager;->getRemoteConfigValue(Ljava/lang/String;)Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue; move-result-object v0 if-eqz v0, :cond_1 .line 185 :try_start_0 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asLong()J move-result-wide v1 invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v1 invoke-static {v1}, Lcom/google/firebase/perf/util/Optional;->of(Ljava/lang/Object;)Lcom/google/firebase/perf/util/Optional; move-result-object p1 :try_end_0 .catch Ljava/lang/IllegalArgumentException; {:try_start_0 .. :try_end_0} :catch_0 return-object p1 .line 187 :catch_0 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asString()Ljava/lang/String; move-result-object v1 invoke-virtual {v1}, Ljava/lang/String;->isEmpty()Z move-result v1 if-nez v1, :cond_1 sget-object v1, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; .line 188 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asString()Ljava/lang/String; move-result-object v0 filled-new-array {v0, p1}, [Ljava/lang/Object; move-result-object p1 const-string v0, "Could not parse value: \'%s\' for key: \'%s\'." invoke-virtual {v1, v0, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;[Ljava/lang/Object;)V .line 192 :cond_1 invoke-static {}, Lcom/google/firebase/perf/util/Optional;->absent()Lcom/google/firebase/perf/util/Optional; move-result-object p1 return-object p1 .end method .method public getRemoteConfigValueOrDefault(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; .locals 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", "TT;)TT;" } .end annotation .line 257 invoke-direct {p0, p1}, Lcom/google/firebase/perf/config/RemoteConfigManager;->getRemoteConfigValue(Ljava/lang/String;)Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue; move-result-object v0 if-eqz v0, :cond_5 .line 261 :try_start_0 instance-of v1, p2, Ljava/lang/Boolean; if-eqz v1, :cond_0 .line 262 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asBoolean()Z move-result v1 invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; move-result-object p1 :goto_0 move-object p2, p1 goto :goto_3 .line 264 :cond_0 instance-of v1, p2, Ljava/lang/Double; if-eqz v1, :cond_1 .line 265 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asDouble()D move-result-wide v1 invoke-static {v1, v2}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; move-result-object p1 goto :goto_0 .line 267 :cond_1 instance-of v1, p2, Ljava/lang/Long; if-nez v1, :cond_4 instance-of v1, p2, Ljava/lang/Integer; if-eqz v1, :cond_2 goto :goto_1 .line 270 :cond_2 instance-of v1, p2, Ljava/lang/String; if-eqz v1, :cond_3 .line 271 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asString()Ljava/lang/String; move-result-object p1 goto :goto_0 .line 274 :cond_3 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asString()Ljava/lang/String; move-result-object v1 :try_end_0 .catch Ljava/lang/IllegalArgumentException; {:try_start_0 .. :try_end_0} :catch_1 :try_start_1 sget-object v2, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; const-string v3, "No matching type found for the defaultValue: \'%s\', using String." filled-new-array {p2}, [Ljava/lang/Object; move-result-object p2 .line 276 invoke-virtual {v2, v3, p2}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;[Ljava/lang/Object;)V :try_end_1 .catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_0 move-object p2, v1 goto :goto_3 :catch_0 move-object p2, v1 goto :goto_2 .line 268 :cond_4 :goto_1 :try_start_2 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asLong()J move-result-wide v1 invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object p1 :try_end_2 .catch Ljava/lang/IllegalArgumentException; {:try_start_2 .. :try_end_2} :catch_1 goto :goto_0 .line 281 :catch_1 :goto_2 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asString()Ljava/lang/String; move-result-object v1 invoke-virtual {v1}, Ljava/lang/String;->isEmpty()Z move-result v1 if-nez v1, :cond_5 sget-object v1, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; .line 282 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asString()Ljava/lang/String; move-result-object v0 filled-new-array {v0, p1}, [Ljava/lang/Object; move-result-object p1 const-string v0, "Could not parse value: \'%s\' for key: \'%s\'." invoke-virtual {v1, v0, p1}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;[Ljava/lang/Object;)V :cond_5 :goto_3 return-object p2 .end method .method public getString(Ljava/lang/String;)Lcom/google/firebase/perf/util/Optional; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/String;", ")", "Lcom/google/firebase/perf/util/Optional;" } .end annotation if-nez p1, :cond_0 sget-object p1, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; const-string v0, "The key to get Remote Config String value is null." .line 230 invoke-virtual {p1, v0}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;)V .line 231 invoke-static {}, Lcom/google/firebase/perf/util/Optional;->absent()Lcom/google/firebase/perf/util/Optional; move-result-object p1 return-object p1 .line 234 :cond_0 invoke-direct {p0, p1}, Lcom/google/firebase/perf/config/RemoteConfigManager;->getRemoteConfigValue(Ljava/lang/String;)Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue; move-result-object p1 if-eqz p1, :cond_1 .line 236 invoke-interface {p1}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asString()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Lcom/google/firebase/perf/util/Optional;->of(Ljava/lang/Object;)Lcom/google/firebase/perf/util/Optional; move-result-object p1 return-object p1 .line 239 :cond_1 invoke-static {}, Lcom/google/firebase/perf/util/Optional;->absent()Lcom/google/firebase/perf/util/Optional; move-result-object p1 return-object p1 .end method .method public isFirebaseRemoteConfigAvailable()Z .locals 2 iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfig:Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig; if-nez v0, :cond_0 iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfigProvider:Lcom/google/firebase/inject/Provider; if-eqz v0, :cond_0 .line 393 invoke-interface {v0}, Lcom/google/firebase/inject/Provider;->get()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/firebase/remoteconfig/RemoteConfigComponent; if-eqz v0, :cond_0 const-string v1, "fireperf" .line 396 invoke-virtual {v0, v1}, Lcom/google/firebase/remoteconfig/RemoteConfigComponent;->get(Ljava/lang/String;)Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig; move-result-object v0 iput-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfig:Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig; :cond_0 iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfig:Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig; if-eqz v0, :cond_1 const/4 v0, 0x1 goto :goto_0 :cond_1 const/4 v0, 0x0 :goto_0 return v0 .end method .method public isLastFetchFailed()Z .locals 3 iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfig:Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig; const/4 v1, 0x1 if-eqz v0, :cond_1 .line 316 invoke-virtual {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig;->getInfo()Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigInfo; move-result-object v0 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigInfo;->getLastFetchStatus()I move-result v0 if-eq v0, v1, :cond_1 iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfig:Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig; .line 318 invoke-virtual {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig;->getInfo()Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigInfo; move-result-object v0 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigInfo;->getLastFetchStatus()I move-result v0 const/4 v2, 0x2 if-ne v0, v2, :cond_0 goto :goto_0 :cond_0 const/4 v1, 0x0 :cond_1 :goto_0 return v1 .end method .method public setFirebaseRemoteConfigProvider(Lcom/google/firebase/inject/Provider;)V .locals 0 .param p1 # Lcom/google/firebase/inject/Provider; .annotation build Landroidx/annotation/Nullable; .end annotation .end param .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/firebase/inject/Provider;", ")V" } .end annotation iput-object p1, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->firebaseRemoteConfigProvider:Lcom/google/firebase/inject/Provider; return-void .end method .method public syncConfigValues(Ljava/util/Map;)V .locals 3 .annotation build Landroidx/annotation/VisibleForTesting; .end annotation .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/Map<", "Ljava/lang/String;", "Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;", ">;)V" } .end annotation iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->allRcConfigMap:Ljava/util/concurrent/ConcurrentHashMap; .line 360 invoke-virtual {v0, p1}, Ljava/util/concurrent/ConcurrentHashMap;->putAll(Ljava/util/Map;)V iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->allRcConfigMap:Ljava/util/concurrent/ConcurrentHashMap; .line 361 invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/Set; move-result-object v0 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_0 :goto_0 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_1 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/lang/String; .line 362 invoke-interface {p1, v1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z move-result v2 if-nez v2, :cond_0 iget-object v2, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->allRcConfigMap:Ljava/util/concurrent/ConcurrentHashMap; .line 363 invoke-virtual {v2, v1}, Ljava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; goto :goto_0 .line 370 :cond_1 invoke-static {}, Lcom/google/firebase/perf/config/ConfigurationConstants$ExperimentTTID;->getInstance()Lcom/google/firebase/perf/config/ConfigurationConstants$ExperimentTTID; move-result-object p1 iget-object v0, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->allRcConfigMap:Ljava/util/concurrent/ConcurrentHashMap; .line 371 invoke-virtual {p1}, Lcom/google/firebase/perf/config/ConfigurationConstants$ExperimentTTID;->getRemoteConfigFlag()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue; if-eqz v0, :cond_2 :try_start_0 iget-object v1, p0, Lcom/google/firebase/perf/config/RemoteConfigManager;->cache:Lcom/google/firebase/perf/config/DeviceCacheManager; .line 374 invoke-virtual {p1}, Lcom/google/firebase/perf/config/ConfigurationConstants$ExperimentTTID;->getDeviceCacheFlag()Ljava/lang/String; move-result-object p1 invoke-interface {v0}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigValue;->asBoolean()Z move-result v0 invoke-virtual {v1, p1, v0}, Lcom/google/firebase/perf/config/DeviceCacheManager;->setValue(Ljava/lang/String;Z)Z :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_1 :catch_0 sget-object p1, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; const-string v0, "ExperimentTTID remote config flag has invalid value, expected boolean." .line 376 invoke-virtual {p1, v0}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;)V goto :goto_1 :cond_2 sget-object p1, Lcom/google/firebase/perf/config/RemoteConfigManager;->logger:Lcom/google/firebase/perf/logging/AndroidLogger; const-string v0, "ExperimentTTID remote config flag does not exist." .line 379 invoke-virtual {p1, v0}, Lcom/google/firebase/perf/logging/AndroidLogger;->debug(Ljava/lang/String;)V :goto_1 return-void .end method