diff options
| author | rsudev <rasch@munin-soft.de> | 2014-08-10 15:19:49 +0200 |
|---|---|---|
| committer | rsudev <rasch@munin-soft.de> | 2014-08-13 08:11:56 +0200 |
| commit | e1cae3e58947f0361498ddf1b01d2a4a7cb88c7e (patch) | |
| tree | 19e80ace2f6dc152b4d00036463765c4069dd53c /main/src/cgeo/geocaching/ui/NavigationActionProvider.java | |
| parent | 60b4fb63eaf44509629d0230f65a9558a6c095d3 (diff) | |
| download | cgeo-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.java | 61 |
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; + + } + +} |
