aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/AbstractPopupActivity.java29
-rw-r--r--main/src/cgeo/geocaching/gcvote/GCVote.java2
2 files changed, 16 insertions, 15 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() {
diff --git a/main/src/cgeo/geocaching/gcvote/GCVote.java b/main/src/cgeo/geocaching/gcvote/GCVote.java
index fd4b914..0ab1fe3 100644
--- a/main/src/cgeo/geocaching/gcvote/GCVote.java
+++ b/main/src/cgeo/geocaching/gcvote/GCVote.java
@@ -69,7 +69,7 @@ public final class GCVote {
* @param geocodes
* @return
*/
- public static Map<String, GCVoteRating> getRating(final List<String> guids, final List<String> geocodes) {
+ private static Map<String, GCVoteRating> getRating(final List<String> guids, final List<String> geocodes) {
if (guids == null && geocodes == null) {
return null;
}