package com.discord.stores; import android.content.Context; import c.a.d.q; import com.discord.models.domain.ModelSearchResponse; import com.discord.models.message.Message; import com.discord.stores.StoreSearch; import com.discord.utilities.rx.ObservableExtensionsKt; import com.discord.utilities.search.network.SearchFetcher; import com.discord.utilities.search.network.SearchQuery; import com.discord.utilities.search.network.state.QueryFetchState; import com.discord.utilities.search.network.state.SearchState; import com.discord.utilities.search.strings.SearchStringProvider; import d0.g0.t; import d0.t.o; import d0.t.u; import d0.z.d.m; import j0.l.e.j; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.concurrent.TimeUnit; import kotlin.jvm.functions.Function0; import kotlin.jvm.functions.Function1; import kotlin.jvm.internal.DefaultConstructorMarker; import rx.Observable; import rx.Subscription; import rx.subjects.BehaviorSubject; import rx.subjects.SerializedSubject; /* compiled from: StoreSearchQuery.kt */ public final class StoreSearchQuery { public static final Companion Companion = new Companion(null); private static final SearchState SEARCH_STATE_NONE = new SearchState(QueryFetchState.NONE, null, null, null, null, false, 0, 126, null); private SearchState currentSearchState; private Subscription querySubscription; private final SearchFetcher searchFetcher; private final SerializedSubject searchStateSubject; /* compiled from: StoreSearchQuery.kt */ public static final class Companion { private Companion() { } public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) { this(); } } public StoreSearchQuery(SearchFetcher searchFetcher) { m.checkNotNullParameter(searchFetcher, "searchFetcher"); this.searchFetcher = searchFetcher; SearchState searchState = SEARCH_STATE_NONE; this.searchStateSubject = new SerializedSubject<>(BehaviorSubject.l0(searchState)); this.currentSearchState = searchState; } public static final /* synthetic */ Subscription access$getQuerySubscription$p(StoreSearchQuery storeSearchQuery) { return storeSearchQuery.querySubscription; } public static final /* synthetic */ void access$handleError(StoreSearchQuery storeSearchQuery) { storeSearchQuery.handleError(); } public static final /* synthetic */ void access$handleResponse(StoreSearchQuery storeSearchQuery, SearchQuery searchQuery, ModelSearchResponse modelSearchResponse, boolean z2) { storeSearchQuery.handleResponse(searchQuery, modelSearchResponse, z2); } public static final /* synthetic */ void access$performInitialLoad(StoreSearchQuery storeSearchQuery, StoreSearch.SearchTarget searchTarget, SearchQuery searchQuery) { storeSearchQuery.performInitialLoad(searchTarget, searchQuery); } public static final /* synthetic */ void access$setQuerySubscription$p(StoreSearchQuery storeSearchQuery, Subscription subscription) { storeSearchQuery.querySubscription = subscription; } private final void handleError() { updateAndPublish(new SearchState(QueryFetchState.FAILED, null, null, null, null, false, 0, 126, null)); } private final synchronized void handleResponse(SearchQuery searchQuery, ModelSearchResponse modelSearchResponse, boolean z2) { SearchState searchState; int totalResults; List arrayList; Integer errorCode = modelSearchResponse.getErrorCode(); if (errorCode == null) { if (z2) { totalResults = modelSearchResponse.getTotalResults(); arrayList = new ArrayList(); } else { totalResults = this.currentSearchState.getTotalResults(); List hits = this.currentSearchState.getHits(); if (hits == null || (arrayList = u.toMutableList((Collection) hits)) == null) { arrayList = new ArrayList(); } } List hits2 = modelSearchResponse.getHits(); ArrayList arrayList2 = new ArrayList(o.collectionSizeOrDefault(hits2, 10)); for (com.discord.api.message.Message message : hits2) { arrayList2.add(new Message(message)); } arrayList.addAll(arrayList2); searchState = new SearchState(QueryFetchState.COMPLETED, searchQuery, modelSearchResponse.getThreads(), modelSearchResponse.getMembers(), arrayList, totalResults > arrayList.size(), totalResults); } else { searchState = errorCode.intValue() == 111000 ? new SearchState(QueryFetchState.INDEXING, searchQuery, null, null, null, false, 0, 124, null) : new SearchState(QueryFetchState.FAILED, searchQuery, null, null, null, false, 0, 124, null); } updateAndPublish(searchState); } private final void makeQuery(SearchQuery searchQuery, StoreSearch.SearchTarget searchTarget, Long l, boolean z2) { ObservableExtensionsKt.appSubscribe$default(this.searchFetcher.makeQuery(searchTarget, l, searchQuery), (Context) null, "makeQuery", new StoreSearchQuery$makeQuery$2(this), new StoreSearchQuery$makeQuery$1(this, searchQuery, z2), new StoreSearchQuery$makeQuery$3(this), (Function0) null, (Function0) null, 97, (Object) null); } public static /* synthetic */ void makeQuery$default(StoreSearchQuery storeSearchQuery, SearchQuery searchQuery, StoreSearch.SearchTarget searchTarget, Long l, boolean z2, int i, Object obj) { if ((i & 4) != 0) { l = null; } if ((i & 8) != 0) { z2 = true; } storeSearchQuery.makeQuery(searchQuery, searchTarget, l, z2); } private final void performInitialLoad(StoreSearch.SearchTarget searchTarget, SearchQuery searchQuery) { unsubscribe(); makeQuery$default(this, searchQuery, searchTarget, null, false, 12, null); } private final synchronized void unsubscribe() { Subscription subscription = this.querySubscription; if (subscription != null) { subscription.unsubscribe(); } } private final synchronized void updateAndPublish(SearchState searchState) { this.currentSearchState = searchState; this.searchStateSubject.j.onNext(searchState); } public final void clear() { unsubscribe(); updateAndPublish(SEARCH_STATE_NONE); } public final Observable getState() { Observable r = this.searchStateSubject.r(); m.checkNotNullExpressionValue(r, "searchStateSubject\n .distinctUntilChanged()"); return r; } public final synchronized void loadMore(StoreSearch.SearchTarget searchTarget, long j) { m.checkNotNullParameter(searchTarget, "searchTarget"); SearchQuery searchQuery = this.currentSearchState.getSearchQuery(); if (searchQuery == null) { return; } if (this.currentSearchState.getQueryFetchState() == QueryFetchState.COMPLETED) { if (this.currentSearchState.getHasMore()) { unsubscribe(); updateAndPublish(new SearchState(QueryFetchState.LOADING_MORE, searchQuery, this.currentSearchState.getThreads(), this.currentSearchState.getThreadMembers(), this.currentSearchState.getHits(), false, this.currentSearchState.getTotalResults())); makeQuery(searchQuery, searchTarget, Long.valueOf(j), false); } } } public final void parseAndQuery(StoreSearch storeSearch, StoreSearch.SearchTarget searchTarget, String str, SearchStringProvider searchStringProvider, boolean z2) { m.checkNotNullParameter(storeSearch, "searchStore"); m.checkNotNullParameter(searchTarget, "searchTarget"); m.checkNotNullParameter(str, "queryString"); m.checkNotNullParameter(searchStringProvider, "searchStringProvider"); unsubscribe(); if (!t.isBlank(str)) { updateAndPublish(new SearchState(QueryFetchState.IN_PROGRESS, null, null, null, null, false, 0, 126, null)); Observable Z = Observable.j0(new j(str).F(new StoreSearchQuery$parseAndQuery$1(searchStringProvider)), storeSearch.getStoreSearchData().get(), new StoreSearchQuery$parseAndQuery$2(storeSearch, searchTarget, z2)).k(q.c(StoreSearchQuery$parseAndQuery$3.INSTANCE, null, 1, TimeUnit.SECONDS)).Z(1); m.checkNotNullExpressionValue(Z, "Observable\n .… )\n .take(1)"); ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.computationBuffered(Z), (Context) null, "parseAndQuery", (Function1) null, new StoreSearchQuery$parseAndQuery$4(this, searchTarget), (Function1) null, (Function0) null, (Function0) null, 117, (Object) null); return; } updateAndPublish(new SearchState(QueryFetchState.NONE, null, null, null, null, false, 0, 126, null)); } }