diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-03-15 11:39:48 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-03-15 12:34:15 +0100 |
| commit | 144de00ccfdb3af7e6eb12c1386125f87288bdb0 (patch) | |
| tree | 4ac943b1040af254caa3b6277dded9949dc2674c /main/src/cgeo/geocaching/TrackableActivity.java | |
| parent | 5d91fe9a8a9b09da0491410f4518615995ce1060 (diff) | |
| download | cgeo-144de00ccfdb3af7e6eb12c1386125f87288bdb0.zip cgeo-144de00ccfdb3af7e6eb12c1386125f87288bdb0.tar.gz cgeo-144de00ccfdb3af7e6eb12c1386125f87288bdb0.tar.bz2 | |
Use RxJava to load trackable image
Diffstat (limited to 'main/src/cgeo/geocaching/TrackableActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/TrackableActivity.java | 43 |
1 files changed, 13 insertions, 30 deletions
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<TrackableActivi trackableImage.setImageResource(R.drawable.image_not_loaded); trackableImage.setClickable(true); - trackableImage.setOnClickListener(new View.OnClickListener() { - + ViewObservable.clicks(trackableImage, false).subscribe(new Action1<View>() { @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<BitmapDrawable>() { + @Override + public void call(final BitmapDrawable bitmapDrawable) { + trackableImage.setImageDrawable(bitmapDrawable); + } + }); imageView.addView(trackableImage); } |
