From 144de00ccfdb3af7e6eb12c1386125f87288bdb0 Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Sat, 15 Mar 2014 11:39:48 +0100 Subject: Use RxJava to load trackable image --- main/src/cgeo/geocaching/TrackableActivity.java | 43 ++++++++----------------- 1 file changed, 13 insertions(+), 30 deletions(-) (limited to 'main') diff --git a/main/src/cgeo/geocaching/TrackableActivity.java b/main/src/cgeo/geocaching/TrackableActivity.java index 948e668..855eb4d 100644 --- a/main/src/cgeo/geocaching/TrackableActivity.java +++ b/main/src/cgeo/geocaching/TrackableActivity.java @@ -25,6 +25,9 @@ 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; import android.app.ProgressDialog; import android.content.Intent; @@ -514,41 +517,21 @@ public class TrackableActivity extends AbstractViewPagerActivity() { @Override - public void onClick(View arg0) { + public void call(final View view) { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(trackable.getImage()))); } }); - // try to load image - final Handler handler = new Handler() { - - @Override - public void handleMessage(Message message) { - final BitmapDrawable image = (BitmapDrawable) message.obj; - if (image != null) { - trackableImage.setImageDrawable((BitmapDrawable) message.obj); - } - } - }; - - new Thread() { - - @Override - public void run() { - try { - final HtmlImage imgGetter = new HtmlImage(geocode, true, 0, false); - - final BitmapDrawable image = imgGetter.getDrawable(trackable.getImage()); - final Message message = handler.obtainMessage(0, image); - handler.sendMessage(message); - } catch (final Exception e) { - Log.e("TrackableActivity.DetailsViewCreator.ImageGetterThread: ", e); - } - } - }.start(); + AndroidObservable.fromActivity(TrackableActivity.this, + new HtmlImage(geocode, true, 0, false).fetchDrawable(trackable.getImage())) + .subscribe(new Action1() { + @Override + public void call(final BitmapDrawable bitmapDrawable) { + trackableImage.setImageDrawable(bitmapDrawable); + } + }); imageView.addView(trackableImage); } -- cgit v1.1