Created
February 21, 2017 08:28
-
-
Save anonymous/e6f23c1dc37bf905a9224d8b72ab6cd9 to your computer and use it in GitHub Desktop.
FirebaseRemote Config library class
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Source code recreated from a .class file by IntelliJ IDEA | |
// (powered by Fernflower decompiler) | |
// | |
package com.google.firebase.remoteconfig; | |
import android.content.Context; | |
import android.content.pm.PackageManager.NameNotFoundException; | |
import android.content.res.Resources; | |
import android.content.res.XmlResourceParser; | |
import android.os.AsyncTask; | |
import android.os.Build.VERSION; | |
import android.support.annotation.NonNull; | |
import android.support.annotation.VisibleForTesting; | |
import android.util.Log; | |
import com.google.android.gms.common.api.PendingResult; | |
import com.google.android.gms.common.api.ResultCallback; | |
import com.google.android.gms.internal.zzado; | |
import com.google.android.gms.internal.zzblq; | |
import com.google.android.gms.internal.zzbtl; | |
import com.google.android.gms.internal.zzbtm; | |
import com.google.android.gms.internal.zzbtn; | |
import com.google.android.gms.internal.zzbto; | |
import com.google.android.gms.internal.zzbtp; | |
import com.google.android.gms.internal.zzbtq; | |
import com.google.android.gms.internal.zzbtr; | |
import com.google.android.gms.internal.zzbxl; | |
import com.google.android.gms.internal.zzbts.zza; | |
import com.google.android.gms.internal.zzbts.zzb; | |
import com.google.android.gms.internal.zzbts.zzc; | |
import com.google.android.gms.internal.zzbts.zzd; | |
import com.google.android.gms.internal.zzbts.zze; | |
import com.google.android.gms.internal.zzbts.zzf; | |
import com.google.android.gms.tasks.Task; | |
import com.google.android.gms.tasks.TaskCompletionSource; | |
import com.google.firebase.FirebaseApp; | |
import com.google.firebase.remoteconfig.FirebaseRemoteConfigFetchException; | |
import com.google.firebase.remoteconfig.FirebaseRemoteConfigFetchThrottledException; | |
import com.google.firebase.remoteconfig.FirebaseRemoteConfigInfo; | |
import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings; | |
import com.google.firebase.remoteconfig.FirebaseRemoteConfigValue; | |
import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings.Builder; | |
import java.io.ByteArrayOutputStream; | |
import java.io.FileInputStream; | |
import java.io.FileNotFoundException; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.io.OutputStream; | |
import java.util.ArrayList; | |
import java.util.HashMap; | |
import java.util.Iterator; | |
import java.util.List; | |
import java.util.Map; | |
import java.util.Set; | |
import java.util.TreeSet; | |
import java.util.concurrent.TimeUnit; | |
import java.util.concurrent.locks.ReadWriteLock; | |
import java.util.concurrent.locks.ReentrantReadWriteLock; | |
public class FirebaseRemoteConfig { | |
public static final String DEFAULT_VALUE_FOR_STRING = ""; | |
public static final long DEFAULT_VALUE_FOR_LONG = 0L; | |
public static final double DEFAULT_VALUE_FOR_DOUBLE = 0.0D; | |
public static final boolean DEFAULT_VALUE_FOR_BOOLEAN = false; | |
public static final byte[] DEFAULT_VALUE_FOR_BYTE_ARRAY = new byte[0]; | |
public static final int VALUE_SOURCE_STATIC = 0; | |
public static final int VALUE_SOURCE_DEFAULT = 1; | |
public static final int VALUE_SOURCE_REMOTE = 2; | |
public static final int LAST_FETCH_STATUS_SUCCESS = -1; | |
public static final int LAST_FETCH_STATUS_NO_FETCH_YET = 0; | |
public static final int LAST_FETCH_STATUS_FAILURE = 1; | |
public static final int LAST_FETCH_STATUS_THROTTLED = 2; | |
private static FirebaseRemoteConfig zzclM; | |
private zzbto zzclN; | |
private zzbto zzclO; | |
private zzbto zzclP; | |
private zzbtr zzclQ; | |
private final Context mContext; | |
private final ReadWriteLock zzclR; | |
FirebaseRemoteConfig(Context var1) { | |
this(var1, (zzbto)null, (zzbto)null, (zzbto)null, (zzbtr)null); | |
} | |
private FirebaseRemoteConfig(Context var1, zzbto var2, zzbto var3, zzbto var4, zzbtr var5) { | |
this.zzclR = new ReentrantReadWriteLock(true); | |
this.mContext = var1; | |
if(var5 != null) { | |
this.zzclQ = var5; | |
} else { | |
this.zzclQ = new zzbtr(); | |
} | |
this.zzclQ.zzaV(this.zzcA(this.mContext)); | |
if(var2 != null) { | |
this.zzclN = var2; | |
} | |
if(var3 != null) { | |
this.zzclO = var3; | |
} | |
if(var4 != null) { | |
this.zzclP = var4; | |
} | |
} | |
public static FirebaseRemoteConfig getInstance() { | |
if(zzclM == null) { | |
FirebaseApp var0 = FirebaseApp.getInstance(); | |
if(var0 == null) { | |
throw new IllegalStateException("FirebaseApp has not been initialized."); | |
} else { | |
Context var1 = var0.getApplicationContext(); | |
return zzcz(var1); | |
} | |
} else { | |
return zzclM; | |
} | |
} | |
public static FirebaseRemoteConfig zzcz(Context var0) { | |
if(zzclM == null) { | |
zze var1 = zzcB(var0); | |
if(var1 == null) { | |
if(Log.isLoggable("FirebaseRemoteConfig", 3)) { | |
Log.d("FirebaseRemoteConfig", "No persisted config was found. Initializing from scratch."); | |
} | |
zzclM = new FirebaseRemoteConfig(var0); | |
} else { | |
if(Log.isLoggable("FirebaseRemoteConfig", 3)) { | |
Log.d("FirebaseRemoteConfig", "Initializing from persisted config."); | |
} | |
zzbto var2 = zza(var1.zzcmr); | |
zzbto var3 = zza(var1.zzcms); | |
zzbto var4 = zza(var1.zzcmt); | |
zzbtr var5 = zza(var1.zzcmu); | |
if(var5 != null) { | |
var5.zzaI(zza(var1.zzcmv)); | |
} | |
zzclM = new FirebaseRemoteConfig(var0, var2, var3, var4, var5); | |
} | |
} | |
return zzclM; | |
} | |
private long zzcA(Context var1) { | |
long var2 = 0L; | |
try { | |
var2 = this.mContext.getPackageManager().getPackageInfo(var1.getPackageName(), 0).lastUpdateTime; | |
} catch (NameNotFoundException var6) { | |
String var5 = String.valueOf(var1.getPackageName()); | |
Log.e("FirebaseRemoteConfig", (new StringBuilder(25 + String.valueOf(var5).length())).append("Package [").append(var5).append("] was not found!").toString()); | |
} | |
return var2; | |
} | |
private static zze zzcB(Context var0) { | |
if(var0 == null) { | |
return null; | |
} else { | |
FileInputStream var2 = null; | |
try { | |
var2 = var0.openFileInput("persisted_config"); | |
zzbxl var3 = zzbxl.zzaf(zzk(var2)); | |
zze var1 = new zze(); | |
var1.zzb(var3); | |
return var1; | |
} catch (FileNotFoundException var16) { | |
if(Log.isLoggable("FirebaseRemoteConfig", 3)) { | |
Log.d("FirebaseRemoteConfig", "Persisted config file was not found.", var16); | |
} | |
} catch (IOException var17) { | |
Log.e("FirebaseRemoteConfig", "Cannot initialize from persisted config.", var17); | |
return null; | |
} finally { | |
try { | |
if(var2 != null) { | |
var2.close(); | |
} | |
} catch (IOException var15) { | |
Log.e("FirebaseRemoteConfig", "Failed to close persisted config file.", var15); | |
} | |
} | |
return null; | |
} | |
} | |
private static Map<String, zzbtl> zza(zzf[] var0) { | |
HashMap var1 = new HashMap(); | |
if(var0 == null) { | |
return var1; | |
} else { | |
zzf[] var2 = var0; | |
int var3 = var0.length; | |
for(int var4 = 0; var4 < var3; ++var4) { | |
zzf var5 = var2[var4]; | |
String var6 = var5.zzaGP; | |
int var7 = var5.resourceId; | |
long var8 = var5.zzcmx; | |
var1.put(var6, new zzbtl(var7, var8)); | |
} | |
return var1; | |
} | |
} | |
private static zzbtr zza(zzc var0) { | |
if(var0 == null) { | |
return null; | |
} else { | |
zzbtr var1 = new zzbtr(); | |
var1.zzqI(var0.zzcmm); | |
var1.zzbh(var0.zzcmn); | |
var1.zzaW(var0.zzcmo); | |
return var1; | |
} | |
} | |
private static zzbto zza(zza var0) { | |
if(var0 == null) { | |
return null; | |
} else { | |
HashMap var1 = new HashMap(); | |
zzd[] var2 = var0.zzcmi; | |
zzd[] var3 = var2; | |
int var4 = var2.length; | |
for(int var5 = 0; var5 < var4; ++var5) { | |
zzd var6 = var3[var5]; | |
String var7 = var6.zzaGP; | |
HashMap var8 = new HashMap(); | |
zzb[] var9 = var6.zzcmq; | |
int var10 = var9.length; | |
for(int var11 = 0; var11 < var10; ++var11) { | |
zzb var12 = var9[var11]; | |
var8.put(var12.zzaB, var12.zzcml); | |
} | |
var1.put(var7, var8); | |
} | |
byte[][] var13 = var0.zzcmj; | |
ArrayList var14 = new ArrayList(); | |
byte[][] var15 = var13; | |
int var16 = var13.length; | |
for(int var17 = 0; var17 < var16; ++var17) { | |
byte[] var18 = var15[var17]; | |
var14.add(var18); | |
} | |
return new zzbto(var1, var0.timestamp, var14); | |
} | |
} | |
private static byte[] zzk(InputStream var0) throws IOException { | |
ByteArrayOutputStream var1 = new ByteArrayOutputStream(); | |
zzb(var0, var1); | |
return var1.toByteArray(); | |
} | |
private static long zzb(InputStream var0, OutputStream var1) throws IOException { | |
byte[] var2 = new byte[4096]; | |
long var3 = 0L; | |
while(true) { | |
int var5 = var0.read(var2); | |
if(var5 == -1) { | |
return var3; | |
} | |
var1.write(var2, 0, var5); | |
var3 += (long)var5; | |
} | |
} | |
public boolean activateFetched() { | |
this.zzclR.writeLock().lock(); | |
try { | |
if(this.zzclN != null) { | |
if(this.zzclO != null && this.zzclO.getTimestamp() >= this.zzclN.getTimestamp()) { | |
return false; | |
} | |
long var1 = this.zzclN.getTimestamp(); | |
this.zzclO = this.zzclN; | |
this.zzclO.setTimestamp(System.currentTimeMillis()); | |
this.zzclN = new zzbto((Map)null, var1, (List)null); | |
long var3 = this.zzclQ.zzacj(); | |
this.zzclQ.zzaW(zzblq.zza(var3, this.zzclO.zzzD())); | |
this.zza(this.mContext, this.zzclO.zzzD(), var3); | |
this.zzacb(); | |
return true; | |
} | |
} finally { | |
this.zzclR.writeLock().unlock(); | |
} | |
return false; | |
} | |
public void setDefaults(int var1) { | |
this.setDefaults(var1, "configns:firebase"); | |
} | |
public void setDefaults(int var1, String var2) { | |
if(var2 == null) { | |
if(Log.isLoggable("FirebaseRemoteConfig", 3)) { | |
Log.d("FirebaseRemoteConfig", "namespace cannot be null for setDefaults."); | |
} | |
} else { | |
this.zzclR.readLock().lock(); | |
label164: { | |
try { | |
if(this.zzclQ == null || this.zzclQ.zzach() == null || this.zzclQ.zzach().get(var2) == null) { | |
break label164; | |
} | |
zzbtl var3 = (zzbtl)this.zzclQ.zzach().get(var2); | |
if(var1 != var3.zzacc() || this.zzclQ.zzaci() != var3.zzacd()) { | |
break label164; | |
} | |
if(Log.isLoggable("FirebaseRemoteConfig", 3)) { | |
Log.d("FirebaseRemoteConfig", "Skipped setting defaults from resource file as this resource file was already applied."); | |
} | |
} finally { | |
this.zzclR.readLock().unlock(); | |
} | |
return; | |
} | |
HashMap var15 = new HashMap(); | |
try { | |
Resources var4 = this.mContext.getResources(); | |
XmlResourceParser var5 = var4.getXml(var1); | |
int var6 = var5.getEventType(); | |
String var7 = null; | |
String var8 = null; | |
for(String var9 = null; var6 != 1; var6 = var5.next()) { | |
if(var6 == 2) { | |
var7 = var5.getName(); | |
} else if(var6 == 3) { | |
if("entry".equals(var5.getName()) && var8 != null && var9 != null) { | |
var15.put(var8, var9); | |
var8 = null; | |
var9 = null; | |
} | |
var7 = null; | |
} else if(var6 == 4) { | |
if("key".equals(var7)) { | |
var8 = var5.getText(); | |
} else if("value".equals(var7)) { | |
var9 = var5.getText(); | |
} | |
} | |
} | |
zzbtl var10 = new zzbtl(var1, this.zzclQ.zzaci()); | |
this.zzclQ.zza(var2, var10); | |
this.zzc(var15, var2, false); | |
} catch (Exception var13) { | |
Log.e("FirebaseRemoteConfig", "Caught exception while parsing XML resource. Skipping setDefaults.", var13); | |
} | |
} | |
} | |
public void setDefaults(Map<String, Object> var1) { | |
this.setDefaults(var1, "configns:firebase"); | |
} | |
public void setDefaults(Map<String, Object> var1, String var2) { | |
this.zzc(var1, var2, true); | |
} | |
private void zzc(Map<String, Object> var1, String var2, boolean var3) { | |
if(var2 != null) { | |
boolean var4 = var1 == null || var1.isEmpty(); | |
HashMap var5 = new HashMap(); | |
if(!var4) { | |
Iterator var6 = var1.keySet().iterator(); | |
while(var6.hasNext()) { | |
String var7 = (String)var6.next(); | |
Object var8 = var1.get(var7); | |
if(var8 instanceof String) { | |
var5.put(var7, ((String)var8).getBytes(zzbtq.UTF_8)); | |
} else if(var8 instanceof Long) { | |
var5.put(var7, ((Long)var8).toString().getBytes(zzbtq.UTF_8)); | |
} else if(var8 instanceof Integer) { | |
var5.put(var7, ((Integer)var8).toString().getBytes(zzbtq.UTF_8)); | |
} else if(var8 instanceof Double) { | |
var5.put(var7, ((Double)var8).toString().getBytes(zzbtq.UTF_8)); | |
} else if(var8 instanceof Float) { | |
var5.put(var7, ((Float)var8).toString().getBytes(zzbtq.UTF_8)); | |
} else if(var8 instanceof byte[]) { | |
var5.put(var7, (byte[])var8); | |
} else { | |
if(!(var8 instanceof Boolean)) { | |
throw new IllegalArgumentException("The type of a default value needs to beone of String, Long, Double, Boolean, or byte[]."); | |
} | |
var5.put(var7, ((Boolean)var8).toString().getBytes(zzbtq.UTF_8)); | |
} | |
} | |
} | |
this.zzclR.writeLock().lock(); | |
try { | |
if(var4) { | |
if(this.zzclP == null || !this.zzclP.zzjF(var2)) { | |
return; | |
} | |
this.zzclP.zzj((Map)null, var2); | |
this.zzclP.setTimestamp(System.currentTimeMillis()); | |
} else { | |
if(this.zzclP == null) { | |
this.zzclP = new zzbto(new HashMap(), System.currentTimeMillis(), (List)null); | |
} | |
this.zzclP.zzj(var5, var2); | |
this.zzclP.setTimestamp(System.currentTimeMillis()); | |
} | |
if(var3) { | |
this.zzclQ.zzjG(var2); | |
} | |
this.zzacb(); | |
} finally { | |
this.zzclR.writeLock().unlock(); | |
} | |
} | |
} | |
public void setConfigSettings(FirebaseRemoteConfigSettings var1) { | |
this.zzclR.writeLock().lock(); | |
try { | |
boolean var2 = this.zzclQ.isDeveloperModeEnabled(); | |
boolean var3 = var1 == null?false:var1.isDeveloperModeEnabled(); | |
this.zzclQ.zzbh(var3); | |
if(var2 != var3) { | |
this.zzacb(); | |
} | |
} finally { | |
this.zzclR.writeLock().unlock(); | |
} | |
} | |
public long getLong(String var1) { | |
return this.getLong(var1, "configns:firebase"); | |
} | |
public long getLong(String var1, String var2) { | |
if(var2 == null) { | |
return 0L; | |
} else { | |
this.zzclR.readLock().lock(); | |
long var4; | |
try { | |
String var3; | |
if(this.zzclO != null && this.zzclO.zzaA(var1, var2)) { | |
var3 = new String(this.zzclO.zzaB(var1, var2), zzbtq.UTF_8); | |
try { | |
var4 = Long.valueOf(var3).longValue(); | |
return var4; | |
} catch (NumberFormatException var11) { | |
; | |
} | |
} | |
if(this.zzclP == null || !this.zzclP.zzaA(var1, var2)) { | |
return 0L; | |
} | |
var3 = new String(this.zzclP.zzaB(var1, var2), zzbtq.UTF_8); | |
try { | |
var4 = Long.valueOf(var3).longValue(); | |
} catch (NumberFormatException var10) { | |
return 0L; | |
} | |
} finally { | |
this.zzclR.readLock().unlock(); | |
} | |
return var4; | |
} | |
} | |
public byte[] getByteArray(String var1) { | |
return this.getByteArray(var1, "configns:firebase"); | |
} | |
public byte[] getByteArray(String var1, String var2) { | |
if(var2 == null) { | |
return DEFAULT_VALUE_FOR_BYTE_ARRAY; | |
} else { | |
this.zzclR.readLock().lock(); | |
byte[] var3; | |
try { | |
if(this.zzclO != null && this.zzclO.zzaA(var1, var2)) { | |
var3 = this.zzclO.zzaB(var1, var2); | |
return var3; | |
} | |
if(this.zzclP == null || !this.zzclP.zzaA(var1, var2)) { | |
var3 = DEFAULT_VALUE_FOR_BYTE_ARRAY; | |
return var3; | |
} | |
var3 = this.zzclP.zzaB(var1, var2); | |
} finally { | |
this.zzclR.readLock().unlock(); | |
} | |
return var3; | |
} | |
} | |
public String getString(String var1) { | |
return this.getString(var1, "configns:firebase"); | |
} | |
public String getString(String var1, String var2) { | |
if(var2 == null) { | |
return ""; | |
} else { | |
this.zzclR.readLock().lock(); | |
String var3; | |
try { | |
if(this.zzclO != null && this.zzclO.zzaA(var1, var2)) { | |
var3 = new String(this.zzclO.zzaB(var1, var2), zzbtq.UTF_8); | |
return var3; | |
} | |
if(this.zzclP != null && this.zzclP.zzaA(var1, var2)) { | |
var3 = new String(this.zzclP.zzaB(var1, var2), zzbtq.UTF_8); | |
return var3; | |
} | |
var3 = ""; | |
} finally { | |
this.zzclR.readLock().unlock(); | |
} | |
return var3; | |
} | |
} | |
public boolean getBoolean(String var1) { | |
return this.getBoolean(var1, "configns:firebase"); | |
} | |
public boolean getBoolean(String var1, String var2) { | |
if(var2 == null) { | |
return false; | |
} else { | |
this.zzclR.readLock().lock(); | |
try { | |
String var3; | |
if(this.zzclO != null && this.zzclO.zzaA(var1, var2)) { | |
var3 = new String(this.zzclO.zzaB(var1, var2), zzbtq.UTF_8); | |
if(zzbtq.zzaII.matcher(var3).matches()) { | |
return true; | |
} | |
if(zzbtq.zzaIJ.matcher(var3).matches()) { | |
return false; | |
} | |
} | |
if(this.zzclP == null || !this.zzclP.zzaA(var1, var2)) { | |
return false; | |
} else { | |
var3 = new String(this.zzclP.zzaB(var1, var2), zzbtq.UTF_8); | |
if(zzbtq.zzaII.matcher(var3).matches()) { | |
return true; | |
} else if(!zzbtq.zzaIJ.matcher(var3).matches()) { | |
return false; | |
} else { | |
return false; | |
} | |
} | |
} finally { | |
this.zzclR.readLock().unlock(); | |
} | |
} | |
} | |
public double getDouble(String var1) { | |
return this.getDouble(var1, "configns:firebase"); | |
} | |
public double getDouble(String var1, String var2) { | |
if(var2 == null) { | |
return 0.0D; | |
} else { | |
this.zzclR.readLock().lock(); | |
double var4; | |
try { | |
String var3; | |
if(this.zzclO != null && this.zzclO.zzaA(var1, var2)) { | |
var3 = new String(this.zzclO.zzaB(var1, var2), zzbtq.UTF_8); | |
try { | |
var4 = Double.valueOf(var3).doubleValue(); | |
return var4; | |
} catch (NumberFormatException var10) { | |
; | |
} | |
} | |
if(this.zzclP == null || !this.zzclP.zzaA(var1, var2)) { | |
return 0.0D; | |
} | |
var3 = new String(this.zzclP.zzaB(var1, var2), zzbtq.UTF_8); | |
try { | |
var4 = Double.valueOf(var3).doubleValue(); | |
} catch (NumberFormatException var11) { | |
return 0.0D; | |
} | |
} finally { | |
this.zzclR.readLock().unlock(); | |
} | |
return var4; | |
} | |
} | |
public FirebaseRemoteConfigValue getValue(String var1) { | |
return this.getValue(var1, "configns:firebase"); | |
} | |
public FirebaseRemoteConfigValue getValue(String var1, String var2) { | |
if(var2 == null) { | |
return new zzbtq(DEFAULT_VALUE_FOR_BYTE_ARRAY, 0); | |
} else { | |
this.zzclR.readLock().lock(); | |
zzbtq var3; | |
try { | |
if(this.zzclO != null && this.zzclO.zzaA(var1, var2)) { | |
var3 = new zzbtq(this.zzclO.zzaB(var1, var2), 2); | |
return var3; | |
} | |
if(this.zzclP != null && this.zzclP.zzaA(var1, var2)) { | |
var3 = new zzbtq(this.zzclP.zzaB(var1, var2), 1); | |
return var3; | |
} | |
var3 = new zzbtq(DEFAULT_VALUE_FOR_BYTE_ARRAY, 0); | |
} finally { | |
this.zzclR.readLock().unlock(); | |
} | |
return var3; | |
} | |
} | |
public FirebaseRemoteConfigInfo getInfo() { | |
zzbtp var1 = new zzbtp(); | |
this.zzclR.readLock().lock(); | |
try { | |
long var2 = this.zzclN == null?-1L:this.zzclN.getTimestamp(); | |
var1.zzaU(var2); | |
var1.zzqI(this.zzclQ.getLastFetchStatus()); | |
var1.setConfigSettings((new Builder()).setDeveloperModeEnabled(this.zzclQ.isDeveloperModeEnabled()).build()); | |
} finally { | |
this.zzclR.readLock().unlock(); | |
} | |
return var1; | |
} | |
public Set<String> getKeysByPrefix(String var1) { | |
return this.getKeysByPrefix(var1, "configns:firebase"); | |
} | |
public Set<String> getKeysByPrefix(String var1, String var2) { | |
this.zzclR.readLock().lock(); | |
TreeSet var3; | |
try { | |
if(this.zzclO != null) { | |
Set var7 = this.zzclO.zzaC(var1, var2); | |
return var7; | |
} | |
var3 = new TreeSet(); | |
} finally { | |
this.zzclR.readLock().unlock(); | |
} | |
return var3; | |
} | |
private void zzt(Runnable var1) { | |
int var10000 = VERSION.SDK_INT; | |
/* zzbtn is called from here */ | |
AsyncTask.SERIAL_EXECUTOR.execute(var1); | |
} | |
private void zza(Context var1, List<byte[]> var2, long var3) { | |
this.zzt(new zzbtm(var1, var2, var3)); | |
} | |
private void zzacb() { | |
this.zzclR.readLock().lock(); | |
try { | |
this.zzt(new zzbtn(this.mContext, this.zzclN, this.zzclO, this.zzclP, this.zzclQ)); | |
} finally { | |
this.zzclR.readLock().unlock(); | |
} | |
} | |
public Task<Void> fetch() { | |
return this.fetch(43200L); | |
} | |
public Task<Void> fetch(long var1) { | |
final TaskCompletionSource var3 = new TaskCompletionSource(); | |
this.zzclR.readLock().lock(); | |
try { | |
com.google.android.gms.internal.zzadi.zza.zza var4 = new com.google.android.gms.internal.zzadi.zza.zza(); | |
var4.zzK(var1); | |
if(this.zzclQ.isDeveloperModeEnabled()) { | |
var4.zzH("_rcn_developer", "true"); | |
} | |
var4.zzdr(10300); | |
long var5; | |
long var7; | |
int var9; | |
if(this.zzclO != null && this.zzclO.getTimestamp() != -1L) { | |
var5 = System.currentTimeMillis() - this.zzclO.getTimestamp(); | |
var7 = TimeUnit.SECONDS.convert(var5, TimeUnit.MILLISECONDS); | |
var9 = var7 < 2147483647L?(int)var7:2147483647; | |
var4.zzdt(var9); | |
} | |
if(this.zzclN != null && this.zzclN.getTimestamp() != -1L) { | |
var5 = System.currentTimeMillis() - this.zzclN.getTimestamp(); | |
var7 = TimeUnit.SECONDS.convert(var5, TimeUnit.MILLISECONDS); | |
var9 = var7 < 2147483647L?(int)var7:2147483647; | |
var4.zzds(var9); | |
} | |
PendingResult var13 = (new zzado(this.mContext)).zza(var4.zzzC()); | |
var13.setResultCallback(new ResultCallback() { | |
public void zza(@NonNull com.google.android.gms.internal.zzadi.zzb var1) { | |
FirebaseRemoteConfig.this.zza(var3, var1); | |
} | |
}); | |
} finally { | |
this.zzclR.readLock().unlock(); | |
} | |
return var3.getTask(); | |
} | |
@VisibleForTesting | |
void zza(TaskCompletionSource<Void> var1, com.google.android.gms.internal.zzadi.zzb var2) { | |
if(var2 != null && var2.getStatus() != null) { | |
int var3 = var2.getStatus().getStatusCode(); | |
this.zzclR.writeLock().lock(); | |
try { | |
Map var4; | |
HashMap var5; | |
Iterator var6; | |
String var7; | |
HashMap var8; | |
Iterator var9; | |
String var10; | |
switch(var3) { | |
case -6508: | |
case -6506: | |
this.zzclQ.zzqI(-1); | |
if(this.zzclN != null && !this.zzclN.zzacf()) { | |
var4 = var2.zzzE(); | |
var5 = new HashMap(); | |
var6 = var4.keySet().iterator(); | |
while(true) { | |
if(!var6.hasNext()) { | |
this.zzclN = new zzbto(var5, this.zzclN.getTimestamp(), var2.zzzD()); | |
break; | |
} | |
var7 = (String)var6.next(); | |
var8 = new HashMap(); | |
var9 = ((Set)var4.get(var7)).iterator(); | |
while(var9.hasNext()) { | |
var10 = (String)var9.next(); | |
var8.put(var10, var2.zza(var10, (byte[])null, var7)); | |
} | |
var5.put(var7, var8); | |
} | |
} | |
var1.setResult((Object)null); | |
this.zzacb(); | |
break; | |
case -6505: | |
var4 = var2.zzzE(); | |
var5 = new HashMap(); | |
var6 = var4.keySet().iterator(); | |
while(var6.hasNext()) { | |
var7 = (String)var6.next(); | |
var8 = new HashMap(); | |
var9 = ((Set)var4.get(var7)).iterator(); | |
while(var9.hasNext()) { | |
var10 = (String)var9.next(); | |
var8.put(var10, var2.zza(var10, (byte[])null, var7)); | |
} | |
var5.put(var7, var8); | |
} | |
this.zzclN = new zzbto(var5, System.currentTimeMillis(), var2.zzzD()); | |
this.zzclQ.zzqI(-1); | |
var1.setResult((Object)null); | |
this.zzacb(); | |
break; | |
case 6500: | |
case 6501: | |
case 6503: | |
case 6504: | |
this.zzclQ.zzqI(1); | |
var1.setException(new FirebaseRemoteConfigFetchException()); | |
this.zzacb(); | |
break; | |
case 6502: | |
case 6507: | |
this.zzclQ.zzqI(2); | |
var1.setException(new FirebaseRemoteConfigFetchThrottledException(var2.getThrottleEndTimeMillis())); | |
this.zzacb(); | |
break; | |
default: | |
if(var2.getStatus().isSuccess()) { | |
Log.w("FirebaseRemoteConfig", (new StringBuilder(45)).append("Unknown (successful) status code: ").append(var3).toString()); | |
} | |
this.zzclQ.zzqI(1); | |
var1.setException(new FirebaseRemoteConfigFetchException()); | |
this.zzacb(); | |
} | |
} finally { | |
this.zzclR.writeLock().unlock(); | |
} | |
} else { | |
this.zzclQ.zzqI(1); | |
var1.setException(new FirebaseRemoteConfigFetchException()); | |
this.zzacb(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment