diff options
Diffstat (limited to 'main/src/cgeo/geocaching')
30 files changed, 194 insertions, 253 deletions
diff --git a/main/src/cgeo/geocaching/CacheListActivity.java b/main/src/cgeo/geocaching/CacheListActivity.java index 848518d..813a57e 100644 --- a/main/src/cgeo/geocaching/CacheListActivity.java +++ b/main/src/cgeo/geocaching/CacheListActivity.java @@ -45,6 +45,7 @@ import cgeo.geocaching.utils.Log; import cgeo.geocaching.utils.RunnableWithArgument; import ch.boye.httpclientandroidlib.HttpResponse; + import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; @@ -68,7 +69,6 @@ import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; -import android.view.SubMenu; import android.view.View; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.ListView; @@ -85,34 +85,6 @@ import java.util.Set; public class CacheListActivity extends AbstractListActivity implements FilteredActivity, LoaderManager.LoaderCallbacks<SearchResult> { private static final int MAX_LIST_ITEMS = 1000; - private static final int MENU_REFRESH_STORED = 2; - private static final int MENU_CACHE_DETAILS = 4; - private static final int MENU_DROP_CACHES = 5; - private static final int MENU_IMPORT_GPX = 6; - private static final int MENU_CREATE_LIST = 7; - private static final int MENU_DROP_LIST = 8; - private static final int MENU_INVERT_SELECTION = 9; - private static final int MENU_SWITCH_LIST = 17; - private static final int MENU_IMPORT_WEB = 21; - private static final int MENU_EXPORT = 22; - private static final int MENU_REMOVE_FROM_HISTORY = 23; - private static final int MENU_DROP_CACHE = 24; - private static final int MENU_MOVE_TO_LIST = 25; - private static final int MENU_REFRESH = 26; - private static final int MENU_SWITCH_SELECT_MODE = 52; - private static final int SUBMENU_SHOW_MAP = 54; - private static final int SUBMENU_MANAGE_LISTS = 55; - private static final int SUBMENU_MANAGE_OFFLINE = 56; - private static final int MENU_SORT = 57; - private static final int SUBMENU_MANAGE_HISTORY = 60; - private static final int MENU_RENAME_LIST = 64; - private static final int MENU_DROP_CACHES_AND_LIST = 65; - private static final int MENU_DEFAULT_NAVIGATION = 66; - private static final int MENU_NAVIGATION = 69; - private static final int MENU_STORE_CACHE = 73; - private static final int MENU_FILTER = 74; - private static final int MENU_DELETE_EVENTS = 75; - private static final int MENU_CLEAR_OFFLINE_LOGS = 76; private static final int MSG_DONE = -1; private static final int MSG_RESTART_GEO_AND_DIR = -2; @@ -162,10 +134,6 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA }; private ContextMenuInfo lastMenuInfo; private String contextMenuGeocode = ""; - /** - * the navigation menu item for the cache list (not the context menu!), or <code>null</code> - */ - private MenuItem navigationMenu; // FIXME: This method has mostly been replaced by the loaders. But it still contains a license agreement check. public void handleCachesLoaded() { @@ -531,132 +499,80 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA @Override public boolean onCreateOptionsMenu(Menu menu) { - menu.add(0, MENU_FILTER, 0, res.getString(R.string.caches_filter)).setIcon(R.drawable.ic_menu_filter); - - if (type != CacheListType.HISTORY) { - menu.add(0, MENU_SORT, 0, res.getString(R.string.caches_sort)).setIcon(R.drawable.ic_menu_sort_alphabetically); - } - - menu.add(0, MENU_SWITCH_SELECT_MODE, 0, res.getString(R.string.caches_select_mode)).setIcon(R.drawable.ic_menu_agenda); - menu.add(0, MENU_INVERT_SELECTION, 0, res.getString(R.string.caches_select_invert)).setIcon(R.drawable.ic_menu_mark); - if (type == CacheListType.OFFLINE) { - final SubMenu subMenu = menu.addSubMenu(0, SUBMENU_MANAGE_OFFLINE, 0, res.getString(R.string.caches_manage)).setIcon(R.drawable.ic_menu_save); - subMenu.add(0, MENU_DROP_CACHES, 0, res.getString(R.string.caches_drop_all)); // delete saved caches - subMenu.add(0, MENU_DROP_CACHES_AND_LIST, 0, res.getString(R.string.caches_drop_all_and_list)); - subMenu.add(0, MENU_REFRESH_STORED, 0, res.getString(R.string.cache_offline_refresh)); // download details for all caches - subMenu.add(0, MENU_MOVE_TO_LIST, 0, res.getString(R.string.cache_menu_move_list)); - subMenu.add(0, MENU_DELETE_EVENTS, 0, res.getString(R.string.caches_delete_events)); - subMenu.add(0, MENU_CLEAR_OFFLINE_LOGS, 0, res.getString(R.string.caches_clear_offlinelogs)); - - //TODO: add submenu/AlertDialog and use R.string.gpx_import_title - subMenu.add(0, MENU_IMPORT_GPX, 0, res.getString(R.string.gpx_import_title)); - if (Settings.getWebDeviceCode() != null) { - subMenu.add(0, MENU_IMPORT_WEB, 0, res.getString(R.string.web_import_title)); - } + getMenuInflater().inflate(R.menu.cache_list_options, menu); - subMenu.add(0, MENU_EXPORT, 0, res.getString(R.string.export)); // export caches - } else { - if (type == CacheListType.HISTORY) { - final SubMenu subMenu = menu.addSubMenu(0, SUBMENU_MANAGE_HISTORY, 0, res.getString(R.string.caches_manage)).setIcon(R.drawable.ic_menu_save); - subMenu.add(0, MENU_EXPORT, 0, res.getString(R.string.export)); // export caches - subMenu.add(0, MENU_REMOVE_FROM_HISTORY, 0, res.getString(R.string.cache_clear_history)); // remove from history - subMenu.add(0, MENU_CLEAR_OFFLINE_LOGS, 0, res.getString(R.string.caches_clear_offlinelogs)); - menu.add(0, MENU_REFRESH_STORED, 0, res.getString(R.string.cache_offline_refresh)).setIcon(R.drawable.ic_menu_set_as); - } else { - menu.add(0, MENU_REFRESH_STORED, 0, res.getString(R.string.caches_store_offline)).setIcon(R.drawable.ic_menu_set_as); // download details for all caches - } - } - - navigationMenu = CacheListAppFactory.addMenuItems(menu, this, res); - - if (type == CacheListType.OFFLINE) { - final SubMenu subMenu = menu.addSubMenu(0, SUBMENU_MANAGE_LISTS, 0, res.getString(R.string.list_menu)).setIcon(R.drawable.ic_menu_more); - subMenu.add(0, MENU_CREATE_LIST, 0, res.getString(R.string.list_menu_create)); - subMenu.add(0, MENU_DROP_LIST, 0, res.getString(R.string.list_menu_drop)); - subMenu.add(0, MENU_RENAME_LIST, 0, res.getString(R.string.list_menu_rename)); - subMenu.add(0, MENU_SWITCH_LIST, 0, res.getString(R.string.list_menu_change)); - } + CacheListAppFactory.addMenuItems(menu, this, res); return true; } private static void setVisible(final Menu menu, final int itemId, final boolean visible) { - final MenuItem item = menu.findItem(itemId); - if (item != null) { - item.setVisible(visible); - } + menu.findItem(itemId).setVisible(visible); } @Override public boolean onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); + final boolean isHistory = type == CacheListType.HISTORY; + final boolean isOffline = type == CacheListType.OFFLINE; + final boolean isEmpty = cacheList.isEmpty(); + final boolean isConcrete = isConcreteList(); + try { if (adapter.isSelectMode()) { - menu.findItem(MENU_SWITCH_SELECT_MODE).setTitle(res.getString(R.string.caches_select_mode_exit)) + menu.findItem(R.id.menu_switch_select_mode).setTitle(res.getString(R.string.caches_select_mode_exit)) .setIcon(R.drawable.ic_menu_clear_playlist); - menu.findItem(MENU_INVERT_SELECTION).setVisible(true); } else { - menu.findItem(MENU_SWITCH_SELECT_MODE).setTitle(res.getString(R.string.caches_select_mode)) + menu.findItem(R.id.menu_switch_select_mode).setTitle(res.getString(R.string.caches_select_mode)) .setIcon(R.drawable.ic_menu_agenda); - menu.findItem(MENU_INVERT_SELECTION).setVisible(false); } - - final boolean isEmpty = cacheList.isEmpty(); - final boolean isConcrete = isConcreteList(); - - setVisible(menu, MENU_SWITCH_SELECT_MODE, !isEmpty); - setVisible(menu, SUBMENU_MANAGE_HISTORY, !isEmpty); - setVisible(menu, SUBMENU_SHOW_MAP, !isEmpty); - setVisible(menu, MENU_SORT, !isEmpty); - setVisible(menu, MENU_REFRESH_STORED, !isEmpty && (isConcrete || type != CacheListType.OFFLINE)); - setVisible(menu, MENU_DROP_CACHES, !isEmpty); - setVisible(menu, MENU_DROP_CACHES_AND_LIST, isConcrete && !isEmpty); - setVisible(menu, MENU_DELETE_EVENTS, isConcrete && !isEmpty && containsEvents()); - setVisible(menu, MENU_MOVE_TO_LIST, !isEmpty); - setVisible(menu, MENU_EXPORT, !isEmpty); - setVisible(menu, MENU_REMOVE_FROM_HISTORY, !isEmpty); - setVisible(menu, MENU_CLEAR_OFFLINE_LOGS, !isEmpty && containsOfflineLogs()); - - if (navigationMenu != null) { - navigationMenu.setVisible(!isEmpty); + menu.findItem(R.id.menu_invert_selection).setVisible(adapter.isSelectMode()); + + + setVisible(menu, R.id.menu_switch_select_mode, !isEmpty); + setVisible(menu, R.id.submenu_manage, isOffline || isHistory); + setVisible(menu, R.id.submenu_manage_lists, isOffline); + + setVisible(menu, R.id.menu_sort, !isEmpty && !isHistory); + setVisible(menu, R.id.menu_refresh_stored, !isEmpty && (isConcrete || type != CacheListType.OFFLINE)); + setVisible(menu, R.id.menu_drop_caches, !isEmpty && isOffline); + setVisible(menu, R.id.menu_drop_caches_and_list, isConcrete && !isEmpty && isOffline); + setVisible(menu, R.id.menu_delete_events, isConcrete && !isEmpty && containsEvents()); + setVisible(menu, R.id.menu_move_to_list, isOffline && !isEmpty); + setVisible(menu, R.id.menu_export, !isEmpty && (isHistory || isOffline)); + setVisible(menu, R.id.menu_remove_from_history, !isEmpty && isHistory); + setVisible(menu, R.id.menu_clear_offline_logs, !isEmpty && containsOfflineLogs() && (isHistory || isOffline)); + setVisible(menu, R.id.menu_import_web, isOffline && Settings.getWebDeviceCode() != null); + setVisible(menu, R.id.menu_import_gpx, isOffline); + setVisible(menu, R.id.menu_refresh_stored_top, !isOffline); + + if (!isOffline && !isHistory) { + menu.findItem(R.id.menu_refresh_stored_top).setTitle(R.string.caches_store_offline); } final boolean hasSelection = adapter != null && adapter.getCheckedCount() > 0; final boolean isNonDefaultList = isConcrete && listId != StoredList.STANDARD_LIST_ID; - if (type == CacheListType.OFFLINE || type == CacheListType.HISTORY) { // only offline list - setMenuItemLabel(menu, MENU_DROP_CACHES, R.string.caches_drop_selected, R.string.caches_drop_all); - setMenuItemLabel(menu, MENU_REFRESH_STORED, R.string.caches_refresh_selected, R.string.caches_refresh_all); - setMenuItemLabel(menu, MENU_MOVE_TO_LIST, R.string.caches_move_selected, R.string.caches_move_all); + if (isOffline || type == CacheListType.HISTORY) { // only offline list + setMenuItemLabel(menu, R.id.menu_drop_caches, R.string.caches_drop_selected, R.string.caches_drop_all); + setMenuItemLabel(menu, R.id.menu_refresh_stored, R.string.caches_refresh_selected, R.string.caches_refresh_all); + setMenuItemLabel(menu, R.id.menu_move_to_list, R.string.caches_move_selected, R.string.caches_move_all); } else { // search and global list (all other than offline and history) - setMenuItemLabel(menu, MENU_REFRESH_STORED, R.string.caches_store_selected, R.string.caches_store_offline); - } - if (type == CacheListType.OFFLINE) { - menu.findItem(MENU_DROP_CACHES_AND_LIST).setVisible(!hasSelection && isNonDefaultList && !adapter.isFiltered()); + setMenuItemLabel(menu, R.id.menu_refresh_stored, R.string.caches_store_selected, R.string.caches_store_offline); } - MenuItem item = menu.findItem(MENU_DROP_LIST); - if (item != null) { - item.setVisible(isNonDefaultList); - } - item = menu.findItem(MENU_RENAME_LIST); - if (item != null) { - item.setVisible(isNonDefaultList); - } + menu.findItem(R.id.menu_drop_caches_and_list).setVisible(isOffline && !hasSelection && isNonDefaultList && !adapter.isFiltered()); + + menu.findItem(R.id.menu_drop_list).setVisible(isNonDefaultList); + menu.findItem(R.id.menu_rename_list).setVisible(isNonDefaultList); final boolean multipleLists = DataStore.getLists().size() >= 2; - item = menu.findItem(MENU_SWITCH_LIST); - if (item != null) { - item.setVisible(multipleLists); - } - item = menu.findItem(MENU_MOVE_TO_LIST); - if (item != null) { - item.setVisible(!isEmpty); - } + menu.findItem(R.id.menu_switch_list).setVisible(multipleLists); + menu.findItem(R.id.menu_move_to_list).setVisible(!isEmpty); - setMenuItemLabel(menu, MENU_REMOVE_FROM_HISTORY, R.string.cache_remove_from_history, R.string.cache_clear_history); - setMenuItemLabel(menu, MENU_EXPORT, R.string.export, R.string.export); + setMenuItemLabel(menu, R.id.menu_remove_from_history, R.string.cache_remove_from_history, R.string.cache_clear_history); + setMenuItemLabel(menu, R.id.menu_export, R.string.export, R.string.export); } catch (final RuntimeException e) { Log.e("CacheListActivity.onPrepareOptionsMenu", e); } @@ -697,51 +613,50 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA @Override public boolean onOptionsItemSelected(MenuItem item) { - final int itemId = item.getItemId(); - switch (itemId) { - case MENU_SWITCH_SELECT_MODE: + switch (item.getItemId()) { + case R.id.menu_switch_select_mode: adapter.switchSelectMode(); invalidateOptionsMenuCompatible(); return true; - case MENU_REFRESH_STORED: + case R.id.menu_refresh_stored: refreshStored(adapter.getCheckedOrAllCaches()); invalidateOptionsMenuCompatible(); return true; - case MENU_DROP_CACHES: + case R.id.menu_drop_caches: dropStored(false); invalidateOptionsMenuCompatible(); return false; - case MENU_DROP_CACHES_AND_LIST: + case R.id.menu_drop_caches_and_list: dropStored(true); invalidateOptionsMenuCompatible(); return true; - case MENU_IMPORT_GPX: + case R.id.menu_import_gpx: importGpx(); invalidateOptionsMenuCompatible(); return false; - case MENU_CREATE_LIST: + case R.id.menu_create_list: new StoredList.UserInterface(this).promptForListCreation(getListSwitchingRunnable(), newListName); invalidateOptionsMenuCompatible(); return false; - case MENU_DROP_LIST: + case R.id.menu_drop_list: removeList(true); invalidateOptionsMenuCompatible(); return false; - case MENU_RENAME_LIST: + case R.id.menu_rename_list: renameList(); return false; - case MENU_INVERT_SELECTION: + case R.id.menu_invert_selection: adapter.invertSelection(); invalidateOptionsMenuCompatible(); return false; - case MENU_SWITCH_LIST: + case R.id.menu_switch_list: selectList(); invalidateOptionsMenuCompatible(); return false; - case MENU_FILTER: + case R.id.menu_filter: showFilterMenu(null); return true; - case MENU_SORT: + case R.id.menu_sort: final CacheComparator oldComparator = adapter.getCacheComparator(); new ComparatorUserInterface(this).selectComparator(oldComparator, new RunnableWithArgument<CacheComparator>() { @Override @@ -758,25 +673,25 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA } }); return true; - case MENU_IMPORT_WEB: + case R.id.menu_import_web: importWeb(); return false; - case MENU_EXPORT: + case R.id.menu_export: ExportFactory.showExportMenu(adapter.getCheckedOrAllCaches(), this); return false; - case MENU_REMOVE_FROM_HISTORY: + case R.id.menu_remove_from_history: removeFromHistoryCheck(); invalidateOptionsMenuCompatible(); return false; - case MENU_MOVE_TO_LIST: + case R.id.menu_move_to_list: moveCachesToOtherList(); invalidateOptionsMenuCompatible(); return true; - case MENU_DELETE_EVENTS: + case R.id.menu_delete_events: deletePastEvents(); invalidateOptionsMenuCompatible(); return true; - case MENU_CLEAR_OFFLINE_LOGS: + case R.id.menu_clear_offline_logs: clearOfflineLogs(); invalidateOptionsMenuCompatible(); return true; @@ -846,21 +761,21 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA contextMenuGeocode = cache.getGeocode(); - if (cache.getCoords() != null) { - menu.add(0, MENU_DEFAULT_NAVIGATION, 0, NavigationAppFactory.getDefaultNavigationApplication().getName()); - menu.add(1, MENU_NAVIGATION, 0, res.getString(R.string.cache_menu_navigate)).setIcon(R.drawable.ic_menu_mapmode); - LoggingUI.addMenuItems(this, menu, cache); - menu.add(0, MENU_CACHE_DETAILS, 0, res.getString(R.string.cache_menu_details)); - } - if (cache.isOffline()) { - menu.add(0, MENU_DROP_CACHE, 0, res.getString(R.string.cache_offline_drop)); - menu.add(0, MENU_MOVE_TO_LIST, 0, res.getString(R.string.cache_menu_move_list)); - menu.add(0, MENU_EXPORT, 0, res.getString(R.string.export)); - menu.add(0, MENU_REFRESH, 0, res.getString(R.string.cache_menu_refresh)); - } - else { - menu.add(0, MENU_STORE_CACHE, 0, res.getString(R.string.cache_offline_store)); - } + getMenuInflater().inflate(R.menu.cache_list_context, menu); + + menu.findItem(R.id.menu_default_navigation).setTitle(NavigationAppFactory.getDefaultNavigationApplication().getName()); + final boolean hasCoords = cache.getCoords() != null; + menu.findItem(R.id.menu_default_navigation).setVisible(hasCoords); + menu.findItem(R.id.menu_navigate).setVisible(hasCoords); + menu.findItem(R.id.menu_cache_details).setVisible(hasCoords); + final boolean isOffline = cache.isOffline(); + menu.findItem(R.id.menu_drop_cache).setVisible(isOffline); + menu.findItem(R.id.menu_move_to_list).setVisible(isOffline); + menu.findItem(R.id.menu_export).setVisible(isOffline); + menu.findItem(R.id.menu_refresh).setVisible(isOffline); + menu.findItem(R.id.menu_store_cache).setVisible(!isOffline); + + LoggingUI.onPrepareOptionsMenu(menu, cache); } private void moveCachesToOtherList() { @@ -901,18 +816,17 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA return true; } - final int id = item.getItemId(); - switch (id) { - case MENU_DEFAULT_NAVIGATION: + switch (item.getItemId()) { + case R.id.menu_default_navigation: NavigationAppFactory.startDefaultNavigationApplication(1, this, cache); break; - case MENU_NAVIGATION: + case R.id.menu_navigate: NavigationAppFactory.showNavigationMenu(this, cache, null, null); break; - case MENU_CACHE_DETAILS: + case R.id.menu_cache_details: CacheDetailActivity.startActivity(this, cache.getGeocode(), cache.getName()); break; - case MENU_DROP_CACHE: + case R.id.menu_drop_cache: cache.drop(new Handler() { @Override public void handleMessage(Message msg) { @@ -921,7 +835,7 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA } }); break; - case MENU_MOVE_TO_LIST: + case R.id.menu_move_to_list: new StoredList.UserInterface(this).promptForListSelection(R.string.cache_menu_move_list, new RunnableWithArgument<Integer>() { @Override @@ -932,11 +846,11 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA } }, true, listId, newListName); break; - case MENU_STORE_CACHE: - case MENU_REFRESH: + case R.id.menu_store_cache: + case R.id.menu_refresh: refreshStored(Collections.singletonList(cache)); break; - case MENU_EXPORT: + case R.id.menu_export: ExportFactory.showExportMenu(Collections.singletonList(cache), this); return false; default: diff --git a/main/src/cgeo/geocaching/apps/AbstractApp.java b/main/src/cgeo/geocaching/apps/AbstractApp.java index d861542..494e245 100644 --- a/main/src/cgeo/geocaching/apps/AbstractApp.java +++ b/main/src/cgeo/geocaching/apps/AbstractApp.java @@ -1,7 +1,7 @@ package cgeo.geocaching.apps; -import cgeo.geocaching.Geocache; import cgeo.geocaching.CgeoApplication; +import cgeo.geocaching.Geocache; import cgeo.geocaching.utils.ProcessUtils; import org.apache.commons.lang3.StringUtils; @@ -13,16 +13,21 @@ public abstract class AbstractApp implements App { private final String packageName; private final String intent; private final String name; + /** + * a unique id, defined in res/values/ids.xml + */ + private final int id; - protected AbstractApp(final String name, final String intent, + protected AbstractApp(final String name, final int id, final String intent, final String packageName) { this.name = name; + this.id = id; this.intent = intent; this.packageName = packageName; } - protected AbstractApp(final String name, final String intent) { - this(name, intent, null); + protected AbstractApp(final String name, final int id, final String intent) { + this(name, id, intent, null); } @Override @@ -38,7 +43,7 @@ public abstract class AbstractApp implements App { } @Override - public boolean isDefaultNavigationApp() { + public boolean isUsableAsDefaultNavigationApp() { return true; } @@ -49,7 +54,7 @@ public abstract class AbstractApp implements App { @Override public int getId() { - return getName().hashCode(); + return id; } protected static String getString(int ressourceId) { diff --git a/main/src/cgeo/geocaching/apps/AbstractLocusApp.java b/main/src/cgeo/geocaching/apps/AbstractLocusApp.java index 2db8918..c2715c8 100644 --- a/main/src/cgeo/geocaching/apps/AbstractLocusApp.java +++ b/main/src/cgeo/geocaching/apps/AbstractLocusApp.java @@ -1,9 +1,8 @@ package cgeo.geocaching.apps; +import cgeo.geocaching.CgeoApplication; import cgeo.geocaching.Geocache; -import cgeo.geocaching.R; import cgeo.geocaching.Waypoint; -import cgeo.geocaching.CgeoApplication; import cgeo.geocaching.enumerations.CacheSize; import cgeo.geocaching.enumerations.CacheType; import cgeo.geocaching.enumerations.WaypointType; @@ -16,7 +15,6 @@ import menion.android.locus.addon.publiclib.geoData.PointGeocachingDataWaypoint; import menion.android.locus.addon.publiclib.geoData.PointsData; import android.app.Activity; -import android.content.Intent; import android.location.Location; import java.text.SimpleDateFormat; @@ -30,15 +28,10 @@ import java.util.Locale; * @see <a href="http://forum.asamm.cz/viewtopic.php?f=29&t=767">Locus forum</a> */ public abstract class AbstractLocusApp extends AbstractApp { - private static final String INTENT = Intent.ACTION_VIEW; private static final SimpleDateFormat ISO8601DATE = new SimpleDateFormat("yyyy-MM-dd'T'", Locale.US); - protected AbstractLocusApp() { - super(getString(R.string.caches_map_locus), INTENT); - } - - protected AbstractLocusApp(final String text, final String intent) { - super(text, intent); + protected AbstractLocusApp(final String text, int id, final String intent) { + super(text, id, intent); } @Override @@ -48,7 +41,7 @@ public abstract class AbstractLocusApp extends AbstractApp { /** * Display a list of caches / waypoints in Locus - * + * * @param objectsToShow * which caches/waypoints to show * @param withCacheWaypoints diff --git a/main/src/cgeo/geocaching/apps/App.java b/main/src/cgeo/geocaching/apps/App.java index bc99526..7e70581 100644 --- a/main/src/cgeo/geocaching/apps/App.java +++ b/main/src/cgeo/geocaching/apps/App.java @@ -5,14 +5,20 @@ import cgeo.geocaching.Geocache; public interface App { public boolean isInstalled(); - public boolean isDefaultNavigationApp(); + /** + * Whether or not an application can be used as the default navigation. + */ + public boolean isUsableAsDefaultNavigationApp(); public String getName(); + /** + * @return the unique ID of the application, defined in res/values/ids.xml + */ int getId(); /** - * whether or not the app can be used with the given cache (may depend on properties of the cache) + * Whether or not the app can be used with the given cache (may depend on properties of the cache). * * @param cache * @return diff --git a/main/src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java b/main/src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java index fd7d4b5..c4f2723 100644 --- a/main/src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java +++ b/main/src/cgeo/geocaching/apps/cache/AbstractGeneralApp.java @@ -9,8 +9,8 @@ import android.content.Intent; abstract class AbstractGeneralApp extends AbstractApp implements CacheNavigationApp { - protected AbstractGeneralApp(String name, String packageName) { - super(name, null, packageName); + protected AbstractGeneralApp(final String name, final int id, final String packageName) { + super(name, id, null, packageName); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/CacheBeaconApp.java b/main/src/cgeo/geocaching/apps/cache/CacheBeaconApp.java index 9cfafb4..34c9074 100644 --- a/main/src/cgeo/geocaching/apps/cache/CacheBeaconApp.java +++ b/main/src/cgeo/geocaching/apps/cache/CacheBeaconApp.java @@ -7,7 +7,7 @@ import cgeo.geocaching.enumerations.CacheAttribute; public class CacheBeaconApp extends AbstractGeneralApp { public CacheBeaconApp() { - super(getString(R.string.cache_menu_cachebeacon), "de.fun2code.android.cachebeacon"); + super(getString(R.string.cache_menu_cachebeacon), R.id.cache_app_cache_beacon, "de.fun2code.android.cachebeacon"); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/GccApp.java b/main/src/cgeo/geocaching/apps/cache/GccApp.java index 0bbc2dd..4423977 100644 --- a/main/src/cgeo/geocaching/apps/cache/GccApp.java +++ b/main/src/cgeo/geocaching/apps/cache/GccApp.java @@ -10,7 +10,7 @@ public class GccApp extends AbstractGeneralApp { private static final String PACKAGE_PRO = "eisbehr.gcc.pro"; public GccApp() { - super(getString(R.string.cache_menu_gcc), null); + super(getString(R.string.cache_menu_gcc), R.id.cache_app_gcc, null); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/WhereYouGoApp.java b/main/src/cgeo/geocaching/apps/cache/WhereYouGoApp.java index 39e1963..79a5975 100644 --- a/main/src/cgeo/geocaching/apps/cache/WhereYouGoApp.java +++ b/main/src/cgeo/geocaching/apps/cache/WhereYouGoApp.java @@ -1,12 +1,12 @@ package cgeo.geocaching.apps.cache; -import cgeo.geocaching.R; import cgeo.geocaching.Geocache; +import cgeo.geocaching.R; import cgeo.geocaching.enumerations.CacheType; public class WhereYouGoApp extends AbstractGeneralApp { public WhereYouGoApp() { - super(getString(R.string.cache_menu_whereyougo), "menion.android.whereyougo"); + super(getString(R.string.cache_menu_whereyougo), R.id.cache_app_whereyougo, "menion.android.whereyougo"); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java b/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java index 7542e24..75ea056 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java @@ -14,12 +14,12 @@ import android.app.Activity; */ abstract class AbstractPointNavigationApp extends AbstractApp implements CacheNavigationApp, WaypointNavigationApp, GeopointNavigationApp { - protected AbstractPointNavigationApp(String name, String intent) { - super(name, intent); + protected AbstractPointNavigationApp(final String name, final int id, final String intent) { + super(name, id, intent); } - protected AbstractPointNavigationApp(String name, String intent, String packageName) { - super(name, intent, packageName); + protected AbstractPointNavigationApp(final String name, final int id, final String intent, final String packageName) { + super(name, id, intent, packageName); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java index d5c9435..c42c2a2 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/AbstractStaticMapsApp.java @@ -1,12 +1,12 @@ package cgeo.geocaching.apps.cache.navi; +import cgeo.geocaching.DataStore; import cgeo.geocaching.Geocache; import cgeo.geocaching.ILogable; import cgeo.geocaching.R; import cgeo.geocaching.StaticMapsActivity; import cgeo.geocaching.StaticMapsProvider; import cgeo.geocaching.Waypoint; -import cgeo.geocaching.DataStore; import cgeo.geocaching.activity.ActivityMixin; import cgeo.geocaching.apps.AbstractApp; @@ -15,8 +15,8 @@ import org.apache.commons.lang3.StringUtils; import android.app.Activity; abstract class AbstractStaticMapsApp extends AbstractApp implements CacheNavigationApp, WaypointNavigationApp { - protected AbstractStaticMapsApp(String name) { - super(name, null); + protected AbstractStaticMapsApp(final String name, final int id) { + super(name, id, null); } @Override @@ -25,7 +25,7 @@ abstract class AbstractStaticMapsApp extends AbstractApp implements CacheNavigat } @Override - public boolean isDefaultNavigationApp() { + public boolean isUsableAsDefaultNavigationApp() { return false; } diff --git a/main/src/cgeo/geocaching/apps/cache/navi/CompassApp.java b/main/src/cgeo/geocaching/apps/cache/navi/CompassApp.java index 47010df..eae5706 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/CompassApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/CompassApp.java @@ -1,9 +1,9 @@ package cgeo.geocaching.apps.cache.navi; +import cgeo.geocaching.CompassActivity; import cgeo.geocaching.Geocache; import cgeo.geocaching.R; import cgeo.geocaching.Waypoint; -import cgeo.geocaching.CompassActivity; import cgeo.geocaching.geopoint.Geopoint; import cgeo.geocaching.ui.Formatter; @@ -12,7 +12,7 @@ import android.app.Activity; class CompassApp extends AbstractPointNavigationApp { CompassApp() { - super(getString(R.string.compass_title), null); + super(getString(R.string.compass_title), R.id.cache_app_compass, null); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/DownloadStaticMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/DownloadStaticMapsApp.java index bc422d4..19b5e02 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/DownloadStaticMapsApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/DownloadStaticMapsApp.java @@ -9,7 +9,7 @@ import android.app.Activity; class DownloadStaticMapsApp extends AbstractStaticMapsApp { DownloadStaticMapsApp() { - super(getString(R.string.cache_menu_download_map_static)); + super(getString(R.string.cache_menu_download_map_static), R.id.cache_app_download_static_maps); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java index 4cbfa00..60d6e31 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java @@ -12,7 +12,7 @@ import android.net.Uri; class GoogleMapsApp extends AbstractPointNavigationApp { GoogleMapsApp() { - super(getString(R.string.cache_menu_map_ext), null); + super(getString(R.string.cache_menu_map_ext), R.id.cache_app_google_maps, null); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java index a5b9a94..c4351bb 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java @@ -1,8 +1,8 @@ package cgeo.geocaching.apps.cache.navi; +import cgeo.geocaching.CgeoApplication; import cgeo.geocaching.IGeoData; import cgeo.geocaching.R; -import cgeo.geocaching.CgeoApplication; import cgeo.geocaching.geopoint.Geopoint; import cgeo.geocaching.maps.MapProviderFactory; import cgeo.geocaching.utils.Log; @@ -14,7 +14,7 @@ import android.net.Uri; public class GoogleMapsDirectionApp extends AbstractPointNavigationApp { protected GoogleMapsDirectionApp() { - super(getString(R.string.cache_menu_maps_directions), null); + super(getString(R.string.cache_menu_maps_directions), R.id.cache_app_google_maps_direction, null); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java index a3532a5..902eebf 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java @@ -12,8 +12,8 @@ abstract class GoogleNavigationApp extends AbstractPointNavigationApp { private final String mode; - protected GoogleNavigationApp(final int nameResourceId, final String mode) { - super(getString(nameResourceId), null); + protected GoogleNavigationApp(final int nameResourceId, final int id, final String mode) { + super(getString(nameResourceId), id, null); this.mode = mode; } @@ -36,19 +36,19 @@ abstract class GoogleNavigationApp extends AbstractPointNavigationApp { static class GoogleNavigationWalkingApp extends GoogleNavigationApp { GoogleNavigationWalkingApp() { - super(R.string.cache_menu_navigation_walk, "w"); + super(R.string.cache_menu_navigation_walk, R.id.cache_app_google_navigation_walk, "w"); } } static class GoogleNavigationDrivingApp extends GoogleNavigationApp { GoogleNavigationDrivingApp() { - super(R.string.cache_menu_navigation_drive, "d"); + super(R.string.cache_menu_navigation_drive, R.id.cache_app_google_navigation_drive, "d"); } } static class GoogleNavigationBikeApp extends GoogleNavigationApp { GoogleNavigationBikeApp() { - super(R.string.cache_menu_navigation_bike, "b"); + super(R.string.cache_menu_navigation_bike, R.id.cache_app_google_navigation_bike, "b"); } } }
\ No newline at end of file diff --git a/main/src/cgeo/geocaching/apps/cache/navi/InternalMap.java b/main/src/cgeo/geocaching/apps/cache/navi/InternalMap.java index cdf14f0..540b025 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/InternalMap.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/InternalMap.java @@ -12,7 +12,7 @@ import android.app.Activity; class InternalMap extends AbstractPointNavigationApp { InternalMap() { - super(getString(R.string.cache_menu_map), null); + super(getString(R.string.cache_menu_map), R.id.cache_app_internal_map, null); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/LocusApp.java b/main/src/cgeo/geocaching/apps/cache/navi/LocusApp.java index 8b64ac8..b60d78a 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/LocusApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/LocusApp.java @@ -1,15 +1,24 @@ package cgeo.geocaching.apps.cache.navi; + import cgeo.geocaching.Geocache; +import cgeo.geocaching.R; import cgeo.geocaching.Waypoint; import cgeo.geocaching.apps.AbstractLocusApp; import android.app.Activity; +import android.content.Intent; import java.util.Collections; class LocusApp extends AbstractLocusApp implements CacheNavigationApp, WaypointNavigationApp { + private static final String INTENT = Intent.ACTION_VIEW; + + protected LocusApp() { + super(getString(R.string.caches_map_locus), R.id.cache_app_locus, INTENT); + } + @Override public boolean isEnabled(Waypoint waypoint) { return waypoint.getCoords() != null; diff --git a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java index c10da58..ce42e36 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java @@ -216,7 +216,7 @@ public final class NavigationAppFactory extends AbstractAppFactory { public static List<NavigationAppsEnum> getInstalledDefaultNavigationApps() { final List<NavigationAppsEnum> installedNavigationApps = new ArrayList<NavigationAppsEnum>(); for (final NavigationAppsEnum appEnum : NavigationAppsEnum.values()) { - if (appEnum.app.isInstalled() && appEnum.app.isDefaultNavigationApp()) { + if (appEnum.app.isInstalled() && appEnum.app.isUsableAsDefaultNavigationApp()) { installedNavigationApps.add(appEnum); } } diff --git a/main/src/cgeo/geocaching/apps/cache/navi/NavigonApp.java b/main/src/cgeo/geocaching/apps/cache/navi/NavigonApp.java index 7966733..da988aa 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/NavigonApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/NavigonApp.java @@ -13,7 +13,7 @@ class NavigonApp extends AbstractPointNavigationApp { private static final String INTENT_EXTRA_KEY_LONGITUDE = "longitude"; NavigonApp() { - super(getString(R.string.cache_menu_navigon), INTENT); + super(getString(R.string.cache_menu_navigon), R.id.cache_app_navigon, INTENT); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java index 24ef81b..5d645f7 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java @@ -11,7 +11,7 @@ class OruxMapsApp extends AbstractPointNavigationApp { private static final String INTENT = "com.oruxmaps.VIEW_MAP_ONLINE"; OruxMapsApp() { - super(getString(R.string.cache_menu_oruxmaps), INTENT); + super(getString(R.string.cache_menu_oruxmaps), R.id.cache_app_orux_maps, INTENT); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java index b203aeb..82d144e 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java @@ -16,7 +16,7 @@ class RMapsApp extends AbstractPointNavigationApp { private static final String INTENT = "com.robert.maps.action.SHOW_POINTS"; RMapsApp() { - super(getString(R.string.cache_menu_rmaps), INTENT); + super(getString(R.string.cache_menu_rmaps), R.id.cache_app_rmaps, INTENT); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java b/main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java index b01539c..ffa6650 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java @@ -12,7 +12,7 @@ class RadarApp extends AbstractPointNavigationApp { private static final String PACKAGE_NAME = "com.eclipsim.gpsstatus2"; RadarApp() { - super(getString(R.string.cache_menu_radar), INTENT, PACKAGE_NAME); + super(getString(R.string.cache_menu_radar), R.id.cache_app_radar, INTENT, PACKAGE_NAME); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java b/main/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java index 1dd57a3..9e1b3f0 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java @@ -1,15 +1,15 @@ package cgeo.geocaching.apps.cache.navi; +import cgeo.geocaching.Geocache; import cgeo.geocaching.R; import cgeo.geocaching.Waypoint; -import cgeo.geocaching.Geocache; import android.app.Activity; class StaticMapApp extends AbstractStaticMapsApp { StaticMapApp() { - super(getString(R.string.cache_menu_map_static)); + super(getString(R.string.cache_menu_map_static), R.id.cache_app_show_static_maps); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java b/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java index df67e43..7294a40 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java @@ -17,7 +17,7 @@ class StreetviewApp extends AbstractPointNavigationApp { private static final boolean INSTALLED = ProcessUtils.isInstalled(PACKAGE_NAME_STREET_VIEW); StreetviewApp() { - super(getString(R.string.cache_menu_streetview), null); + super(getString(R.string.cache_menu_streetview), R.id.cache_app_street_view, null); } @Override diff --git a/main/src/cgeo/geocaching/apps/cache/navi/SygicNavigationApp.java b/main/src/cgeo/geocaching/apps/cache/navi/SygicNavigationApp.java index e30bfc1..76b7f0e 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/SygicNavigationApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/SygicNavigationApp.java @@ -17,7 +17,7 @@ public class SygicNavigationApp extends AbstractPointNavigationApp { private static final String PACKAGE = "com.sygic.aura"; SygicNavigationApp() { - super(getString(R.string.cache_menu_sygic), null, PACKAGE); + super(getString(R.string.cache_menu_sygic), R.id.cache_app_sygic, null, PACKAGE); } @Override diff --git a/main/src/cgeo/geocaching/apps/cachelist/AbstractLocusCacheListApp.java b/main/src/cgeo/geocaching/apps/cachelist/AbstractLocusCacheListApp.java index 49d75d7..6411758 100644 --- a/main/src/cgeo/geocaching/apps/cachelist/AbstractLocusCacheListApp.java +++ b/main/src/cgeo/geocaching/apps/cachelist/AbstractLocusCacheListApp.java @@ -16,8 +16,8 @@ abstract class AbstractLocusCacheListApp extends AbstractLocusApp implements Cac private boolean export; - public AbstractLocusCacheListApp(boolean export) { - super(getString(export ? R.string.caches_map_locus_export : R.string.caches_map_locus), Intent.ACTION_VIEW); + public AbstractLocusCacheListApp(final int id, boolean export) { + super(getString(export ? R.string.caches_map_locus_export : R.string.caches_map_locus), id, Intent.ACTION_VIEW); this.export = export; } diff --git a/main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java b/main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java index 551bc9d..4df9d26 100644 --- a/main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java +++ b/main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java @@ -29,35 +29,45 @@ public final class CacheListAppFactory extends AbstractAppFactory { * @param menu * @param activity * @param res - * @return the added menu item (also for a sub menu, then the menu item in the parent menu is returned) */ - public static MenuItem addMenuItems(final Menu menu, final Activity activity, final Resources res) { + public static void addMenuItems(final Menu menu, final Activity activity, final Resources res) { + final List<CacheListApp> activeApps = getActiveApps(); + if (activeApps.isEmpty()) { + return; + } + if (activeApps.size() == 1) { + final MenuItem subItem = menu.findItem(R.id.menu_cache_list_app); + subItem.setVisible(true); + subItem.setTitle(activeApps.get(0).getName()); + } else { + final MenuItem subItem = menu.findItem(R.id.submenu_cache_list_app); + subItem.setVisible(true); + final SubMenu subMenu = subItem.getSubMenu(); + for (final CacheListApp app : activeApps) { + subMenu.add(0, app.getId(), 0, app.getName()); + } + } + } + + private static List<CacheListApp> getActiveApps() { final List<CacheListApp> activeApps = new ArrayList<CacheListApp>(LazyHolder.apps.length); for (final CacheListApp app : LazyHolder.apps) { if (app.isInstalled()) { activeApps.add(app); } } - // use a new sub menu, if more than one app is available - switch (activeApps.size()) { - case 0: - return null; - case 1: - return menu.add(0, activeApps.get(0).getId(), 0, - activeApps.get(0).getName()).setIcon(R.drawable.ic_menu_mapmode); - default: - final SubMenu subMenu = menu.addSubMenu(0, 101, 0, - res.getString(R.string.caches_on_map)).setIcon(R.drawable.ic_menu_mapmode); - for (final CacheListApp app : activeApps) { - subMenu.add(0, app.getId(), 0, app.getName()); - } - return subMenu.getItem(); - } + return activeApps; } public static boolean onMenuItemSelected(final MenuItem item, final List<Geocache> caches, final Activity activity, final SearchResult search) { - final CacheListApp app = (CacheListApp) getAppFromMenuItem(item, LazyHolder.apps); + CacheListApp app; + if (item.getItemId() == R.id.menu_cache_list_app) { + app = getActiveApps().get(0); + } + else { + app = (CacheListApp) getAppFromMenuItem(item, LazyHolder.apps); + } if (app != null) { try { boolean result = app.invoke(caches, activity, search); diff --git a/main/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java b/main/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java index 38fb499..9216bc0 100644 --- a/main/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java +++ b/main/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java @@ -1,8 +1,8 @@ package cgeo.geocaching.apps.cachelist; +import cgeo.geocaching.Geocache; import cgeo.geocaching.R; import cgeo.geocaching.SearchResult; -import cgeo.geocaching.Geocache; import cgeo.geocaching.apps.AbstractApp; import cgeo.geocaching.maps.CGeoMap; @@ -13,7 +13,7 @@ import java.util.List; class InternalCacheListMap extends AbstractApp implements CacheListApp { InternalCacheListMap() { - super(getString(R.string.cache_menu_map), null); + super(getString(R.string.cache_menu_map), R.id.cache_list_app_map, null); } @Override diff --git a/main/src/cgeo/geocaching/apps/cachelist/LocusExportCacheListApp.java b/main/src/cgeo/geocaching/apps/cachelist/LocusExportCacheListApp.java index ef97be0..adaa849 100644 --- a/main/src/cgeo/geocaching/apps/cachelist/LocusExportCacheListApp.java +++ b/main/src/cgeo/geocaching/apps/cachelist/LocusExportCacheListApp.java @@ -1,9 +1,11 @@ package cgeo.geocaching.apps.cachelist; +import cgeo.geocaching.R; + final class LocusExportCacheListApp extends AbstractLocusCacheListApp { public LocusExportCacheListApp() { - super(true); + super(R.id.cache_list_app_locus_export, true); } } diff --git a/main/src/cgeo/geocaching/apps/cachelist/LocusShowCacheListApp.java b/main/src/cgeo/geocaching/apps/cachelist/LocusShowCacheListApp.java index 4b018f9..32c5cb6 100644 --- a/main/src/cgeo/geocaching/apps/cachelist/LocusShowCacheListApp.java +++ b/main/src/cgeo/geocaching/apps/cachelist/LocusShowCacheListApp.java @@ -1,9 +1,11 @@ package cgeo.geocaching.apps.cachelist; +import cgeo.geocaching.R; + final class LocusShowCacheListApp extends AbstractLocusCacheListApp { public LocusShowCacheListApp() { - super(false); + super(R.id.cache_list_app_locus_show, false); } } |
