aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/AbstractPopupActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/AbstractPopupActivity.java')
-rw-r--r--main/src/cgeo/geocaching/AbstractPopupActivity.java29
1 files changed, 15 insertions, 14 deletions
diff --git a/main/src/cgeo/geocaching/AbstractPopupActivity.java b/main/src/cgeo/geocaching/AbstractPopupActivity.java
index 375d06a..39adae9 100644
--- a/main/src/cgeo/geocaching/AbstractPopupActivity.java
+++ b/main/src/cgeo/geocaching/AbstractPopupActivity.java
@@ -8,14 +8,19 @@ import cgeo.geocaching.gcvote.GCVote;
import cgeo.geocaching.gcvote.GCVoteRating;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.geopoint.Units;
+import cgeo.geocaching.sensors.GeoDirHandler;
import cgeo.geocaching.sensors.IGeoData;
import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.ui.CacheDetailsCreator;
import cgeo.geocaching.ui.LoggingUI;
-import cgeo.geocaching.sensors.GeoDirHandler;
import cgeo.geocaching.utils.Log;
import org.apache.commons.lang3.StringUtils;
+import rx.Observable;
+import rx.android.observables.AndroidObservable;
+import rx.functions.Action1;
+import rx.functions.Func0;
+import rx.schedulers.Schedulers;
import android.graphics.Rect;
import android.os.Bundle;
@@ -75,24 +80,20 @@ public abstract class AbstractPopupActivity extends AbstractActivity implements
if (!cache.supportsGCVote()) {
return;
}
-
- (new Thread("Load GCVote") {
+ AndroidObservable.fromActivity(this, Observable.defer(new Func0<Observable<GCVoteRating>>() {
@Override
- public void run() {
+ public Observable<GCVoteRating> call() {
final GCVoteRating rating = GCVote.getRating(cache.getGuid(), geocode);
-
- if (rating == null) {
- return;
- }
+ return rating != null ? Observable.just(rating) : Observable.<GCVoteRating>empty();
+ }
+ }).subscribeOn(Schedulers.io())).subscribe(new Action1<GCVoteRating>() {
+ @Override
+ public void call(final GCVoteRating rating) {
cache.setRating(rating.getRating());
cache.setVotes(rating.getVotes());
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- details.addRating(cache); }
- });
+ details.addRating(cache);
}
- }).start();
+ });
}
protected void init() {