package com.discord.stores; import android.content.Context; import com.discord.utilities.rx.ObservableExtensionsKt; import com.discord.utilities.search.query.FilterType; import com.discord.utilities.search.query.node.QueryNode; import com.discord.utilities.search.query.node.answer.ChannelNode; import com.discord.utilities.search.query.node.answer.HasAnswerOption; import com.discord.utilities.search.query.node.answer.HasNode; import com.discord.utilities.search.query.node.answer.UserNode; import com.discord.utilities.search.query.node.content.ContentNode; import com.discord.utilities.search.query.node.filter.FilterNode; import com.discord.utilities.search.query.parsing.QueryParser; import com.discord.utilities.search.strings.SearchStringProvider; import com.discord.utilities.search.suggestion.entries.ChannelSuggestion; import com.discord.utilities.search.suggestion.entries.UserSuggestion; import d0.t.n; import d0.t.u; import d0.z.d.m; import d0.z.d.o; import j0.k.b; import j0.p.a; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.concurrent.TimeUnit; import kotlin.NoWhenBranchMatchedException; import kotlin.Unit; import kotlin.jvm.functions.Function0; import kotlin.jvm.functions.Function1; import rx.Observable; import rx.Subscription; import rx.subjects.BehaviorSubject; import rx.subjects.PublishSubject; import rx.subjects.SerializedSubject; /* compiled from: StoreSearchInput.kt */ public final class StoreSearchInput { private final SerializedSubject, List> astSubject; private final Observable> currentParsedInput; private final Observable> forcedInput; private final PublishSubject> forcedInputSubject; private final SerializedSubject inputSubject = new SerializedSubject<>(BehaviorSubject.l0("")); private Subscription inputSubscription; private final Observable isInputValid; private final SerializedSubject isInputValidSubject; /* compiled from: StoreSearchInput.kt */ /* renamed from: com.discord.stores.StoreSearchInput$1 reason: invalid class name */ public static final class AnonymousClass1 implements b, Boolean> { public static final AnonymousClass1 INSTANCE = new AnonymousClass1(); public final Boolean call(List list) { m.checkNotNullExpressionValue(list, "it"); boolean z2 = true; if (!(list instanceof Collection) || !list.isEmpty()) { Iterator it = list.iterator(); while (true) { if (it.hasNext()) { if (!(it.next() instanceof FilterNode)) { break; } } else { break; } } } z2 = false; return Boolean.valueOf(z2); } } /* compiled from: StoreSearchInput.kt */ /* renamed from: com.discord.stores.StoreSearchInput$2 reason: invalid class name */ public static final class AnonymousClass2 extends o implements Function1 { public final /* synthetic */ StoreSearchInput this$0; /* JADX INFO: super call moved to the top of the method (can break code semantics) */ public AnonymousClass2(StoreSearchInput storeSearchInput) { super(1); this.this$0 = storeSearchInput; } /* 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(Boolean bool) { invoke(bool); return Unit.a; } public final void invoke(Boolean bool) { StoreSearchInput.access$isInputValidSubject$p(this.this$0).j.onNext(bool); } } public final /* synthetic */ class WhenMappings { public static final /* synthetic */ int[] $EnumSwitchMapping$0; static { FilterType.values(); int[] iArr = new int[4]; $EnumSwitchMapping$0 = iArr; iArr[FilterType.FROM.ordinal()] = 1; iArr[FilterType.MENTIONS.ordinal()] = 2; iArr[FilterType.IN.ordinal()] = 3; iArr[FilterType.HAS.ordinal()] = 4; } } public StoreSearchInput() { SerializedSubject, List> serializedSubject = new SerializedSubject<>(BehaviorSubject.k0()); this.astSubject = serializedSubject; SerializedSubject serializedSubject2 = new SerializedSubject<>(BehaviorSubject.l0(Boolean.FALSE)); this.isInputValidSubject = serializedSubject2; PublishSubject> k0 = PublishSubject.k0(); this.forcedInputSubject = k0; this.isInputValid = serializedSubject2; this.currentParsedInput = serializedSubject; m.checkNotNullExpressionValue(k0, "forcedInputSubject"); this.forcedInput = k0; Observable X = ObservableExtensionsKt.leadingEdgeThrottle(serializedSubject, 50, TimeUnit.MILLISECONDS).F(AnonymousClass1.INSTANCE).X(a.a()); m.checkNotNullExpressionValue(X, "astSubject\n .lead…Schedulers.computation())"); ObservableExtensionsKt.appSubscribe$default(X, (Context) null, "validateSearchInput", (Function1) null, new AnonymousClass2(this), (Function1) null, (Function0) null, (Function0) null, 117, (Object) null); } public static final /* synthetic */ void access$handleInputSubscription(StoreSearchInput storeSearchInput, Subscription subscription) { storeSearchInput.handleInputSubscription(subscription); } public static final /* synthetic */ SerializedSubject access$isInputValidSubject$p(StoreSearchInput storeSearchInput) { return storeSearchInput.isInputValidSubject; } private final int getAnswerReplacementStart(List list) { if (list.size() <= 1) { return 0; } int lastIndex = n.getLastIndex(list); QueryNode queryNode = (QueryNode) list.get(lastIndex); int i = lastIndex - 1; QueryNode queryNode2 = (QueryNode) list.get(i); if (queryNode instanceof FilterNode) { return lastIndex; } if (!(queryNode instanceof ContentNode) || !(queryNode2 instanceof FilterNode)) { return -1; } return i; } private final synchronized void handleInputSubscription(Subscription subscription) { Subscription subscription2 = this.inputSubscription; if (subscription2 != null) { subscription2.unsubscribe(); } this.inputSubscription = subscription; } private final void replaceAndPublish(int i, List list, List list2) { if (i >= 0 && i <= list2.size()) { list2.subList(i, list2.size()).clear(); list2.addAll(i, list); this.forcedInputSubject.j.onNext(list2); } } public final void clear() { handleInputSubscription(null); this.inputSubject.j.onNext(""); } public final Observable> getCurrentParsedInput() { return this.currentParsedInput; } public final Observable> getForcedInput() { return this.forcedInput; } public final void init(SearchStringProvider searchStringProvider) { m.checkNotNullParameter(searchStringProvider, "searchStringProvider"); Observable X = ObservableExtensionsKt.leadingEdgeThrottle(this.inputSubject, 100, TimeUnit.MILLISECONDS).r().F(new StoreSearchInput$init$1(new QueryParser(searchStringProvider))).X(a.a()); m.checkNotNullExpressionValue(X, "inputSubject\n .le…Schedulers.computation())"); ObservableExtensionsKt.appSubscribe$default(X, StoreSearchInput.class, (Context) null, new StoreSearchInput$init$2(this), (Function1) null, (Function0) null, (Function0) null, new StoreSearchInput$init$3(this.astSubject), 58, (Object) null); } public final Observable isInputValid() { return this.isInputValid; } public final void onFilterClicked(FilterType filterType, SearchStringProvider searchStringProvider, List list) { FilterNode filterNode; m.checkNotNullParameter(filterType, "filterType"); m.checkNotNullParameter(searchStringProvider, "searchStringProvider"); m.checkNotNullParameter(list, "query"); ArrayList arrayList = new ArrayList(list); int ordinal = filterType.ordinal(); if (ordinal == 0) { filterNode = new FilterNode(FilterType.FROM, searchStringProvider.getFromFilterString()); } else if (ordinal == 1) { filterNode = new FilterNode(FilterType.MENTIONS, searchStringProvider.getMentionsFilterString()); } else if (ordinal == 2) { filterNode = new FilterNode(FilterType.HAS, searchStringProvider.getHasFilterString()); } else if (ordinal == 3) { filterNode = new FilterNode(FilterType.IN, searchStringProvider.getInFilterString()); } else { throw new NoWhenBranchMatchedException(); } replaceAndPublish(arrayList.isEmpty() ? 0 : ((QueryNode) u.last(arrayList)) instanceof ContentNode ? n.getLastIndex(list) : list.size(), d0.t.m.listOf(filterNode), list); } public final void onFromUserClicked(UserSuggestion userSuggestion, CharSequence charSequence, List list) { m.checkNotNullParameter(userSuggestion, "userSuggestion"); m.checkNotNullParameter(charSequence, "fromFilterString"); m.checkNotNullParameter(list, "query"); replaceAndPublish(getAnswerReplacementStart(list), n.listOf((Object[]) new QueryNode[]{new FilterNode(FilterType.FROM, charSequence), new UserNode(userSuggestion.getUserName(), userSuggestion.getDiscriminator())}), list); } public final void onHasClicked(HasAnswerOption hasAnswerOption, CharSequence charSequence, CharSequence charSequence2, List list) { m.checkNotNullParameter(hasAnswerOption, "hasAnswerOption"); m.checkNotNullParameter(charSequence, "hasFilterString"); m.checkNotNullParameter(charSequence2, "hasAnswerString"); m.checkNotNullParameter(list, "query"); replaceAndPublish(getAnswerReplacementStart(list), n.listOf((Object[]) new QueryNode[]{new FilterNode(FilterType.HAS, charSequence), new HasNode(hasAnswerOption, charSequence2)}), list); } public final void onInChannelClicked(ChannelSuggestion channelSuggestion, CharSequence charSequence, List list) { m.checkNotNullParameter(channelSuggestion, "channelSuggestion"); m.checkNotNullParameter(charSequence, "inFilterString"); m.checkNotNullParameter(list, "query"); replaceAndPublish(getAnswerReplacementStart(list), n.listOf((Object[]) new QueryNode[]{new FilterNode(FilterType.IN, charSequence), new ChannelNode(channelSuggestion.getChannelName())}), list); } public final void onMentionsUserClicked(UserSuggestion userSuggestion, CharSequence charSequence, List list) { m.checkNotNullParameter(userSuggestion, "userSuggestion"); m.checkNotNullParameter(charSequence, "mentionsFilterString"); m.checkNotNullParameter(list, "query"); replaceAndPublish(getAnswerReplacementStart(list), n.listOf((Object[]) new QueryNode[]{new FilterNode(FilterType.MENTIONS, charSequence), new UserNode(userSuggestion.getUserName(), userSuggestion.getDiscriminator())}), list); } public final void onQueryClicked(List list) { m.checkNotNullParameter(list, "query"); this.forcedInputSubject.j.onNext(list); } public final void updateInput(String str) { m.checkNotNullParameter(str, "input"); this.inputSubject.j.onNext(str); } }