168 lines
8.1 KiB
Java
168 lines
8.1 KiB
Java
package com.discord.stores;
|
|
|
|
import android.content.Context;
|
|
import c0.t.h0;
|
|
import c0.t.n0;
|
|
import c0.t.o0;
|
|
import c0.z.d.m;
|
|
import com.discord.api.directory.DirectoryEntry;
|
|
import com.discord.stores.updates.ObservationDeck;
|
|
import com.discord.stores.utilities.RestCallState;
|
|
import com.discord.stores.utilities.RestCallStateKt;
|
|
import com.discord.utilities.persister.Persister;
|
|
import com.discord.utilities.rest.RestAPI;
|
|
import com.discord.utilities.rx.ObservableExtensionsKt;
|
|
import java.util.HashMap;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
import java.util.concurrent.TimeUnit;
|
|
import kotlin.jvm.functions.Function0;
|
|
import kotlin.jvm.functions.Function1;
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
import rx.Observable;
|
|
/* compiled from: StoreDirectories.kt */
|
|
public final class StoreDirectories extends StoreV2 {
|
|
public static final Companion Companion = new Companion(null);
|
|
private static final String DISCORD_HUB_VERIFICATION_CLICKED_KEY = "hub_verification_clicked_key";
|
|
private static final String HUB_NAME_PROMPT = "hub_name_prompt";
|
|
private Map<Long, RestCallState<List<DirectoryEntry>>> directoriesMap;
|
|
private Map<Long, ? extends RestCallState<? extends List<DirectoryEntry>>> directoriesMapSnapshot;
|
|
private final Persister<Boolean> discordHubClickedPersister;
|
|
private final Dispatcher dispatcher;
|
|
private Map<Long, RestCallState<Map<Integer, Integer>>> entryCountMap;
|
|
private Map<Long, ? extends RestCallState<? extends Map<Integer, Integer>>> entryCountMapSnapshot;
|
|
private final StoreGuilds guildStore;
|
|
private final Persister<Set<Long>> hubNamePromptPersister;
|
|
private final ObservationDeck observationDeck;
|
|
private final RestAPI restApi;
|
|
|
|
/* compiled from: StoreDirectories.kt */
|
|
public static final class Companion {
|
|
private Companion() {
|
|
}
|
|
|
|
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
|
this();
|
|
}
|
|
}
|
|
|
|
public StoreDirectories(Dispatcher dispatcher, ObservationDeck observationDeck, StoreGuilds storeGuilds, RestAPI restAPI) {
|
|
m.checkNotNullParameter(dispatcher, "dispatcher");
|
|
m.checkNotNullParameter(observationDeck, "observationDeck");
|
|
m.checkNotNullParameter(storeGuilds, "guildStore");
|
|
m.checkNotNullParameter(restAPI, "restApi");
|
|
this.dispatcher = dispatcher;
|
|
this.observationDeck = observationDeck;
|
|
this.guildStore = storeGuilds;
|
|
this.restApi = restAPI;
|
|
this.directoriesMapSnapshot = h0.emptyMap();
|
|
this.directoriesMap = new LinkedHashMap();
|
|
this.entryCountMapSnapshot = h0.emptyMap();
|
|
this.entryCountMap = new LinkedHashMap();
|
|
this.discordHubClickedPersister = new Persister<>(DISCORD_HUB_VERIFICATION_CLICKED_KEY, Boolean.FALSE);
|
|
this.hubNamePromptPersister = new Persister<>(HUB_NAME_PROMPT, n0.emptySet());
|
|
}
|
|
|
|
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
|
|
public /* synthetic */ StoreDirectories(Dispatcher dispatcher, ObservationDeck observationDeck, StoreGuilds storeGuilds, RestAPI restAPI, int i, DefaultConstructorMarker defaultConstructorMarker) {
|
|
this(dispatcher, observationDeck, storeGuilds, (i & 8) != 0 ? RestAPI.Companion.getApi() : restAPI);
|
|
}
|
|
|
|
public static final /* synthetic */ Map access$getDirectoriesMap$p(StoreDirectories storeDirectories) {
|
|
return storeDirectories.directoriesMap;
|
|
}
|
|
|
|
public static final /* synthetic */ Map access$getDirectoriesMapSnapshot$p(StoreDirectories storeDirectories) {
|
|
return storeDirectories.directoriesMapSnapshot;
|
|
}
|
|
|
|
public static final /* synthetic */ Dispatcher access$getDispatcher$p(StoreDirectories storeDirectories) {
|
|
return storeDirectories.dispatcher;
|
|
}
|
|
|
|
public static final /* synthetic */ Map access$getEntryCountMap$p(StoreDirectories storeDirectories) {
|
|
return storeDirectories.entryCountMap;
|
|
}
|
|
|
|
public static final /* synthetic */ Persister access$getHubNamePromptPersister$p(StoreDirectories storeDirectories) {
|
|
return storeDirectories.hubNamePromptPersister;
|
|
}
|
|
|
|
public static final /* synthetic */ void access$setDirectoriesMap$p(StoreDirectories storeDirectories, Map map) {
|
|
storeDirectories.directoriesMap = map;
|
|
}
|
|
|
|
public static final /* synthetic */ void access$setDirectoriesMapSnapshot$p(StoreDirectories storeDirectories, Map map) {
|
|
storeDirectories.directoriesMapSnapshot = map;
|
|
}
|
|
|
|
public static final /* synthetic */ void access$setEntryCountMap$p(StoreDirectories storeDirectories, Map map) {
|
|
storeDirectories.entryCountMap = map;
|
|
}
|
|
|
|
public final void addServerToDirectory(long j, DirectoryEntry directoryEntry) {
|
|
m.checkNotNullParameter(directoryEntry, "directoryEntry");
|
|
this.dispatcher.schedule(new StoreDirectories$addServerToDirectory$1(this, j, directoryEntry));
|
|
}
|
|
|
|
public final void fetchDirectoriesForChannel(long j) {
|
|
Observable<R> F = this.restApi.getDirectoryEntries(j).F(StoreDirectories$fetchDirectoriesForChannel$1.INSTANCE);
|
|
m.checkNotNullExpressionValue(F, "restApi\n .getDire…pproximateMemberCount } }");
|
|
RestCallStateKt.executeRequest(F, new StoreDirectories$fetchDirectoriesForChannel$2(this, j));
|
|
}
|
|
|
|
public final void fetchEntryCountsForChannel(long j) {
|
|
RestCallStateKt.executeRequest(this.restApi.getEntryCounts(j), new StoreDirectories$fetchEntryCountsForChannel$1(this, j));
|
|
}
|
|
|
|
public final boolean getAndSetSeenNamePrompt(long j) {
|
|
boolean contains = this.hubNamePromptPersister.get().contains(Long.valueOf(j));
|
|
Persister<Set<Long>> persister = this.hubNamePromptPersister;
|
|
Persister.set$default(persister, o0.plus(persister.get(), Long.valueOf(j)), false, 2, null);
|
|
return contains;
|
|
}
|
|
|
|
public final RestCallState<List<DirectoryEntry>> getDirectoriesForChannel(long j) {
|
|
return (RestCallState) this.directoriesMapSnapshot.get(Long.valueOf(j));
|
|
}
|
|
|
|
public final RestCallState<Map<Integer, Integer>> getEntryCountsForChannel(long j) {
|
|
return (RestCallState) this.entryCountMapSnapshot.get(Long.valueOf(j));
|
|
}
|
|
|
|
@Override // com.discord.stores.Store
|
|
public void init(Context context) {
|
|
m.checkNotNullParameter(context, "context");
|
|
super.init(context);
|
|
Observable q = ObservableExtensionsKt.computationLatest(ObservableExtensionsKt.leadingEdgeThrottle(this.guildStore.observeGuilds(), 1, TimeUnit.SECONDS)).F(StoreDirectories$init$1.INSTANCE).q();
|
|
m.checkNotNullExpressionValue(q, "guildStore\n .obse… .distinctUntilChanged()");
|
|
ObservableExtensionsKt.appSubscribe$default(q, StoreDirectories.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new StoreDirectories$init$2(this), 62, (Object) null);
|
|
}
|
|
|
|
public final void markDiscordHubClicked() {
|
|
Persister.set$default(this.discordHubClickedPersister, Boolean.TRUE, false, 2, null);
|
|
}
|
|
|
|
public final Observable<RestCallState<List<DirectoryEntry>>> observeDirectoriesForChannel(long j) {
|
|
return ObservationDeck.connectRx$default(this.observationDeck, new ObservationDeck.UpdateSource[]{this}, false, null, null, new StoreDirectories$observeDirectoriesForChannel$1(this, j), 14, null);
|
|
}
|
|
|
|
public final Observable<Boolean> observeDiscordHubClicked() {
|
|
Observable<Boolean> q = this.discordHubClickedPersister.getObservable().q();
|
|
m.checkNotNullExpressionValue(q, "discordHubClickedPersist… .distinctUntilChanged()");
|
|
return q;
|
|
}
|
|
|
|
public final void removeServerFromDirectory(long j, long j2) {
|
|
RestCallStateKt.executeRequest(RestCallStateKt.logNetworkAction(this.restApi.removeServerFromHub(j, j2), new StoreDirectories$removeServerFromDirectory$1(j, j2)), new StoreDirectories$removeServerFromDirectory$2(this, j, j2));
|
|
}
|
|
|
|
@Override // com.discord.stores.StoreV2
|
|
public void snapshotData() {
|
|
this.directoriesMapSnapshot = new HashMap(this.directoriesMap);
|
|
this.entryCountMapSnapshot = new HashMap(this.entryCountMap);
|
|
}
|
|
}
|