diff options
| -rw-r--r-- | main/libs/rxjava-android-0.16.1.jar | bin | 12786 -> 0 bytes | |||
| -rw-r--r-- | main/libs/rxjava-android-0.17.0-RC1.jar | bin | 0 -> 27756 bytes | |||
| -rw-r--r-- | main/libs/rxjava-core-0.16.1.jar | bin | 663553 -> 0 bytes | |||
| -rw-r--r-- | main/libs/rxjava-core-0.17.0-RC1.jar | bin | 0 -> 656657 bytes | |||
| -rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 19 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/DirectionProvider.java | 10 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/GeoDataProvider.java | 10 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/MainActivity.java | 19 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/PocketQueryList.java | 16 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/network/HtmlImage.java | 32 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/network/StatusUpdater.java | 32 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/utils/GeoDirHandler.java | 6 |
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 Binary files differdeleted file mode 100644 index 99c8c5a..0000000 --- a/main/libs/rxjava-android-0.16.1.jar +++ /dev/null diff --git a/main/libs/rxjava-android-0.17.0-RC1.jar b/main/libs/rxjava-android-0.17.0-RC1.jar Binary files differnew file mode 100644 index 0000000..ade903b --- /dev/null +++ b/main/libs/rxjava-android-0.17.0-RC1.jar diff --git a/main/libs/rxjava-core-0.16.1.jar b/main/libs/rxjava-core-0.16.1.jar Binary files differdeleted file mode 100644 index 6a5635b..0000000 --- a/main/libs/rxjava-core-0.16.1.jar +++ /dev/null diff --git a/main/libs/rxjava-core-0.17.0-RC1.jar b/main/libs/rxjava-core-0.17.0-RC1.jar Binary files differnew file mode 100644 index 0000000..7d48ee4 --- /dev/null +++ b/main/libs/rxjava-core-0.17.0-RC1.jar 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); |
