aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/ui/NavigationActionProvider.java
diff options
context:
space:
mode:
authorrsudev <rasch@munin-soft.de>2014-08-10 15:19:49 +0200
committerrsudev <rasch@munin-soft.de>2014-08-13 08:11:56 +0200
commite1cae3e58947f0361498ddf1b01d2a4a7cb88c7e (patch)
tree19e80ace2f6dc152b4d00036463765c4069dd53c /main/src/cgeo/geocaching/ui/NavigationActionProvider.java
parent60b4fb63eaf44509629d0230f65a9558a6c095d3 (diff)
downloadcgeo-e1cae3e58947f0361498ddf1b01d2a4a7cb88c7e.zip
cgeo-e1cae3e58947f0361498ddf1b01d2a4a7cb88c7e.tar.gz
cgeo-e1cae3e58947f0361498ddf1b01d2a4a7cb88c7e.tar.bz2
Fixes #3843, Action Bar: Secondary navigation tool?
- added an action provider that handles the long click and redirects to secondary default navigation
Diffstat (limited to 'main/src/cgeo/geocaching/ui/NavigationActionProvider.java')
-rw-r--r--main/src/cgeo/geocaching/ui/NavigationActionProvider.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/ui/NavigationActionProvider.java b/main/src/cgeo/geocaching/ui/NavigationActionProvider.java
new file mode 100644
index 0000000..5840e27
--- /dev/null
+++ b/main/src/cgeo/geocaching/ui/NavigationActionProvider.java
@@ -0,0 +1,61 @@
+package cgeo.geocaching.ui;
+
+import cgeo.geocaching.R;
+import cgeo.geocaching.activity.INavigationSource;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.support.v4.view.ActionProvider;
+import android.view.LayoutInflater;
+import android.view.View;
+
+public class NavigationActionProvider extends ActionProvider {
+
+ private final Context context;
+ private INavigationSource navigationSource;
+
+ public NavigationActionProvider(final Context context) {
+ super(context);
+ this.context = context;
+ }
+
+ public void setNavigationSource(final INavigationSource navigationSource) {
+ this.navigationSource = navigationSource;
+ }
+
+ @SuppressLint("InflateParams")
+ @Override
+ public View onCreateActionView() {
+
+ View view = null;
+
+ if (navigationSource != null) {
+
+ final LayoutInflater layoutInflater = LayoutInflater.from(context);
+ view = layoutInflater.inflate(R.layout.navigation_action, null);
+
+ final View navItem = view.findViewById(R.id.default_navigation_action);
+
+ navItem.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(final View v) {
+ navigationSource.startDefaultNavigation();
+ }
+ });
+
+ navItem.setOnLongClickListener(new View.OnLongClickListener() {
+
+ @Override
+ public boolean onLongClick(final View v) {
+ navigationSource.startDefaultNavigation2();
+ return true;
+ }
+ });
+ }
+
+ return view;
+
+ }
+
+}