diff options
Diffstat (limited to 'main/src/cgeo/geocaching/AbstractPopupActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/AbstractPopupActivity.java | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/main/src/cgeo/geocaching/AbstractPopupActivity.java b/main/src/cgeo/geocaching/AbstractPopupActivity.java index 1cf0353..02f89a6 100644 --- a/main/src/cgeo/geocaching/AbstractPopupActivity.java +++ b/main/src/cgeo/geocaching/AbstractPopupActivity.java @@ -21,8 +21,6 @@ import android.content.Intent; import android.graphics.Rect; import android.net.Uri; import android.os.Bundle; -import android.os.Handler; -import android.os.Message; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; @@ -42,18 +40,6 @@ public abstract class AbstractPopupActivity extends AbstractActivity { private TextView cacheDistance = null; private final int layout; - private final Handler ratingHandler = new Handler() { - - @Override - public void handleMessage(Message msg) { - try { - details.addRating(cache); - } catch (final Exception e) { - // nothing - } - } - }; - private final GeoDirHandler geoUpdate = new GeoDirHandler() { @Override @@ -64,7 +50,7 @@ public abstract class AbstractPopupActivity extends AbstractActivity { cacheDistance.bringToFront(); } onUpdateGeoData(geo); - } catch (final Exception e) { + } catch (final RuntimeException e) { Log.w("Failed to UpdateLocation location."); } } @@ -91,8 +77,8 @@ public abstract class AbstractPopupActivity extends AbstractActivity { if (!cache.supportsGCVote()) { return; } - (new Thread("Load GCVote") { + (new Thread("Load GCVote") { @Override public void run() { final GCVoteRating rating = GCVote.getRating(cache.getGuid(), geocode); @@ -102,14 +88,17 @@ public abstract class AbstractPopupActivity extends AbstractActivity { } cache.setRating(rating.getRating()); cache.setVotes(rating.getVotes()); - final Message msg = Message.obtain(); - ratingHandler.sendMessage(msg); + runOnUiThread(new Runnable() { + @Override + public void run() { + details.addRating(cache); } + }); } }).start(); } protected void init() { - cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB); + cache = DataStore.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB); if (cache == null) { showToast(res.getString(R.string.err_detail_cache_find)); @@ -209,7 +198,7 @@ public abstract class AbstractPopupActivity extends AbstractActivity { menu.findItem(R.id.menu_default_navigation).setTitle(NavigationAppFactory.getDefaultNavigationApplication().getName()); LoggingUI.onPrepareOptionsMenu(menu, cache); - } catch (final Exception e) { + } catch (final RuntimeException e) { // nothing } @@ -243,6 +232,7 @@ public abstract class AbstractPopupActivity extends AbstractActivity { protected abstract void startDefaultNavigation2(); protected final void addCacheDetails() { + assert cache != null; // cache type final String cacheType = cache.getType().getL10n(); final String cacheSize = cache.getSize() != CacheSize.UNKNOWN ? " (" + cache.getSize().getL10n() + ")" : ""; @@ -256,6 +246,7 @@ public abstract class AbstractPopupActivity extends AbstractActivity { details.addDifficulty(cache); details.addTerrain(cache); + details.addEventDate(cache); // rating if (cache.getRating() > 0) { @@ -285,7 +276,7 @@ public abstract class AbstractPopupActivity extends AbstractActivity { showToast(res.getString(R.string.err_location_unknown)); return; } - cgeocaches.startActivityCoordinates(this, coords); + CacheListActivity.startActivityCoordinates(this, coords); finish(); } |
