aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/libs/rxjava-android-0.16.1.jarbin12786 -> 0 bytes
-rw-r--r--main/libs/rxjava-android-0.17.0-RC1.jarbin0 -> 27756 bytes
-rw-r--r--main/libs/rxjava-core-0.16.1.jarbin663553 -> 0 bytes
-rw-r--r--main/libs/rxjava-core-0.17.0-RC1.jarbin0 -> 656657 bytes
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java19
-rw-r--r--main/src/cgeo/geocaching/DirectionProvider.java10
-rw-r--r--main/src/cgeo/geocaching/GeoDataProvider.java10
-rw-r--r--main/src/cgeo/geocaching/MainActivity.java19
-rw-r--r--main/src/cgeo/geocaching/PocketQueryList.java16
-rw-r--r--main/src/cgeo/geocaching/network/HtmlImage.java32
-rw-r--r--main/src/cgeo/geocaching/network/StatusUpdater.java32
-rw-r--r--main/src/cgeo/geocaching/utils/GeoDirHandler.java6
12 files changed, 61 insertions, 83 deletions
diff --git a/main/libs/rxjava-android-0.16.1.jar b/main/libs/rxjava-android-0.16.1.jar
deleted file mode 100644
index 99c8c5a..0000000
--- a/main/libs/rxjava-android-0.16.1.jar
+++ /dev/null
Binary files differ
diff --git a/main/libs/rxjava-android-0.17.0-RC1.jar b/main/libs/rxjava-android-0.17.0-RC1.jar
new file mode 100644
index 0000000..ade903b
--- /dev/null
+++ b/main/libs/rxjava-android-0.17.0-RC1.jar
Binary files differ
diff --git a/main/libs/rxjava-core-0.16.1.jar b/main/libs/rxjava-core-0.16.1.jar
deleted file mode 100644
index 6a5635b..0000000
--- a/main/libs/rxjava-core-0.16.1.jar
+++ /dev/null
Binary files differ
diff --git a/main/libs/rxjava-core-0.17.0-RC1.jar b/main/libs/rxjava-core-0.17.0-RC1.jar
new file mode 100644
index 0000000..7d48ee4
--- /dev/null
+++ b/main/libs/rxjava-core-0.17.0-RC1.jar
Binary files differ
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index e031e93..54202a7 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -57,14 +57,12 @@ import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
-
import rx.Observable;
-import rx.Observable.OnSubscribeFunc;
+import rx.Observable.OnSubscribe;
import rx.Observer;
-import rx.Subscription;
+import rx.Subscriber;
import rx.android.observables.AndroidObservable;
import rx.schedulers.Schedulers;
-import rx.subscriptions.Subscriptions;
import rx.util.functions.Action1;
import android.R.color;
@@ -1667,30 +1665,29 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
*/
private void loadDescription(final String descriptionString, final IndexOutOfBoundsAvoidingTextView descriptionView, final View loadingIndicatorView) {
// The producer produces successives (without then with images) versions of the description.
- final Observable<Spanned> producer = Observable.create(new OnSubscribeFunc<Spanned>() {
+ final Observable<Spanned> producer = Observable.create(new OnSubscribe<Spanned>() {
@Override
- public Subscription onSubscribe(final Observer<? super Spanned> observer) {
+ public void call(final Subscriber<? super Spanned> subscriber) {
try {
// Fast preview: parse only HTML without loading any images
final HtmlImageCounter imageCounter = new HtmlImageCounter();
final UnknownTagsHandler unknownTagsHandler = new UnknownTagsHandler();
Spanned description = Html.fromHtml(descriptionString, imageCounter, unknownTagsHandler);
addWarning(unknownTagsHandler, description);
- observer.onNext(description);
+ subscriber.onNext(description);
if (imageCounter.getImageCount() > 0) {
// Complete view: parse again with loading images - if necessary ! If there are any images causing problems the user can see at least the preview
description = Html.fromHtml(descriptionString, new HtmlImage(cache.getGeocode(), true, cache.getListId(), false), unknownTagsHandler);
addWarning(unknownTagsHandler, description);
- observer.onNext(description);
+ subscriber.onNext(description);
}
- observer.onCompleted();
+ subscriber.onCompleted();
} catch (final Exception e) {
Log.e("loadDescription", e);
- observer.onError(e);
+ subscriber.onError(e);
}
- return Subscriptions.empty();
}
// If description has an HTML construct which may be problematic to render, add a note at the end of the long description.
diff --git a/main/src/cgeo/geocaching/DirectionProvider.java b/main/src/cgeo/geocaching/DirectionProvider.java
index 6806bf5..f6c04ae 100644
--- a/main/src/cgeo/geocaching/DirectionProvider.java
+++ b/main/src/cgeo/geocaching/DirectionProvider.java
@@ -3,8 +3,8 @@ package cgeo.geocaching;
import cgeo.geocaching.compatibility.Compatibility;
import rx.Observable;
-import rx.Observable.OnSubscribeFunc;
-import rx.Observer;
+import rx.Observable.OnSubscribe;
+import rx.Subscriber;
import rx.Subscription;
import rx.observables.ConnectableObservable;
import rx.subjects.BehaviorSubject;
@@ -18,7 +18,7 @@ import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
-public class DirectionProvider implements OnSubscribeFunc<Float> {
+public class DirectionProvider implements OnSubscribe<Float> {
private final SensorManager sensorManager;
private final BehaviorSubject<Float> subject = BehaviorSubject.create(0.0f);
@@ -32,8 +32,8 @@ public class DirectionProvider implements OnSubscribeFunc<Float> {
}
@Override
- public Subscription onSubscribe(final Observer<? super Float> observer) {
- return subject.distinctUntilChanged().subscribe(observer);
+ public void call(final Subscriber<? super Float> subscriber) {
+ subject.distinctUntilChanged().subscribe(subscriber);
}
private final ConnectableObservable<Float> worker = new ConnectableObservable<Float>(this) {
diff --git a/main/src/cgeo/geocaching/GeoDataProvider.java b/main/src/cgeo/geocaching/GeoDataProvider.java
index 1c3c6ae..d520c71 100644
--- a/main/src/cgeo/geocaching/GeoDataProvider.java
+++ b/main/src/cgeo/geocaching/GeoDataProvider.java
@@ -6,8 +6,8 @@ import cgeo.geocaching.utils.Log;
import org.apache.commons.lang3.StringUtils;
import rx.Observable;
-import rx.Observable.OnSubscribeFunc;
-import rx.Observer;
+import rx.Observable.OnSubscribe;
+import rx.Subscriber;
import rx.Subscription;
import rx.observables.ConnectableObservable;
import rx.subjects.BehaviorSubject;
@@ -22,7 +22,7 @@ import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
-class GeoDataProvider implements OnSubscribeFunc<IGeoData> {
+class GeoDataProvider implements OnSubscribe<IGeoData> {
private static final String LAST_LOCATION_PSEUDO_PROVIDER = "last";
private final LocationManager geoManager;
@@ -129,8 +129,8 @@ class GeoDataProvider implements OnSubscribeFunc<IGeoData> {
}
@Override
- public Subscription onSubscribe(final Observer<? super IGeoData> observer) {
- return subject.subscribe(observer);
+ public void call(final Subscriber<? super IGeoData> subscriber) {
+ subject.subscribe(subscriber);
}
final ConnectableObservable<IGeoData> worker = new ConnectableObservable<IGeoData>(this) {
diff --git a/main/src/cgeo/geocaching/MainActivity.java b/main/src/cgeo/geocaching/MainActivity.java
index eaa041e..900da4b 100644
--- a/main/src/cgeo/geocaching/MainActivity.java
+++ b/main/src/cgeo/geocaching/MainActivity.java
@@ -24,16 +24,12 @@ import cgeo.geocaching.utils.Version;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
-
import org.apache.commons.lang3.StringUtils;
-
import rx.Observable;
-import rx.Observable.OnSubscribeFunc;
-import rx.Observer;
-import rx.Subscription;
+import rx.Observable.OnSubscribe;
+import rx.Subscriber;
import rx.android.observables.AndroidObservable;
import rx.schedulers.Schedulers;
-import rx.subscriptions.Subscriptions;
import rx.util.functions.Action1;
import android.app.AlertDialog;
@@ -540,22 +536,21 @@ public class MainActivity extends AbstractActivity {
navLocation.setText(R.string.loc_no_addr);
}
if (addCoords == null || (geo.getCoords().distanceTo(addCoords) > 0.5)) {
- final Observable<String> address = Observable.create(new OnSubscribeFunc<String>() {
+ final Observable<String> address = Observable.create(new OnSubscribe<String>() {
@Override
- public Subscription onSubscribe(final Observer<? super String> observer) {
+ public void call(final Subscriber<? super String> subscriber) {
try {
addCoords = geo.getCoords();
final Geocoder geocoder = new Geocoder(MainActivity.this, Locale.getDefault());
final Geopoint coords = app.currentGeo().getCoords();
final List<Address> addresses = geocoder.getFromLocation(coords.getLatitude(), coords.getLongitude(), 1);
if (!addresses.isEmpty()) {
- observer.onNext(formatAddress(addresses.get(0)));
+ subscriber.onNext(formatAddress(addresses.get(0)));
}
- observer.onCompleted();
+ subscriber.onCompleted();
} catch (final Exception e) {
- observer.onError(e);
+ subscriber.onError(e);
}
- return Subscriptions.empty();
}
}).subscribeOn(Schedulers.io());
AndroidObservable.fromActivity(MainActivity.this, address)
diff --git a/main/src/cgeo/geocaching/PocketQueryList.java b/main/src/cgeo/geocaching/PocketQueryList.java
index 8ab0ec3..564790a 100644
--- a/main/src/cgeo/geocaching/PocketQueryList.java
+++ b/main/src/cgeo/geocaching/PocketQueryList.java
@@ -4,14 +4,11 @@ import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.connector.gc.GCParser;
import org.apache.commons.collections4.CollectionUtils;
-
import rx.Observable;
-import rx.Observable.OnSubscribeFunc;
-import rx.Observer;
-import rx.Subscription;
+import rx.Observable.OnSubscribe;
+import rx.Subscriber;
import rx.android.observables.AndroidObservable;
import rx.schedulers.Schedulers;
-import rx.subscriptions.Subscriptions;
import rx.util.functions.Action1;
import android.app.Activity;
@@ -49,12 +46,11 @@ public final class PocketQueryList {
public static void promptForListSelection(final Activity activity, final Action1<PocketQueryList> runAfterwards) {
final Dialog waitDialog = ProgressDialog.show(activity, activity.getString(R.string.search_pocket_title), activity.getString(R.string.search_pocket_loading), true, true);
- AndroidObservable.fromActivity(activity, Observable.create(new OnSubscribeFunc<List<PocketQueryList>>() {
+ AndroidObservable.fromActivity(activity, Observable.create(new OnSubscribe<List<PocketQueryList>>() {
@Override
- public Subscription onSubscribe(final Observer<? super List<PocketQueryList>> observer) {
- observer.onNext(GCParser.searchPocketQueryList());
- observer.onCompleted();
- return Subscriptions.empty();
+ public void call(final Subscriber<? super List<PocketQueryList>> subscriber) {
+ subscriber.onNext(GCParser.searchPocketQueryList());
+ subscriber.onCompleted();
}
}).subscribeOn(Schedulers.io())).subscribe(new Action1<List<PocketQueryList>>() {
@Override
diff --git a/main/src/cgeo/geocaching/network/HtmlImage.java b/main/src/cgeo/geocaching/network/HtmlImage.java
index f464e84..8040598 100644
--- a/main/src/cgeo/geocaching/network/HtmlImage.java
+++ b/main/src/cgeo/geocaching/network/HtmlImage.java
@@ -13,23 +13,19 @@ import cgeo.geocaching.utils.Log;
import ch.boye.httpclientandroidlib.HttpResponse;
import ch.boye.httpclientandroidlib.androidextra.Base64;
-
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
-
import rx.Observable;
-import rx.Observable.OnSubscribeFunc;
-import rx.Observer;
+import rx.Observable.OnSubscribe;
import rx.Scheduler;
-import rx.Subscription;
+import rx.Subscriber;
import rx.schedulers.Schedulers;
import rx.subjects.PublishSubject;
import rx.subscriptions.CompositeSubscription;
-import rx.subscriptions.Subscriptions;
import rx.util.functions.Func1;
import android.content.res.Resources;
@@ -134,42 +130,39 @@ public class HtmlImage implements Html.ImageGetter {
final String pseudoGeocode = shared ? SHARED : geocode;
final Observable<Pair<BitmapDrawable, Boolean>> loadFromDisk =
- Observable.create(new OnSubscribeFunc<Pair<BitmapDrawable, Boolean>>() {
+ Observable.create(new OnSubscribe<Pair<BitmapDrawable, Boolean>>() {
@Override
- public Subscription onSubscribe(final Observer<? super Pair<BitmapDrawable, Boolean>> observer) {
+ public void call(final Subscriber<? super Pair<BitmapDrawable, Boolean>> subscriber) {
final Pair<Bitmap, Boolean> loadResult = loadImageFromStorage(url, pseudoGeocode, shared);
final Bitmap bitmap = loadResult.getLeft();
- observer.onNext(new ImmutablePair<BitmapDrawable, Boolean>(bitmap != null ?
+ subscriber.onNext(new ImmutablePair<BitmapDrawable, Boolean>(bitmap != null ?
ImageUtils.scaleBitmapToFitDisplay(bitmap) :
null,
loadResult.getRight()));
- observer.onCompleted();
- return Subscriptions.empty();
+ subscriber.onCompleted();
}
}).subscribeOn(Schedulers.computation());
final Observable<BitmapDrawable> downloadAndSave =
- Observable.create(new OnSubscribeFunc<BitmapDrawable>() {
+ Observable.create(new OnSubscribe<BitmapDrawable>() {
@Override
- public Subscription onSubscribe(final Observer<? super BitmapDrawable> observer) {
+ public void call(final Subscriber<? super BitmapDrawable> subscriber) {
final File file = LocalStorage.getStorageFile(pseudoGeocode, url, true, true);
if (url.startsWith("data:image/")) {
if (url.contains(";base64,")) {
saveBase64ToFile(url, file);
} else {
Log.e("HtmlImage.getDrawable: unable to decode non-base64 inline image");
- observer.onCompleted();
- return Subscriptions.empty();
+ subscriber.onCompleted();
}
} else {
if (subscription.isUnsubscribed() || downloadOrRefreshCopy(url, file)) {
// The existing copy was fresh enough or we were unsubscribed earlier.
- observer.onCompleted();
- return Subscriptions.empty();
+ subscriber.onCompleted();
}
}
if (onlySave) {
- observer.onCompleted();
+ subscriber.onCompleted();
} else {
loadFromDisk.map(new Func1<Pair<BitmapDrawable, Boolean>, BitmapDrawable>() {
@Override
@@ -182,9 +175,8 @@ public class HtmlImage implements Html.ImageGetter {
new BitmapDrawable(resources, BitmapFactory.decodeResource(resources, R.drawable.image_not_loaded)) :
getTransparent1x1Image(resources);
}
- }).subscribe(observer);
+ }).subscribe(subscriber);
}
- return Subscriptions.empty();
}
}).subscribeOn(downloadScheduler);
diff --git a/main/src/cgeo/geocaching/network/StatusUpdater.java b/main/src/cgeo/geocaching/network/StatusUpdater.java
index 84df168..838823b 100644
--- a/main/src/cgeo/geocaching/network/StatusUpdater.java
+++ b/main/src/cgeo/geocaching/network/StatusUpdater.java
@@ -5,11 +5,10 @@ import cgeo.geocaching.utils.Version;
import org.json.JSONException;
import org.json.JSONObject;
-
-import rx.Observable;
+import rx.Scheduler;
import rx.schedulers.Schedulers;
import rx.subjects.BehaviorSubject;
-import rx.util.functions.Func1;
+import rx.util.functions.Action1;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
@@ -50,23 +49,22 @@ public class StatusUpdater {
}
}
- final static private Observable<Status> statusObservable =
- Observable.interval(1800, TimeUnit.SECONDS).startWith(-1L).flatMap(new Func1<Long, Observable<Status>>() {
- @Override
- public Observable<Status> call(Long id) {
- final JSONObject response =
- Network.requestJSON("http://status.cgeo.org/api/status.json",
- new Parameters("version_code", String.valueOf(Version.getVersionCode(CgeoApplication.getInstance())),
- "version_name", Version.getVersionName(CgeoApplication.getInstance()),
- "locale", Locale.getDefault().toString()));
- return response != null ? Observable.from(Status.defaultStatus((new Status(response)))) : Observable.<Status>empty();
- }
- }).subscribeOn(Schedulers.io());
-
final static public BehaviorSubject<Status> latestStatus = BehaviorSubject.create(Status.defaultStatus(null));
static {
- statusObservable.subscribe(latestStatus);
+ Schedulers.io().schedulePeriodically(new Action1<Scheduler.Inner>() {
+ @Override
+ public void call(final Scheduler.Inner inner) {
+ final JSONObject response =
+ Network.requestJSON("http://status.cgeo.org/api/status.json",
+ new Parameters("version_code", String.valueOf(Version.getVersionCode(CgeoApplication.getInstance())),
+ "version_name", Version.getVersionName(CgeoApplication.getInstance()),
+ "locale", Locale.getDefault().toString()));
+ if (response != null) {
+ latestStatus.onNext(Status.defaultStatus(new Status(response)));
+ }
+ }
+ }, 0, 1800, TimeUnit.SECONDS);
}
private static String get(final JSONObject json, final String key) {
diff --git a/main/src/cgeo/geocaching/utils/GeoDirHandler.java b/main/src/cgeo/geocaching/utils/GeoDirHandler.java
index 64806e8..1ccc4f7 100644
--- a/main/src/cgeo/geocaching/utils/GeoDirHandler.java
+++ b/main/src/cgeo/geocaching/utils/GeoDirHandler.java
@@ -4,10 +4,10 @@ import cgeo.geocaching.CgeoApplication;
import cgeo.geocaching.IGeoData;
import cgeo.geocaching.settings.Settings;
+import rx.Scheduler;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
-import rx.util.functions.Action0;
import rx.util.functions.Action1;
import java.util.concurrent.TimeUnit;
@@ -100,9 +100,9 @@ public abstract class GeoDirHandler {
if (geoSubscription != null) {
final Subscription subscription = geoSubscription;
geoSubscription = null;
- Schedulers.newThread().schedule(new Action0() {
+ Schedulers.newThread().schedule(new Action1<Scheduler.Inner>() {
@Override
- public void call() {
+ public void call(final Scheduler.Inner inner) {
subscription.unsubscribe();
}
}, 2500, TimeUnit.MILLISECONDS);