271 lines
12 KiB
Java
271 lines
12 KiB
Java
package com.discord.widgets.chat.input;
|
|
|
|
import android.text.Editable;
|
|
import android.text.TextUtils;
|
|
import android.view.View;
|
|
import android.widget.TextView;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
import com.discord.app.AppFragment;
|
|
import com.discord.databinding.WidgetChatInputApplicationCommandsBinding;
|
|
import com.discord.widgets.chat.MessageContent;
|
|
import com.discord.widgets.chat.input.MessageDraftsRepo;
|
|
import com.discord.widgets.chat.input.autocomplete.Autocompletable;
|
|
import com.discord.widgets.chat.input.models.ApplicationCommandData;
|
|
import com.lytefast.flexinput.widget.FlexEditText;
|
|
import d0.t.n;
|
|
import d0.z.d.m;
|
|
import d0.z.d.o;
|
|
import java.util.List;
|
|
import kotlin.Unit;
|
|
import kotlin.jvm.functions.Function0;
|
|
import kotlin.jvm.functions.Function1;
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
import rx.subjects.BehaviorSubject;
|
|
import rx.subjects.Subject;
|
|
/* compiled from: WidgetChatInputEditText.kt */
|
|
public final class WidgetChatInputEditText {
|
|
public static final Companion Companion = new Companion(null);
|
|
private long channelId;
|
|
private final WidgetChatInputAutocomplete chatInputCommands;
|
|
private final FlexEditText editText;
|
|
private final Subject<Boolean, Boolean> emptyTextSubject;
|
|
private long lastTypingEmissionMillis;
|
|
private final MessageDraftsRepo messageDraftsRepo;
|
|
private Function0<Unit> onSendListener;
|
|
|
|
/* compiled from: WidgetChatInputEditText.kt */
|
|
/* renamed from: com.discord.widgets.chat.input.WidgetChatInputEditText$1 reason: invalid class name */
|
|
public static final class AnonymousClass1 extends o implements Function1<Autocompletable, Boolean> {
|
|
public static final AnonymousClass1 INSTANCE = new AnonymousClass1();
|
|
|
|
public AnonymousClass1() {
|
|
super(1);
|
|
}
|
|
|
|
/* Return type fixed from 'java.lang.Object' to match base method */
|
|
/* JADX DEBUG: Method arguments types fixed to match base method, original types: [java.lang.Object] */
|
|
@Override // kotlin.jvm.functions.Function1
|
|
public /* bridge */ /* synthetic */ Boolean invoke(Autocompletable autocompletable) {
|
|
return Boolean.valueOf(invoke(autocompletable));
|
|
}
|
|
|
|
public final boolean invoke(Autocompletable autocompletable) {
|
|
m.checkNotNullParameter(autocompletable, "it");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/* compiled from: WidgetChatInputEditText.kt */
|
|
/* renamed from: com.discord.widgets.chat.input.WidgetChatInputEditText$2 reason: invalid class name */
|
|
public static final class AnonymousClass2 extends o implements Function1<List<? extends Autocompletable>, Unit> {
|
|
public static final AnonymousClass2 INSTANCE = new AnonymousClass2();
|
|
|
|
public AnonymousClass2() {
|
|
super(1);
|
|
}
|
|
|
|
/* Return type fixed from 'java.lang.Object' to match base method */
|
|
/* JADX DEBUG: Method arguments types fixed to match base method, original types: [java.lang.Object] */
|
|
@Override // kotlin.jvm.functions.Function1
|
|
public /* bridge */ /* synthetic */ Unit invoke(List<? extends Autocompletable> list) {
|
|
invoke(list);
|
|
return Unit.a;
|
|
}
|
|
|
|
public final void invoke(List<? extends Autocompletable> list) {
|
|
m.checkNotNullParameter(list, "<anonymous parameter 0>");
|
|
}
|
|
}
|
|
|
|
/* compiled from: WidgetChatInputEditText.kt */
|
|
/* renamed from: com.discord.widgets.chat.input.WidgetChatInputEditText$3 reason: invalid class name */
|
|
public static final class AnonymousClass3 extends o implements Function0<Unit> {
|
|
public static final AnonymousClass3 INSTANCE = new AnonymousClass3();
|
|
|
|
public AnonymousClass3() {
|
|
super(0);
|
|
}
|
|
|
|
@Override // kotlin.jvm.functions.Function0
|
|
/* renamed from: invoke */
|
|
public final void mo1invoke() {
|
|
}
|
|
}
|
|
|
|
/* compiled from: WidgetChatInputEditText.kt */
|
|
public static final class Companion {
|
|
private Companion() {
|
|
}
|
|
|
|
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
|
this();
|
|
}
|
|
|
|
private final int getCursorPosition(FlexEditText flexEditText) {
|
|
return flexEditText.getSelectionEnd() >= 0 ? flexEditText.getSelectionEnd() : toStringSafe(flexEditText).length();
|
|
}
|
|
|
|
public final void insert(Editable editable, CharSequence charSequence, int i, int i2) {
|
|
m.checkNotNullParameter(editable, "editable");
|
|
m.checkNotNullParameter(charSequence, "charSequence");
|
|
int min = Math.min(i, i2);
|
|
editable.replace(Math.max(0, min), Math.max(i, i2), charSequence, 0, charSequence.length());
|
|
}
|
|
|
|
public final void insertMention(FlexEditText flexEditText, String str, String str2) {
|
|
m.checkNotNullParameter(flexEditText, "editText");
|
|
m.checkNotNullParameter(str, "mention");
|
|
Editable text = flexEditText.getText();
|
|
if (text != null) {
|
|
m.checkNotNullExpressionValue(text, "editText.text ?: return");
|
|
int cursorPosition = getCursorPosition(flexEditText);
|
|
if (str2 != null) {
|
|
int length = cursorPosition - str2.length();
|
|
insert(text, str + ' ', length, cursorPosition);
|
|
flexEditText.setSelection(str.length() + length + 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
public final String toStringSafe(TextView textView) {
|
|
m.checkNotNullParameter(textView, "textView");
|
|
try {
|
|
return textView.getText().toString();
|
|
} catch (Exception unused) {
|
|
return "";
|
|
}
|
|
}
|
|
}
|
|
|
|
public WidgetChatInputEditText(FlexEditText flexEditText, RecyclerView recyclerView, View view, TextView textView, TextView textView2, RecyclerView recyclerView2, RecyclerView recyclerView3, WidgetChatInputApplicationCommandsBinding widgetChatInputApplicationCommandsBinding, Function1<? super Autocompletable, Boolean> function1, Function1<? super List<? extends Autocompletable>, Unit> function12, Function0<Unit> function0, MessageDraftsRepo messageDraftsRepo) {
|
|
m.checkNotNullParameter(flexEditText, "editText");
|
|
m.checkNotNullParameter(recyclerView, "stickersRecycler");
|
|
m.checkNotNullParameter(view, "stickersContainer");
|
|
m.checkNotNullParameter(textView, "stickersHeader");
|
|
m.checkNotNullParameter(textView2, "emojiHeader");
|
|
m.checkNotNullParameter(recyclerView2, "mentionsRecycler");
|
|
m.checkNotNullParameter(recyclerView3, "categoriesRecycler");
|
|
m.checkNotNullParameter(widgetChatInputApplicationCommandsBinding, "binding");
|
|
m.checkNotNullParameter(function1, "handleAutocompleteItemClicked");
|
|
m.checkNotNullParameter(function12, "onScrollVisibleMentions");
|
|
m.checkNotNullParameter(function0, "onAutocompletionsUpdated");
|
|
m.checkNotNullParameter(messageDraftsRepo, "messageDraftsRepo");
|
|
this.editText = flexEditText;
|
|
this.messageDraftsRepo = messageDraftsRepo;
|
|
BehaviorSubject l0 = BehaviorSubject.l0(Boolean.TRUE);
|
|
m.checkNotNullExpressionValue(l0, "BehaviorSubject.create(true)");
|
|
this.emptyTextSubject = l0;
|
|
this.chatInputCommands = new WidgetChatInputAutocomplete(flexEditText, recyclerView, view, textView, textView2, recyclerView2, recyclerView3, widgetChatInputApplicationCommandsBinding, function1, function12, function0);
|
|
setOnSelectionChangedListener();
|
|
setOnTextChangedListener();
|
|
setSoftwareKeyboardSendBehavior();
|
|
setHardwareKeyboardSendBehavior();
|
|
}
|
|
|
|
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
|
|
public /* synthetic */ WidgetChatInputEditText(FlexEditText flexEditText, RecyclerView recyclerView, View view, TextView textView, TextView textView2, RecyclerView recyclerView2, RecyclerView recyclerView3, WidgetChatInputApplicationCommandsBinding widgetChatInputApplicationCommandsBinding, Function1 function1, Function1 function12, Function0 function0, MessageDraftsRepo messageDraftsRepo, int i, DefaultConstructorMarker defaultConstructorMarker) {
|
|
this(flexEditText, recyclerView, view, textView, textView2, recyclerView2, recyclerView3, widgetChatInputApplicationCommandsBinding, (i & 256) != 0 ? AnonymousClass1.INSTANCE : function1, (i & 512) != 0 ? AnonymousClass2.INSTANCE : function12, (i & 1024) != 0 ? AnonymousClass3.INSTANCE : function0, (i & 2048) != 0 ? MessageDraftsRepo.Provider.INSTANCE.get() : messageDraftsRepo);
|
|
}
|
|
|
|
public static final /* synthetic */ WidgetChatInputAutocomplete access$getChatInputCommands$p(WidgetChatInputEditText widgetChatInputEditText) {
|
|
return widgetChatInputEditText.chatInputCommands;
|
|
}
|
|
|
|
public static final /* synthetic */ Subject access$getEmptyTextSubject$p(WidgetChatInputEditText widgetChatInputEditText) {
|
|
return widgetChatInputEditText.emptyTextSubject;
|
|
}
|
|
|
|
public static final /* synthetic */ long access$getLastTypingEmissionMillis$p(WidgetChatInputEditText widgetChatInputEditText) {
|
|
return widgetChatInputEditText.lastTypingEmissionMillis;
|
|
}
|
|
|
|
public static final /* synthetic */ void access$setLastTypingEmissionMillis$p(WidgetChatInputEditText widgetChatInputEditText, long j) {
|
|
widgetChatInputEditText.lastTypingEmissionMillis = j;
|
|
}
|
|
|
|
private final void setHardwareKeyboardSendBehavior() {
|
|
this.editText.setOnKeyListener(new WidgetChatInputEditText$setHardwareKeyboardSendBehavior$1(this));
|
|
}
|
|
|
|
private final void setOnSelectionChangedListener() {
|
|
this.editText.setOnSelectionChangedListener(new WidgetChatInputEditText$setOnSelectionChangedListener$1(this));
|
|
}
|
|
|
|
private final void setOnTextChangedListener() {
|
|
this.editText.addTextChangedListener(new WidgetChatInputEditText$setOnTextChangedListener$1(this));
|
|
}
|
|
|
|
private final void setSoftwareKeyboardSendBehavior() {
|
|
this.editText.setOnEditorActionListener(new WidgetChatInputEditText$setSoftwareKeyboardSendBehavior$1(this));
|
|
}
|
|
|
|
public final void clearLastTypingEmission() {
|
|
this.lastTypingEmissionMillis = 0;
|
|
}
|
|
|
|
public final void configureMentionsDataSubscriptions(AppFragment appFragment) {
|
|
m.checkNotNullParameter(appFragment, "fragment");
|
|
this.chatInputCommands.configureDataSubscriptions(appFragment, this.emptyTextSubject);
|
|
}
|
|
|
|
public final ApplicationCommandData getApplicationCommandData() {
|
|
return this.chatInputCommands.getApplicationCommandData();
|
|
}
|
|
|
|
public final long getChannelId() {
|
|
return this.channelId;
|
|
}
|
|
|
|
public final MessageContent getMatchedContentWithMetaData() {
|
|
Companion companion = Companion;
|
|
String stringSafe = companion.toStringSafe(this.editText);
|
|
String stringSafe2 = companion.toStringSafe(this.editText);
|
|
int length = stringSafe2.length() - 1;
|
|
int i = 0;
|
|
boolean z2 = false;
|
|
while (i <= length) {
|
|
boolean z3 = m.compare(stringSafe2.charAt(!z2 ? i : length), 32) <= 0;
|
|
if (!z2) {
|
|
if (!z3) {
|
|
z2 = true;
|
|
} else {
|
|
i++;
|
|
}
|
|
} else if (!z3) {
|
|
break;
|
|
} else {
|
|
length--;
|
|
}
|
|
}
|
|
String obj = stringSafe2.subSequence(i, length + 1).toString();
|
|
return !TextUtils.isEmpty(obj) ? this.chatInputCommands.replaceAutocompletableDataWithServerValues(stringSafe) : new MessageContent(obj, n.emptyList());
|
|
}
|
|
|
|
public final Function0<Unit> getOnSendListener() {
|
|
return this.onSendListener;
|
|
}
|
|
|
|
public final void onCommandInputsSendError() {
|
|
this.chatInputCommands.onApplicationCommandSendError();
|
|
}
|
|
|
|
public final void saveText() {
|
|
this.messageDraftsRepo.setTextChannelInput(this.channelId, this.editText.getText());
|
|
}
|
|
|
|
public final void setChannelId(long j) {
|
|
this.channelId = j;
|
|
}
|
|
|
|
public final void setChannelId(long j, boolean z2) {
|
|
if (z2) {
|
|
saveText();
|
|
}
|
|
this.channelId = j;
|
|
}
|
|
|
|
public final void setOnSendListener(Function0<Unit> function0) {
|
|
this.onSendListener = function0;
|
|
}
|
|
}
|