discord-jadx/app/src/main/java/com/discord/widgets/chat/input/emoji/WidgetEmojiPicker.java

697 lines
38 KiB
Java

package com.discord.widgets.chat.input.emoji;
import android.content.Context;
import android.content.res.ColorStateList;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.widget.Toolbar;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentViewModelLazyKt;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import c.a.a.e.b;
import c.a.d.e0;
import c.d.b.a.a;
import com.discord.R;
import com.discord.app.AppFragment;
import com.discord.app.AppViewFlipper;
import com.discord.databinding.WidgetEmojiPickerBinding;
import com.discord.models.domain.emoji.Emoji;
import com.discord.utilities.KotlinExtensionsKt;
import com.discord.utilities.analytics.AnalyticsTracker;
import com.discord.utilities.color.ColorCompat;
import com.discord.utilities.dimen.DimenUtils;
import com.discord.utilities.press.RepeatingOnTouchListener;
import com.discord.utilities.recycler.SelfHealingLinearLayoutManager;
import com.discord.utilities.rx.LeadingEdgeThrottle;
import com.discord.utilities.rx.ObservableExtensionsKt;
import com.discord.utilities.view.text.TextWatcherKt;
import com.discord.utilities.viewbinding.FragmentViewBindingDelegate;
import com.discord.utilities.viewbinding.FragmentViewBindingDelegateKt;
import com.discord.utilities.views.StickyHeaderItemDecoration;
import com.discord.widgets.chat.input.OnBackspacePressedListener;
import com.discord.widgets.chat.input.emoji.EmojiCategoryItem;
import com.discord.widgets.chat.input.emoji.EmojiPickerViewModel;
import com.discord.widgets.chat.input.emoji.WidgetEmojiAdapter;
import com.discord.widgets.settings.premium.WidgetSettingsPremium;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.textfield.TextInputEditText;
import d0.z.d.a0;
import d0.z.d.m;
import j0.l.a.r;
import java.io.Serializable;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import kotlin.Lazy;
import kotlin.NoWhenBranchMatchedException;
import kotlin.Pair;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.ranges.IntRange;
import kotlin.reflect.KProperty;
import rx.Observable;
import rx.subjects.PublishSubject;
/* compiled from: WidgetEmojiPicker.kt */
public final class WidgetEmojiPicker extends AppFragment implements OnEmojiSelectedListener {
public static final /* synthetic */ KProperty[] $$delegatedProperties = {a.a0(WidgetEmojiPicker.class, "binding", "getBinding()Lcom/discord/databinding/WidgetEmojiPickerBinding;", 0)};
public static final Companion Companion = new Companion(null);
private static final int EMOJI_PICKER_VIEW_FLIPPER_EMPTY_STATE = 1;
private static final int EMOJI_PICKER_VIEW_FLIPPER_RESULTS = 0;
private final FragmentViewBindingDelegate binding$delegate = FragmentViewBindingDelegateKt.viewBinding$default(this, WidgetEmojiPicker$binding$2.INSTANCE, null, 2, null);
private EmojiCategoryAdapter categoryAdapter;
private LinearLayoutManager categoryLayoutManager;
private WidgetEmojiAdapter emojiAdapter;
private final PublishSubject<Unit> emojiCategoryScrollSubject = PublishSubject.j0();
private EmojiPickerListener emojiPickerListener;
private EmojiPickerMode emojiPickerMode;
private boolean isNextCategoryScrollSmooth = true;
private OnBackspacePressedListener onBackspacePressedListener;
private Function0<Unit> onEmojiSearchOpenedListener;
private EmojiPickerViewModel.ViewState previousViewState;
private boolean restoredSearchQueryFromViewModel;
private final Lazy viewModelForInline$delegate = FragmentViewModelLazyKt.createViewModelLazy(this, a0.getOrCreateKotlinClass(EmojiPickerViewModel.Inline.class), new WidgetEmojiPicker$appActivityViewModels$$inlined$activityViewModels$1(this), new e0(new WidgetEmojiPicker$viewModelForInline$2(this)));
private final Lazy viewModelForSheet$delegate = FragmentViewModelLazyKt.createViewModelLazy(this, a0.getOrCreateKotlinClass(EmojiPickerViewModel.Sheet.class), new WidgetEmojiPicker$appActivityViewModels$$inlined$activityViewModels$3(this), new e0(new WidgetEmojiPicker$viewModelForSheet$2(this)));
/* compiled from: WidgetEmojiPicker.kt */
public static final class Companion {
private Companion() {
}
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
}
public WidgetEmojiPicker() {
super(R.layout.widget_emoji_picker);
}
public static final /* synthetic */ void access$checkUpsellHeaderVisibility(WidgetEmojiPicker widgetEmojiPicker, RecyclerView recyclerView) {
widgetEmojiPicker.checkUpsellHeaderVisibility(recyclerView);
}
public static final /* synthetic */ void access$configureUI(WidgetEmojiPicker widgetEmojiPicker, EmojiPickerViewModel.ViewState viewState) {
widgetEmojiPicker.configureUI(viewState);
}
public static final /* synthetic */ void access$configureUnicodeCategoriesShortcutButton(WidgetEmojiPicker widgetEmojiPicker, EmojiPickerViewModel.ViewState viewState) {
widgetEmojiPicker.configureUnicodeCategoriesShortcutButton(viewState);
}
public static final /* synthetic */ int access$getAdditionalBottomPaddingPx(WidgetEmojiPicker widgetEmojiPicker) {
return widgetEmojiPicker.getAdditionalBottomPaddingPx();
}
public static final /* synthetic */ WidgetEmojiPickerBinding access$getBinding$p(WidgetEmojiPicker widgetEmojiPicker) {
return widgetEmojiPicker.getBinding();
}
public static final /* synthetic */ PublishSubject access$getEmojiCategoryScrollSubject$p(WidgetEmojiPicker widgetEmojiPicker) {
return widgetEmojiPicker.emojiCategoryScrollSubject;
}
public static final /* synthetic */ EmojiPickerContextType access$getEmojiPickerContextType$p(WidgetEmojiPicker widgetEmojiPicker) {
return widgetEmojiPicker.getEmojiPickerContextType();
}
public static final /* synthetic */ EmojiPickerListener access$getEmojiPickerListener$p(WidgetEmojiPicker widgetEmojiPicker) {
return widgetEmojiPicker.emojiPickerListener;
}
public static final /* synthetic */ EmojiPickerMode access$getEmojiPickerMode$p(WidgetEmojiPicker widgetEmojiPicker) {
return widgetEmojiPicker.emojiPickerMode;
}
public static final /* synthetic */ OnBackspacePressedListener access$getOnBackspacePressedListener$p(WidgetEmojiPicker widgetEmojiPicker) {
return widgetEmojiPicker.onBackspacePressedListener;
}
public static final /* synthetic */ Function0 access$getOnEmojiSearchOpenedListener$p(WidgetEmojiPicker widgetEmojiPicker) {
return widgetEmojiPicker.onEmojiSearchOpenedListener;
}
public static final /* synthetic */ EmojiPickerViewModel.ViewState access$getPreviousViewState$p(WidgetEmojiPicker widgetEmojiPicker) {
return widgetEmojiPicker.previousViewState;
}
public static final /* synthetic */ EmojiPickerViewModel access$getViewModel$p(WidgetEmojiPicker widgetEmojiPicker) {
return widgetEmojiPicker.getViewModel();
}
public static final /* synthetic */ void access$handleEvent(WidgetEmojiPicker widgetEmojiPicker, EmojiPickerViewModel.Event event) {
widgetEmojiPicker.handleEvent(event);
}
public static final /* synthetic */ void access$handleInputChanged(WidgetEmojiPicker widgetEmojiPicker, String str) {
widgetEmojiPicker.handleInputChanged(str);
}
public static final /* synthetic */ void access$handleNewEmojiRecyclerScrollPosition(WidgetEmojiPicker widgetEmojiPicker, int i, List list) {
widgetEmojiPicker.handleNewEmojiRecyclerScrollPosition(i, list);
}
public static final /* synthetic */ boolean access$isNextCategoryScrollSmooth$p(WidgetEmojiPicker widgetEmojiPicker) {
return widgetEmojiPicker.isNextCategoryScrollSmooth;
}
public static final /* synthetic */ void access$launchBottomSheet(WidgetEmojiPicker widgetEmojiPicker) {
widgetEmojiPicker.launchBottomSheet();
}
public static final /* synthetic */ void access$onCategoryClicked(WidgetEmojiPicker widgetEmojiPicker, EmojiCategoryItem emojiCategoryItem) {
widgetEmojiPicker.onCategoryClicked(emojiCategoryItem);
}
public static final /* synthetic */ void access$onPremiumCtaClicked(WidgetEmojiPicker widgetEmojiPicker) {
widgetEmojiPicker.onPremiumCtaClicked();
}
public static final /* synthetic */ void access$onSelectedCategoryAdapterPositionUpdated(WidgetEmojiPicker widgetEmojiPicker, int i) {
widgetEmojiPicker.onSelectedCategoryAdapterPositionUpdated(i);
}
public static final /* synthetic */ void access$setEmojiPickerListener$p(WidgetEmojiPicker widgetEmojiPicker, EmojiPickerListener emojiPickerListener) {
widgetEmojiPicker.emojiPickerListener = emojiPickerListener;
}
public static final /* synthetic */ void access$setEmojiPickerMode$p(WidgetEmojiPicker widgetEmojiPicker, EmojiPickerMode emojiPickerMode) {
widgetEmojiPicker.emojiPickerMode = emojiPickerMode;
}
public static final /* synthetic */ void access$setNextCategoryScrollSmooth$p(WidgetEmojiPicker widgetEmojiPicker, boolean z2) {
widgetEmojiPicker.isNextCategoryScrollSmooth = z2;
}
public static final /* synthetic */ void access$setOnBackspacePressedListener$p(WidgetEmojiPicker widgetEmojiPicker, OnBackspacePressedListener onBackspacePressedListener) {
widgetEmojiPicker.onBackspacePressedListener = onBackspacePressedListener;
}
public static final /* synthetic */ void access$setOnEmojiSearchOpenedListener$p(WidgetEmojiPicker widgetEmojiPicker, Function0 function0) {
widgetEmojiPicker.onEmojiSearchOpenedListener = function0;
}
public static final /* synthetic */ void access$setPreviousViewState$p(WidgetEmojiPicker widgetEmojiPicker, EmojiPickerViewModel.ViewState viewState) {
widgetEmojiPicker.previousViewState = viewState;
}
private final void checkUpsellHeaderVisibility(RecyclerView recyclerView) {
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
Objects.requireNonNull(layoutManager, "null cannot be cast to non-null type androidx.recyclerview.widget.GridLayoutManager");
GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
int findFirstCompletelyVisibleItemPosition = gridLayoutManager.findFirstCompletelyVisibleItemPosition();
int findLastCompletelyVisibleItemPosition = gridLayoutManager.findLastCompletelyVisibleItemPosition();
if (findLastCompletelyVisibleItemPosition >= findFirstCompletelyVisibleItemPosition) {
while (true) {
RecyclerView.ViewHolder findViewHolderForAdapterPosition = recyclerView.findViewHolderForAdapterPosition(findLastCompletelyVisibleItemPosition);
WidgetEmojiAdapter.HeaderItem.StringHeaderItem stringHeaderItem = null;
if (!(findViewHolderForAdapterPosition instanceof WidgetEmojiAdapter.HeaderViewHolder)) {
findViewHolderForAdapterPosition = null;
}
WidgetEmojiAdapter.HeaderViewHolder headerViewHolder = (WidgetEmojiAdapter.HeaderViewHolder) findViewHolderForAdapterPosition;
if (headerViewHolder != null) {
WidgetEmojiAdapter.HeaderItem boundItem = headerViewHolder.getBoundItem();
if (boundItem instanceof WidgetEmojiAdapter.HeaderItem.StringHeaderItem) {
stringHeaderItem = boundItem;
}
WidgetEmojiAdapter.HeaderItem.StringHeaderItem stringHeaderItem2 = stringHeaderItem;
if (stringHeaderItem2 != null && stringHeaderItem2.getStringRes() == R.string.emoji_available_with_premium) {
getViewModel().onUpsellHeaderVisible();
}
}
if (findLastCompletelyVisibleItemPosition != findFirstCompletelyVisibleItemPosition) {
findLastCompletelyVisibleItemPosition--;
} else {
return;
}
}
}
}
private final void configureUI(EmojiPickerViewModel.ViewState viewState) {
Unit unit;
String searchQuery = viewState != null ? viewState.getSearchQuery() : null;
if (!this.restoredSearchQueryFromViewModel && searchQuery != null) {
this.restoredSearchQueryFromViewModel = true;
getBinding().m.setText(searchQuery);
}
if (viewState != null) {
if (viewState instanceof EmojiPickerViewModel.ViewState.EmptySearch) {
AppViewFlipper appViewFlipper = getBinding().f1821c;
m.checkNotNullExpressionValue(appViewFlipper, "binding.chatInputEmojiPickerViewFlipper");
appViewFlipper.setDisplayedChild(1);
setEmojiPickerBottomBarVisible(false);
unit = Unit.a;
} else if (viewState instanceof EmojiPickerViewModel.ViewState.Results) {
EmojiPickerViewModel.ViewState.Results results = (EmojiPickerViewModel.ViewState.Results) viewState;
setEmojiPickerBottomBarVisible(results.getShowBottomBar());
AppViewFlipper appViewFlipper2 = getBinding().f1821c;
m.checkNotNullExpressionValue(appViewFlipper2, "binding.chatInputEmojiPickerViewFlipper");
appViewFlipper2.setDisplayedChild(0);
WidgetEmojiAdapter widgetEmojiAdapter = this.emojiAdapter;
if (widgetEmojiAdapter == null) {
m.throwUninitializedPropertyAccessException("emojiAdapter");
}
widgetEmojiAdapter.setData(results.getResultItems());
WidgetEmojiAdapter widgetEmojiAdapter2 = this.emojiAdapter;
if (widgetEmojiAdapter2 == null) {
m.throwUninitializedPropertyAccessException("emojiAdapter");
}
widgetEmojiAdapter2.setOnScrollPositionListener(new WidgetEmojiPicker$configureUI$1(this, viewState));
EmojiCategoryAdapter emojiCategoryAdapter = this.categoryAdapter;
if (emojiCategoryAdapter == null) {
m.throwUninitializedPropertyAccessException("categoryAdapter");
}
emojiCategoryAdapter.setItems(results.getCategoryItems());
configureUnicodeCategoriesShortcutButton(viewState);
unit = Unit.a;
} else {
throw new NoWhenBranchMatchedException();
}
KotlinExtensionsKt.getExhaustive(unit);
this.previousViewState = viewState;
}
}
private final void configureUnicodeCategoriesShortcutButton(EmojiPickerViewModel.ViewState viewState) {
if (!(viewState instanceof EmojiPickerViewModel.ViewState.Results)) {
viewState = null;
}
EmojiPickerViewModel.ViewState.Results results = (EmojiPickerViewModel.ViewState.Results) viewState;
if (results != null) {
EmojiCategoryItem.StandardItem firstUnicodeEmojiCategoryItem = results.getFirstUnicodeEmojiCategoryItem();
if (firstUnicodeEmojiCategoryItem != null) {
getBinding().k.setImageDrawable(ContextCompat.getDrawable(requireContext(), EmojiCategoryViewHolder.Companion.getCategoryIconResId(firstUnicodeEmojiCategoryItem.getEmojiCategory())));
}
LinearLayoutManager linearLayoutManager = this.categoryLayoutManager;
if (linearLayoutManager == null) {
m.throwUninitializedPropertyAccessException("categoryLayoutManager");
}
int findFirstCompletelyVisibleItemPosition = linearLayoutManager.findFirstCompletelyVisibleItemPosition();
LinearLayoutManager linearLayoutManager2 = this.categoryLayoutManager;
if (linearLayoutManager2 == null) {
m.throwUninitializedPropertyAccessException("categoryLayoutManager");
}
int findLastCompletelyVisibleItemPosition = linearLayoutManager2.findLastCompletelyVisibleItemPosition();
if (findFirstCompletelyVisibleItemPosition != -1 && findLastCompletelyVisibleItemPosition != -1) {
EmojiCategoryAdapter emojiCategoryAdapter = this.categoryAdapter;
if (emojiCategoryAdapter == null) {
m.throwUninitializedPropertyAccessException("categoryAdapter");
}
if (findLastCompletelyVisibleItemPosition < emojiCategoryAdapter.getItemCount()) {
EmojiCategoryAdapter emojiCategoryAdapter2 = this.categoryAdapter;
if (emojiCategoryAdapter2 == null) {
m.throwUninitializedPropertyAccessException("categoryAdapter");
}
EmojiCategoryItem itemAtPosition = emojiCategoryAdapter2.getItemAtPosition(findFirstCompletelyVisibleItemPosition);
EmojiCategoryAdapter emojiCategoryAdapter3 = this.categoryAdapter;
if (emojiCategoryAdapter3 == null) {
m.throwUninitializedPropertyAccessException("categoryAdapter");
}
EmojiCategoryItem itemAtPosition2 = emojiCategoryAdapter3.getItemAtPosition(findLastCompletelyVisibleItemPosition);
boolean z2 = true;
int i = 0;
boolean z3 = itemAtPosition.containsOnlyUnicodeEmoji() || itemAtPosition2.containsOnlyUnicodeEmoji();
ImageView imageView = getBinding().k;
m.checkNotNullExpressionValue(imageView, "binding.emojiPickerUnicodeEmojiShortcutButton");
if (z3 || firstUnicodeEmojiCategoryItem == null) {
z2 = false;
}
if (!z2) {
i = 8;
}
imageView.setVisibility(i);
}
}
}
}
private final int getAdditionalBottomPaddingPx() {
if (Build.VERSION.SDK_INT >= 29) {
return DimenUtils.dpToPixels(8);
}
return 0;
}
private final WidgetEmojiPickerBinding getBinding() {
return (WidgetEmojiPickerBinding) this.binding$delegate.getValue((Fragment) this, $$delegatedProperties[0]);
}
private final EmojiPickerContextType getEmojiPickerContextType() {
Bundle arguments = getArguments();
Serializable serializable = arguments != null ? arguments.getSerializable(EmojiPickerNavigator.ARG_EMOJI_PICKER_CONTEXT_TYPE) : null;
Objects.requireNonNull(serializable, "null cannot be cast to non-null type com.discord.widgets.chat.input.emoji.EmojiPickerContextType");
return (EmojiPickerContextType) serializable;
}
private final EmojiPickerMode getMode() {
Bundle arguments = getArguments();
EmojiPickerMode emojiPickerMode = null;
Serializable serializable = arguments != null ? arguments.getSerializable("MODE") : null;
if (serializable instanceof EmojiPickerMode) {
emojiPickerMode = serializable;
}
EmojiPickerMode emojiPickerMode2 = emojiPickerMode;
return emojiPickerMode2 != null ? emojiPickerMode2 : EmojiPickerMode.INLINE;
}
private final EmojiPickerViewModel getViewModel() {
return getMode() == EmojiPickerMode.INLINE ? getViewModelForInline() : getViewModelForSheet();
}
private final EmojiPickerViewModel.Inline getViewModelForInline() {
return (EmojiPickerViewModel.Inline) this.viewModelForInline$delegate.getValue();
}
private final EmojiPickerViewModel.Sheet getViewModelForSheet() {
return (EmojiPickerViewModel.Sheet) this.viewModelForSheet$delegate.getValue();
}
private final void handleEvent(EmojiPickerViewModel.Event event) {
Unit unit;
if (event instanceof EmojiPickerViewModel.Event.ScrollToEmojiListPosition) {
WidgetEmojiAdapter widgetEmojiAdapter = this.emojiAdapter;
if (widgetEmojiAdapter == null) {
m.throwUninitializedPropertyAccessException("emojiAdapter");
}
widgetEmojiAdapter.scrollToPosition(((EmojiPickerViewModel.Event.ScrollToEmojiListPosition) event).getPosition());
unit = Unit.a;
} else if (event instanceof EmojiPickerViewModel.Event.ShowPremiumUpsellDialog) {
b.C0013b bVar = b.j;
FragmentManager parentFragmentManager = getParentFragmentManager();
m.checkNotNullExpressionValue(parentFragmentManager, "parentFragmentManager");
EmojiPickerViewModel.Event.ShowPremiumUpsellDialog showPremiumUpsellDialog = (EmojiPickerViewModel.Event.ShowPremiumUpsellDialog) event;
b.C0013b.a(bVar, parentFragmentManager, showPremiumUpsellDialog.getPageNumber(), c.a.k.b.k(this, showPremiumUpsellDialog.getHeader(), new Object[0], null, 4).toString(), c.a.k.b.k(this, showPremiumUpsellDialog.getBody(), new Object[0], null, 4).toString(), null, showPremiumUpsellDialog.getSectionName(), null, null, showPremiumUpsellDialog.getShowOtherPages(), showPremiumUpsellDialog.getShowLearnMore(), 208);
unit = Unit.a;
} else {
throw new NoWhenBranchMatchedException();
}
KotlinExtensionsKt.getExhaustive(unit);
}
private final void handleInputChanged(String str) {
getViewModel().setSearchText(str);
boolean z2 = str.length() == 0;
getBinding().l.setImageResource(z2 ? R.drawable.ic_search_16dp : R.drawable.ic_clear_white_24dp);
ImageView imageView = getBinding().l;
m.checkNotNullExpressionValue(imageView, "binding.emojiSearchClear");
imageView.setImageTintList(z2 ? ColorStateList.valueOf(ColorCompat.getThemedColor(requireContext(), (int) R.attr.colorTextMuted)) : ColorStateList.valueOf(ColorCompat.getThemedColor(requireContext(), (int) R.attr.colorTextNormal)));
if (z2) {
ImageView imageView2 = getBinding().l;
m.checkNotNullExpressionValue(imageView2, "binding.emojiSearchClear");
imageView2.setContentDescription(c.a.k.b.k(this, R.string.search_emojis, new Object[0], null, 4));
ImageView imageView3 = getBinding().l;
m.checkNotNullExpressionValue(imageView3, "binding.emojiSearchClear");
imageView3.setImportantForAccessibility(2);
return;
}
ImageView imageView4 = getBinding().l;
m.checkNotNullExpressionValue(imageView4, "binding.emojiSearchClear");
imageView4.setContentDescription(c.a.k.b.k(this, R.string.reset, new Object[0], null, 4));
ImageView imageView5 = getBinding().l;
m.checkNotNullExpressionValue(imageView5, "binding.emojiSearchClear");
imageView5.setImportantForAccessibility(1);
}
private final void handleNewEmojiRecyclerScrollPosition(int i, List<? extends EmojiCategoryItem> list) {
for (EmojiCategoryItem emojiCategoryItem : list) {
Pair<Integer, Integer> categoryRange = emojiCategoryItem.getCategoryRange();
int intValue = categoryRange.getFirst().intValue();
int intValue2 = categoryRange.getSecond().intValue();
if (intValue <= i && intValue2 > i && !emojiCategoryItem.isSelected()) {
selectCategoryByItemId(emojiCategoryItem.getStableId());
return;
}
}
}
private final void initializeInputButtons() {
int i = 0;
boolean z2 = this.emojiPickerMode == EmojiPickerMode.INLINE;
ImageView imageView = getBinding().f;
m.checkNotNullExpressionValue(imageView, "binding.emojiPickerBackspaceIcon");
if (!z2) {
i = 8;
}
imageView.setVisibility(i);
getBinding().k.setOnClickListener(new WidgetEmojiPicker$initializeInputButtons$1(this));
getBinding().f.setOnTouchListener(new RepeatingOnTouchListener(250, 50, TimeUnit.MILLISECONDS, new WidgetEmojiPicker$initializeInputButtons$2(this), new WidgetEmojiPicker$initializeInputButtons$3(this)));
}
private final void initializeSearchBar() {
AppBarLayout appBarLayout = getBinding().d;
m.checkNotNullExpressionValue(appBarLayout, "binding.emojiAppBar");
EmojiPickerMode emojiPickerMode = this.emojiPickerMode;
EmojiPickerMode emojiPickerMode2 = EmojiPickerMode.INLINE;
boolean z2 = true;
int i = 0;
appBarLayout.setVisibility(emojiPickerMode != emojiPickerMode2 ? 0 : 8);
TextView textView = getBinding().e;
m.checkNotNullExpressionValue(textView, "binding.emojiInlineSearchButton");
textView.setVisibility(this.emojiPickerMode == emojiPickerMode2 ? 0 : 8);
TextInputEditText textInputEditText = getBinding().m;
m.checkNotNullExpressionValue(textInputEditText, "binding.emojiSearchInput");
if (this.emojiPickerMode == emojiPickerMode2) {
z2 = false;
}
if (!z2) {
i = 8;
}
textInputEditText.setVisibility(i);
getBinding().e.setOnClickListener(new WidgetEmojiPicker$initializeSearchBar$1(this));
getBinding().l.setOnClickListener(new WidgetEmojiPicker$initializeSearchBar$2(this));
TextInputEditText textInputEditText2 = getBinding().m;
m.checkNotNullExpressionValue(textInputEditText2, "binding.emojiSearchInput");
TextWatcherKt.addLifecycleAwareTextWatcher(textInputEditText2, this, new WidgetEmojiPicker$initializeSearchBar$3(this));
if (this.emojiPickerMode == EmojiPickerMode.BOTTOM_SHEET) {
getBinding().m.requestFocus();
TextInputEditText textInputEditText3 = getBinding().m;
m.checkNotNullExpressionValue(textInputEditText3, "binding.emojiSearchInput");
showKeyboard(textInputEditText3);
}
}
private final void launchBottomSheet() {
FragmentManager parentFragmentManager = getParentFragmentManager();
m.checkNotNullExpressionValue(parentFragmentManager, "parentFragmentManager");
EmojiPickerNavigator.launchBottomSheet$default(parentFragmentManager, this.emojiPickerListener, getEmojiPickerContextType(), null, 8, null);
}
private final void onCategoryClicked(EmojiCategoryItem emojiCategoryItem) {
if (emojiCategoryItem instanceof EmojiCategoryItem.GuildItem) {
AnalyticsTracker.INSTANCE.emojiCategorySelected(((EmojiCategoryItem.GuildItem) emojiCategoryItem).getGuild().getId());
}
selectCategoryByItemId(emojiCategoryItem.getStableId());
Pair<Integer, Integer> categoryRange = emojiCategoryItem.getCategoryRange();
WidgetEmojiAdapter widgetEmojiAdapter = this.emojiAdapter;
if (widgetEmojiAdapter == null) {
m.throwUninitializedPropertyAccessException("emojiAdapter");
}
widgetEmojiAdapter.scrollToPosition(categoryRange.getFirst().intValue());
}
private final void onPremiumCtaClicked() {
WidgetSettingsPremium.Companion.launch$default(WidgetSettingsPremium.Companion, requireContext(), null, null, 6, null);
}
private final void onSelectedCategoryAdapterPositionUpdated(int i) {
LinearLayoutManager linearLayoutManager = this.categoryLayoutManager;
if (linearLayoutManager == null) {
m.throwUninitializedPropertyAccessException("categoryLayoutManager");
}
int findFirstCompletelyVisibleItemPosition = linearLayoutManager.findFirstCompletelyVisibleItemPosition();
LinearLayoutManager linearLayoutManager2 = this.categoryLayoutManager;
if (linearLayoutManager2 == null) {
m.throwUninitializedPropertyAccessException("categoryLayoutManager");
}
int findLastCompletelyVisibleItemPosition = linearLayoutManager2.findLastCompletelyVisibleItemPosition();
int i2 = findLastCompletelyVisibleItemPosition - findFirstCompletelyVisibleItemPosition;
if (!new IntRange(findFirstCompletelyVisibleItemPosition, findLastCompletelyVisibleItemPosition).contains(i)) {
int max = Math.max(i < findFirstCompletelyVisibleItemPosition ? i - i2 : i + i2, 0);
EmojiCategoryAdapter emojiCategoryAdapter = this.categoryAdapter;
if (emojiCategoryAdapter == null) {
m.throwUninitializedPropertyAccessException("categoryAdapter");
}
int min = Math.min(max, emojiCategoryAdapter.getItemCount() - 1);
if (this.isNextCategoryScrollSmooth) {
getBinding().i.smoothScrollToPosition(min);
return;
}
getBinding().i.scrollToPosition(min);
this.isNextCategoryScrollSmooth = true;
}
}
private final void selectCategoryByItemId(long j) {
getViewModel().setSelectedCategoryItemId(j);
}
private final void setEmojiPickerBottomBarVisible(boolean z2) {
ConstraintLayout constraintLayout = getBinding().g;
m.checkNotNullExpressionValue(constraintLayout, "binding.emojiPickerBottomBar");
int i = 8;
int i2 = 0;
constraintLayout.setVisibility(z2 ? 0 : 8);
View view = getBinding().h;
m.checkNotNullExpressionValue(view, "binding.emojiPickerBottomBarDivider");
if (z2) {
i = 0;
}
view.setVisibility(i);
RecyclerView recyclerView = getBinding().b;
m.checkNotNullExpressionValue(recyclerView, "binding.chatInputEmojiPickerRecycler");
ViewGroup.LayoutParams layoutParams = recyclerView.getLayoutParams();
Objects.requireNonNull(layoutParams, "null cannot be cast to non-null type android.view.ViewGroup.MarginLayoutParams");
ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) layoutParams;
if (z2) {
i2 = getResources().getDimensionPixelSize(R.dimen.expression_picker_category_bar_height);
}
marginLayoutParams.setMargins(marginLayoutParams.leftMargin, marginLayoutParams.topMargin, marginLayoutParams.rightMargin, i2);
recyclerView.setLayoutParams(marginLayoutParams);
}
private final void setUpCategoryRecycler() {
RecyclerView recyclerView = getBinding().i;
m.checkNotNullExpressionValue(recyclerView, "binding.emojiPickerCategoryRecycler");
recyclerView.setItemAnimator(null);
EmojiCategoryAdapter emojiCategoryAdapter = new EmojiCategoryAdapter(new WidgetEmojiPicker$setUpCategoryRecycler$1(this), new WidgetEmojiPicker$setUpCategoryRecycler$2(this), this, null, 8, null);
this.categoryAdapter = emojiCategoryAdapter;
if (emojiCategoryAdapter == null) {
m.throwUninitializedPropertyAccessException("categoryAdapter");
}
emojiCategoryAdapter.setHasStableIds(true);
RecyclerView recyclerView2 = getBinding().i;
m.checkNotNullExpressionValue(recyclerView2, "binding.emojiPickerCategoryRecycler");
EmojiCategoryAdapter emojiCategoryAdapter2 = this.categoryAdapter;
if (emojiCategoryAdapter2 == null) {
m.throwUninitializedPropertyAccessException("categoryAdapter");
}
recyclerView2.setAdapter(emojiCategoryAdapter2);
RecyclerView recyclerView3 = getBinding().i;
m.checkNotNullExpressionValue(recyclerView3, "binding.emojiPickerCategoryRecycler");
EmojiCategoryAdapter emojiCategoryAdapter3 = this.categoryAdapter;
if (emojiCategoryAdapter3 == null) {
m.throwUninitializedPropertyAccessException("categoryAdapter");
}
this.categoryLayoutManager = new SelfHealingLinearLayoutManager(recyclerView3, emojiCategoryAdapter3, 0, false, 8, null);
RecyclerView recyclerView4 = getBinding().i;
m.checkNotNullExpressionValue(recyclerView4, "binding.emojiPickerCategoryRecycler");
LinearLayoutManager linearLayoutManager = this.categoryLayoutManager;
if (linearLayoutManager == null) {
m.throwUninitializedPropertyAccessException("categoryLayoutManager");
}
recyclerView4.setLayoutManager(linearLayoutManager);
getBinding().i.addOnScrollListener(new WidgetEmojiPicker$setUpCategoryRecycler$3(this));
}
private final void setUpEmojiRecycler() {
RecyclerView recyclerView = getBinding().b;
m.checkNotNullExpressionValue(recyclerView, "binding.chatInputEmojiPickerRecycler");
recyclerView.setItemAnimator(null);
RecyclerView recyclerView2 = getBinding().b;
m.checkNotNullExpressionValue(recyclerView2, "binding.chatInputEmojiPickerRecycler");
FragmentManager parentFragmentManager = getParentFragmentManager();
m.checkNotNullExpressionValue(parentFragmentManager, "parentFragmentManager");
WidgetEmojiAdapter widgetEmojiAdapter = new WidgetEmojiAdapter(recyclerView2, parentFragmentManager, this, new WidgetEmojiPicker$setUpEmojiRecycler$1(this), new WidgetEmojiPicker$setUpEmojiRecycler$2(this));
this.emojiAdapter = widgetEmojiAdapter;
if (widgetEmojiAdapter == null) {
m.throwUninitializedPropertyAccessException("emojiAdapter");
}
StickyHeaderItemDecoration stickyHeaderItemDecoration = new StickyHeaderItemDecoration(widgetEmojiAdapter);
getBinding().b.addItemDecoration(stickyHeaderItemDecoration);
RecyclerView recyclerView3 = getBinding().b;
m.checkNotNullExpressionValue(recyclerView3, "binding.chatInputEmojiPickerRecycler");
stickyHeaderItemDecoration.blockClicks(recyclerView3);
getBinding().b.setHasFixedSize(true);
getBinding().b.addOnScrollListener(new WidgetEmojiPicker$setUpEmojiRecycler$3(this));
}
private final void setWindowInsetsListeners() {
ViewCompat.setOnApplyWindowInsetsListener(getBinding().j, new WidgetEmojiPicker$setWindowInsetsListeners$1(this));
}
private final void subscribeToCategoryRecyclerScrolls() {
PublishSubject<Unit> publishSubject = this.emojiCategoryScrollSubject;
Observable g02 = Observable.g0(new r(publishSubject.i, new LeadingEdgeThrottle(250, TimeUnit.MILLISECONDS)));
m.checkNotNullExpressionValue(g02, "emojiCategoryScrollSubje…, TimeUnit.MILLISECONDS))");
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui$default(g02, this, null, 2, null), WidgetEmojiPicker.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetEmojiPicker$subscribeToCategoryRecyclerScrolls$1(this), 62, (Object) null);
}
public final void clearSearchInput() {
getViewModel().setSearchText("");
}
@Override // androidx.fragment.app.Fragment
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
this.emojiPickerMode = getMode();
}
@Override // com.discord.widgets.chat.input.emoji.OnEmojiSelectedListener
public void onEmojiSelected(Emoji emoji) {
m.checkNotNullParameter(emoji, "emoji");
getViewModel().onEmojiSelected(emoji, new WidgetEmojiPicker$onEmojiSelected$1(this));
}
@Override // com.discord.app.AppFragment
public void onViewBound(View view) {
m.checkNotNullParameter(view, "view");
super.onViewBound(view);
CoordinatorLayout coordinatorLayout = getBinding().j;
m.checkNotNullExpressionValue(coordinatorLayout, "binding.emojiPickerContainer");
coordinatorLayout.setPadding(coordinatorLayout.getPaddingLeft(), coordinatorLayout.getPaddingTop(), coordinatorLayout.getPaddingRight(), getAdditionalBottomPaddingPx());
EmojiPickerMode mode = getMode();
EmojiPickerMode emojiPickerMode = EmojiPickerMode.INLINE;
if (mode == emojiPickerMode) {
setWindowInsetsListeners();
}
initializeInputButtons();
initializeSearchBar();
Toolbar toolbar = getBinding().n;
m.checkNotNullExpressionValue(toolbar, "binding.emojiToolbar");
ViewGroup.LayoutParams layoutParams = toolbar.getLayoutParams();
Objects.requireNonNull(layoutParams, "null cannot be cast to non-null type com.google.android.material.appbar.AppBarLayout.LayoutParams");
((AppBarLayout.LayoutParams) layoutParams).setScrollFlags(this.emojiPickerMode == emojiPickerMode ? 5 : 0);
setUpEmojiRecycler();
setUpCategoryRecycler();
}
@Override // com.discord.app.AppFragment
public void onViewBoundOrOnResume() {
super.onViewBoundOrOnResume();
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.bindToComponentLifecycle$default(getViewModel().observeViewState(), this, null, 2, null), WidgetEmojiPicker.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetEmojiPicker$onViewBoundOrOnResume$1(this), 62, (Object) null);
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.bindToComponentLifecycle$default(getViewModel().observeEvents(), this, null, 2, null), WidgetEmojiPicker.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetEmojiPicker$onViewBoundOrOnResume$2(this), 62, (Object) null);
subscribeToCategoryRecyclerScrolls();
}
public final void scrollToTop() {
WidgetEmojiAdapter widgetEmojiAdapter = this.emojiAdapter;
if (widgetEmojiAdapter == null) {
m.throwUninitializedPropertyAccessException("emojiAdapter");
}
if (widgetEmojiAdapter.getItemCount() > 0) {
getBinding().b.scrollToPosition(0);
}
}
public final void setListener(EmojiPickerListener emojiPickerListener) {
this.emojiPickerListener = emojiPickerListener;
}
public final void setOnBackspacePressedListener(OnBackspacePressedListener onBackspacePressedListener) {
this.onBackspacePressedListener = onBackspacePressedListener;
}
}