aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/MainActivity.java
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-02-16 12:38:52 +0100
committerSamuel Tardieu <sam@rfc1149.net>2014-02-16 22:19:43 +0100
commit14ba161b7507480630d8ca9220e1b4099fc7d4d6 (patch)
tree4440aa6a9c7bb40a8e75f64e1687acba3489f855 /main/src/cgeo/geocaching/MainActivity.java
parent2919930439a3ff43efada3bcb5af34979fb8feac (diff)
downloadcgeo-14ba161b7507480630d8ca9220e1b4099fc7d4d6.zip
cgeo-14ba161b7507480630d8ca9220e1b4099fc7d4d6.tar.gz
cgeo-14ba161b7507480630d8ca9220e1b4099fc7d4d6.tar.bz2
Update for RxJava 0.17.0-RC1
This is the release candidate version, which is being currently tested at Netflix. In a few days, I'll update with the final version. This release cleans up some bits of RxJava by integrating the subscription inside a subscriber (which is an observer holding a subscription) and fixes a leak with recurring tasks.
Diffstat (limited to 'main/src/cgeo/geocaching/MainActivity.java')
-rw-r--r--main/src/cgeo/geocaching/MainActivity.java19
1 files changed, 7 insertions, 12 deletions
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)