aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-03-31 23:48:27 +0200
committerrsudev <rasch@munin-soft.de>2014-04-01 07:44:54 +0200
commitc3fac98b6f6cea86e2d023425ea11e1755eade33 (patch)
tree814056c4061f346a6dcfb208f94b26d024723941 /main/src
parent49394f93e50cc2a096d1a5069218c143ecd1d9b0 (diff)
downloadcgeo-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.java45
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();
}
}