aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-04-20 11:34:00 +0200
committerSamuel Tardieu <sam@rfc1149.net>2014-04-20 11:59:44 +0200
commit27668837d1aa756c2b8ee2b73585b77a54203bad (patch)
tree45562f111b2597878867b05f8c1fd4f5d7cecfae /main/src
parent9ca8fe55dc7b54769feb2fb30125b27e68565ee9 (diff)
downloadcgeo-27668837d1aa756c2b8ee2b73585b77a54203bad.zip
cgeo-27668837d1aa756c2b8ee2b73585b77a54203bad.tar.gz
cgeo-27668837d1aa756c2b8ee2b73585b77a54203bad.tar.bz2
Take advantage of RxJava's renewed Android operators
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/AbstractPopupActivity.java10
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java10
-rw-r--r--main/src/cgeo/geocaching/DataStore.java9
-rw-r--r--main/src/cgeo/geocaching/MainActivity.java11
-rw-r--r--main/src/cgeo/geocaching/PocketQueryList.java9
-rw-r--r--main/src/cgeo/geocaching/StatusFragment.java85
-rw-r--r--main/src/cgeo/geocaching/TrackableActivity.java4
-rw-r--r--main/src/cgeo/geocaching/connector/gc/RecaptchaHandler.java7
-rw-r--r--main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java9
-rw-r--r--main/src/cgeo/geocaching/settings/RegisterSend2CgeoPreference.java9
-rw-r--r--main/src/cgeo/geocaching/ui/ImagesList.java5
-rw-r--r--main/src/cgeo/geocaching/utils/RxUtils.java33
12 files changed, 87 insertions, 114 deletions
diff --git a/main/src/cgeo/geocaching/AbstractPopupActivity.java b/main/src/cgeo/geocaching/AbstractPopupActivity.java
index 01e714d..b2e1a15 100644
--- a/main/src/cgeo/geocaching/AbstractPopupActivity.java
+++ b/main/src/cgeo/geocaching/AbstractPopupActivity.java
@@ -14,13 +14,13 @@ import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.ui.CacheDetailsCreator;
import cgeo.geocaching.ui.LoggingUI;
import cgeo.geocaching.utils.Log;
-import cgeo.geocaching.utils.RxUtils;
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;
@@ -80,13 +80,13 @@ public abstract class AbstractPopupActivity extends AbstractActivity implements
if (!cache.supportsGCVote()) {
return;
}
- RxUtils.subscribeOnIOThenUI(Observable.defer(new Func0<Observable<GCVoteRating>>() {
+ AndroidObservable.bindActivity(this, Observable.defer(new Func0<Observable<GCVoteRating>>() {
@Override
public Observable<GCVoteRating> call() {
final GCVoteRating rating = GCVote.getRating(cache.getGuid(), geocode);
return rating != null ? Observable.just(rating) : Observable.<GCVoteRating>empty();
}
- }), new Action1<GCVoteRating>() {
+ })).subscribe(new Action1<GCVoteRating>() {
@Override
public void call(final GCVoteRating rating) {
cache.setRating(rating.getRating());
@@ -94,7 +94,7 @@ public abstract class AbstractPopupActivity extends AbstractActivity implements
DataStore.saveChangedCache(cache);
details.addRating(cache);
}
- });
+ }, Schedulers.io());
}
protected void init() {
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index a8fa8ee..6214a1a 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -45,7 +45,6 @@ import cgeo.geocaching.utils.CryptUtils;
import cgeo.geocaching.utils.ImageUtils;
import cgeo.geocaching.utils.Log;
import cgeo.geocaching.utils.MatcherWrapper;
-import cgeo.geocaching.utils.RxUtils;
import cgeo.geocaching.utils.SimpleCancellableHandler;
import cgeo.geocaching.utils.SimpleHandler;
import cgeo.geocaching.utils.TextUtils;
@@ -62,6 +61,7 @@ import rx.Observer;
import rx.Scheduler.Inner;
import rx.Subscriber;
import rx.Subscription;
+import rx.android.observables.AndroidObservable;
import rx.functions.Action1;
import rx.schedulers.Schedulers;
@@ -878,7 +878,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
view = (ScrollView) getLayoutInflater().inflate(R.layout.cachedetail_details_page, null);
// Start loading preview map
- RxUtils.subscribeOnIOThenUI(previewMap, new Action1<BitmapDrawable>() {
+ AndroidObservable.bindActivity(CacheDetailActivity.this, previewMap).subscribe(new Action1<BitmapDrawable>() {
@Override
public void call(final BitmapDrawable image) {
final Bitmap bitmap = image.getBitmap();
@@ -888,7 +888,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
view.findViewById(R.id.map_preview_box).setVisibility(View.VISIBLE);
}
}
- });
+ }, Schedulers.io());
detailsList = (LinearLayout) view.findViewById(R.id.details_list);
final CacheDetailsCreator details = new CacheDetailsCreator(CacheDetailActivity.this, detailsList);
@@ -1605,7 +1605,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
}
});
- RxUtils.subscribeOnIOThenUI(producer, new Observer<Spanned>() {
+ AndroidObservable.bindActivity(this, producer).subscribe(new Observer<Spanned>() {
@Override
public void onCompleted() {
if (null != loadingIndicatorView) {
@@ -1668,7 +1668,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
}
descriptionView.setBackgroundResource(backcolor);
}
- });
+ }, Schedulers.io());
}
private class WaypointsViewCreator extends AbstractCachingPageViewCreator<ListView> {
diff --git a/main/src/cgeo/geocaching/DataStore.java b/main/src/cgeo/geocaching/DataStore.java
index 7e676b0..623301b 100644
--- a/main/src/cgeo/geocaching/DataStore.java
+++ b/main/src/cgeo/geocaching/DataStore.java
@@ -21,15 +21,16 @@ import cgeo.geocaching.ui.dialog.Dialogs;
import cgeo.geocaching.utils.FileUtils;
import cgeo.geocaching.utils.Log;
import cgeo.geocaching.utils.MiscUtils;
-import cgeo.geocaching.utils.RxUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jdt.annotation.NonNull;
+import rx.android.observables.AndroidObservable;
import rx.functions.Action1;
import rx.functions.Func0;
import rx.functions.Func1;
+import rx.schedulers.Schedulers;
import rx.util.async.Async;
import android.app.Activity;
@@ -393,7 +394,7 @@ public class DataStore {
*/
public static void moveDatabase(final Activity fromActivity) {
final ProgressDialog dialog = ProgressDialog.show(fromActivity, fromActivity.getString(R.string.init_dbmove_dbmove), fromActivity.getString(R.string.init_dbmove_running), true, false);
- RxUtils.subscribeOnIOThenUI(Async.fromCallable(new Func0<Boolean>() {
+ AndroidObservable.bindActivity(fromActivity, Async.fromCallable(new Func0<Boolean>() {
@Override
public Boolean call() {
if (!LocalStorage.isExternalStorageAvailable()) {
@@ -418,14 +419,14 @@ public class DataStore {
init();
return true;
}
- }), new Action1<Boolean>() {
+ })).subscribe(new Action1<Boolean>() {
@Override
public void call(final Boolean success) {
dialog.dismiss();
final String message = success ? fromActivity.getString(R.string.init_dbmove_success) : fromActivity.getString(R.string.init_dbmove_failed);
Dialogs.message(fromActivity, R.string.init_dbmove_dbmove, message);
}
- });
+ }, Schedulers.io());
}
private static File databasePath(final boolean internal) {
diff --git a/main/src/cgeo/geocaching/MainActivity.java b/main/src/cgeo/geocaching/MainActivity.java
index 373f32a..42dd58d 100644
--- a/main/src/cgeo/geocaching/MainActivity.java
+++ b/main/src/cgeo/geocaching/MainActivity.java
@@ -21,18 +21,17 @@ import cgeo.geocaching.ui.Formatter;
import cgeo.geocaching.ui.dialog.Dialogs;
import cgeo.geocaching.utils.DatabaseBackupUtils;
import cgeo.geocaching.utils.Log;
-import cgeo.geocaching.utils.RxUtils;
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.OnSubscribe;
import rx.Subscriber;
+import rx.android.observables.AndroidObservable;
import rx.functions.Action1;
+import rx.schedulers.Schedulers;
import rx.subscriptions.Subscriptions;
import android.app.AlertDialog;
@@ -553,13 +552,13 @@ public class MainActivity extends AbstractActivity {
}
}
});
- RxUtils.subscribeOnIOThenUI(address.onErrorResumeNext(Observable.from(geo.getCoords().toString())),
- new Action1<String>() {
+ AndroidObservable.bindActivity(MainActivity.this, address.onErrorResumeNext(Observable.from(geo.getCoords().toString())))
+ .subscribe(new Action1<String>() {
@Override
public void call(final String address) {
navLocation.setText(address);
}
- });
+ }, Schedulers.io());
}
} else {
navLocation.setText(geo.getCoords().toString());
diff --git a/main/src/cgeo/geocaching/PocketQueryList.java b/main/src/cgeo/geocaching/PocketQueryList.java
index e748b29..2ac137f 100644
--- a/main/src/cgeo/geocaching/PocketQueryList.java
+++ b/main/src/cgeo/geocaching/PocketQueryList.java
@@ -2,13 +2,14 @@ package cgeo.geocaching;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.connector.gc.GCParser;
-import cgeo.geocaching.utils.RxUtils;
import org.apache.commons.collections4.CollectionUtils;
import rx.Observable;
import rx.Observable.OnSubscribe;
import rx.Subscriber;
+import rx.android.observables.AndroidObservable;
import rx.functions.Action1;
+import rx.schedulers.Schedulers;
import android.app.Activity;
import android.app.AlertDialog;
@@ -45,19 +46,19 @@ 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);
- RxUtils.subscribeOnIOThenUI(Observable.create(new OnSubscribe<List<PocketQueryList>>() {
+ AndroidObservable.bindActivity(activity, Observable.create(new OnSubscribe<List<PocketQueryList>>() {
@Override
public void call(final Subscriber<? super List<PocketQueryList>> subscriber) {
subscriber.onNext(GCParser.searchPocketQueryList());
subscriber.onCompleted();
}
- }), new Action1<List<PocketQueryList>>() {
+ })).subscribe(new Action1<List<PocketQueryList>>() {
@Override
public void call(final List<PocketQueryList> pocketQueryLists) {
waitDialog.dismiss();
selectFromPocketQueries(activity, pocketQueryLists, runAfterwards);
}
- });
+ }, Schedulers.io());
}
private static void selectFromPocketQueries(final Activity activity, final List<PocketQueryList> pocketQueryList, final Action1<PocketQueryList> runAfterwards) {
if (CollectionUtils.isEmpty(pocketQueryList)) {
diff --git a/main/src/cgeo/geocaching/StatusFragment.java b/main/src/cgeo/geocaching/StatusFragment.java
index a59316f..f8552d7 100644
--- a/main/src/cgeo/geocaching/StatusFragment.java
+++ b/main/src/cgeo/geocaching/StatusFragment.java
@@ -3,10 +3,11 @@ package cgeo.geocaching;
import cgeo.geocaching.network.StatusUpdater;
import cgeo.geocaching.network.StatusUpdater.Status;
import cgeo.geocaching.utils.Log;
-import cgeo.geocaching.utils.RxUtils;
import rx.Subscription;
+import rx.android.observables.AndroidObservable;
import rx.functions.Action1;
+import rx.schedulers.Schedulers;
import android.content.Intent;
import android.content.res.Resources;
@@ -30,53 +31,53 @@ public class StatusFragment extends Fragment {
final ViewGroup statusGroup = (ViewGroup) inflater.inflate(R.layout.status, container, false);
final ImageView statusIcon = (ImageView) statusGroup.findViewById(R.id.status_icon);
final TextView statusMessage = (TextView) statusGroup.findViewById(R.id.status_message);
- statusSubscription = RxUtils.subscribeOnIOThenUI(StatusUpdater.latestStatus, new Action1<Status>() {
- @Override
- public void call(final Status status) {
- if (status == null) {
- statusGroup.setVisibility(View.INVISIBLE);
- return;
- }
+ statusSubscription = AndroidObservable.bindFragment(this, StatusUpdater.latestStatus).subscribe(new Action1<Status>() {
+ @Override
+ public void call(final Status status) {
+ if (status == null) {
+ statusGroup.setVisibility(View.INVISIBLE);
+ return;
+ }
- final Resources res = getResources();
- final String packageName = getActivity().getPackageName();
+ final Resources res = getResources();
+ final String packageName = getActivity().getPackageName();
- if (status.icon != null) {
- final int iconId = res.getIdentifier(status.icon, "drawable", packageName);
- if (iconId != 0) {
- statusIcon.setImageResource(iconId);
- statusIcon.setVisibility(View.VISIBLE);
- } else {
- Log.w("StatusHandler: could not find icon corresponding to @drawable/" + status.icon);
- statusIcon.setVisibility(View.GONE);
- }
- } else {
- statusIcon.setVisibility(View.GONE);
- }
+ if (status.icon != null) {
+ final int iconId = res.getIdentifier(status.icon, "drawable", packageName);
+ if (iconId != 0) {
+ statusIcon.setImageResource(iconId);
+ statusIcon.setVisibility(View.VISIBLE);
+ } else {
+ Log.w("StatusHandler: could not find icon corresponding to @drawable/" + status.icon);
+ statusIcon.setVisibility(View.GONE);
+ }
+ } else {
+ statusIcon.setVisibility(View.GONE);
+ }
- String message = status.message;
- if (status.messageId != null) {
- final int messageId = res.getIdentifier(status.messageId, "string", packageName);
- if (messageId != 0) {
- message = res.getString(messageId);
- }
- }
+ String message = status.message;
+ if (status.messageId != null) {
+ final int messageId = res.getIdentifier(status.messageId, "string", packageName);
+ if (messageId != 0) {
+ message = res.getString(messageId);
+ }
+ }
- statusMessage.setText(message);
- statusGroup.setVisibility(View.VISIBLE);
+ statusMessage.setText(message);
+ statusGroup.setVisibility(View.VISIBLE);
- if (status.url != null) {
- statusGroup.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(final View v) {
- startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(status.url)));
+ if (status.url != null) {
+ statusGroup.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(final View v) {
+ startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(status.url)));
+ }
+ });
+ } else {
+ statusGroup.setClickable(false);
}
- });
- } else {
- statusGroup.setClickable(false);
- }
- }
- });
+ }
+ }, Schedulers.io());
return statusGroup;
}
diff --git a/main/src/cgeo/geocaching/TrackableActivity.java b/main/src/cgeo/geocaching/TrackableActivity.java
index a14a397..81d23c9 100644
--- a/main/src/cgeo/geocaching/TrackableActivity.java
+++ b/main/src/cgeo/geocaching/TrackableActivity.java
@@ -20,12 +20,12 @@ import cgeo.geocaching.ui.UserNameClickListener;
import cgeo.geocaching.ui.logs.TrackableLogsViewCreator;
import cgeo.geocaching.utils.HtmlUtils;
import cgeo.geocaching.utils.Log;
-import cgeo.geocaching.utils.RxUtils;
import cgeo.geocaching.utils.UnknownTagsHandler;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
+import rx.android.observables.AndroidObservable;
import rx.android.observables.ViewObservable;
import rx.functions.Action1;
@@ -524,7 +524,7 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
}
});
- RxUtils.subscribeThenUI(new HtmlImage(geocode, true, 0, false).fetchDrawable(trackable.getImage()), new Action1<BitmapDrawable>() {
+ AndroidObservable.bindActivity(TrackableActivity.this, new HtmlImage(geocode, true, 0, false).fetchDrawable(trackable.getImage())).subscribe(new Action1<BitmapDrawable>() {
@Override
public void call(final BitmapDrawable bitmapDrawable) {
trackableImage.setImageDrawable(bitmapDrawable);
diff --git a/main/src/cgeo/geocaching/connector/gc/RecaptchaHandler.java b/main/src/cgeo/geocaching/connector/gc/RecaptchaHandler.java
index 280069f..7cced74 100644
--- a/main/src/cgeo/geocaching/connector/gc/RecaptchaHandler.java
+++ b/main/src/cgeo/geocaching/connector/gc/RecaptchaHandler.java
@@ -4,12 +4,13 @@ import cgeo.geocaching.R;
import cgeo.geocaching.loaders.RecaptchaReceiver;
import cgeo.geocaching.network.Network;
import cgeo.geocaching.utils.Log;
-import cgeo.geocaching.utils.RxUtils;
import org.apache.commons.io.IOUtils;
import rx.Observable;
+import rx.android.observables.AndroidObservable;
import rx.functions.Action1;
import rx.functions.Func0;
+import rx.schedulers.Schedulers;
import android.app.Activity;
import android.app.AlertDialog;
@@ -56,7 +57,7 @@ public class RecaptchaHandler extends Handler {
return Observable.empty();
}
});
- RxUtils.subscribeOnIOThenUI(captcha, new Action1<Bitmap>() {
+ AndroidObservable.bindActivity(activity, captcha).subscribe(new Action1<Bitmap>() {
@Override
public void call(final Bitmap bitmap) {
imageView.setImageBitmap(bitmap);
@@ -66,7 +67,7 @@ public class RecaptchaHandler extends Handler {
public void call(final Throwable throwable) {
// Do nothing
}
- });
+ }, Schedulers.io());
reloadButton.setEnabled(true);
}
diff --git a/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java b/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java
index 298270b..917c9c4 100644
--- a/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java
+++ b/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java
@@ -5,12 +5,13 @@ import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.enumerations.StatusCode;
import cgeo.geocaching.network.Cookies;
import cgeo.geocaching.ui.dialog.Dialogs;
-import cgeo.geocaching.utils.RxUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
+import rx.android.observables.AndroidObservable;
import rx.functions.Action1;
import rx.functions.Func0;
+import rx.schedulers.Schedulers;
import rx.util.async.Async;
import android.app.ProgressDialog;
@@ -64,12 +65,12 @@ public abstract class AbstractCheckCredentialsPreference extends AbstractClickab
loginDialog.setCancelable(false);
Cookies.clearCookies();
- RxUtils.subscribeOnIOThenUI(Async.start(new Func0<ImmutablePair<StatusCode, ? extends Drawable>>() {
+ AndroidObservable.bindActivity(activity, Async.start(new Func0<ImmutablePair<StatusCode, ? extends Drawable>>() {
@Override
public ImmutablePair<StatusCode, ? extends Drawable> call() {
return login();
}
- }), new Action1<ImmutablePair<StatusCode, ? extends Drawable>>() {
+ })).subscribe(new Action1<ImmutablePair<StatusCode, ? extends Drawable>>() {
@Override
public void call(final ImmutablePair<StatusCode, ? extends Drawable> loginInfo) {
loginDialog.dismiss();
@@ -85,7 +86,7 @@ public abstract class AbstractCheckCredentialsPreference extends AbstractClickab
}
activity.initBasicMemberPreferences();
}
- });
+ }, Schedulers.io());
return false; // no shared preference has to be changed
}
diff --git a/main/src/cgeo/geocaching/settings/RegisterSend2CgeoPreference.java b/main/src/cgeo/geocaching/settings/RegisterSend2CgeoPreference.java
index 1b18438..cc2de9f 100644
--- a/main/src/cgeo/geocaching/settings/RegisterSend2CgeoPreference.java
+++ b/main/src/cgeo/geocaching/settings/RegisterSend2CgeoPreference.java
@@ -6,13 +6,14 @@ import cgeo.geocaching.network.Network;
import cgeo.geocaching.network.Parameters;
import cgeo.geocaching.ui.dialog.Dialogs;
import cgeo.geocaching.utils.Log;
-import cgeo.geocaching.utils.RxUtils;
import ch.boye.httpclientandroidlib.HttpResponse;
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.app.ProgressDialog;
import android.content.Context;
@@ -52,7 +53,7 @@ public class RegisterSend2CgeoPreference extends AbstractClickablePreference {
activity.getString(R.string.init_sendToCgeo_registering), true);
progressDialog.setCancelable(false);
- RxUtils.subscribeOnIOThenUI(Observable.defer(new Func0<Observable<Integer>>() {
+ AndroidObservable.bindActivity(activity, Observable.defer(new Func0<Observable<Integer>>() {
@Override
public Observable<Integer> call() {
final String nam = StringUtils.defaultString(deviceName);
@@ -74,7 +75,7 @@ public class RegisterSend2CgeoPreference extends AbstractClickablePreference {
return Observable.empty();
}
- }).firstOrDefault(0), new Action1<Integer>() {
+ }).firstOrDefault(0)).subscribe(new Action1<Integer>() {
@Override
public void call(final Integer pin) {
progressDialog.dismiss();
@@ -86,7 +87,7 @@ public class RegisterSend2CgeoPreference extends AbstractClickablePreference {
Dialogs.message(activity, R.string.init_sendToCgeo, R.string.init_sendToCgeo_register_fail);
}
}
- });
+ }, Schedulers.io());
return true;
}
diff --git a/main/src/cgeo/geocaching/ui/ImagesList.java b/main/src/cgeo/geocaching/ui/ImagesList.java
index d1b2a64..75c0249 100644
--- a/main/src/cgeo/geocaching/ui/ImagesList.java
+++ b/main/src/cgeo/geocaching/ui/ImagesList.java
@@ -11,6 +11,7 @@ import cgeo.geocaching.utils.RxUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import rx.Subscription;
+import rx.android.observables.AndroidObservable;
import rx.functions.Action0;
import rx.functions.Action1;
import rx.subscriptions.CompositeSubscription;
@@ -118,12 +119,12 @@ public class ImagesList {
final ImageView imageView = (ImageView) inflater.inflate(R.layout.image_item, null);
assert(imageView != null);
- subscriptions.add(RxUtils.subscribeThenUI(imgGetter.fetchDrawable(img.getUrl()), new Action1<BitmapDrawable>() {
+ AndroidObservable.bindActivity(activity, imgGetter.fetchDrawable(img.getUrl())).subscribe(new Action1<BitmapDrawable>() {
@Override
public void call(final BitmapDrawable image) {
display(imageView, image, img, rowView);
}
- }));
+ });
rowView.addView(imageView);
imagesView.addView(rowView);
}
diff --git a/main/src/cgeo/geocaching/utils/RxUtils.java b/main/src/cgeo/geocaching/utils/RxUtils.java
index 9926bab..8e7864c 100644
--- a/main/src/cgeo/geocaching/utils/RxUtils.java
+++ b/main/src/cgeo/geocaching/utils/RxUtils.java
@@ -1,11 +1,6 @@
package cgeo.geocaching.utils;
-import rx.Observable;
-import rx.Observer;
import rx.Scheduler;
-import rx.Subscription;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.functions.Action1;
import rx.schedulers.Schedulers;
import java.util.concurrent.LinkedBlockingQueue;
@@ -20,32 +15,4 @@ public class RxUtils {
final static private int cores = Runtime.getRuntime().availableProcessors();
public final static Scheduler computationScheduler = Schedulers.executor(new ThreadPoolExecutor(1, cores, 5, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()));
- public static <T> Subscription subscribeThenUI(final Observable<T> observable, final Observer<T> observer) {
- return observable.observeOn(AndroidSchedulers.mainThread()).subscribe(observer);
- }
-
- public static <T> Subscription subscribeThenUI(final Observable<T> observable, final Action1<T> action) {
- return observable.observeOn(AndroidSchedulers.mainThread()).subscribe(action);
- }
-
- public static <T> Subscription subscribeThenUI(final Observable<T> observable, final Action1<T> action, final Action1<Throwable> onError) {
- return observable.observeOn(AndroidSchedulers.mainThread()).subscribe(action, onError);
- }
-
- public static <T> Observable<T> onIO(final Observable<T> observable) {
- return observable.subscribeOn(Schedulers.io());
- }
-
- public static <T> Subscription subscribeOnIOThenUI(final Observable<T> observable, final Observer<T> observer) {
- return subscribeThenUI(onIO(observable), observer);
- }
-
- public static <T> Subscription subscribeOnIOThenUI(final Observable<T> observable, final Action1<T> action) {
- return subscribeThenUI(onIO(observable), action);
- }
-
- public static <T> Subscription subscribeOnIOThenUI(final Observable<T> observable, final Action1<T> action, final Action1<Throwable> onError) {
- return subscribeThenUI(onIO(observable), action, onError);
- }
-
}