96 lines
3.5 KiB
Java
96 lines
3.5 KiB
Java
package com.google.firebase.messaging;
|
|
|
|
import android.content.Context;
|
|
import android.content.SharedPreferences;
|
|
import android.util.Log;
|
|
import java.lang.ref.WeakReference;
|
|
import java.util.ArrayList;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.NoSuchElementException;
|
|
import java.util.concurrent.Executor;
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
/* loaded from: classes3.dex */
|
|
public final class TopicsStore {
|
|
private static final String DIVIDER_QUEUE_OPERATIONS = ",";
|
|
static final String KEY_TOPIC_OPERATIONS_QUEUE = "topic_operation_queue";
|
|
static final String PREFERENCES = "com.google.android.gms.appid";
|
|
private static WeakReference<TopicsStore> topicsStoreWeakReference;
|
|
private final SharedPreferences sharedPreferences;
|
|
private final Executor syncExecutor;
|
|
private SharedPreferencesQueue topicOperationsQueue;
|
|
|
|
private TopicsStore(SharedPreferences sharedPreferences, Executor executor) {
|
|
this.syncExecutor = executor;
|
|
this.sharedPreferences = sharedPreferences;
|
|
}
|
|
|
|
public static synchronized void clearCaches() {
|
|
synchronized (TopicsStore.class) {
|
|
WeakReference<TopicsStore> weakReference = topicsStoreWeakReference;
|
|
if (weakReference != null) {
|
|
weakReference.clear();
|
|
}
|
|
}
|
|
}
|
|
|
|
public static synchronized TopicsStore getInstance(Context context, Executor executor) {
|
|
TopicsStore topicsStore;
|
|
synchronized (TopicsStore.class) {
|
|
try {
|
|
WeakReference<TopicsStore> weakReference = topicsStoreWeakReference;
|
|
topicsStore = weakReference != null ? weakReference.get() : null;
|
|
if (topicsStore == null) {
|
|
topicsStore = new TopicsStore(context.getSharedPreferences(PREFERENCES, 0), executor);
|
|
topicsStore.initStore();
|
|
topicsStoreWeakReference = new WeakReference<>(topicsStore);
|
|
}
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
}
|
|
}
|
|
return topicsStore;
|
|
}
|
|
|
|
private synchronized void initStore() {
|
|
this.topicOperationsQueue = SharedPreferencesQueue.createInstance(this.sharedPreferences, KEY_TOPIC_OPERATIONS_QUEUE, DIVIDER_QUEUE_OPERATIONS, this.syncExecutor);
|
|
}
|
|
|
|
public synchronized boolean addTopicOperation(TopicOperation topicOperation) {
|
|
return this.topicOperationsQueue.add(topicOperation.serialize());
|
|
}
|
|
|
|
public synchronized void clearTopicOperations() {
|
|
this.topicOperationsQueue.clear();
|
|
}
|
|
|
|
public synchronized TopicOperation getNextTopicOperation() {
|
|
return TopicOperation.from(this.topicOperationsQueue.peek());
|
|
}
|
|
|
|
public synchronized List<TopicOperation> getOperations() {
|
|
ArrayList arrayList;
|
|
List<String> list = this.topicOperationsQueue.toList();
|
|
arrayList = new ArrayList(list.size());
|
|
Iterator<String> it = list.iterator();
|
|
while (it.hasNext()) {
|
|
arrayList.add(TopicOperation.from(it.next()));
|
|
}
|
|
return arrayList;
|
|
}
|
|
|
|
public synchronized TopicOperation pollTopicOperation() {
|
|
try {
|
|
} catch (NoSuchElementException unused) {
|
|
Log.e(Constants.TAG, "Polling operation queue failed");
|
|
return null;
|
|
}
|
|
return TopicOperation.from(this.topicOperationsQueue.remove());
|
|
}
|
|
|
|
public synchronized boolean removeTopicOperation(TopicOperation topicOperation) {
|
|
return this.topicOperationsQueue.remove(topicOperation.serialize());
|
|
}
|
|
}
|