Files

191 lines
7.9 KiB
Java

package com.google.firebase.remoteconfig.internal;
import android.content.SharedPreferences;
import com.google.firebase.remoteconfig.FirebaseRemoteConfigInfo;
import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings;
import java.util.Date;
/* loaded from: classes3.dex */
public class ConfigMetadataClient {
private static final String BACKOFF_END_TIME_IN_MILLIS_KEY = "backoff_end_time_in_millis";
private static final String FETCH_TIMEOUT_IN_SECONDS_KEY = "fetch_timeout_in_seconds";
private static final String LAST_FETCH_ETAG_KEY = "last_fetch_etag";
private static final String LAST_FETCH_STATUS_KEY = "last_fetch_status";
public static final long LAST_FETCH_TIME_IN_MILLIS_NO_FETCH_YET = -1;
private static final String LAST_SUCCESSFUL_FETCH_TIME_IN_MILLIS_KEY = "last_fetch_time_in_millis";
private static final String LAST_TEMPLATE_VERSION = "last_template_version";
private static final String MINIMUM_FETCH_INTERVAL_IN_SECONDS_KEY = "minimum_fetch_interval_in_seconds";
private static final long NO_BACKOFF_TIME_IN_MILLIS = -1;
static final int NO_FAILED_FETCHES = 0;
static final int NO_FAILED_REALTIME_STREAMS = 0;
private static final String NUM_FAILED_FETCHES_KEY = "num_failed_fetches";
private static final String NUM_FAILED_REALTIME_STREAMS_KEY = "num_failed_realtime_streams";
private static final String REALTIME_BACKOFF_END_TIME_IN_MILLIS_KEY = "realtime_backoff_end_time_in_millis";
private final SharedPreferences frcMetadata;
static final Date LAST_FETCH_TIME_NO_FETCH_YET = new Date(-1);
static final Date NO_BACKOFF_TIME = new Date(-1);
private final Object frcInfoLock = new Object();
private final Object backoffMetadataLock = new Object();
private final Object realtimeBackoffMetadataLock = new Object();
/* loaded from: classes3.dex */
public static class BackoffMetadata {
private Date backoffEndTime;
private int numFailedFetches;
public BackoffMetadata(int i, Date date) {
this.numFailedFetches = i;
this.backoffEndTime = date;
}
public Date getBackoffEndTime() {
return this.backoffEndTime;
}
public int getNumFailedFetches() {
return this.numFailedFetches;
}
}
/* loaded from: classes3.dex */
public static class RealtimeBackoffMetadata {
private Date backoffEndTime;
private int numFailedStreams;
public RealtimeBackoffMetadata(int i, Date date) {
this.numFailedStreams = i;
this.backoffEndTime = date;
}
public Date getBackoffEndTime() {
return this.backoffEndTime;
}
public int getNumFailedStreams() {
return this.numFailedStreams;
}
}
public ConfigMetadataClient(SharedPreferences sharedPreferences) {
this.frcMetadata = sharedPreferences;
}
public void clear() {
synchronized (this.frcInfoLock) {
this.frcMetadata.edit().clear().commit();
}
}
public BackoffMetadata getBackoffMetadata() {
BackoffMetadata backoffMetadata;
synchronized (this.backoffMetadataLock) {
backoffMetadata = new BackoffMetadata(this.frcMetadata.getInt(NUM_FAILED_FETCHES_KEY, 0), new Date(this.frcMetadata.getLong(BACKOFF_END_TIME_IN_MILLIS_KEY, -1L)));
}
return backoffMetadata;
}
public long getFetchTimeoutInSeconds() {
return this.frcMetadata.getLong(FETCH_TIMEOUT_IN_SECONDS_KEY, 60L);
}
public FirebaseRemoteConfigInfo getInfo() {
FirebaseRemoteConfigInfoImpl build;
synchronized (this.frcInfoLock) {
long j4 = this.frcMetadata.getLong(LAST_SUCCESSFUL_FETCH_TIME_IN_MILLIS_KEY, -1L);
int i = this.frcMetadata.getInt(LAST_FETCH_STATUS_KEY, 0);
build = FirebaseRemoteConfigInfoImpl.newBuilder().withLastFetchStatus(i).withLastSuccessfulFetchTimeInMillis(j4).withConfigSettings(new FirebaseRemoteConfigSettings.Builder().setFetchTimeoutInSeconds(this.frcMetadata.getLong(FETCH_TIMEOUT_IN_SECONDS_KEY, 60L)).setMinimumFetchIntervalInSeconds(this.frcMetadata.getLong(MINIMUM_FETCH_INTERVAL_IN_SECONDS_KEY, ConfigFetchHandler.DEFAULT_MINIMUM_FETCH_INTERVAL_IN_SECONDS)).build()).build();
}
return build;
}
public String getLastFetchETag() {
return this.frcMetadata.getString(LAST_FETCH_ETAG_KEY, null);
}
public int getLastFetchStatus() {
return this.frcMetadata.getInt(LAST_FETCH_STATUS_KEY, 0);
}
public Date getLastSuccessfulFetchTime() {
return new Date(this.frcMetadata.getLong(LAST_SUCCESSFUL_FETCH_TIME_IN_MILLIS_KEY, -1L));
}
public long getLastTemplateVersion() {
return this.frcMetadata.getLong(LAST_TEMPLATE_VERSION, 0L);
}
public long getMinimumFetchIntervalInSeconds() {
return this.frcMetadata.getLong(MINIMUM_FETCH_INTERVAL_IN_SECONDS_KEY, ConfigFetchHandler.DEFAULT_MINIMUM_FETCH_INTERVAL_IN_SECONDS);
}
public RealtimeBackoffMetadata getRealtimeBackoffMetadata() {
RealtimeBackoffMetadata realtimeBackoffMetadata;
synchronized (this.realtimeBackoffMetadataLock) {
realtimeBackoffMetadata = new RealtimeBackoffMetadata(this.frcMetadata.getInt(NUM_FAILED_REALTIME_STREAMS_KEY, 0), new Date(this.frcMetadata.getLong(REALTIME_BACKOFF_END_TIME_IN_MILLIS_KEY, -1L)));
}
return realtimeBackoffMetadata;
}
public void resetBackoff() {
setBackoffMetadata(0, NO_BACKOFF_TIME);
}
public void resetRealtimeBackoff() {
setRealtimeBackoffMetadata(0, NO_BACKOFF_TIME);
}
public void setBackoffMetadata(int i, Date date) {
synchronized (this.backoffMetadataLock) {
this.frcMetadata.edit().putInt(NUM_FAILED_FETCHES_KEY, i).putLong(BACKOFF_END_TIME_IN_MILLIS_KEY, date.getTime()).apply();
}
}
public void setConfigSettings(FirebaseRemoteConfigSettings firebaseRemoteConfigSettings) {
synchronized (this.frcInfoLock) {
this.frcMetadata.edit().putLong(FETCH_TIMEOUT_IN_SECONDS_KEY, firebaseRemoteConfigSettings.getFetchTimeoutInSeconds()).putLong(MINIMUM_FETCH_INTERVAL_IN_SECONDS_KEY, firebaseRemoteConfigSettings.getMinimumFetchIntervalInSeconds()).commit();
}
}
public void setConfigSettingsWithoutWaitingOnDiskWrite(FirebaseRemoteConfigSettings firebaseRemoteConfigSettings) {
synchronized (this.frcInfoLock) {
this.frcMetadata.edit().putLong(FETCH_TIMEOUT_IN_SECONDS_KEY, firebaseRemoteConfigSettings.getFetchTimeoutInSeconds()).putLong(MINIMUM_FETCH_INTERVAL_IN_SECONDS_KEY, firebaseRemoteConfigSettings.getMinimumFetchIntervalInSeconds()).apply();
}
}
public void setLastFetchETag(String str) {
synchronized (this.frcInfoLock) {
this.frcMetadata.edit().putString(LAST_FETCH_ETAG_KEY, str).apply();
}
}
public void setLastTemplateVersion(long j4) {
synchronized (this.frcInfoLock) {
this.frcMetadata.edit().putLong(LAST_TEMPLATE_VERSION, j4).apply();
}
}
public void setRealtimeBackoffMetadata(int i, Date date) {
synchronized (this.realtimeBackoffMetadataLock) {
this.frcMetadata.edit().putInt(NUM_FAILED_REALTIME_STREAMS_KEY, i).putLong(REALTIME_BACKOFF_END_TIME_IN_MILLIS_KEY, date.getTime()).apply();
}
}
public void updateLastFetchAsFailed() {
synchronized (this.frcInfoLock) {
this.frcMetadata.edit().putInt(LAST_FETCH_STATUS_KEY, 1).apply();
}
}
public void updateLastFetchAsSuccessfulAt(Date date) {
synchronized (this.frcInfoLock) {
this.frcMetadata.edit().putInt(LAST_FETCH_STATUS_KEY, -1).putLong(LAST_SUCCESSFUL_FETCH_TIME_IN_MILLIS_KEY, date.getTime()).apply();
}
}
public void updateLastFetchAsThrottled() {
synchronized (this.frcInfoLock) {
this.frcMetadata.edit().putInt(LAST_FETCH_STATUS_KEY, 2).apply();
}
}
}