diff options
| -rw-r--r-- | main/res/menu/navigate_any_point_activity_options.xml | 13 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/NavigateAnyPointActivity.java | 22 |
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()); + } } |
