From dc0baacfc2ae0f7e53631bbba2c70f1f70340939 Mon Sep 17 00:00:00 2001 From: Michael Keppler Date: Sat, 26 Apr 2014 17:24:53 +0200 Subject: #3778: remove reference from geo updater to details activity --- main/src/cgeo/geocaching/CacheDetailActivity.java | 40 +++++++++++++++-------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index da8cc7d..a66d181 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -145,19 +145,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity activityRef; + + public CacheDetailsGeoDirHandler(final CacheDetailActivity activity) { + this.activityRef = new WeakReference(activity); + } + + @Override + public void updateGeoData(final IGeoData geo) { + final CacheDetailActivity activity = activityRef.get(); + if (activity == null) { + return; + } + if (activity.cacheDistanceView == null) { + return; + } + + if (geo.getCoords() != null && activity.cache != null && activity.cache.getCoords() != null) { + activity.cacheDistanceView.setText(Units.getDistanceFromKilometers(geo.getCoords().distanceTo(activity.cache.getCoords()))); + activity.cacheDistanceView.bringToFront(); + } + } + } + private final static class LoadCacheHandler extends SimpleCancellableHandler { public LoadCacheHandler(CacheDetailActivity activity, Progress progress) { -- cgit v1.1