diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-04-21 13:05:50 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-04-21 13:05:50 +0200 |
| commit | 08ccf4c2798b21deeb9395966ecadf72508d1458 (patch) | |
| tree | 7f4fac9f8371546a7f800588fe192f24d91c4d61 | |
| parent | 989cf4fe2eb92e9da1c13b19486d9bb322ecc133 (diff) | |
| download | cgeo-08ccf4c2798b21deeb9395966ecadf72508d1458.zip cgeo-08ccf4c2798b21deeb9395966ecadf72508d1458.tar.gz cgeo-08ccf4c2798b21deeb9395966ecadf72508d1458.tar.bz2 | |
Stop all images tab downloads in onDestroy()
| -rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 12 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/ui/ImagesList.java | 5 |
2 files changed, 8 insertions, 9 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index 6214a1a..b8f4703 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -60,10 +60,10 @@ import rx.Observable.OnSubscribe; 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; +import rx.subscriptions.CompositeSubscription; import android.R.color; import android.app.AlertDialog; @@ -168,7 +168,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc private TextView cacheDistanceView; protected ImagesList imagesList; - private Subscription imagesSubscription; + private CompositeSubscription createSubscriptions; /** * waypoint selected in context menu. This variable will be gone when the waypoint context menu is a fragment. */ @@ -178,6 +178,8 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState, R.layout.cachedetail_activity); + createSubscriptions = new CompositeSubscription(); + // set title in code, as the activity needs a hard coded title due to the intent filters setTitle(res.getString(R.string.cache)); @@ -330,9 +332,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc @Override public void onDestroy() { - if (imagesList != null) { - imagesSubscription.unsubscribe(); - } + createSubscriptions.unsubscribe(); super.onDestroy(); } @@ -649,7 +649,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc return; } imagesList = new ImagesList(this, cache.getGeocode()); - imagesSubscription = imagesList.loadImages(imageView, cache.getImages(), false); + createSubscriptions.add(imagesList.loadImages(imageView, cache.getImages(), false)); } public static void startActivity(final Context context, final String geocode) { diff --git a/main/src/cgeo/geocaching/ui/ImagesList.java b/main/src/cgeo/geocaching/ui/ImagesList.java index 58d5d1e..785be55 100644 --- a/main/src/cgeo/geocaching/ui/ImagesList.java +++ b/main/src/cgeo/geocaching/ui/ImagesList.java @@ -9,7 +9,6 @@ import cgeo.geocaching.utils.Log; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; - import rx.Subscription; import rx.android.observables.AndroidObservable; import rx.functions.Action0; @@ -119,12 +118,12 @@ public class ImagesList { final ImageView imageView = (ImageView) inflater.inflate(R.layout.image_item, null); assert(imageView != null); - AndroidObservable.bindActivity(activity, imgGetter.fetchDrawable(img.getUrl())).subscribe(new Action1<BitmapDrawable>() { + subscriptions.add(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); } |
