102 lines
3.8 KiB
Java
102 lines
3.8 KiB
Java
|
package com.discord.stores;
|
||
|
|
||
|
import c.d.b.a.a;
|
||
|
import com.discord.api.guild.Guild;
|
||
|
import com.discord.api.guildmember.GuildMember;
|
||
|
import com.discord.app.AppLog;
|
||
|
import com.discord.models.domain.ModelPayload;
|
||
|
import com.discord.stores.updates.ObservationDeck;
|
||
|
import com.discord.stores.updates.ObservationDeckProvider;
|
||
|
import d0.t.h0;
|
||
|
import d0.z.d.m;
|
||
|
import java.util.HashMap;
|
||
|
import java.util.List;
|
||
|
import java.util.Map;
|
||
|
import rx.Observable;
|
||
|
/* compiled from: StoreGuildMemberCounts.kt */
|
||
|
public final class StoreGuildMemberCounts extends StoreV2 {
|
||
|
private final HashMap<Long, Integer> guildMemberCounts = new HashMap<>();
|
||
|
private Map<Long, Integer> guildMemberCountsSnapshot = h0.emptyMap();
|
||
|
|
||
|
public static final /* synthetic */ Map access$getGuildMemberCountsSnapshot$p(StoreGuildMemberCounts storeGuildMemberCounts) {
|
||
|
return storeGuildMemberCounts.guildMemberCountsSnapshot;
|
||
|
}
|
||
|
|
||
|
public static final /* synthetic */ void access$setGuildMemberCountsSnapshot$p(StoreGuildMemberCounts storeGuildMemberCounts, Map map) {
|
||
|
storeGuildMemberCounts.guildMemberCountsSnapshot = map;
|
||
|
}
|
||
|
|
||
|
public final int getApproximateMemberCount(long j) {
|
||
|
Integer num = this.guildMemberCountsSnapshot.get(Long.valueOf(j));
|
||
|
if (num != null) {
|
||
|
return num.intValue();
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
@StoreThread
|
||
|
public final void handleConnectionOpen(ModelPayload modelPayload) {
|
||
|
m.checkNotNullParameter(modelPayload, "payload");
|
||
|
List<Guild> guilds = modelPayload.getGuilds();
|
||
|
if (guilds != null) {
|
||
|
for (Guild guild : guilds) {
|
||
|
this.guildMemberCounts.put(Long.valueOf(guild.o()), Integer.valueOf(guild.r()));
|
||
|
}
|
||
|
}
|
||
|
markChanged();
|
||
|
}
|
||
|
|
||
|
@StoreThread
|
||
|
public final void handleGuildCreate(Guild guild) {
|
||
|
m.checkNotNullParameter(guild, "guild");
|
||
|
this.guildMemberCounts.put(Long.valueOf(guild.o()), Integer.valueOf(guild.r()));
|
||
|
markChanged();
|
||
|
}
|
||
|
|
||
|
@StoreThread
|
||
|
public final void handleGuildDelete(long j) {
|
||
|
this.guildMemberCounts.remove(Long.valueOf(j));
|
||
|
markChanged();
|
||
|
}
|
||
|
|
||
|
@StoreThread
|
||
|
public final void handleGuildMemberAdd(GuildMember guildMember) {
|
||
|
m.checkNotNullParameter(guildMember, "member");
|
||
|
Integer num = this.guildMemberCounts.get(Long.valueOf(guildMember.c()));
|
||
|
if (num != null) {
|
||
|
this.guildMemberCounts.put(Long.valueOf(guildMember.c()), Integer.valueOf(num.intValue() + 1));
|
||
|
markChanged();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@StoreThread
|
||
|
public final void handleGuildMemberRemove(long j) {
|
||
|
Integer num = this.guildMemberCounts.get(Long.valueOf(j));
|
||
|
if (num != null) {
|
||
|
this.guildMemberCounts.put(Long.valueOf(j), Integer.valueOf(num.intValue() - 1));
|
||
|
markChanged();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public final Observable<Integer> observeApproximateMemberCount(long j) {
|
||
|
Observable<Integer> r = ObservationDeck.connectRx$default(ObservationDeckProvider.get(), new ObservationDeck.UpdateSource[]{this}, false, null, null, new StoreGuildMemberCounts$observeApproximateMemberCount$1(this, j), 14, null).r();
|
||
|
m.checkNotNullExpressionValue(r, "ObservationDeckProvider.… }.distinctUntilChanged()");
|
||
|
return r;
|
||
|
}
|
||
|
|
||
|
@Override // com.discord.stores.StoreV2
|
||
|
@StoreThread
|
||
|
public void snapshotData() {
|
||
|
super.snapshotData();
|
||
|
try {
|
||
|
this.guildMemberCountsSnapshot = new HashMap(this.guildMemberCounts);
|
||
|
} catch (OutOfMemoryError e) {
|
||
|
AppLog appLog = AppLog.g;
|
||
|
StringBuilder K = a.K("OOM in StoreGuildMemberCounts. size: ");
|
||
|
K.append(this.guildMemberCounts.size());
|
||
|
appLog.recordBreadcrumb(K.toString(), "StoreGuildMemberCounts");
|
||
|
throw e;
|
||
|
}
|
||
|
}
|
||
|
}
|