106 lines
4.7 KiB
Java
106 lines
4.7 KiB
Java
|
package com.discord.stores;
|
||
|
|
||
|
import com.discord.api.friendsuggestions.FriendSuggestionDelete;
|
||
|
import com.discord.api.friendsuggestions.FriendSuggestionReason;
|
||
|
import com.discord.models.domain.ModelPayload;
|
||
|
import com.discord.models.friendsuggestions.FriendSuggestion;
|
||
|
import com.discord.models.user.CoreUser;
|
||
|
import com.discord.utilities.friendsuggestions.FriendSuggestionsFetcher;
|
||
|
import d0.t.h0;
|
||
|
import d0.t.u;
|
||
|
import d0.z.d.m;
|
||
|
import java.util.HashMap;
|
||
|
import java.util.List;
|
||
|
import java.util.Map;
|
||
|
/* compiled from: StoreFriendSuggestions.kt */
|
||
|
public final class StoreFriendSuggestions extends StoreV2 {
|
||
|
private final Dispatcher dispatcher;
|
||
|
private final FriendSuggestionsFetcher friendSuggestionsFetcher;
|
||
|
private final StoreStream storeStream;
|
||
|
private final Map<Long, FriendSuggestion> suggestions = new HashMap();
|
||
|
private Map<Long, FriendSuggestion> suggestionsSnapshot = h0.emptyMap();
|
||
|
|
||
|
public StoreFriendSuggestions(StoreStream storeStream, Dispatcher dispatcher, FriendSuggestionsFetcher friendSuggestionsFetcher) {
|
||
|
m.checkNotNullParameter(storeStream, "storeStream");
|
||
|
m.checkNotNullParameter(dispatcher, "dispatcher");
|
||
|
m.checkNotNullParameter(friendSuggestionsFetcher, "friendSuggestionsFetcher");
|
||
|
this.storeStream = storeStream;
|
||
|
this.dispatcher = dispatcher;
|
||
|
this.friendSuggestionsFetcher = friendSuggestionsFetcher;
|
||
|
}
|
||
|
|
||
|
public static final /* synthetic */ StoreStream access$getStoreStream$p(StoreFriendSuggestions storeFriendSuggestions) {
|
||
|
return storeFriendSuggestions.storeStream;
|
||
|
}
|
||
|
|
||
|
private final FriendSuggestion convertApiFriendSuggestion(com.discord.api.friendsuggestions.FriendSuggestion friendSuggestion) {
|
||
|
CoreUser coreUser = new CoreUser(friendSuggestion.b());
|
||
|
FriendSuggestionReason friendSuggestionReason = (FriendSuggestionReason) u.firstOrNull((List<? extends Object>) friendSuggestion.a());
|
||
|
return new FriendSuggestion(coreUser, friendSuggestionReason != null ? friendSuggestionReason.a() : null);
|
||
|
}
|
||
|
|
||
|
public final Map<Long, FriendSuggestion> getFriendSuggestions() {
|
||
|
return this.suggestionsSnapshot;
|
||
|
}
|
||
|
|
||
|
public final FriendSuggestionsFetcher getFriendSuggestionsFetcher() {
|
||
|
return this.friendSuggestionsFetcher;
|
||
|
}
|
||
|
|
||
|
@StoreThread
|
||
|
public final void handleConnectionOpen(ModelPayload modelPayload) {
|
||
|
m.checkNotNullParameter(modelPayload, "readyPayload");
|
||
|
this.suggestions.clear();
|
||
|
if (modelPayload.getFriendSuggestionCount() > 0) {
|
||
|
this.friendSuggestionsFetcher.maybeFetch();
|
||
|
}
|
||
|
markChanged();
|
||
|
}
|
||
|
|
||
|
@StoreThread
|
||
|
public final void handleFriendSuggestionCreate(com.discord.api.friendsuggestions.FriendSuggestion friendSuggestion) {
|
||
|
m.checkNotNullParameter(friendSuggestion, "friendSuggestionCreate");
|
||
|
CoreUser coreUser = new CoreUser(friendSuggestion.b());
|
||
|
FriendSuggestionReason friendSuggestionReason = (FriendSuggestionReason) u.firstOrNull((List<? extends Object>) friendSuggestion.a());
|
||
|
FriendSuggestion friendSuggestion2 = new FriendSuggestion(coreUser, friendSuggestionReason != null ? friendSuggestionReason.a() : null);
|
||
|
this.suggestions.put(Long.valueOf(friendSuggestion2.getUser().getId()), friendSuggestion2);
|
||
|
markChanged();
|
||
|
}
|
||
|
|
||
|
@StoreThread
|
||
|
public final void handleFriendSuggestionDelete(FriendSuggestionDelete friendSuggestionDelete) {
|
||
|
m.checkNotNullParameter(friendSuggestionDelete, "friendSuggestionDelete");
|
||
|
if (this.suggestions.remove(Long.valueOf(friendSuggestionDelete.a())) != null) {
|
||
|
markChanged();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@StoreThread
|
||
|
public final void handleFriendSuggestionsLoadFailure() {
|
||
|
this.suggestions.clear();
|
||
|
markChanged();
|
||
|
}
|
||
|
|
||
|
@StoreThread
|
||
|
public final void handleFriendSuggestionsLoaded(List<com.discord.api.friendsuggestions.FriendSuggestion> list) {
|
||
|
m.checkNotNullParameter(list, "loadedSuggestions");
|
||
|
this.suggestions.clear();
|
||
|
Map<Long, FriendSuggestion> map = this.suggestions;
|
||
|
for (com.discord.api.friendsuggestions.FriendSuggestion friendSuggestion : list) {
|
||
|
map.put(Long.valueOf(friendSuggestion.b().i()), convertApiFriendSuggestion(friendSuggestion));
|
||
|
}
|
||
|
markChanged();
|
||
|
}
|
||
|
|
||
|
@Override // com.discord.stores.StoreV2
|
||
|
public void snapshotData() {
|
||
|
super.snapshotData();
|
||
|
this.suggestionsSnapshot = new HashMap(this.suggestions);
|
||
|
}
|
||
|
|
||
|
public final void updateFriendSuggestions(List<com.discord.api.friendsuggestions.FriendSuggestion> list) {
|
||
|
m.checkNotNullParameter(list, "suggestions");
|
||
|
this.dispatcher.schedule(new StoreFriendSuggestions$updateFriendSuggestions$1(this, list));
|
||
|
}
|
||
|
}
|