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

729 lines
37 KiB
Java

package com.discord.stores;
import android.content.ContentResolver;
import android.content.Context;
import android.net.Uri;
import androidx.work.Operation;
import androidx.work.WorkManager;
import com.discord.api.activity.Activity;
import com.discord.api.application.Application;
import com.discord.api.interaction.InteractionStateUpdate;
import com.discord.api.message.LocalAttachment;
import com.discord.api.message.MessageReference;
import com.discord.api.message.activity.MessageActivity;
import com.discord.api.message.allowedmentions.MessageAllowedMentions;
import com.discord.api.message.reaction.MessageReactionUpdate;
import com.discord.api.sticker.BaseSticker;
import com.discord.api.user.User;
import com.discord.app.AppLog;
import com.discord.models.commands.ApplicationCommandLocalSendData;
import com.discord.models.domain.ModelMessageDelete;
import com.discord.models.domain.ModelPayload;
import com.discord.models.message.Message;
import com.discord.models.user.CoreUser;
import com.discord.stores.StoreMessagesLoader;
import com.discord.utilities.attachments.AttachmentUtilsKt;
import com.discord.utilities.logging.Logger;
import com.discord.utilities.message.LocalMessageCreatorsKt;
import com.discord.utilities.messagesend.MessageQueue;
import com.discord.utilities.messagesend.MessageRequest;
import com.discord.utilities.messagesend.MessageResult;
import com.discord.utilities.rest.ProcessedMessageContent;
import com.discord.utilities.rest.RestAPI;
import com.discord.utilities.rest.SendUtilsKt;
import com.discord.utilities.rx.ObservableExtensionsKt;
import com.discord.utilities.time.Clock;
import com.discord.utilities.user.UserUtils;
import com.lytefast.flexinput.model.Attachment;
import d0.t.n;
import d0.t.o;
import d0.t.u;
import d0.z.d.m;
import j0.l.a.q;
import j0.l.a.r;
import j0.l.a.x0;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Ref$ObjectRef;
import rx.Emitter;
import rx.Observable;
import rx.subjects.BehaviorSubject;
/* compiled from: StoreMessages.kt */
public final class StoreMessages extends Store {
private static final long BACKGROUND_SENDING_DELAY_MS = 120000;
public static final Companion Companion = new Companion(null);
private final Clock clock;
private Context context;
private final Dispatcher dispatcher;
private final StoreMessagesHolder holder = new StoreMessagesHolder();
private final BehaviorSubject<Boolean> initResendFinished = BehaviorSubject.l0(Boolean.FALSE);
private final StoreLocalMessagesHolder localMessagesHolder = new StoreLocalMessagesHolder();
private final HashMap<Long, MessageQueue> messageQueues = new HashMap<>();
private final ExecutorService queueExecutor = Executors.newSingleThreadExecutor();
private final StoreStream stream;
/* compiled from: StoreMessages.kt */
public static final class Companion {
private Companion() {
}
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
public static final /* synthetic */ Operation access$cancelBackgroundSendingWork(Companion companion, Context context) {
return companion.cancelBackgroundSendingWork(context);
}
private final Operation cancelBackgroundSendingWork(Context context) {
Operation cancelUniqueWork = WorkManager.getInstance(context).cancelUniqueWork("BACKGROUND_MESSAGE_SENDING");
m.checkNotNullExpressionValue(cancelUniqueWork, "WorkManager.getInstance(…dWorker.UNIQUE_WORK_NAME)");
return cancelUniqueWork;
}
}
public StoreMessages(StoreStream storeStream, Dispatcher dispatcher, Clock clock) {
m.checkNotNullParameter(storeStream, "stream");
m.checkNotNullParameter(dispatcher, "dispatcher");
m.checkNotNullParameter(clock, "clock");
this.stream = storeStream;
this.dispatcher = dispatcher;
this.clock = clock;
}
public static final /* synthetic */ Context access$getContext$p(StoreMessages storeMessages) {
Context context = storeMessages.context;
if (context == null) {
m.throwUninitializedPropertyAccessException("context");
}
return context;
}
public static final /* synthetic */ Dispatcher access$getDispatcher$p(StoreMessages storeMessages) {
return storeMessages.dispatcher;
}
public static final /* synthetic */ BehaviorSubject access$getInitResendFinished$p(StoreMessages storeMessages) {
return storeMessages.initResendFinished;
}
public static final /* synthetic */ MessageQueue access$getOrCreateMessageQueue(StoreMessages storeMessages, long j) {
return storeMessages.getOrCreateMessageQueue(j);
}
public static final /* synthetic */ StoreStream access$getStream$p(StoreMessages storeMessages) {
return storeMessages.stream;
}
public static final /* synthetic */ void access$handleLocalMessageCreate(StoreMessages storeMessages, Message message) {
storeMessages.handleLocalMessageCreate(message);
}
public static final /* synthetic */ void access$handleLocalMessageDelete(StoreMessages storeMessages, Message message) {
storeMessages.handleLocalMessageDelete(message);
}
public static final /* synthetic */ void access$handleSendMessageFailure(StoreMessages storeMessages, Message message) {
storeMessages.handleSendMessageFailure(message);
}
public static final /* synthetic */ void access$handleSendMessageValidationError(StoreMessages storeMessages, Message message, String str) {
storeMessages.handleSendMessageValidationError(message, str);
}
public static final /* synthetic */ void access$setContext$p(StoreMessages storeMessages, Context context) {
storeMessages.context = context;
}
public static final /* synthetic */ void access$trackFailedLocalMessageResolved(StoreMessages storeMessages, Message message, FailedMessageResolutionType failedMessageResolutionType) {
storeMessages.trackFailedLocalMessageResolved(message, failedMessageResolutionType);
}
private final Observable<MessageResult> enqueueRequest(long j, Function1<? super Emitter<MessageResult>, ? extends MessageRequest> function1) {
Observable<MessageResult> X = Observable.n(new StoreMessages$enqueueRequest$1(this, j, function1), Emitter.BackpressureMode.ERROR).X(this.dispatcher.getScheduler());
m.checkNotNullExpressionValue(X, "Observable.create<Messag…eOn(dispatcher.scheduler)");
return X;
}
@StoreThread
private final MessageQueue getOrCreateMessageQueue(long j) {
MessageQueue messageQueue = this.messageQueues.get(Long.valueOf(j));
if (messageQueue == null) {
Context context = this.context;
if (context == null) {
m.throwUninitializedPropertyAccessException("context");
}
ContentResolver contentResolver = context.getContentResolver();
m.checkNotNullExpressionValue(contentResolver, "context.contentResolver");
ExecutorService executorService = this.queueExecutor;
m.checkNotNullExpressionValue(executorService, "queueExecutor");
messageQueue = new MessageQueue(contentResolver, executorService, this.clock);
this.messageQueues.put(Long.valueOf(j), messageQueue);
}
return messageQueue;
}
@StoreThread
private final void handleInteractionStateUpdate(InteractionStateUpdate interactionStateUpdate, boolean z2, boolean z3) {
Message message;
ApplicationCommandLocalSendData applicationCommandLocalSendData = this.stream.getApplicationInteractions$app_productionBetaRelease().getApplicationCommandLocalSendDataSet$app_productionBetaRelease().get(interactionStateUpdate.b());
if (applicationCommandLocalSendData != null && (message = this.localMessagesHolder.getMessage(applicationCommandLocalSendData.getChannelId(), applicationCommandLocalSendData.getNonceString())) != null) {
this.localMessagesHolder.addMessage(LocalMessageCreatorsKt.createLocalApplicationCommandMessage(message, interactionStateUpdate.a(), z2, z3, this.clock));
}
}
public static /* synthetic */ void handleInteractionStateUpdate$default(StoreMessages storeMessages, InteractionStateUpdate interactionStateUpdate, boolean z2, boolean z3, int i, Object obj) {
if ((i & 2) != 0) {
z2 = false;
}
if ((i & 4) != 0) {
z3 = false;
}
storeMessages.handleInteractionStateUpdate(interactionStateUpdate, z2, z3);
}
@StoreThread
private final void handleLocalMessageCreate(Message message) {
this.localMessagesHolder.addMessage(message);
}
@StoreThread
private final void handleLocalMessageDelete(long j, String str) {
this.localMessagesHolder.deleteMessage(j, str);
}
@StoreThread
private final void handleLocalMessageDelete(Message message) {
this.localMessagesHolder.deleteMessage(message);
}
private final void handleMessageDelete(long j, List<Long> list) {
this.holder.deleteMessages(j, list);
}
@StoreThread
private final void handleSendMessageFailure(Message message) {
deleteMessage(message);
String content = message.getContent();
if (content == null) {
content = "";
}
long channelId = message.getChannelId();
User author = message.getAuthor();
m.checkNotNull(author);
handleLocalMessageCreate(LocalMessageCreatorsKt.createLocalMessage(content, channelId, author, message.getMentions(), true, message.getHasLocalUploads(), message.getApplication(), message.getActivity(), this.clock, message.getLocalAttachments(), message.getLastManualAttemptTimestamp(), message.getInitialAttemptTimestamp(), message.getNumRetries(), message.getStickers(), message.getMessageReference(), message.getAllowedMentions()));
}
private final void handleSendMessageValidationError(Message message, String str) {
Logger.e$default(AppLog.g, "ValidationError", str, null, null, 12, null);
deleteMessage(message);
}
private final Observable<List<Message>> observeLocalMessagesForChannel(long j) {
Observable<R> F = this.localMessagesHolder.getMessagesPublisher().F(new StoreMessages$observeLocalMessagesForChannel$1(j));
m.checkNotNullExpressionValue(F, "localMessagesHolder\n …annelId] ?: emptyList() }");
Observable<List<Message>> r = ObservableExtensionsKt.computationBuffered(F).r(StoreMessages$observeLocalMessagesForChannel$2.INSTANCE);
m.checkNotNullExpressionValue(r, "localMessagesHolder\n …messages1 === messages2 }");
return r;
}
private final Observable<List<Message>> observeSyncedMessagesForChannel(long j) {
Observable<R> F = this.holder.getMessagesPublisher().F(new StoreMessages$observeSyncedMessagesForChannel$1(j));
m.checkNotNullExpressionValue(F, "holder\n .messag…annelId] ?: emptyList() }");
Observable<List<Message>> r = ObservableExtensionsKt.computationBuffered(F).r(StoreMessages$observeSyncedMessagesForChannel$2.INSTANCE);
m.checkNotNullExpressionValue(r, "holder\n .messag…messages1 === messages2 }");
return r;
}
@StoreThread
private final void resendAllLocalMessages() {
List<Message> flattenedMessages = this.localMessagesHolder.getFlattenedMessages();
ArrayList<Message> arrayList = new ArrayList();
Iterator<T> it = flattenedMessages.iterator();
while (true) {
boolean z2 = true;
if (!it.hasNext()) {
break;
}
Object next = it.next();
Integer type = ((Message) next).getType();
if (type == null || type.intValue() != -1) {
z2 = false;
}
if (z2) {
arrayList.add(next);
}
}
ArrayList arrayList2 = new ArrayList(o.collectionSizeOrDefault(arrayList, 10));
for (Message message : arrayList) {
arrayList2.add(resendMessage(message, true));
}
Observable h02 = Observable.h0(new q(arrayList2));
Observable h03 = Observable.h0(new r(h02.i, x0.a.a));
m.checkNotNullExpressionValue(h03, "Observable\n .mergeDelayError(observables)");
ObservableExtensionsKt.appSubscribe$default(h03, StoreMessages.class, (Context) null, (Function1) null, (Function1) null, new StoreMessages$resendAllLocalMessages$1(this), (Function0) null, StoreMessages$resendAllLocalMessages$2.INSTANCE, 46, (Object) null);
}
public static /* synthetic */ Observable resendMessage$default(StoreMessages storeMessages, Message message, boolean z2, int i, Object obj) {
if ((i & 2) != 0) {
z2 = false;
}
return storeMessages.resendMessage(message, z2);
}
public static /* synthetic */ Observable sendMessage$default(StoreMessages storeMessages, long j, com.discord.models.user.User user, String str, List list, List list2, List list3, MessageReference messageReference, MessageAllowedMentions messageAllowedMentions, Application application, Activity activity, MessageActivity messageActivity, Long l, Long l2, Integer num, int i, Object obj) {
return storeMessages.sendMessage(j, user, str, list, list2, (i & 32) != 0 ? null : list3, (i & 64) != 0 ? null : messageReference, (i & 128) != 0 ? null : messageAllowedMentions, (i & 256) != 0 ? null : application, (i & 512) != 0 ? null : activity, (i & 1024) != 0 ? null : messageActivity, (i & 2048) != 0 ? null : l, (i & 4096) != 0 ? null : l2, (i & 8192) != 0 ? null : num);
}
/* JADX DEBUG: Multi-variable search result rejected for r0v0, resolved type: com.discord.stores.StoreMessages */
/* JADX WARN: Multi-variable type inference failed */
public static /* synthetic */ Observable sendMessage$default(StoreMessages storeMessages, Message message, ApplicationCommandLocalSendData applicationCommandLocalSendData, List list, int i, Object obj) {
if ((i & 4) != 0) {
list = null;
}
return storeMessages.sendMessage(message, applicationCommandLocalSendData, list);
}
/* JADX WARNING: Removed duplicated region for block: B:19:0x0046 */
/* JADX WARNING: Removed duplicated region for block: B:36:0x007e */
/* JADX WARNING: Removed duplicated region for block: B:43:0x00c0 */
/* JADX WARNING: Removed duplicated region for block: B:45:0x00c3 */
/* JADX WARNING: Removed duplicated region for block: B:50:0x00d5 */
/* JADX WARNING: Removed duplicated region for block: B:51:0x00dc */
/* JADX WARNING: Removed duplicated region for block: B:54:0x00e9 */
/* JADX WARNING: Removed duplicated region for block: B:55:0x00ef */
/* JADX WARNING: Removed duplicated region for block: B:58:0x00f6 */
/* JADX WARNING: Removed duplicated region for block: B:59:0x00fb */
/* JADX WARNING: Removed duplicated region for block: B:62:0x0104 */
/* JADX WARNING: Removed duplicated region for block: B:63:0x010a */
private final void trackFailedLocalMessageResolved(Message message, FailedMessageResolutionType failedMessageResolutionType) {
boolean z2;
List<LocalAttachment> localAttachments;
boolean z3;
List<LocalAttachment> localAttachments2;
ArrayList arrayList;
Long l;
boolean z4;
boolean z5;
List<LocalAttachment> localAttachments3 = message.getLocalAttachments();
if (localAttachments3 != null) {
if (!localAttachments3.isEmpty()) {
Iterator<T> it = localAttachments3.iterator();
while (true) {
if (!it.hasNext()) {
break;
}
LocalAttachment localAttachment = (LocalAttachment) it.next();
Context context = this.context;
if (context == null) {
m.throwUninitializedPropertyAccessException("context");
}
ContentResolver contentResolver = context.getContentResolver();
m.checkNotNullExpressionValue(contentResolver, "context.contentResolver");
if (AttachmentUtilsKt.isImageAttachment(localAttachment, contentResolver)) {
z5 = true;
break;
}
}
}
z5 = false;
if (z5) {
z2 = true;
localAttachments = message.getLocalAttachments();
if (localAttachments != null) {
if (!localAttachments.isEmpty()) {
Iterator<T> it2 = localAttachments.iterator();
while (true) {
if (!it2.hasNext()) {
break;
}
LocalAttachment localAttachment2 = (LocalAttachment) it2.next();
Context context2 = this.context;
if (context2 == null) {
m.throwUninitializedPropertyAccessException("context");
}
ContentResolver contentResolver2 = context2.getContentResolver();
m.checkNotNullExpressionValue(contentResolver2, "context.contentResolver");
if (AttachmentUtilsKt.isVideoAttachment(localAttachment2, contentResolver2)) {
z4 = true;
break;
}
}
}
z4 = false;
if (z4) {
z3 = true;
localAttachments2 = message.getLocalAttachments();
if (localAttachments2 != null) {
arrayList = new ArrayList(o.collectionSizeOrDefault(localAttachments2, 10));
for (LocalAttachment localAttachment3 : localAttachments2) {
Uri parse = Uri.parse(localAttachment3.c());
m.checkNotNullExpressionValue(parse, "Uri.parse(localAttachment.uriString)");
Context context3 = this.context;
if (context3 == null) {
m.throwUninitializedPropertyAccessException("context");
}
ContentResolver contentResolver3 = context3.getContentResolver();
m.checkNotNullExpressionValue(contentResolver3, "context.contentResolver");
arrayList.add(Long.valueOf(SendUtilsKt.computeFileSizeBytes(parse, contentResolver3)));
}
} else {
arrayList = null;
}
int longValue = (arrayList != null || (l = (Long) u.maxOrNull(arrayList)) == null) ? 0 : (int) l.longValue();
int sumOfLong = arrayList != null ? (int) u.sumOfLong(arrayList) : 0;
StoreAnalytics analytics = StoreStream.Companion.getAnalytics();
List<LocalAttachment> localAttachments4 = message.getLocalAttachments();
int size = localAttachments4 != null ? localAttachments4.size() : 0;
Long initialAttemptTimestamp = message.getInitialAttemptTimestamp();
long longValue2 = initialAttemptTimestamp != null ? initialAttemptTimestamp.longValue() : 0;
Integer numRetries = message.getNumRetries();
analytics.trackFailedMessageResolved(size, longValue, sumOfLong, z2, z3, failedMessageResolutionType, longValue2, numRetries != null ? numRetries.intValue() : 0, message.getChannelId());
}
}
z3 = false;
localAttachments2 = message.getLocalAttachments();
if (localAttachments2 != null) {
}
if (arrayList != null) {
}
if (arrayList != null) {
}
StoreAnalytics analytics = StoreStream.Companion.getAnalytics();
List<LocalAttachment> localAttachments4 = message.getLocalAttachments();
if (localAttachments4 != null) {
}
Long initialAttemptTimestamp = message.getInitialAttemptTimestamp();
if (initialAttemptTimestamp != null) {
}
Integer numRetries = message.getNumRetries();
analytics.trackFailedMessageResolved(size, longValue, sumOfLong, z2, z3, failedMessageResolutionType, longValue2, numRetries != null ? numRetries.intValue() : 0, message.getChannelId());
}
}
z2 = false;
localAttachments = message.getLocalAttachments();
if (localAttachments != null) {
}
z3 = false;
localAttachments2 = message.getLocalAttachments();
if (localAttachments2 != null) {
}
if (arrayList != null) {
}
if (arrayList != null) {
}
StoreAnalytics analytics = StoreStream.Companion.getAnalytics();
List<LocalAttachment> localAttachments4 = message.getLocalAttachments();
if (localAttachments4 != null) {
}
Long initialAttemptTimestamp = message.getInitialAttemptTimestamp();
if (initialAttemptTimestamp != null) {
}
Integer numRetries = message.getNumRetries();
analytics.trackFailedMessageResolved(size, longValue, sumOfLong, z2, z3, failedMessageResolutionType, longValue2, numRetries != null ? numRetries.intValue() : 0, message.getChannelId());
}
public final void cancelMessageSend(long j, String str) {
m.checkNotNullParameter(str, "requestId");
getOrCreateMessageQueue(j).cancel(str);
}
@StoreThread
public final void deleteLocalMessage(long j, String str) {
m.checkNotNullParameter(str, "nonce");
getOrCreateMessageQueue(j).cancel(str);
handleLocalMessageDelete(j, str);
}
public final void deleteMessage(Message message) {
if (message != null) {
long id2 = message.getId();
long channelId = message.getChannelId();
if (message.isLocal() || message.isEphemeralMessage()) {
this.dispatcher.schedule(new StoreMessages$deleteMessage$2(this, message, channelId, id2));
} else {
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().deleteMessage(channelId, id2), false, 1, null), (Context) null, "deleteMessage", (Function1) null, StoreMessages$deleteMessage$1.INSTANCE, (Function1) null, (Function0) null, (Function0) null, 117, (Object) null);
}
}
}
public final void editMessage(long j, long j2, String str, MessageAllowedMentions messageAllowedMentions) {
m.checkNotNullParameter(str, "content");
getOrCreateMessageQueue(j2).enqueue(new MessageRequest.Edit(j2, str, j, messageAllowedMentions, this.clock.currentTimeMillis()));
}
public final Observable<Set<Long>> getAllDetached() {
Observable<Set<Long>> detachedChannelsSubject = this.holder.getDetachedChannelsSubject();
m.checkNotNullExpressionValue(detachedChannelsSubject, "holder\n .detachedChannelsSubject");
return ObservableExtensionsKt.computationLatest(detachedChannelsSubject);
}
@StoreThread
public final Message getMessage(long j, long j2) {
TreeMap<Long, Message> messagesForChannel = this.holder.getMessagesForChannel(Long.valueOf(j));
if (messagesForChannel != null) {
return messagesForChannel.get(Long.valueOf(j2));
}
return null;
}
public final void handleChannelSelected(long j) {
this.holder.setSelectedChannelId(j);
}
@StoreThread
public final void handleConnected(boolean z2) {
if (!z2) {
this.holder.invalidate();
return;
}
Collection<MessageQueue> values = this.messageQueues.values();
m.checkNotNullExpressionValue(values, "messageQueues.values");
for (MessageQueue messageQueue : values) {
messageQueue.handleConnected();
}
}
public final void handleConnectionOpen(ModelPayload modelPayload) {
m.checkNotNullParameter(modelPayload, "payload");
this.holder.setMyUserId(modelPayload.getMe().i());
}
@StoreThread
public final void handleInteractionCreate(InteractionStateUpdate interactionStateUpdate) {
m.checkNotNullParameter(interactionStateUpdate, "interactionUpdate");
handleInteractionStateUpdate$default(this, interactionStateUpdate, false, true, 2, null);
}
@StoreThread
public final void handleInteractionFailure(InteractionStateUpdate interactionStateUpdate) {
m.checkNotNullParameter(interactionStateUpdate, "interactionUpdate");
handleInteractionStateUpdate$default(this, interactionStateUpdate, true, false, 4, null);
}
public final void handleMessageCreate(List<com.discord.api.message.Message> list) {
m.checkNotNullParameter(list, "messagesList");
for (com.discord.api.message.Message message : list) {
String v = message.v();
if (v != null) {
this.localMessagesHolder.deleteMessage(message.g(), v);
}
}
StoreMessagesHolder storeMessagesHolder = this.holder;
ArrayList arrayList = new ArrayList(o.collectionSizeOrDefault(list, 10));
for (com.discord.api.message.Message message2 : list) {
arrayList.add(new Message(message2));
}
storeMessagesHolder.addMessages(arrayList);
}
public final void handleMessageDelete(ModelMessageDelete modelMessageDelete) {
m.checkNotNullParameter(modelMessageDelete, "messageDelete");
long channelId = modelMessageDelete.getChannelId();
List<Long> messageIds = modelMessageDelete.getMessageIds();
m.checkNotNullExpressionValue(messageIds, "messageDelete.messageIds");
handleMessageDelete(channelId, messageIds);
}
public final void handleMessageUpdate(com.discord.api.message.Message message) {
m.checkNotNullParameter(message, "message");
this.holder.updateMessages(message);
}
public final void handleMessagesLoaded(StoreMessagesLoader.ChannelChunk channelChunk) {
m.checkNotNullParameter(channelChunk, "chunk");
this.holder.loadMessageChunks(d0.t.m.listOf(channelChunk));
}
public final void handlePreLogout() {
this.localMessagesHolder.clearCache();
}
public final void handleReactionUpdate(List<MessageReactionUpdate> list, boolean z2) {
m.checkNotNullParameter(list, "updates");
this.holder.updateReactions(list, z2);
}
public final void handleReactionsRemoveAll(MessageReactionUpdate messageReactionUpdate) {
m.checkNotNullParameter(messageReactionUpdate, "update");
this.holder.removeAllReactions(messageReactionUpdate);
}
public final void handleReactionsRemoveEmoji(MessageReactionUpdate messageReactionUpdate) {
m.checkNotNullParameter(messageReactionUpdate, "update");
this.holder.removeEmojiReactions(messageReactionUpdate);
}
@Override // com.discord.stores.Store
public void init(Context context) {
m.checkNotNullParameter(context, "context");
super.init(context);
this.context = context;
this.holder.init(true);
StoreLocalMessagesHolder.init$default(this.localMessagesHolder, false, 1, null);
resendAllLocalMessages();
}
public final BehaviorSubject<Boolean> observeInitResendFinished() {
BehaviorSubject<Boolean> behaviorSubject = this.initResendFinished;
m.checkNotNullExpressionValue(behaviorSubject, "initResendFinished");
return behaviorSubject;
}
public final Observable<Boolean> observeIsDetached(long j) {
Observable<Boolean> q = getAllDetached().F(new StoreMessages$observeIsDetached$1(j)).q();
m.checkNotNullExpressionValue(q, "allDetached\n .m… .distinctUntilChanged()");
return q;
}
public final Observable<List<Message>> observeMessagesForChannel(long j) {
Observable<List<Message>> i = Observable.i(observeSyncedMessagesForChannel(j), observeLocalMessagesForChannel(j), observeIsDetached(j), StoreMessages$observeMessagesForChannel$1.INSTANCE);
m.checkNotNullExpressionValue(i, "Observable.combineLatest…ges + localMessages\n }");
return i;
}
public final Observable<Message> observeMessagesForChannel(long j, long j2) {
Observable<Message> q = observeMessagesForChannel(j).F(new StoreMessages$observeMessagesForChannel$2(j2)).q();
m.checkNotNullExpressionValue(q, "observeMessagesForChanne… .distinctUntilChanged()");
return q;
}
public final Observable<MessageResult> resendMessage(Message message, boolean z2) {
ArrayList arrayList;
ArrayList arrayList2;
Integer type;
Integer type2;
m.checkNotNullParameter(message, "message");
if ((!z2 || ((type2 = message.getType()) != null && type2.intValue() == -1)) && (z2 || ((type = message.getType()) != null && type.intValue() == -2))) {
this.dispatcher.schedule(new StoreMessages$resendMessage$1(this, message));
Integer numRetries = message.getNumRetries();
int intValue = numRetries != null ? numRetries.intValue() : 0;
long channelId = message.getChannelId();
User author = message.getAuthor();
m.checkNotNull(author);
CoreUser coreUser = new CoreUser(author);
String content = message.getContent();
if (content == null) {
content = "";
}
List<User> mentions = message.getMentions();
if (mentions != null) {
arrayList = new ArrayList(o.collectionSizeOrDefault(mentions, 10));
for (User user : mentions) {
arrayList.add(new CoreUser(user));
}
} else {
arrayList = null;
}
List<LocalAttachment> localAttachments = message.getLocalAttachments();
if (localAttachments != null) {
arrayList2 = new ArrayList(o.collectionSizeOrDefault(localAttachments, 10));
for (LocalAttachment localAttachment : localAttachments) {
Uri parse = Uri.parse(localAttachment.c());
long b = localAttachment.b();
m.checkNotNullExpressionValue(parse, "contentUri");
arrayList2.add(new Attachment(b, parse, localAttachment.a(), null, false, 16, null));
}
} else {
arrayList2 = null;
}
return sendMessage$default(this, channelId, coreUser, content, arrayList, arrayList2, null, message.getMessageReference(), message.getAllowedMentions(), null, null, null, z2 ? message.getLastManualAttemptTimestamp() : null, message.getInitialAttemptTimestamp(), Integer.valueOf(intValue + 1), 1824, null);
}
throw new IllegalArgumentException("Incorrect " + z2 + " auto attempt and message type " + message.getType());
}
/* JADX DEBUG: Multi-variable search result rejected for r28v0, resolved type: java.util.List<? extends com.lytefast.flexinput.model.Attachment<?>> */
/* JADX WARN: Multi-variable type inference failed */
/* JADX WARNING: Unknown variable types count: 1 */
public final Observable<MessageResult> sendMessage(long j, com.discord.models.user.User user, String str, List<? extends com.discord.models.user.User> list, List<? extends Attachment<?>> list2, List<? extends BaseSticker> list3, MessageReference messageReference, MessageAllowedMentions messageAllowedMentions, Application application, Activity activity, MessageActivity messageActivity, Long l, Long l2, Integer num) {
List list4;
ArrayList arrayList;
String str2 = str;
m.checkNotNullParameter(user, "author");
m.checkNotNullParameter(str2, "content");
Ref$ObjectRef ref$ObjectRef = new Ref$ObjectRef();
ref$ObjectRef.element = list2;
int i = 0;
if (!(list2 == 0 || list2.isEmpty())) {
ProcessedMessageContent.Companion companion = ProcessedMessageContent.Companion;
Context context = this.context;
if (context == null) {
m.throwUninitializedPropertyAccessException("context");
}
ProcessedMessageContent fromAttachments = companion.fromAttachments(list2, str2, context);
List<Attachment<?>> invalidAttachments = fromAttachments.getInvalidAttachments();
if (!invalidAttachments.isEmpty()) {
User synthesizeApiUser = UserUtils.INSTANCE.synthesizeApiUser(user);
Clock clock = this.clock;
ArrayList arrayList2 = new ArrayList(o.collectionSizeOrDefault(invalidAttachments, 10));
Iterator<T> it = invalidAttachments.iterator();
while (it.hasNext()) {
arrayList2.add(AttachmentUtilsKt.toLocalAttachment((Attachment) it.next()));
}
this.dispatcher.schedule(new StoreMessages$sendMessage$1(this, LocalMessageCreatorsKt.createInvalidAttachmentsMessage(j, synthesizeApiUser, clock, arrayList2)));
}
ref$ObjectRef.element = fromAttachments.getValidAttachments();
str2 = fromAttachments.getContent();
List list5 = ref$ObjectRef.element;
if (list5 == null || list5.isEmpty()) {
if (str2.length() == 0) {
Observable<MessageResult> n = Observable.n(StoreMessages$sendMessage$2.INSTANCE, Emitter.BackpressureMode.ERROR);
m.checkNotNullExpressionValue(n, "Observable.create({ emit…r.BackpressureMode.ERROR)");
return n;
}
}
}
long longValue = l != null ? l.longValue() : this.clock.currentTimeMillis();
User synthesizeApiUser2 = UserUtils.INSTANCE.synthesizeApiUser(user);
if (list != null) {
list4 = new ArrayList(o.collectionSizeOrDefault(list, 10));
for (com.discord.models.user.User user2 : list) {
list4.add(UserUtils.INSTANCE.synthesizeApiUser(user2));
}
} else {
list4 = n.emptyList();
}
List list6 = ref$ObjectRef.element;
boolean z2 = !(list6 == null || list6.isEmpty());
Clock clock2 = this.clock;
List<Attachment> list7 = ref$ObjectRef.element;
if (list7 != null) {
ArrayList arrayList3 = new ArrayList(o.collectionSizeOrDefault(list7, 10));
for (Attachment attachment : list7) {
arrayList3.add(AttachmentUtilsKt.toLocalAttachment(attachment));
}
arrayList = arrayList3;
} else {
arrayList = null;
}
Long valueOf = Long.valueOf(longValue);
Long valueOf2 = Long.valueOf(l2 != null ? l2.longValue() : this.clock.currentTimeMillis());
if (num != null) {
i = num.intValue();
}
Message createLocalMessage = LocalMessageCreatorsKt.createLocalMessage(str2, j, synthesizeApiUser2, list4, false, z2, application, messageActivity, clock2, arrayList, valueOf, valueOf2, Integer.valueOf(i), list3, messageReference, messageAllowedMentions);
if (messageActivity == null) {
this.dispatcher.schedule(new StoreMessages$sendMessage$3(this, createLocalMessage));
}
this.dispatcher.schedule(new StoreMessages$sendMessage$4(this));
return enqueueRequest(j, new StoreMessages$sendMessage$createRequest$1(this, createLocalMessage, ref$ObjectRef, activity, longValue));
}
public final Observable<MessageResult> sendMessage(Message message, ApplicationCommandLocalSendData applicationCommandLocalSendData, List<? extends Attachment<?>> list) {
m.checkNotNullParameter(message, "message");
m.checkNotNullParameter(applicationCommandLocalSendData, "applicationCommandLocalSendData");
this.dispatcher.schedule(new StoreMessages$sendMessage$5(this, message));
return enqueueRequest(message.getChannelId(), new StoreMessages$sendMessage$createRequest$2(this, message, applicationCommandLocalSendData, list));
}
}