From e1cae3e58947f0361498ddf1b01d2a4a7cb88c7e Mon Sep 17 00:00:00 2001 From: rsudev Date: Sun, 10 Aug 2014 15:19:49 +0200 Subject: Fixes #3843, Action Bar: Secondary navigation tool? - added an action provider that handles the long click and redirects to secondary default navigation --- main/proguard-project.txt | 3 ++ main/res/layout/navigation_action.xml | 15 ++++++ main/res/menu/cache_options.xml | 3 +- main/src/cgeo/geocaching/CacheDetailActivity.java | 23 ++++++-- .../geocaching/activity/INavigationSource.java | 20 +++++++ .../geocaching/ui/NavigationActionProvider.java | 61 ++++++++++++++++++++++ 6 files changed, 121 insertions(+), 4 deletions(-) create mode 100644 main/res/layout/navigation_action.xml create mode 100644 main/src/cgeo/geocaching/activity/INavigationSource.java create mode 100644 main/src/cgeo/geocaching/ui/NavigationActionProvider.java (limited to 'main') diff --git a/main/proguard-project.txt b/main/proguard-project.txt index 74b8aa2..9b0978c 100644 --- a/main/proguard-project.txt +++ b/main/proguard-project.txt @@ -61,3 +61,6 @@ # the sort action provider is only referenced from XML -keep public class cgeo.geocaching.sorting.SortActionProvider { *; } + +# the navigation action provider is only referenced from XML +-keep public class cgeo.geocaching.ui.NavigationActionProvider { *; } diff --git a/main/res/layout/navigation_action.xml b/main/res/layout/navigation_action.xml new file mode 100644 index 0000000..ea535d7 --- /dev/null +++ b/main/res/layout/navigation_action.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/main/res/menu/cache_options.xml b/main/res/menu/cache_options.xml index cb32215..2e0e2bd 100644 --- a/main/res/menu/cache_options.xml +++ b/main/res/menu/cache_options.xml @@ -6,7 +6,8 @@ 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"> implements CacheMenuHandler.ActivityInterface { +public class CacheDetailActivity extends AbstractViewPagerActivity implements CacheMenuHandler.ActivityInterface, INavigationSource { private static final int MESSAGE_FAILED = -1; private static final int MESSAGE_SUCCEEDED = 1; @@ -427,6 +430,11 @@ public class CacheDetailActivity extends AbstractViewPagerActivity