aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/AbstractPopupActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/AbstractPopupActivity.java')
-rw-r--r--main/src/cgeo/geocaching/AbstractPopupActivity.java54
1 files changed, 23 insertions, 31 deletions
diff --git a/main/src/cgeo/geocaching/AbstractPopupActivity.java b/main/src/cgeo/geocaching/AbstractPopupActivity.java
index f903d00..73dc86d 100644
--- a/main/src/cgeo/geocaching/AbstractPopupActivity.java
+++ b/main/src/cgeo/geocaching/AbstractPopupActivity.java
@@ -2,7 +2,6 @@ package cgeo.geocaching;
import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.activity.ActivityMixin;
-import cgeo.geocaching.apps.cache.navi.NavigationAppFactory;
import cgeo.geocaching.enumerations.CacheSize;
import cgeo.geocaching.enumerations.LoadFlags;
import cgeo.geocaching.gcvote.GCVote;
@@ -34,11 +33,6 @@ import android.widget.TextView;
public abstract class AbstractPopupActivity extends AbstractActivity {
- private static final int MENU_CACHES_AROUND = 5;
- private static final int MENU_NAVIGATION = 3;
- private static final int MENU_DEFAULT_NAVIGATION = 2;
- private static final int MENU_SHOW_IN_BROWSER = 7;
-
protected Geocache cache = null;
protected String geocode = null;
protected CacheDetailsCreator details;
@@ -67,14 +61,24 @@ public abstract class AbstractPopupActivity extends AbstractActivity {
cacheDistance.setText(Units.getDistanceFromKilometers(geo.getCoords().distanceTo(cache.getCoords())));
cacheDistance.bringToFront();
}
+ onUpdateGeoData(geo);
} catch (Exception e) {
Log.w("Failed to UpdateLocation location.");
}
}
};
- protected AbstractPopupActivity(String helpTopic, int layout) {
- super(helpTopic);
+ /**
+ * Callback to run when new location information is available.
+ * This may be overridden by deriving classes. The default implementation does nothing.
+ *
+ * @param geo
+ * the new data
+ */
+ public void onUpdateGeoData(final IGeoData geo) {
+ }
+
+ protected AbstractPopupActivity(int layout) {
this.layout = layout;
}
@@ -102,12 +106,6 @@ public abstract class AbstractPopupActivity extends AbstractActivity {
}).start();
}
- @Override
- public void goManual(View view) {
- super.goManual(view);
- finish();
- }
-
protected void init() {
cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
@@ -134,7 +132,6 @@ public abstract class AbstractPopupActivity extends AbstractActivity {
this.setTheme(ActivityMixin.getDialogTheme());
// set layout
setContentView(layout);
- setTitle(res.getString(R.string.detail));
// get parameters
final Bundle extras = getIntent().getExtras();
@@ -162,12 +159,7 @@ public abstract class AbstractPopupActivity extends AbstractActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
- menu.add(0, MENU_DEFAULT_NAVIGATION, 0, NavigationAppFactory.getDefaultNavigationApplication().getName()).setIcon(R.drawable.ic_menu_compass); // default navigation tool
- menu.add(0, MENU_NAVIGATION, 0, res.getString(R.string.cache_menu_navigate)).setIcon(R.drawable.ic_menu_mapmode);
- LoggingUI.addMenuItems(menu, cache);
- menu.add(0, MENU_CACHES_AROUND, 0, res.getString(R.string.cache_menu_around)).setIcon(R.drawable.ic_menu_rotate); // caches around
- menu.add(0, MENU_SHOW_IN_BROWSER, 0, res.getString(R.string.cache_menu_browser)).setIcon(R.drawable.ic_menu_info_details); // browser
-
+ getMenuInflater().inflate(R.menu.abstract_popup_activity, menu);
return true;
}
@@ -176,16 +168,16 @@ public abstract class AbstractPopupActivity extends AbstractActivity {
final int menuItem = item.getItemId();
switch (menuItem) {
- case MENU_DEFAULT_NAVIGATION:
+ case R.id.menu_default_navigation:
navigateTo();
return true;
- case MENU_NAVIGATION:
+ case R.id.menu_navigate:
showNavigationMenu();
return true;
- case MENU_CACHES_AROUND:
+ case R.id.menu_caches_around:
cachesAround();
return true;
- case MENU_SHOW_IN_BROWSER:
+ case R.id.menu_show_in_browser:
showInBrowser();
return true;
default:
@@ -209,11 +201,11 @@ public abstract class AbstractPopupActivity extends AbstractActivity {
try {
final boolean visible = getCoordinates() != null;
- menu.findItem(MENU_DEFAULT_NAVIGATION).setVisible(visible);
- menu.findItem(MENU_NAVIGATION).setVisible(visible);
- menu.findItem(MENU_CACHES_AROUND).setVisible(visible);
+ menu.findItem(R.id.menu_default_navigation).setVisible(visible);
+ menu.findItem(R.id.menu_navigate).setVisible(visible);
+ menu.findItem(R.id.menu_caches_around).setVisible(visible);
- LoggingUI.onPrepareOptionsMenu(menu);
+ LoggingUI.onPrepareOptionsMenu(menu, cache);
} catch (Exception e) {
// nothing
}
@@ -269,8 +261,8 @@ public abstract class AbstractPopupActivity extends AbstractActivity {
aquireGCVote();
}
- // favourite count
- details.add(R.string.cache_favourite, cache.getFavoritePoints() + "×");
+ // favorite count
+ details.add(R.string.cache_favorite, cache.getFavoritePoints() + "×");
// more details
final Button buttonMore = (Button) findViewById(R.id.more_details);