aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/SearchResult.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/SearchResult.java')
-rw-r--r--main/src/cgeo/geocaching/SearchResult.java19
1 files changed, 8 insertions, 11 deletions
diff --git a/main/src/cgeo/geocaching/SearchResult.java b/main/src/cgeo/geocaching/SearchResult.java
index 74cc59d..5de1298 100644
--- a/main/src/cgeo/geocaching/SearchResult.java
+++ b/main/src/cgeo/geocaching/SearchResult.java
@@ -16,6 +16,7 @@ import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import rx.Observable;
+import rx.functions.Func0;
import rx.functions.Func1;
import rx.functions.Func2;
@@ -215,10 +216,6 @@ public class SearchResult implements Parcelable {
}
/**
- * @param excludeDisabled
- * @param excludeMine
- * @param cacheType
- * @return
*/
public SearchResult filterSearchResults(final boolean excludeDisabled, final boolean excludeMine, final CacheType cacheType) {
@@ -314,17 +311,17 @@ public class SearchResult implements Parcelable {
public static <C extends IConnector> SearchResult parallelCombineActive(final Collection<C> connectors,
final Func1<C, SearchResult> func) {
- return Observable.from(connectors).parallel(new Func1<Observable<C>, Observable<SearchResult>>() {
+ return Observable.from(connectors).flatMap(new Func1<C, Observable<SearchResult>>() {
@Override
- public Observable<SearchResult> call(final Observable<C> cObservable) {
- return cObservable.flatMap(new Func1<C, Observable<? extends SearchResult>>() {
+ public Observable<SearchResult> call(final C connector) {
+ return connector.isActive() ? Observable.defer(new Func0<Observable<SearchResult>>() {
@Override
- public Observable<? extends SearchResult> call(final C c) {
- return c.isActive() ? Observable.from(func.call(c)) : Observable.<SearchResult>empty();
+ public Observable<SearchResult> call() {
+ return Observable.just(func.call(connector));
}
- });
+ }).subscribeOn(RxUtils.networkScheduler) : Observable.<SearchResult>empty();
}
- }, RxUtils.networkScheduler).reduce(new SearchResult(), new Func2<SearchResult, SearchResult, SearchResult>() {
+ }).reduce(new SearchResult(), new Func2<SearchResult, SearchResult, SearchResult>() {
@Override
public SearchResult call(final SearchResult searchResult, final SearchResult searchResult2) {
searchResult.addSearchResult(searchResult2);