diff options
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; + + } + +} |
