discord-jadx/app/src/main/java/com/discord/widgets/chat/MessageManager.java

515 lines
24 KiB
Java

package com.discord.widgets.chat;
import android.content.Context;
import android.content.pm.ShortcutManager;
import android.os.Build;
import androidx.core.content.pm.ShortcutInfoCompat;
import androidx.core.content.pm.ShortcutManagerCompat;
import c.d.b.a.a;
import com.discord.api.message.MessageReference;
import com.discord.api.message.allowedmentions.MessageAllowedMentions;
import com.discord.api.message.allowedmentions.MessageAllowedMentionsTypes;
import com.discord.api.sticker.Sticker;
import com.discord.api.user.User;
import com.discord.models.experiments.domain.Experiment;
import com.discord.models.guild.Guild;
import com.discord.models.message.Message;
import com.discord.models.user.MeUser;
import com.discord.stores.StoreChannelsSelected;
import com.discord.stores.StoreExperiments;
import com.discord.stores.StoreGuilds;
import com.discord.stores.StoreMessageReplies;
import com.discord.stores.StoreMessages;
import com.discord.stores.StorePendingReplies;
import com.discord.stores.StoreSlowMode;
import com.discord.stores.StoreStream;
import com.discord.stores.StoreUser;
import com.discord.utilities.messagesend.MessageResult;
import com.discord.utilities.rx.ObservableExtensionsKt;
import com.discord.utilities.user.UserUtils;
import com.lytefast.flexinput.model.Attachment;
import d0.t.k;
import d0.t.n;
import d0.t.o;
import d0.t.u;
import d0.z.d.m;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.functions.Function2;
import kotlin.jvm.internal.DefaultConstructorMarker;
import rx.Observable;
/* compiled from: MessageManager.kt */
public final class MessageManager {
private final Context context;
private final Function1<MessageSendResult, Unit> defaultMessageResultHandler;
private final StoreChannelsSelected storeChannelsSelected;
private final StoreExperiments storeExperiments;
private final StoreGuilds storeGuilds;
private final StoreMessageReplies storeMessageReplies;
private final StoreMessages storeMessages;
private final StorePendingReplies storePendingReplies;
private final StoreSlowMode storeSlowMode;
private final StoreUser storeUser;
/* compiled from: MessageManager.kt */
public static abstract class AttachmentValidationResult {
/* compiled from: MessageManager.kt */
public static final class EmptyAttachments extends AttachmentValidationResult {
public static final EmptyAttachments INSTANCE = new EmptyAttachments();
private EmptyAttachments() {
super(null);
}
}
/* compiled from: MessageManager.kt */
public static final class FilesTooLarge extends AttachmentValidationResult {
private final AttachmentsRequest attachmentsRequest;
/* JADX INFO: super call moved to the top of the method (can break code semantics) */
public FilesTooLarge(AttachmentsRequest attachmentsRequest) {
super(null);
m.checkNotNullParameter(attachmentsRequest, "attachmentsRequest");
this.attachmentsRequest = attachmentsRequest;
}
public static /* synthetic */ FilesTooLarge copy$default(FilesTooLarge filesTooLarge, AttachmentsRequest attachmentsRequest, int i, Object obj) {
if ((i & 1) != 0) {
attachmentsRequest = filesTooLarge.attachmentsRequest;
}
return filesTooLarge.copy(attachmentsRequest);
}
public final AttachmentsRequest component1() {
return this.attachmentsRequest;
}
public final FilesTooLarge copy(AttachmentsRequest attachmentsRequest) {
m.checkNotNullParameter(attachmentsRequest, "attachmentsRequest");
return new FilesTooLarge(attachmentsRequest);
}
public boolean equals(Object obj) {
if (this != obj) {
return (obj instanceof FilesTooLarge) && m.areEqual(this.attachmentsRequest, ((FilesTooLarge) obj).attachmentsRequest);
}
return true;
}
public final AttachmentsRequest getAttachmentsRequest() {
return this.attachmentsRequest;
}
public int hashCode() {
AttachmentsRequest attachmentsRequest = this.attachmentsRequest;
if (attachmentsRequest != null) {
return attachmentsRequest.hashCode();
}
return 0;
}
public String toString() {
StringBuilder L = a.L("FilesTooLarge(attachmentsRequest=");
L.append(this.attachmentsRequest);
L.append(")");
return L.toString();
}
}
/* compiled from: MessageManager.kt */
public static final class Success extends AttachmentValidationResult {
public static final Success INSTANCE = new Success();
private Success() {
super(null);
}
}
private AttachmentValidationResult() {
}
public /* synthetic */ AttachmentValidationResult(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
}
/* compiled from: MessageManager.kt */
public static final class AttachmentsRequest {
private final List<Attachment<?>> attachments;
private final float currentFileSizeMB;
private final int maxFileSizeMB;
/* JADX DEBUG: Multi-variable search result rejected for r3v0, resolved type: java.util.List<? extends com.lytefast.flexinput.model.Attachment<?>> */
/* JADX WARN: Multi-variable type inference failed */
public AttachmentsRequest(float f, int i, List<? extends Attachment<?>> list) {
this.currentFileSizeMB = f;
this.maxFileSizeMB = i;
this.attachments = list;
}
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
public /* synthetic */ AttachmentsRequest(float f, int i, List list, int i2, DefaultConstructorMarker defaultConstructorMarker) {
this(f, i, (i2 & 4) != 0 ? null : list);
}
public final List<Attachment<?>> getAttachments() {
return this.attachments;
}
public final float getCurrentFileSizeMB() {
return this.currentFileSizeMB;
}
public final int getMaxFileSizeMB() {
return this.maxFileSizeMB;
}
}
/* compiled from: MessageManager.kt */
public static abstract class ContentValidationResult {
/* compiled from: MessageManager.kt */
public static final class EmptyContent extends ContentValidationResult {
public static final EmptyContent INSTANCE = new EmptyContent();
private EmptyContent() {
super(null);
}
}
/* compiled from: MessageManager.kt */
public static final class MessageTooLong extends ContentValidationResult {
private final int maxMessageLength;
public MessageTooLong(int i) {
super(null);
this.maxMessageLength = i;
}
public static /* synthetic */ MessageTooLong copy$default(MessageTooLong messageTooLong, int i, int i2, Object obj) {
if ((i2 & 1) != 0) {
i = messageTooLong.maxMessageLength;
}
return messageTooLong.copy(i);
}
public final int component1() {
return this.maxMessageLength;
}
public final MessageTooLong copy(int i) {
return new MessageTooLong(i);
}
public boolean equals(Object obj) {
if (this != obj) {
return (obj instanceof MessageTooLong) && this.maxMessageLength == ((MessageTooLong) obj).maxMessageLength;
}
return true;
}
public final int getMaxMessageLength() {
return this.maxMessageLength;
}
public int hashCode() {
return this.maxMessageLength;
}
public String toString() {
return a.z(a.L("MessageTooLong(maxMessageLength="), this.maxMessageLength, ")");
}
}
/* compiled from: MessageManager.kt */
public static final class Success extends ContentValidationResult {
public static final Success INSTANCE = new Success();
private Success() {
super(null);
}
}
private ContentValidationResult() {
}
public /* synthetic */ ContentValidationResult(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
}
/* compiled from: MessageManager.kt */
public static final class MessageSendResult {
private final Guild guild;
private final MessageResult messageResult;
public MessageSendResult(MessageResult messageResult, Guild guild) {
m.checkNotNullParameter(messageResult, "messageResult");
this.messageResult = messageResult;
this.guild = guild;
}
public static /* synthetic */ MessageSendResult copy$default(MessageSendResult messageSendResult, MessageResult messageResult, Guild guild, int i, Object obj) {
if ((i & 1) != 0) {
messageResult = messageSendResult.messageResult;
}
if ((i & 2) != 0) {
guild = messageSendResult.guild;
}
return messageSendResult.copy(messageResult, guild);
}
public final MessageResult component1() {
return this.messageResult;
}
public final Guild component2() {
return this.guild;
}
public final MessageSendResult copy(MessageResult messageResult, Guild guild) {
m.checkNotNullParameter(messageResult, "messageResult");
return new MessageSendResult(messageResult, guild);
}
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof MessageSendResult)) {
return false;
}
MessageSendResult messageSendResult = (MessageSendResult) obj;
return m.areEqual(this.messageResult, messageSendResult.messageResult) && m.areEqual(this.guild, messageSendResult.guild);
}
public final Guild getGuild() {
return this.guild;
}
public final MessageResult getMessageResult() {
return this.messageResult;
}
public int hashCode() {
MessageResult messageResult = this.messageResult;
int i = 0;
int hashCode = (messageResult != null ? messageResult.hashCode() : 0) * 31;
Guild guild = this.guild;
if (guild != null) {
i = guild.hashCode();
}
return hashCode + i;
}
public String toString() {
StringBuilder L = a.L("MessageSendResult(messageResult=");
L.append(this.messageResult);
L.append(", guild=");
L.append(this.guild);
L.append(")");
return L.toString();
}
}
public MessageManager(Context context, StoreMessages storeMessages, StoreUser storeUser, StoreChannelsSelected storeChannelsSelected, StoreSlowMode storeSlowMode, StoreGuilds storeGuilds, StorePendingReplies storePendingReplies, StoreMessageReplies storeMessageReplies, StoreExperiments storeExperiments) {
m.checkNotNullParameter(context, "context");
m.checkNotNullParameter(storeMessages, "storeMessages");
m.checkNotNullParameter(storeUser, "storeUser");
m.checkNotNullParameter(storeChannelsSelected, "storeChannelsSelected");
m.checkNotNullParameter(storeSlowMode, "storeSlowMode");
m.checkNotNullParameter(storeGuilds, "storeGuilds");
m.checkNotNullParameter(storePendingReplies, "storePendingReplies");
m.checkNotNullParameter(storeMessageReplies, "storeMessageReplies");
m.checkNotNullParameter(storeExperiments, "storeExperiments");
this.context = context;
this.storeMessages = storeMessages;
this.storeUser = storeUser;
this.storeChannelsSelected = storeChannelsSelected;
this.storeSlowMode = storeSlowMode;
this.storeGuilds = storeGuilds;
this.storePendingReplies = storePendingReplies;
this.storeMessageReplies = storeMessageReplies;
this.storeExperiments = storeExperiments;
this.defaultMessageResultHandler = new MessageManager$defaultMessageResultHandler$1(this);
}
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
public /* synthetic */ MessageManager(Context context, StoreMessages storeMessages, StoreUser storeUser, StoreChannelsSelected storeChannelsSelected, StoreSlowMode storeSlowMode, StoreGuilds storeGuilds, StorePendingReplies storePendingReplies, StoreMessageReplies storeMessageReplies, StoreExperiments storeExperiments, int i, DefaultConstructorMarker defaultConstructorMarker) {
this(context, (i & 2) != 0 ? StoreStream.Companion.getMessages() : storeMessages, (i & 4) != 0 ? StoreStream.Companion.getUsers() : storeUser, (i & 8) != 0 ? StoreStream.Companion.getChannelsSelected() : storeChannelsSelected, (i & 16) != 0 ? StoreStream.Companion.getSlowMode() : storeSlowMode, (i & 32) != 0 ? StoreStream.Companion.getGuilds() : storeGuilds, (i & 64) != 0 ? StoreStream.Companion.getPendingReplies() : storePendingReplies, (i & 128) != 0 ? StoreStream.Companion.getRepliedMessages() : storeMessageReplies, (i & 256) != 0 ? StoreStream.Companion.getExperiments() : storeExperiments);
}
public static final /* synthetic */ Context access$getContext$p(MessageManager messageManager) {
return messageManager.context;
}
public static final /* synthetic */ StoreMessages access$getStoreMessages$p(MessageManager messageManager) {
return messageManager.storeMessages;
}
public static final /* synthetic */ StorePendingReplies access$getStorePendingReplies$p(MessageManager messageManager) {
return messageManager.storePendingReplies;
}
public static /* synthetic */ boolean editMessage$default(MessageManager messageManager, long j, long j2, String str, Function2 function2, Integer num, int i, Object obj) {
return messageManager.editMessage(j, j2, str, (i & 8) != 0 ? null : function2, (i & 16) != 0 ? null : num);
}
private final MessageAllowedMentions getAllowedMentionsForMessageEdit(long j, long j2) {
Integer type;
MessageReference messageReference;
Long c2;
boolean z2;
Message message = this.storeMessages.getMessage(j, j2);
if (!(message == null || (type = message.getType()) == null || type.intValue() != 19 || (messageReference = message.getMessageReference()) == null || (c2 = messageReference.c()) == null)) {
StoreMessageReplies.MessageState messageState = this.storeMessageReplies.getAllMessageReferences().get(Long.valueOf(c2.longValue()));
if (messageState == null || !(messageState instanceof StoreMessageReplies.MessageState.Loaded)) {
return null;
}
List<User> mentions = message.getMentions();
if (mentions != null) {
boolean z3 = false;
if (!mentions.isEmpty()) {
Iterator<T> it = mentions.iterator();
while (true) {
if (!it.hasNext()) {
break;
}
long i = ((User) it.next()).i();
User author = ((StoreMessageReplies.MessageState.Loaded) messageState).getMessage().getAuthor();
if (author == null || i != author.i()) {
z2 = false;
continue;
} else {
z2 = true;
continue;
}
if (z2) {
z3 = true;
break;
}
}
}
if (z3) {
return null;
}
}
return new MessageAllowedMentions(k.toList(MessageAllowedMentionsTypes.values()), null, null, Boolean.FALSE, 6);
}
return null;
}
public static /* synthetic */ boolean sendMessage$default(MessageManager messageManager, String str, List list, AttachmentsRequest attachmentsRequest, Long l, List list2, boolean z2, Function2 function2, Function2 function22, Function1 function1, int i, Object obj) {
String str2 = (i & 1) != 0 ? "" : str;
Function2 function23 = null;
List list3 = (i & 2) != 0 ? null : list;
AttachmentsRequest attachmentsRequest2 = (i & 4) != 0 ? null : attachmentsRequest;
Long l2 = (i & 8) != 0 ? null : l;
List emptyList = (i & 16) != 0 ? n.emptyList() : list2;
boolean z3 = (i & 32) != 0 ? true : z2;
Function2 function24 = (i & 64) != 0 ? null : function2;
if ((i & 128) == 0) {
function23 = function22;
}
return messageManager.sendMessage(str2, list3, attachmentsRequest2, l2, emptyList, z3, function24, function23, (i & 256) != 0 ? messageManager.defaultMessageResultHandler : function1);
}
private final AttachmentValidationResult validateAttachments(AttachmentsRequest attachmentsRequest) {
if (attachmentsRequest == null) {
return AttachmentValidationResult.EmptyAttachments.INSTANCE;
}
List<Attachment<?>> attachments = attachmentsRequest.getAttachments();
return (attachments == null || attachments.isEmpty()) ? AttachmentValidationResult.EmptyAttachments.INSTANCE : attachmentsRequest.getCurrentFileSizeMB() >= ((float) attachmentsRequest.getMaxFileSizeMB()) ? new AttachmentValidationResult.FilesTooLarge(attachmentsRequest) : AttachmentValidationResult.Success.INSTANCE;
}
private final ContentValidationResult validateMessageContent(String str, List<Sticker> list, MeUser meUser, boolean z2, Integer num) {
int i = 2000;
boolean z3 = false;
boolean z4 = z2 && num != null && num.intValue() > 2000;
Experiment userExperiment = this.storeExperiments.getUserExperiment("2021-05_premium_increased_content_length", true);
if ((userExperiment != null && userExperiment.getBucket() == 1) && (UserUtils.INSTANCE.isPremiumTier2(meUser) || z4)) {
i = 4000;
}
if (str.length() == 0) {
if (list == null || list.isEmpty()) {
z3 = true;
}
if (z3) {
return ContentValidationResult.EmptyContent.INSTANCE;
}
}
return str.length() > i ? new ContentValidationResult.MessageTooLong(i) : ContentValidationResult.Success.INSTANCE;
}
public static /* synthetic */ ContentValidationResult validateMessageContent$default(MessageManager messageManager, String str, List list, MeUser meUser, boolean z2, Integer num, int i, Object obj) {
if ((i & 16) != 0) {
num = null;
}
return messageManager.validateMessageContent(str, list, meUser, z2, num);
}
public final boolean editMessage(long j, long j2, String str, Function2<? super Integer, ? super Integer, Unit> function2, Integer num) {
m.checkNotNullParameter(str, "content");
ContentValidationResult validateMessageContent = validateMessageContent(str, n.emptyList(), this.storeUser.getMe(), true, num);
if (validateMessageContent instanceof ContentValidationResult.MessageTooLong) {
if (function2 != null) {
function2.invoke(Integer.valueOf(str.length()), Integer.valueOf(((ContentValidationResult.MessageTooLong) validateMessageContent).getMaxMessageLength()));
}
return false;
} else if (m.areEqual(validateMessageContent, ContentValidationResult.EmptyContent.INSTANCE)) {
return false;
} else {
m.areEqual(validateMessageContent, ContentValidationResult.Success.INSTANCE);
this.storeMessages.editMessage(j, j2, str, getAllowedMentionsForMessageEdit(j2, j));
return true;
}
}
public final boolean sendMessage(String str, List<? extends com.discord.models.user.User> list, AttachmentsRequest attachmentsRequest, Long l, List<Sticker> list2, boolean z2, Function2<? super Integer, ? super Integer, Unit> function2, Function2<? super Integer, ? super Boolean, Unit> function22, Function1<? super MessageSendResult, Unit> function1) {
ShortcutManager shortcutManager;
m.checkNotNullParameter(str, "content");
m.checkNotNullParameter(list2, "stickers");
m.checkNotNullParameter(function1, "messageSendResultHandler");
MeUser me2 = this.storeUser.getMe();
ContentValidationResult validateMessageContent$default = validateMessageContent$default(this, str, list2, me2, false, null, 16, null);
if (validateMessageContent$default instanceof ContentValidationResult.MessageTooLong) {
if (function2 != null) {
function2.invoke(Integer.valueOf(str.length()), Integer.valueOf(((ContentValidationResult.MessageTooLong) validateMessageContent$default).getMaxMessageLength()));
}
return false;
}
AttachmentValidationResult validateAttachments = validateAttachments(attachmentsRequest);
if (validateAttachments instanceof AttachmentValidationResult.FilesTooLarge) {
AttachmentsRequest attachmentsRequest2 = ((AttachmentValidationResult.FilesTooLarge) validateAttachments).getAttachmentsRequest();
if (function22 != null) {
function22.invoke(Integer.valueOf(attachmentsRequest2.getMaxFileSizeMB()), Boolean.valueOf(UserUtils.INSTANCE.isPremium(me2)));
}
return false;
}
List<Attachment<?>> attachments = attachmentsRequest != null ? attachmentsRequest.getAttachments() : null;
long longValue = l != null ? l.longValue() : this.storeChannelsSelected.getId();
if (Build.VERSION.SDK_INT >= 25) {
List<ShortcutInfoCompat> dynamicShortcuts = ShortcutManagerCompat.getDynamicShortcuts(this.context);
m.checkNotNullExpressionValue(dynamicShortcuts, "ShortcutManagerCompat.getDynamicShortcuts(context)");
ArrayList arrayList = new ArrayList(o.collectionSizeOrDefault(dynamicShortcuts, 10));
for (ShortcutInfoCompat shortcutInfoCompat : dynamicShortcuts) {
m.checkNotNullExpressionValue(shortcutInfoCompat, "it");
arrayList.add(shortcutInfoCompat.getId());
}
if (u.toSet(arrayList).contains(String.valueOf(longValue)) && (shortcutManager = (ShortcutManager) this.context.getSystemService(ShortcutManager.class)) != null) {
shortcutManager.reportShortcutUsed(String.valueOf(longValue));
}
}
StorePendingReplies.PendingReply pendingReply = z2 ? this.storePendingReplies.getPendingReply(longValue) : null;
Observable Z = Observable.j(this.storeSlowMode.getCooldownSecs(l).Z(1).Y(new MessageManager$sendMessage$messageResultObservable$1(this, pendingReply, longValue, me2, str, list, attachments, list2, (pendingReply == null || pendingReply.getShouldMention()) ? null : new MessageAllowedMentions(k.toList(MessageAllowedMentionsTypes.values()), null, null, Boolean.FALSE, 6))), this.storeGuilds.observeFromChannelId(longValue), MessageManager$sendMessage$1.INSTANCE).Z(1);
m.checkNotNullExpressionValue(Z, "Observable.combineLatest…d)\n }\n .take(1)");
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui(ObservableExtensionsKt.restSubscribeOn$default(Z, false, 1, null)), MessageManager.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new MessageManager$sendMessage$2(function1), 62, (Object) null);
return true;
}
}