discord-jadx/app/src/main/java/com/discord/stores/StoreSearchQuery.java

183 lines
8.9 KiB
Java

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<SearchState, SearchState> 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<Message> hits = this.currentSearchState.getHits();
if (hits == null || (arrayList = u.toMutableList((Collection) hits)) == null) {
arrayList = new ArrayList();
}
}
List<com.discord.api.message.Message> 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<SearchState> getState() {
Observable<SearchState> 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));
}
}