discord-jadx/app/src/main/java/com/discord/stores/StoreMessagesLoader.java

738 lines
34 KiB
Java

package com.discord.stores;
import a0.a.a.b;
import android.content.Context;
import c.a.d.q;
import c.d.b.a.a;
import com.discord.app.AppLog;
import com.discord.models.message.Message;
import com.discord.stores.StoreChat;
import com.discord.utilities.rx.ObservableExtensionsKt;
import com.discord.utilities.rx.ObservableExtensionsKt$filterNull$1;
import com.discord.utilities.rx.ObservableExtensionsKt$filterNull$2;
import d0.t.n0;
import d0.z.d.m;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
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;
import rx.Subscription;
import rx.subjects.BehaviorSubject;
import rx.subjects.SerializedSubject;
/* compiled from: StoreMessagesLoader.kt */
public final class StoreMessagesLoader extends Store {
public static final Companion Companion = new Companion(null);
public static final long SCROLL_TO_LAST_UNREAD = 0;
public static final long SCROLL_TO_LATEST = 1;
private boolean authed;
private boolean backgrounded;
private final SerializedSubject<Map<Long, ChannelLoadedState>, Map<Long, ChannelLoadedState>> channelLoadedStateSubject;
private final HashMap<Long, ChannelLoadedState> channelLoadedStates;
private final SerializedSubject<ChannelChunk, ChannelChunk> channelMessageChunksSubject = new SerializedSubject<>(BehaviorSubject.k0());
private final SerializedSubject<Boolean, Boolean> channelMessagesLoadingSubject;
private Subscription delayLoadingMessagesSubscription;
private Set<Long> detachedChannels;
private final Dispatcher dispatcher;
private boolean hasConnected;
private StoreChat.InteractionState interactionState;
private final long loadingMessagesRetryDelayDefault;
private long loadingMessagesRetryDelayMillis;
private final int loadingMessagesRetryJitter;
private int loadingMessagesRetryMax;
private Subscription loadingMessagesSubscription;
private final int messageRequestSize = 50;
private final SerializedSubject<Long, Long> scrollToSubject;
private long selectedChannelId;
private final StoreStream stream;
/* compiled from: StoreMessagesLoader.kt */
public static final class ChannelChunk {
private final long channelId;
private final boolean isAppendingTop;
private final boolean isInitial;
private final boolean isJump;
private final boolean isPresent;
private final List<Message> messages;
public ChannelChunk(long j, List<Message> list, boolean z2, boolean z3, boolean z4, boolean z5) {
m.checkNotNullParameter(list, "messages");
this.channelId = j;
this.messages = list;
this.isInitial = z2;
this.isPresent = z3;
this.isAppendingTop = z4;
this.isJump = z5;
}
public static /* synthetic */ ChannelChunk copy$default(ChannelChunk channelChunk, long j, List list, boolean z2, boolean z3, boolean z4, boolean z5, int i, Object obj) {
return channelChunk.copy((i & 1) != 0 ? channelChunk.channelId : j, (i & 2) != 0 ? channelChunk.messages : list, (i & 4) != 0 ? channelChunk.isInitial : z2, (i & 8) != 0 ? channelChunk.isPresent : z3, (i & 16) != 0 ? channelChunk.isAppendingTop : z4, (i & 32) != 0 ? channelChunk.isJump : z5);
}
public final long component1() {
return this.channelId;
}
public final List<Message> component2() {
return this.messages;
}
public final boolean component3() {
return this.isInitial;
}
public final boolean component4() {
return this.isPresent;
}
public final boolean component5() {
return this.isAppendingTop;
}
public final boolean component6() {
return this.isJump;
}
public final ChannelChunk copy(long j, List<Message> list, boolean z2, boolean z3, boolean z4, boolean z5) {
m.checkNotNullParameter(list, "messages");
return new ChannelChunk(j, list, z2, z3, z4, z5);
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof ChannelChunk)) {
return false;
}
ChannelChunk channelChunk = (ChannelChunk) obj;
return this.channelId == channelChunk.channelId && m.areEqual(this.messages, channelChunk.messages) && this.isInitial == channelChunk.isInitial && this.isPresent == channelChunk.isPresent && this.isAppendingTop == channelChunk.isAppendingTop && this.isJump == channelChunk.isJump;
}
public final long getChannelId() {
return this.channelId;
}
public final List<Message> getMessages() {
return this.messages;
}
public int hashCode() {
int a = b.a(this.channelId) * 31;
List<Message> list = this.messages;
int hashCode = (a + (list != null ? list.hashCode() : 0)) * 31;
boolean z2 = this.isInitial;
int i = 1;
if (z2) {
z2 = true;
}
int i2 = z2 ? 1 : 0;
int i3 = z2 ? 1 : 0;
int i4 = z2 ? 1 : 0;
int i5 = (hashCode + i2) * 31;
boolean z3 = this.isPresent;
if (z3) {
z3 = true;
}
int i6 = z3 ? 1 : 0;
int i7 = z3 ? 1 : 0;
int i8 = z3 ? 1 : 0;
int i9 = (i5 + i6) * 31;
boolean z4 = this.isAppendingTop;
if (z4) {
z4 = true;
}
int i10 = z4 ? 1 : 0;
int i11 = z4 ? 1 : 0;
int i12 = z4 ? 1 : 0;
int i13 = (i9 + i10) * 31;
boolean z5 = this.isJump;
if (!z5) {
i = z5 ? 1 : 0;
}
return i13 + i;
}
public final boolean isAppendingTop() {
return this.isAppendingTop;
}
public final boolean isInitial() {
return this.isInitial;
}
public final boolean isJump() {
return this.isJump;
}
public final boolean isPresent() {
return this.isPresent;
}
public String toString() {
StringBuilder K = a.K("ChannelChunk(channelId=");
K.append(this.channelId);
K.append(", messages=");
K.append(this.messages);
K.append(", isInitial=");
K.append(this.isInitial);
K.append(", isPresent=");
K.append(this.isPresent);
K.append(", isAppendingTop=");
K.append(this.isAppendingTop);
K.append(", isJump=");
return a.F(K, this.isJump, ")");
}
}
/* compiled from: StoreMessagesLoader.kt */
public static final class ChannelLoadedState {
private final boolean isInitialMessagesLoaded;
private final boolean isLoadingMessages;
private final boolean isOldestMessagesLoaded;
private final boolean isTouchedSinceLastJump;
private final Long newestSentByUserMessageId;
public ChannelLoadedState() {
this(false, false, false, false, null, 31, null);
}
public ChannelLoadedState(boolean z2, boolean z3, boolean z4, boolean z5, Long l) {
this.isInitialMessagesLoaded = z2;
this.isOldestMessagesLoaded = z3;
this.isLoadingMessages = z4;
this.isTouchedSinceLastJump = z5;
this.newestSentByUserMessageId = l;
}
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
public /* synthetic */ ChannelLoadedState(boolean z2, boolean z3, boolean z4, boolean z5, Long l, int i, DefaultConstructorMarker defaultConstructorMarker) {
this((i & 1) != 0 ? false : z2, (i & 2) != 0 ? false : z3, (i & 4) != 0 ? false : z4, (i & 8) == 0 ? z5 : false, (i & 16) != 0 ? null : l);
}
public static /* synthetic */ ChannelLoadedState copy$default(ChannelLoadedState channelLoadedState, boolean z2, boolean z3, boolean z4, boolean z5, Long l, int i, Object obj) {
if ((i & 1) != 0) {
z2 = channelLoadedState.isInitialMessagesLoaded;
}
if ((i & 2) != 0) {
z3 = channelLoadedState.isOldestMessagesLoaded;
}
if ((i & 4) != 0) {
z4 = channelLoadedState.isLoadingMessages;
}
if ((i & 8) != 0) {
z5 = channelLoadedState.isTouchedSinceLastJump;
}
if ((i & 16) != 0) {
l = channelLoadedState.newestSentByUserMessageId;
}
return channelLoadedState.copy(z2, z3, z4, z5, l);
}
public final boolean component1() {
return this.isInitialMessagesLoaded;
}
public final boolean component2() {
return this.isOldestMessagesLoaded;
}
public final boolean component3() {
return this.isLoadingMessages;
}
public final boolean component4() {
return this.isTouchedSinceLastJump;
}
public final Long component5() {
return this.newestSentByUserMessageId;
}
public final ChannelLoadedState copy(boolean z2, boolean z3, boolean z4, boolean z5, Long l) {
return new ChannelLoadedState(z2, z3, z4, z5, l);
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof ChannelLoadedState)) {
return false;
}
ChannelLoadedState channelLoadedState = (ChannelLoadedState) obj;
return this.isInitialMessagesLoaded == channelLoadedState.isInitialMessagesLoaded && this.isOldestMessagesLoaded == channelLoadedState.isOldestMessagesLoaded && this.isLoadingMessages == channelLoadedState.isLoadingMessages && this.isTouchedSinceLastJump == channelLoadedState.isTouchedSinceLastJump && m.areEqual(this.newestSentByUserMessageId, channelLoadedState.newestSentByUserMessageId);
}
public final Long getNewestSentByUserMessageId() {
return this.newestSentByUserMessageId;
}
public int hashCode() {
boolean z2 = this.isInitialMessagesLoaded;
int i = 1;
if (z2) {
z2 = true;
}
int i2 = z2 ? 1 : 0;
int i3 = z2 ? 1 : 0;
int i4 = z2 ? 1 : 0;
int i5 = i2 * 31;
boolean z3 = this.isOldestMessagesLoaded;
if (z3) {
z3 = true;
}
int i6 = z3 ? 1 : 0;
int i7 = z3 ? 1 : 0;
int i8 = z3 ? 1 : 0;
int i9 = (i5 + i6) * 31;
boolean z4 = this.isLoadingMessages;
if (z4) {
z4 = true;
}
int i10 = z4 ? 1 : 0;
int i11 = z4 ? 1 : 0;
int i12 = z4 ? 1 : 0;
int i13 = (i9 + i10) * 31;
boolean z5 = this.isTouchedSinceLastJump;
if (!z5) {
i = z5 ? 1 : 0;
}
int i14 = (i13 + i) * 31;
Long l = this.newestSentByUserMessageId;
return i14 + (l != null ? l.hashCode() : 0);
}
public final boolean isInitialMessagesLoaded() {
return this.isInitialMessagesLoaded;
}
public final boolean isLoadingMessages() {
return this.isLoadingMessages;
}
public final boolean isOldestMessagesLoaded() {
return this.isOldestMessagesLoaded;
}
public final boolean isTouchedSinceLastJump() {
return this.isTouchedSinceLastJump;
}
public String toString() {
StringBuilder K = a.K("ChannelLoadedState(isInitialMessagesLoaded=");
K.append(this.isInitialMessagesLoaded);
K.append(", isOldestMessagesLoaded=");
K.append(this.isOldestMessagesLoaded);
K.append(", isLoadingMessages=");
K.append(this.isLoadingMessages);
K.append(", isTouchedSinceLastJump=");
K.append(this.isTouchedSinceLastJump);
K.append(", newestSentByUserMessageId=");
return a.A(K, this.newestSentByUserMessageId, ")");
}
}
/* compiled from: StoreMessagesLoader.kt */
public static final class Companion {
private Companion() {
}
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
public final boolean isScrollToAction(long j) {
return j == 0 || j == 1;
}
}
public StoreMessagesLoader(StoreStream storeStream, Dispatcher dispatcher) {
m.checkNotNullParameter(storeStream, "stream");
m.checkNotNullParameter(dispatcher, "dispatcher");
this.stream = storeStream;
this.dispatcher = dispatcher;
HashMap<Long, ChannelLoadedState> hashMap = new HashMap<>();
this.channelLoadedStates = hashMap;
this.channelLoadedStateSubject = new SerializedSubject<>(BehaviorSubject.l0(new HashMap(hashMap)));
this.scrollToSubject = new SerializedSubject<>(BehaviorSubject.l0(null));
this.channelMessagesLoadingSubject = new SerializedSubject<>(BehaviorSubject.l0(Boolean.FALSE));
this.detachedChannels = n0.emptySet();
this.backgrounded = true;
this.loadingMessagesRetryDelayDefault = 1500;
this.loadingMessagesRetryJitter = 2000;
this.loadingMessagesRetryDelayMillis = 1500;
this.loadingMessagesRetryMax = 30000;
}
public static final /* synthetic */ void access$channelLoadedStateUpdate(StoreMessagesLoader storeMessagesLoader, long j, Function1 function1) {
storeMessagesLoader.channelLoadedStateUpdate(j, function1);
}
public static final /* synthetic */ SerializedSubject access$getChannelMessagesLoadingSubject$p(StoreMessagesLoader storeMessagesLoader) {
return storeMessagesLoader.channelMessagesLoadingSubject;
}
public static final /* synthetic */ Subscription access$getDelayLoadingMessagesSubscription$p(StoreMessagesLoader storeMessagesLoader) {
return storeMessagesLoader.delayLoadingMessagesSubscription;
}
public static final /* synthetic */ Dispatcher access$getDispatcher$p(StoreMessagesLoader storeMessagesLoader) {
return storeMessagesLoader.dispatcher;
}
public static final /* synthetic */ Subscription access$getLoadingMessagesSubscription$p(StoreMessagesLoader storeMessagesLoader) {
return storeMessagesLoader.loadingMessagesSubscription;
}
public static final /* synthetic */ int access$getMessageRequestSize$p(StoreMessagesLoader storeMessagesLoader) {
return storeMessagesLoader.messageRequestSize;
}
public static final /* synthetic */ SerializedSubject access$getScrollToSubject$p(StoreMessagesLoader storeMessagesLoader) {
return storeMessagesLoader.scrollToSubject;
}
public static final /* synthetic */ long access$getSelectedChannelId$p(StoreMessagesLoader storeMessagesLoader) {
return storeMessagesLoader.selectedChannelId;
}
public static final /* synthetic */ StoreStream access$getStream$p(StoreMessagesLoader storeMessagesLoader) {
return storeMessagesLoader.stream;
}
public static final /* synthetic */ void access$handleChatDetached(StoreMessagesLoader storeMessagesLoader, Set set) {
storeMessagesLoader.handleChatDetached(set);
}
public static final /* synthetic */ void access$handleChatInteraction(StoreMessagesLoader storeMessagesLoader, StoreChat.InteractionState interactionState) {
storeMessagesLoader.handleChatInteraction(interactionState);
}
public static final /* synthetic */ void access$handleLoadMessagesError(StoreMessagesLoader storeMessagesLoader, long j) {
storeMessagesLoader.handleLoadMessagesError(j);
}
public static final /* synthetic */ void access$handleLoadedMessages(StoreMessagesLoader storeMessagesLoader, List list, long j, long j2, Long l, Long l2) {
storeMessagesLoader.handleLoadedMessages(list, j, j2, l, l2);
}
public static final /* synthetic */ void access$setDelayLoadingMessagesSubscription$p(StoreMessagesLoader storeMessagesLoader, Subscription subscription) {
storeMessagesLoader.delayLoadingMessagesSubscription = subscription;
}
public static final /* synthetic */ void access$setLoadingMessagesSubscription$p(StoreMessagesLoader storeMessagesLoader, Subscription subscription) {
storeMessagesLoader.loadingMessagesSubscription = subscription;
}
public static final /* synthetic */ void access$setSelectedChannelId$p(StoreMessagesLoader storeMessagesLoader, long j) {
storeMessagesLoader.selectedChannelId = j;
}
private final synchronized void channelLoadedStateUpdate(long j, Function1<? super ChannelLoadedState, ChannelLoadedState> function1) {
ChannelLoadedState channelLoadedState = this.channelLoadedStates.get(Long.valueOf(j));
if (channelLoadedState == null) {
channelLoadedState = new ChannelLoadedState(false, false, false, false, null, 31, null);
}
m.checkNotNullExpressionValue(channelLoadedState, "channelLoadedStates[chan…] ?: ChannelLoadedState()");
this.channelLoadedStates.put(Long.valueOf(j), function1.invoke(channelLoadedState));
SerializedSubject<Map<Long, ChannelLoadedState>, Map<Long, ChannelLoadedState>> serializedSubject = this.channelLoadedStateSubject;
serializedSubject.j.onNext(new HashMap(this.channelLoadedStates));
}
private final void channelLoadedStatesReset() {
this.channelLoadedStates.clear();
SerializedSubject<Map<Long, ChannelLoadedState>, Map<Long, ChannelLoadedState>> serializedSubject = this.channelLoadedStateSubject;
serializedSubject.j.onNext(new HashMap(this.channelLoadedStates));
Subscription subscription = this.loadingMessagesSubscription;
if (subscription != null) {
subscription.unsubscribe();
}
this.loadingMessagesRetryDelayMillis = this.loadingMessagesRetryDelayDefault;
log("Disconnected, resetting all message loaded states.");
}
private final synchronized void handleChatDetached(Set<Long> set) {
this.detachedChannels = set;
log("Loaded detached channel state: " + set);
tryLoadMessages$default(this, 0, false, true, false, null, null, 59, null);
}
private final synchronized void handleChatInteraction(StoreChat.InteractionState interactionState) {
channelLoadedStateUpdate(interactionState.getChannelId(), new StoreMessagesLoader$handleChatInteraction$1$1(interactionState));
this.interactionState = interactionState;
tryLoadMessages$default(this, 0, false, true, false, null, null, 59, null);
}
private final synchronized void handleLoadMessagesError(long j) {
channelLoadedStateUpdate(j, StoreMessagesLoader$handleLoadMessagesError$1.INSTANCE);
long j2 = this.loadingMessagesRetryDelayMillis;
if (j2 < ((long) this.loadingMessagesRetryMax)) {
this.loadingMessagesRetryDelayMillis = (j2 * ((long) 2)) + ((long) new Random().nextInt(this.loadingMessagesRetryJitter));
}
StringBuilder sb = new StringBuilder();
sb.append("Failed to load messages for channel [" + j + "], ");
sb.append("retrying in " + this.loadingMessagesRetryDelayMillis + "ms");
String sb2 = sb.toString();
m.checkNotNullExpressionValue(sb2, "StringBuilder()\n …}ms\")\n .toString()");
log(sb2);
tryLoadMessages$default(this, this.loadingMessagesRetryDelayMillis, false, false, false, null, null, 58, null);
}
/* JADX WARNING: Removed duplicated region for block: B:27:0x0070 */
/* JADX WARNING: Removed duplicated region for block: B:32:0x007e */
/* JADX WARNING: Removed duplicated region for block: B:35:0x0082 */
/* JADX WARNING: Removed duplicated region for block: B:36:0x008e */
/* JADX WARNING: Removed duplicated region for block: B:39:0x009f */
private final synchronized void handleLoadedMessages(List<Message> list, long j, long j2, Long l, Long l2) {
boolean z2;
boolean z3;
Object obj;
boolean z4;
boolean z5 = list.size() < this.messageRequestSize;
boolean z6 = l2 != null;
boolean z7 = l != null;
boolean z8 = !Companion.isScrollToAction(j2);
boolean z9 = !z8 && !z6 && !z7;
if (!z9) {
if (!z6 || !z5) {
z2 = false;
channelLoadedStateUpdate(j, new StoreMessagesLoader$handleLoadedMessages$1(this, z9, z7, z5, list));
this.channelMessagesLoadingSubject.j.onNext(Boolean.FALSE);
this.channelMessageChunksSubject.j.onNext(new ChannelChunk(j, list, z9, z2, z7, z8));
if (!z9) {
if ((!list.isEmpty()) && j2 == 1) {
z3 = true;
if (z3) {
this.scrollToSubject.j.onNext(1L);
} else if (z9) {
this.scrollToSubject.j.onNext(0L);
}
if (z8) {
Iterator<T> it = list.iterator();
while (true) {
if (!it.hasNext()) {
obj = null;
break;
}
obj = it.next();
if (((Message) obj).getId() == j2) {
z4 = true;
continue;
} else {
z4 = false;
continue;
}
if (z4) {
break;
}
}
Message message = (Message) obj;
if (message == null) {
StoreStream.Companion.getReadStates().markAsRead(Long.valueOf(j));
} else {
this.scrollToSubject.j.onNext(Long.valueOf(message.getId()));
}
}
if (!z8 && !z3) {
clearScrollTo();
}
log("Loaded " + list.size() + " messages for channel [" + j + "], all loaded: " + z5 + '.');
tryLoadMessages$default(this, this.loadingMessagesRetryDelayDefault, false, false, false, null, null, 58, null);
}
}
z3 = false;
if (z3) {
}
if (z8) {
}
clearScrollTo();
log("Loaded " + list.size() + " messages for channel [" + j + "], all loaded: " + z5 + '.');
tryLoadMessages$default(this, this.loadingMessagesRetryDelayDefault, false, false, false, null, null, 58, null);
}
}
z2 = true;
channelLoadedStateUpdate(j, new StoreMessagesLoader$handleLoadedMessages$1(this, z9, z7, z5, list));
this.channelMessagesLoadingSubject.j.onNext(Boolean.FALSE);
this.channelMessageChunksSubject.j.onNext(new ChannelChunk(j, list, z9, z2, z7, z8));
if (!z9) {
}
z3 = false;
if (z3) {
}
if (z8) {
}
clearScrollTo();
log("Loaded " + list.size() + " messages for channel [" + j + "], all loaded: " + z5 + '.');
tryLoadMessages$default(this, this.loadingMessagesRetryDelayDefault, false, false, false, null, null, 58, null);
}
public static /* synthetic */ void handleLoadedMessages$default(StoreMessagesLoader storeMessagesLoader, List list, long j, long j2, Long l, Long l2, int i, Object obj) {
storeMessagesLoader.handleLoadedMessages(list, j, (i & 4) != 0 ? 0 : j2, (i & 8) != 0 ? null : l, (i & 16) != 0 ? null : l2);
}
private final void log(String str) {
AppLog.i("[MessageLoader] " + str);
}
private final synchronized void tryLoadMessages(long j, boolean z2, boolean z3, boolean z4, Long l, Long l2) {
long longValue = l != null ? l.longValue() : this.selectedChannelId;
Subscription subscription = this.delayLoadingMessagesSubscription;
if (subscription != null && z4) {
if (subscription != null) {
subscription.unsubscribe();
}
this.delayLoadingMessagesSubscription = null;
}
if (this.delayLoadingMessagesSubscription != null && !z2) {
return;
}
if (j > 0) {
Observable<Long> d02 = Observable.d0(j, TimeUnit.MILLISECONDS);
m.checkNotNullExpressionValue(d02, "Observable\n .ti…y, TimeUnit.MILLISECONDS)");
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.computationBuffered(d02), getClass(), (Context) null, new StoreMessagesLoader$tryLoadMessages$2(this), (Function1) null, (Function0) null, (Function0) null, new StoreMessagesLoader$tryLoadMessages$1(this), 58, (Object) null);
return;
}
if (z3) {
this.loadingMessagesRetryDelayMillis = this.loadingMessagesRetryDelayDefault;
}
ChannelLoadedState channelLoadedState = this.channelLoadedStates.get(Long.valueOf(longValue));
if (channelLoadedState == null || !channelLoadedState.isLoadingMessages() || z2) {
Subscription subscription2 = this.loadingMessagesSubscription;
if (subscription2 != null) {
subscription2.unsubscribe();
}
if (longValue > 0 && !this.backgrounded && this.authed) {
StoreMessagesLoader$tryLoadMessages$3 storeMessagesLoader$tryLoadMessages$3 = new StoreMessagesLoader$tryLoadMessages$3(this);
StoreMessagesLoader$tryLoadMessages$4 storeMessagesLoader$tryLoadMessages$4 = new StoreMessagesLoader$tryLoadMessages$4(this, storeMessagesLoader$tryLoadMessages$3);
if (l2 != null) {
StoreMessagesLoader$tryLoadMessages$3.invoke$default(storeMessagesLoader$tryLoadMessages$3, longValue, l2, null, null, 12, null);
} else if (channelLoadedState == null || !channelLoadedState.isInitialMessagesLoaded()) {
StoreMessagesLoader$tryLoadMessages$3.invoke$default(storeMessagesLoader$tryLoadMessages$3, longValue, 0L, null, null, 12, null);
} else {
this.channelMessagesLoadingSubject.j.onNext(Boolean.FALSE);
StoreChat.InteractionState interactionState = this.interactionState;
if (interactionState != null) {
boolean z5 = false;
boolean z6 = interactionState.isAtTop() && !channelLoadedState.isOldestMessagesLoaded();
if (interactionState.isAtBottom() && this.detachedChannels.contains(Long.valueOf(longValue))) {
z5 = true;
}
if (interactionState.getChannelId() == longValue && (z6 || z5)) {
channelLoadedStateUpdate(longValue, StoreMessagesLoader$tryLoadMessages$5$1.INSTANCE);
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.computationBuffered(ObservableExtensionsKt.takeSingleUntilTimeout$default(this.stream.getMessages$app_productionBetaRelease().observeMessagesForChannel(longValue), 0, false, 3, null)), interactionState.getClass(), (Context) null, (Function1) null, new StoreMessagesLoader$tryLoadMessages$$inlined$apply$lambda$2(this, channelLoadedState, longValue, storeMessagesLoader$tryLoadMessages$4), (Function0) null, (Function0) null, new StoreMessagesLoader$tryLoadMessages$$inlined$apply$lambda$1(z6, z5, this, channelLoadedState, longValue, storeMessagesLoader$tryLoadMessages$4), 54, (Object) null);
}
}
}
}
}
}
public static /* synthetic */ void tryLoadMessages$default(StoreMessagesLoader storeMessagesLoader, long j, boolean z2, boolean z3, boolean z4, Long l, Long l2, int i, Object obj) {
long j2 = (i & 1) != 0 ? 0 : j;
boolean z5 = false;
boolean z6 = (i & 2) != 0 ? false : z2;
boolean z7 = (i & 4) != 0 ? false : z3;
if ((i & 8) == 0) {
z5 = z4;
}
Long l3 = null;
Long l4 = (i & 16) != 0 ? null : l;
if ((i & 32) == 0) {
l3 = l2;
}
storeMessagesLoader.tryLoadMessages(j2, z6, z7, z5, l4, l3);
}
public final void clearScrollTo() {
this.scrollToSubject.j.onNext(null);
}
public final Observable<ChannelChunk> get() {
return ObservableExtensionsKt.computationBuffered(this.channelMessageChunksSubject);
}
public final Observable<ChannelLoadedState> getMessagesLoadedState(long j) {
Observable<Map<Long, ChannelLoadedState>> F = this.channelLoadedStateSubject.F(new StoreMessagesLoader$getMessagesLoadedState$1(j));
m.checkNotNullExpressionValue(F, "channelLoadedStateSubjec…?: ChannelLoadedState() }");
Observable<ChannelLoadedState> r = ObservableExtensionsKt.computationLatest(F).r();
m.checkNotNullExpressionValue(r, "channelLoadedStateSubjec… .distinctUntilChanged()");
return r;
}
public final Observable<Long> getScrollTo() {
Observable<R> F = this.scrollToSubject.x(ObservableExtensionsKt$filterNull$1.INSTANCE).F(ObservableExtensionsKt$filterNull$2.INSTANCE);
m.checkNotNullExpressionValue(F, "filter { it != null }.map { it!! }");
return ObservableExtensionsKt.computationLatest(F);
}
public final synchronized void handleAuthToken(String str) {
this.authed = str != null;
tryLoadMessages$default(this, 0, false, true, false, null, null, 59, null);
}
public final synchronized void handleBackgrounded(boolean z2) {
this.backgrounded = z2;
tryLoadMessages$default(this, 0, false, true, false, null, null, 59, null);
}
@StoreThread
public final synchronized void handleChannelSelected(long j) {
channelLoadedStateUpdate(this.selectedChannelId, StoreMessagesLoader$handleChannelSelected$1.INSTANCE);
this.selectedChannelId = j;
tryLoadMessages$default(this, 0, true, true, false, null, null, 57, null);
}
public final synchronized void handleConnected(boolean z2) {
if (z2) {
this.hasConnected = true;
} else if (this.hasConnected) {
channelLoadedStatesReset();
}
tryLoadMessages$default(this, 0, false, true, this.hasConnected, null, null, 51, null);
}
@Override // com.discord.stores.Store
public void init(Context context) {
m.checkNotNullParameter(context, "context");
super.init(context);
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.computationLatest(this.stream.getChat$app_productionBetaRelease().observeInteractionState()), StoreMessagesLoader.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new StoreMessagesLoader$init$1(this), 62, (Object) null);
ObservableExtensionsKt.appSubscribe$default(this.stream.getMessages$app_productionBetaRelease().getAllDetached(), StoreMessagesLoader.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new StoreMessagesLoader$init$2(this), 62, (Object) null);
}
public final synchronized void jumpToMessage(long j, long j2) {
if (j2 > 0) {
StoreMessagesLoader$jumpToMessage$1 storeMessagesLoader$jumpToMessage$1 = new StoreMessagesLoader$jumpToMessage$1(this, j, j2);
StoreMessagesLoader$jumpToMessage$2 storeMessagesLoader$jumpToMessage$2 = new StoreMessagesLoader$jumpToMessage$2(this, j);
Observable Y = this.stream.getChannelsSelected$app_productionBetaRelease().observeId().k(q.c(new StoreMessagesLoader$jumpToMessage$3(j), -1L, 1000, TimeUnit.MILLISECONDS)).Y(new StoreMessagesLoader$jumpToMessage$4(this, j, j2));
m.checkNotNullExpressionValue(Y, "stream\n .channels…lId, messageId)\n }");
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.computationLatest(ObservableExtensionsKt.takeSingleUntilTimeout$default(Y, 0, false, 3, null)), getClass(), (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new StoreMessagesLoader$jumpToMessage$5(this, storeMessagesLoader$jumpToMessage$1), 62, (Object) null);
Observable z2 = StoreConnectionOpen.observeConnectionOpen$default(this.stream.getConnectionOpen$app_productionBetaRelease(), false, 1, null).Z(1).z(new StoreMessagesLoader$jumpToMessage$6(this, j));
m.checkNotNullExpressionValue(z2, "stream\n .connecti…mes.ONE_SECOND)\n }");
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.computationLatest(z2), getClass(), (Context) null, (Function1) null, StoreMessagesLoader$jumpToMessage$7.INSTANCE, (Function0) null, (Function0) null, new StoreMessagesLoader$jumpToMessage$8(storeMessagesLoader$jumpToMessage$2), 54, (Object) null);
}
}
public final Observable<Boolean> observeChannelMessagesLoading() {
Observable<Boolean> r = ObservableExtensionsKt.computationBuffered(this.channelMessagesLoadingSubject).r();
m.checkNotNullExpressionValue(r, "channelMessagesLoadingSu… .distinctUntilChanged()");
return r;
}
public final synchronized void requestNewestMessages() {
ChannelLoadedState channelLoadedState;
if (this.detachedChannels.contains(Long.valueOf(this.selectedChannelId)) || (channelLoadedState = this.channelLoadedStates.get(Long.valueOf(this.selectedChannelId))) == null || !channelLoadedState.isInitialMessagesLoaded()) {
channelLoadedStateUpdate(this.selectedChannelId, StoreMessagesLoader$requestNewestMessages$1.INSTANCE);
tryLoadMessages$default(this, 0, true, false, false, null, 1L, 25, null);
return;
}
this.scrollToSubject.j.onNext(1L);
}
}