diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-03-31 23:48:27 +0200 |
|---|---|---|
| committer | rsudev <rasch@munin-soft.de> | 2014-04-01 07:44:54 +0200 |
| commit | c3fac98b6f6cea86e2d023425ea11e1755eade33 (patch) | |
| tree | 814056c4061f346a6dcfb208f94b26d024723941 /main/src | |
| parent | 49394f93e50cc2a096d1a5069218c143ecd1d9b0 (diff) | |
| download | cgeo-c3fac98b6f6cea86e2d023425ea11e1755eade33.zip cgeo-c3fac98b6f6cea86e2d023425ea11e1755eade33.tar.gz cgeo-c3fac98b6f6cea86e2d023425ea11e1755eade33.tar.bz2 | |
Partially revert < 2.3 compatibility mode
This reverts part of 46675dfdcb4c7b511b4c35e4a2242e47d4678fd4. However,
since this commit did some cleanup and simplifications, we keep them.
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/SearchResult.java | 45 |
1 files changed, 16 insertions, 29 deletions
diff --git a/main/src/cgeo/geocaching/SearchResult.java b/main/src/cgeo/geocaching/SearchResult.java index a673785..12a2522 100644 --- a/main/src/cgeo/geocaching/SearchResult.java +++ b/main/src/cgeo/geocaching/SearchResult.java @@ -1,6 +1,5 @@ package cgeo.geocaching; -import android.os.Build; import cgeo.geocaching.connector.IConnector; import cgeo.geocaching.connector.gc.GCLogin; import cgeo.geocaching.enumerations.CacheType; @@ -304,35 +303,23 @@ public class SearchResult implements Parcelable { public static <C extends IConnector> SearchResult parallelCombineActive(final Collection<C> connectors, final Func1<C, SearchResult> func) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { - return Observable.from(connectors).parallel(new Func1<Observable<C>, Observable<SearchResult>>() { - @Override - public Observable<SearchResult> call(final Observable<C> cObservable) { - return cObservable.flatMap(new Func1<C, Observable<? extends SearchResult>>() { - @Override - public Observable<? extends SearchResult> call(final C c) { - return c.isActive() ? Observable.from(func.call(c)) : Observable.<SearchResult>empty(); - } - }); - } - }, Schedulers.io()).reduce(new SearchResult(), new Func2<SearchResult, SearchResult, SearchResult>() { - @Override - public SearchResult call(final SearchResult searchResult, final SearchResult searchResult2) { - searchResult.addSearchResult(searchResult2); - return searchResult; - } - }).toBlockingObservable().first(); - } else { - // Use a slower, sequential version for Android < 2.3, where parallel() does not work correctly - // because of missing Java method (here, Dequeue#offerLast). - final SearchResult result = new SearchResult(); - for (final C connector : connectors) { - if (connector.isActive()) { - result.addSearchResult(func.call(connector)); - } + return Observable.from(connectors).parallel(new Func1<Observable<C>, Observable<SearchResult>>() { + @Override + public Observable<SearchResult> call(final Observable<C> cObservable) { + return cObservable.flatMap(new Func1<C, Observable<? extends SearchResult>>() { + @Override + public Observable<? extends SearchResult> call(final C c) { + return c.isActive() ? Observable.from(func.call(c)) : Observable.<SearchResult>empty(); + } + }); } - return result; - } + }, Schedulers.io()).reduce(new SearchResult(), new Func2<SearchResult, SearchResult, SearchResult>() { + @Override + public SearchResult call(final SearchResult searchResult, final SearchResult searchResult2) { + searchResult.addSearchResult(searchResult2); + return searchResult; + } + }).toBlockingObservable().first(); } } |
