diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-02-16 12:38:52 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-02-16 22:19:43 +0100 |
| commit | 14ba161b7507480630d8ca9220e1b4099fc7d4d6 (patch) | |
| tree | 4440aa6a9c7bb40a8e75f64e1687acba3489f855 /main/src/cgeo/geocaching/MainActivity.java | |
| parent | 2919930439a3ff43efada3bcb5af34979fb8feac (diff) | |
| download | cgeo-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.java | 19 |
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) |
