aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrsudev <rasch@munin-soft.de>2014-08-18 16:29:56 +0200
committerrsudev <rasch@munin-soft.de>2014-08-18 16:29:56 +0200
commitd3567a4d4dabd1bd138e3a5e0333678d9aeef543 (patch)
treeef595be63d45c02761a9764219be3043ace78b3e
parent853de426959ce70d245e09015b442e469aefe2fa (diff)
downloadcgeo-d3567a4d4dabd1bd138e3a5e0333678d9aeef543.zip
cgeo-d3567a4d4dabd1bd138e3a5e0333678d9aeef543.tar.gz
cgeo-d3567a4d4dabd1bd138e3a5e0333678d9aeef543.tar.bz2
Navigation action for navigate any point.
- Fix inconsisten action item order as well
-rw-r--r--main/res/menu/navigate_any_point_activity_options.xml13
-rw-r--r--main/src/cgeo/geocaching/NavigateAnyPointActivity.java22
2 files changed, 27 insertions, 8 deletions
diff --git a/main/res/menu/navigate_any_point_activity_options.xml b/main/res/menu/navigate_any_point_activity_options.xml
index e3fd79c..0ed2499 100644
--- a/main/res/menu/navigate_any_point_activity_options.xml
+++ b/main/res/menu/navigate_any_point_activity_options.xml
@@ -3,16 +3,17 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
- android:id="@+id/menu_navigate"
- android:icon="@drawable/ic_menu_mapmode"
+ android:id="@+id/menu_default_navigation"
+ android:icon="@drawable/ic_menu_compass"
android:title="@string/cache_menu_navigate"
- app:showAsAction="ifRoom">
+ app:actionProviderClass="cgeo.geocaching.ui.NavigationActionProvider"
+ app:showAsAction="always">
</item>
<item
- android:id="@+id/menu_default_navigation"
- android:icon="@drawable/ic_menu_compass"
+ android:id="@+id/menu_navigate"
+ android:icon="@drawable/ic_menu_mapmode"
android:title="@string/cache_menu_navigate"
- app:showAsAction="ifRoom"> <!-- will be replaced in code -->
+ app:showAsAction="ifRoom">
</item>
<item
android:id="@+id/menu_caches_around"
diff --git a/main/src/cgeo/geocaching/NavigateAnyPointActivity.java b/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
index 48e0c17..2591987 100644
--- a/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
+++ b/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
@@ -5,6 +5,7 @@ import butterknife.InjectView;
import butterknife.Optional;
import cgeo.geocaching.activity.AbstractActionBarActivity;
+import cgeo.geocaching.activity.INavigationSource;
import cgeo.geocaching.apps.cache.navi.NavigationAppFactory;
import cgeo.geocaching.geopoint.DistanceParser;
import cgeo.geocaching.geopoint.Geopoint;
@@ -13,6 +14,7 @@ import cgeo.geocaching.sensors.GeoDirHandler;
import cgeo.geocaching.sensors.IGeoData;
import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.ui.AbstractViewHolder;
+import cgeo.geocaching.ui.NavigationActionProvider;
import cgeo.geocaching.ui.dialog.CoordinatesInputDialog;
import cgeo.geocaching.ui.dialog.Dialogs;
import cgeo.geocaching.utils.Formatter;
@@ -24,6 +26,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Bundle;
+import android.support.v4.view.MenuItemCompat;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.LayoutInflater;
@@ -44,7 +47,7 @@ import android.widget.TextView;
import java.util.List;
-public class NavigateAnyPointActivity extends AbstractActionBarActivity implements CoordinatesInputDialog.CoordinateUpdate {
+public class NavigateAnyPointActivity extends AbstractActionBarActivity implements CoordinatesInputDialog.CoordinateUpdate, INavigationSource {
@InjectView(R.id.historyList) protected ListView historyListView;
@@ -313,7 +316,12 @@ public class NavigateAnyPointActivity extends AbstractActionBarActivity implemen
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.navigate_any_point_activity_options, menu);
- menu.findItem(R.id.menu_default_navigation).setTitle(NavigationAppFactory.getDefaultNavigationApplication().getName());
+ final MenuItem menuItem = menu.findItem(R.id.menu_default_navigation);
+ menuItem.setTitle(NavigationAppFactory.getDefaultNavigationApplication().getName());
+ final NavigationActionProvider navAction = (NavigationActionProvider) MenuItemCompat.getActionProvider(menuItem);
+ if (navAction != null) {
+ navAction.setNavigationSource(this);
+ }
return true;
}
@@ -540,4 +548,14 @@ public class NavigateAnyPointActivity extends AbstractActionBarActivity implemen
}
Settings.setAnyCoordinates(coords);
}
+
+ @Override
+ public void startDefaultNavigation() {
+ navigateTo();
+ }
+
+ @Override
+ public void startDefaultNavigation2() {
+ NavigationAppFactory.startDefaultNavigationApplication(2, this, getDestination());
+ }
}