diff --git a/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java b/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java index 6fad1a3191..ff1d4aa75b 100644 --- a/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java +++ b/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java @@ -17,8 +17,8 @@ import android.widget.TextView; public class ContextMenuAdapter { public interface OnContextMenuClick { - - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog); + //boolean return type needed to desribe if drawer needed to be close or not + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog); } private final Context ctx; diff --git a/OsmAnd/src/net/osmand/plus/activities/AvailableGPXFragment.java b/OsmAnd/src/net/osmand/plus/activities/AvailableGPXFragment.java index 228d02be00..e9e3d31d6b 100644 --- a/OsmAnd/src/net/osmand/plus/activities/AvailableGPXFragment.java +++ b/OsmAnd/src/net/osmand/plus/activities/AvailableGPXFragment.java @@ -159,7 +159,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment { optionsMenuAdapter = new ContextMenuAdapter(getActivity()); OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(final int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(final int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (itemId == R.string.local_index_mi_reload) { asyncLoader = new LoadGpxTask(); asyncLoader.execute(getActivity()); @@ -175,6 +175,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment { } }); } + return true; } }; optionsMenuAdapter.item(R.string.show_gpx_route) @@ -395,7 +396,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment { private void basicFileOperation(final GpxInfo info, ContextMenuAdapter adapter) { OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { if (resId == R.string.local_index_mi_rename) { renameFile(info); } else if (resId == R.string.local_index_unselect_gpx_file || @@ -441,6 +442,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment { AccessibleToast.makeText(getActivity(), R.string.gpx_file_is_empty, Toast.LENGTH_LONG).show(); } } + return true; } }; if (info.gpx != null && info.file == null) { diff --git a/OsmAnd/src/net/osmand/plus/activities/FavouritesTreeFragment.java b/OsmAnd/src/net/osmand/plus/activities/FavouritesTreeFragment.java index 15fd1714ba..d1524170d2 100644 --- a/OsmAnd/src/net/osmand/plus/activities/FavouritesTreeFragment.java +++ b/OsmAnd/src/net/osmand/plus/activities/FavouritesTreeFragment.java @@ -176,8 +176,9 @@ public class FavouritesTreeFragment extends OsmandExpandableListFragment { new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { editPoint(point); + return true; } }).reg(); Item delete = qa.item(R.string.favourites_context_menu_delete).icons( @@ -186,8 +187,9 @@ public class FavouritesTreeFragment extends OsmandExpandableListFragment { new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { deletePoint(point); + return true; } }).reg(); MapActivityActions.showObjectContextMenu(qa, getActivity(), onshow); diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java index f3d5ab0c55..76b8f3f6d1 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java @@ -51,6 +51,7 @@ import net.osmand.plus.configuremap.ConfigureScreenSettingsActivity; import net.osmand.plus.development.OsmandDevelopmentPlugin; import net.osmand.plus.helpers.WaypointDialogHelper; import net.osmand.plus.osmo.OsMoPositionLayer; +import net.osmand.plus.helpers.WaypointHelper; import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder; import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.views.BaseMapLayer; @@ -93,6 +94,9 @@ public class MapActivityActions implements DialogProvider { private final MapActivity mapActivity; private OsmandSettings settings; private RoutingHelper routingHelper; + + DrawerLayout mDrawerLayout; + ListView mDrawerList; public MapActivityActions(MapActivity mapActivity){ @@ -727,8 +731,8 @@ public class MapActivityActions implements DialogProvider { public void createOptionsMenuAsDrawer(boolean show){ final ContextMenuAdapter cm = createOptionsMenu(); - final DrawerLayout mDrawerLayout = (DrawerLayout) mapActivity.findViewById(R.id.drawer_layout); - final ListView mDrawerList = (ListView) mapActivity.findViewById(R.id.left_drawer); + mDrawerLayout = (DrawerLayout) mapActivity.findViewById(R.id.drawer_layout); + mDrawerList = (ListView) mapActivity.findViewById(R.id.left_drawer); mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); ListAdapter listAdapter; if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){ @@ -751,9 +755,12 @@ public class MapActivityActions implements DialogProvider { public void onItemClick(AdapterView parent, View view, int which, long id) { OnContextMenuClick click = cm.getClickAdapter(which); if (click != null) { - click.onContextMenuClick(cm.getItemId(which), which, false, null); + if (click.onContextMenuClick(cm.getItemId(which), which, false, null)){ + mDrawerLayout.closeDrawer(mDrawerList); + } + } else { + mDrawerLayout.closeDrawer(mDrawerList); } - mDrawerLayout.closeDrawer(mDrawerList); } }); @@ -800,12 +807,13 @@ public class MapActivityActions implements DialogProvider { icons(R.drawable.ic_action_gloc_dark, R.drawable.ic_action_gloc_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (getMyApplication().accessibilityEnabled()) { whereAmIDialog(); } else { mapActivity.getMapViewTrackingUtilities().backToLocationImpl(); } + return true; } }).reg(); @@ -826,8 +834,9 @@ public class MapActivityActions implements DialogProvider { optionsMenuHelper.item(t).icons(icon, iconLight) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { routingHelper.getVoiceRouter().setMute(!routingHelper.getVoiceRouter().isMute()); + return true; } }).reg(); } @@ -836,8 +845,9 @@ public class MapActivityActions implements DialogProvider { .icons(R.drawable.ic_action_gdirections_dark, R.drawable.ic_action_gdirections_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { enterRoutePlanningMode(null, null, false); + return true; } }).reg(); } else if(routingHelper.isRouteCalculated()) { @@ -847,7 +857,7 @@ public class MapActivityActions implements DialogProvider { .icons(R.drawable.ic_action_gdirections_dark, R.drawable.ic_action_gdirections_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if(routingHelper.isRoutePlanningMode()) { routingHelper.setRoutePlanningMode(false); routingHelper.setFollowingMode(true); @@ -858,6 +868,7 @@ public class MapActivityActions implements DialogProvider { } mapActivity.getMapViewTrackingUtilities().switchToRoutePlanningMode(); mapActivity.refreshMap(); + return true; } }).reg(); } @@ -873,12 +884,13 @@ public class MapActivityActions implements DialogProvider { optionsMenuHelper.item(nav).icons(R.drawable.ic_action_remove_dark, R.drawable.ic_action_remove_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { stopNavigationActionConfirm(mapView); OsMoPositionLayer osMoPositionLayer = mapActivity.getMapView().getLayerByClass(OsMoPositionLayer.class); if (osMoPositionLayer != null) { OsMoPositionLayer.setFollowDestination(null); } + return true; } }).reg(); } @@ -886,11 +898,18 @@ public class MapActivityActions implements DialogProvider { optionsMenuHelper.item(R.string.target_points).icons(R.drawable.ic_action_flage_dark, R.drawable.ic_action_flage_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (getMyApplication().getWaypointHelper().isRouteCalculated()) { - WaypointDialogHelper.showWaypointsDialog(mapActivity); + + final List deletedPoints = new ArrayList(); + ArrayAdapter adapter = app.getMapActivity().getMapLayers(). + getMapControlsLayer().getWaypointDialogHelper().getWaypointsAdapter(app.getMapActivity(), deletedPoints); + mDrawerList = (ListView) mapActivity.findViewById(R.id.left_drawer); + mDrawerList.setAdapter(adapter); + return false; } else { openIntermediatePointsDialog(); + return true; } } }).reg(); @@ -900,9 +919,9 @@ public class MapActivityActions implements DialogProvider { optionsMenuHelper.item(R.string.menu_layers).icons(R.drawable.ic_action_layers_dark, R.drawable.ic_action_layers_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { mapActivity.startActivity(new Intent(mapActivity, ConfigureScreenSettingsActivity.class)); - + return true; //mapActivity.getMapLayers().openLayerSelectionDialog(mapView); } }).reg(); @@ -910,24 +929,26 @@ public class MapActivityActions implements DialogProvider { optionsMenuHelper.item(R.string.layer_map_appearance).icons(R.drawable.ic_action_settings_dark, R.drawable.ic_action_settings_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { mapActivity.getMapLayers().getMapInfoLayer().openViewConfigureDialog(); + return true; } }).reg(); optionsMenuHelper.item(R.string.settings_Button).icons(R.drawable.ic_action_settings2_dark, R.drawable.ic_action_settings2_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { final Intent intentSettings = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getSettingsActivity()); mapActivity.startActivity(intentSettings); + return true; } }).reg(); optionsMenuHelper.item(R.string.search_button).icons(R.drawable.ic_action_search_dark, R.drawable.ic_action_search_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { Intent newIntent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getSearchActivity()); // causes wrong position caching: newIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); LatLon loc = mapActivity.getMapLocation(); @@ -935,23 +956,26 @@ public class MapActivityActions implements DialogProvider { newIntent.putExtra(SearchActivity.SEARCH_LON, loc.getLongitude()); newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); mapActivity.startActivity(newIntent); + return true; } }).reg(); optionsMenuHelper.item(R.string.favorites_Button).icons( R.drawable.ic_action_fav_dark, R.drawable.ic_action_fav_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { Intent newIntent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getFavoritesActivity()); // causes wrong position caching: newIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); mapActivity.startActivity(newIntent); + return true; } }).reg(); optionsMenuHelper.item(R.string.show_point_options).icons(R.drawable.ic_action_marker_dark, R.drawable.ic_action_marker_light ) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { contextMenuPoint(mapView.getLatitude(), mapView.getLongitude()); + return true; } }).reg(); //////////// Others @@ -960,8 +984,9 @@ public class MapActivityActions implements DialogProvider { .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { new StartGPSStatus(mapActivity).run(); + return true; } }).reg(); } @@ -970,7 +995,7 @@ public class MapActivityActions implements DialogProvider { listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (MainMenuActivity.TIPS_AND_TRICKS) { TipsAndTricksActivity tactivity = new TipsAndTricksActivity(mapActivity); Dialog dlg = tactivity.getDialogToShowTips(false, true); @@ -979,6 +1004,7 @@ public class MapActivityActions implements DialogProvider { final Intent helpIntent = new Intent(mapActivity, HelpActivity.class); mapActivity.startActivity(helpIntent); } + return true; } }).reg(); final OsmAndLocationProvider loc = app.getLocationProvider(); @@ -990,10 +1016,11 @@ public class MapActivityActions implements DialogProvider { .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { // animate moving on route loc.getLocationSimulation().startStopRouteAnimation(mapActivity); + return true; } }).reg(); } @@ -1003,7 +1030,7 @@ public class MapActivityActions implements DialogProvider { optionsMenuHelper.item(R.string.exit_Button).icons(R.drawable.ic_action_quit_dark, R.drawable.ic_action_quit_light ) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { // 1. Work for almost all cases when user open apps from main menu Intent newIntent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getMainMenuActivity()); newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); @@ -1011,6 +1038,7 @@ public class MapActivityActions implements DialogProvider { mapActivity.startActivity(newIntent); // In future when map will be main screen this should change // app.closeApplication(mapActivity); + return true; } }).reg(); @@ -1113,8 +1141,9 @@ public class MapActivityActions implements DialogProvider { new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { - MapActivityActions.directionsToDialogAndLaunchMap(activity, location.getLatitude(), location.getLongitude(), name); + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + MapActivityActions.directionsToDialogAndLaunchMap(activity, location.getLatitude(), location.getLongitude(), name); + return true; } }).reg(); Item intermediate; @@ -1127,8 +1156,9 @@ public class MapActivityActions implements DialogProvider { } intermediate.listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { addWaypointDialogAndLaunchMap(activity, location.getLatitude(), location.getLongitude(), name); + return true; } }).reg(); @@ -1138,10 +1168,11 @@ public class MapActivityActions implements DialogProvider { new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { app.getSettings().setMapLocationToShow(location.getLatitude(), location.getLongitude(), z, saveHistory ? name : null, name, obj); //$NON-NLS-1$ MapActivity.launchMapActivityMoveToTop(activity); + return true; } }).reg(); if (favorite) { @@ -1150,13 +1181,13 @@ public class MapActivityActions implements DialogProvider { addToFavorite.listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { Bundle args = new Bundle(); Dialog dlg = createAddFavouriteDialog(activity, args); dlg.show(); prepareAddFavouriteDialog(activity, dlg, args, location.getLatitude(), location.getLongitude(), name); - + return true; } }).reg(); } diff --git a/OsmAnd/src/net/osmand/plus/activities/SelectedGPXFragment.java b/OsmAnd/src/net/osmand/plus/activities/SelectedGPXFragment.java index 27965245cf..e303a783eb 100644 --- a/OsmAnd/src/net/osmand/plus/activities/SelectedGPXFragment.java +++ b/OsmAnd/src/net/osmand/plus/activities/SelectedGPXFragment.java @@ -188,13 +188,14 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment { private void basicFileOperation(final GpxDisplayItem gpxDisplayItem, ContextMenuAdapter adapter) { OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { if (resId == R.string.show_gpx_route) { OsmandSettings settings = app.getSettings(); settings.setMapLocationToShow(gpxDisplayItem.locationStart.lat, gpxDisplayItem.locationStart.lon, settings.getLastKnownMapZoom(), Html.fromHtml(gpxDisplayItem.name).toString()); MapActivity.launchMapActivityMoveToTop(getMyActivity()); } + return true; } }; if (gpxDisplayItem.locationStart != null) { diff --git a/OsmAnd/src/net/osmand/plus/activities/search/SearchPOIActivity.java b/OsmAnd/src/net/osmand/plus/activities/search/SearchPOIActivity.java index d2b9f0b6bf..cc2571bced 100644 --- a/OsmAnd/src/net/osmand/plus/activities/search/SearchPOIActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/search/SearchPOIActivity.java @@ -580,7 +580,7 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa poiDescr.listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dlg) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dlg) { // Build text(amenity) // Find and format links @@ -597,7 +597,8 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa // Make links clickable TextView textView = (TextView) dialog.findViewById(android.R.id.message); textView.setMovementMethod(LinkMovementMethod.getInstance()); - textView.setLinksClickable(true); + textView.setLinksClickable(true); + return true; } }).reg(); } @@ -606,8 +607,9 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa showDetails.listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dlg) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dlg) { showPOIDetails(amenity, settings.usingEnglishNames()); + return true; } }).reg(); } diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java index 5a86d98e4a..e414204e5a 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java @@ -118,13 +118,14 @@ public class AudioNotesLayer extends OsmandMapLayer implements IContextMenuProvi final Recording r = (Recording) o; OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (itemId == R.string.recording_context_menu_play || itemId == R.string.recording_context_menu_show) { plugin.playRecording(view.getContext(), r); } else if (itemId == R.string.recording_context_menu_delete) { deleteRecording(r); } + return true; } diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java index 10e6123538..b82a09876d 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java @@ -414,12 +414,13 @@ public class AudioVideoNotesPlugin extends OsmandPlugin { public void registerLayerContextMenuActions(final OsmandMapTileView mapView, ContextMenuAdapter adapter, final MapActivity mapActivity) { OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (itemId == R.string.layer_recordings) { dialog.dismiss(); SHOW_RECORDINGS.set(!SHOW_RECORDINGS.get()); updateLayers(mapView, mapActivity); } + return true; } }; adapter.item(R.string.layer_recordings).selected(SHOW_RECORDINGS.get() ? 1 : 0) @@ -433,23 +434,26 @@ public class AudioVideoNotesPlugin extends OsmandPlugin { .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { recordAudio(latitude, longitude, mapActivity); + return true; } }).position(6).reg(); adapter.item(R.string.recording_context_menu_vrecord).icons(R.drawable.ic_action_video_dark, R.drawable.ic_action_video_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { recordVideo(latitude, longitude, mapActivity); + return true; } }).position(7).reg(); adapter.item(R.string.recording_context_menu_precord).icons(R.drawable.ic_action_photo_dark, R.drawable.ic_action_photo_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { takePhoto(latitude, longitude, mapActivity); + return true; } }).position(8).reg(); @@ -1101,8 +1105,9 @@ public class AudioVideoNotesPlugin extends OsmandPlugin { final RecordingLocalIndexInfo ri = (RecordingLocalIndexInfo) info; OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { playRecording(la, ri.rec); + return true; } }; if (ri.rec.isPhoto()) { @@ -1118,13 +1123,13 @@ public class AudioVideoNotesPlugin extends OsmandPlugin { .icons(R.drawable.ic_action_marker_dark, R.drawable.ic_action_marker_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { SHOW_RECORDINGS.set(true); app.getSettings().setMapLocationToShow(ri.rec.lat, ri.rec.lon, app.getSettings().getLastKnownMapZoom()); MapActivity.launchMapActivityMoveToTop(la); - + return true; } }).reg(); } diff --git a/OsmAnd/src/net/osmand/plus/distancecalculator/DistanceCalculatorPlugin.java b/OsmAnd/src/net/osmand/plus/distancecalculator/DistanceCalculatorPlugin.java index 01f967f65f..781f387705 100644 --- a/OsmAnd/src/net/osmand/plus/distancecalculator/DistanceCalculatorPlugin.java +++ b/OsmAnd/src/net/osmand/plus/distancecalculator/DistanceCalculatorPlugin.java @@ -584,7 +584,7 @@ public class DistanceCalculatorPlugin extends OsmandPlugin { OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (itemId == R.string.delete_point) { for (int i = 0; i < measurementPoints.size(); i++) { Iterator it = measurementPoints.get(i).iterator(); @@ -596,6 +596,7 @@ public class DistanceCalculatorPlugin extends OsmandPlugin { } calculateDistance(); } + return true; } }; adapter.item(R.string.delete_point).icons(R.drawable.ic_action_delete_dark, diff --git a/OsmAnd/src/net/osmand/plus/download/LocalIndexesFragment.java b/OsmAnd/src/net/osmand/plus/download/LocalIndexesFragment.java index c4713e031a..96dcc4b41a 100644 --- a/OsmAnd/src/net/osmand/plus/download/LocalIndexesFragment.java +++ b/OsmAnd/src/net/osmand/plus/download/LocalIndexesFragment.java @@ -158,7 +158,7 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment { private void basicFileOperation(final LocalIndexInfo info, ContextMenuAdapter adapter) { OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { if (resId == R.string.local_index_mi_rename) { renameFile(info); } else if (resId == R.string.local_index_mi_restore) { @@ -177,6 +177,7 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment { } else if (resId == R.string.local_index_mi_backup) { new LocalIndexOperationTask(BACKUP_OPERATION).execute(info); } + return true; } }; if(info.getType() == LocalIndexType.MAP_DATA || info.getType() == LocalIndexType.SRTM_DATA){ @@ -475,8 +476,9 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment { optionsMenuAdapter = new ContextMenuAdapter(getDownloadActivity()); OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { localOptionsMenu(itemId); + return true; } }; optionsMenuAdapter.item(R.string.local_index_mi_reload) diff --git a/OsmAnd/src/net/osmand/plus/helpers/WaypointDialogHelper.java b/OsmAnd/src/net/osmand/plus/helpers/WaypointDialogHelper.java index f14de55997..b6c410f88d 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/WaypointDialogHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/WaypointDialogHelper.java @@ -3,7 +3,6 @@ package net.osmand.plus.helpers; import java.util.ArrayList; import java.util.List; -import android.support.v4.widget.DrawerLayout; import android.widget.*; import net.osmand.Location; import net.osmand.data.LatLon; @@ -195,14 +194,16 @@ public class WaypointDialogHelper implements OsmAndLocationListener { public static void showWaypointsDialogFlat(FragmentActivity fragmentActivity) { Bundle args = new Bundle(); args.putBoolean(WaypointDialogFragment.FLAT_ARG, true); - WaypointDialogFragment wdf = new WaypointDialogFragment(); + //TODO remove this method totally + WaypointDialogFragment wdf = new WaypointDialogFragment(new WaypointDialogHelper(null)); wdf.setArguments(args); fragmentActivity.getSupportFragmentManager().beginTransaction().add(wdf, "tag").commit(); } public static void showWaypointsDialog(FragmentActivity fragmentActivity) { Bundle args = new Bundle(); - WaypointDialogFragment wdf = new WaypointDialogFragment(); + //TODO remove this method totally + WaypointDialogFragment wdf = new WaypointDialogFragment(new WaypointDialogHelper(null)); wdf.setArguments(args); fragmentActivity.getSupportFragmentManager().beginTransaction().add(wdf, "tag").commit(); } @@ -211,9 +212,14 @@ public class WaypointDialogHelper implements OsmAndLocationListener { WaypointHelper waypointHelper; private OsmandApplication app; + private WaypointDialogHelper dialogHelper; public static final String FLAT_ARG = "FLAT_ARG"; + public WaypointDialogFragment(WaypointDialogHelper helper){ + this.dialogHelper = helper; + } + @Override public void onAttach(Activity activity) { super.onAttach(activity); @@ -229,91 +235,6 @@ public class WaypointDialogHelper implements OsmAndLocationListener { return createWaypointsDialog(); } - private void selectPoi(final int[] running, final ArrayAdapter listAdapter, final int type, - final boolean enable) { - if (getActivity() instanceof MapActivity && !PoiFilter.CUSTOM_FILTER_ID.equals(app.getSettings().getPoiFilterForMap())) { - MapActivity map = (MapActivity) getActivity(); - final PoiFilter[] selected = new PoiFilter[1]; - AlertDialog dlg = map.getMapLayers().selectPOIFilterLayer(map.getMapView(), selected); - dlg.setOnDismissListener(new OnDismissListener() { - - @Override - public void onDismiss(DialogInterface dialog) { - if (selected != null) { - enableType(running, listAdapter, type, enable); - } - } - }); - } else { - enableType(running, listAdapter, type, enable); - } - } - - private void recalculatePoints(final int[] running, final ArrayAdapter listAdapter, final int type){ - new AsyncTask() { - - @Override - protected Void doInBackground(Void... params) { - app.getWaypointHelper().recalculatePoints(type); - return null; - } - - protected void onPostExecute(Void result) { - running[0] = -1; - listAdapter.clear(); - for (Object point : getPoints()) { - listAdapter.add(point); - } - listAdapter.notifyDataSetChanged(); - } - }.execute((Void) null); - } - - private void enableType(final int[] running, final ArrayAdapter listAdapter, final int type, - final boolean enable) { - new AsyncTask() { - - @Override - protected Void doInBackground(Void... params) { - app.getWaypointHelper().enableWaypointType(type, enable); - return null; - } - - protected void onPostExecute(Void result) { - running[0] = -1; - listAdapter.clear(); - for (Object point : getPoints()) { - listAdapter.add(point); - } - listAdapter.notifyDataSetChanged(); - } - }.execute((Void) null); - } - - protected String getHeader(int type, boolean checked) { - FragmentActivity ctx = getActivity(); - String str = ctx.getString(R.string.waypoints); - switch (type) { - case WaypointHelper.TARGETS: - str = ctx.getString(R.string.targets); - break; - case WaypointHelper.ALARMS: - str = ctx.getString(R.string.way_alarms); - break; - case WaypointHelper.FAVORITES: - str = ctx.getString(R.string.my_favorites); - break; - case WaypointHelper.WAYPOINTS: - str = ctx.getString(R.string.waypoints); - break; - case WaypointHelper.POI: - str = waypointHelper.getPoiFilter() == null || !checked ? ctx.getString(R.string.poi) : waypointHelper - .getPoiFilter().getName(); - break; - } - return str; - } - public AlertDialog createWaypointsDialogFlat(final List points) { final List deletedPoints = new ArrayList(); final FragmentActivity ctx = getActivity(); @@ -368,156 +289,10 @@ public class WaypointDialogHelper implements OsmAndLocationListener { } public AlertDialog createWaypointsDialog() { - final List points = getPoints(); - final List deletedPoints = new ArrayList(); final FragmentActivity ctx = getActivity(); final ListView listView = new ListView(ctx); - final int[] running = new int[]{-1}; - final ArrayAdapter listAdapter = new ArrayAdapter(ctx, - R.layout.waypoint_reached, R.id.title, points) { - - @Override - public View getView(final int position, View convertView, ViewGroup parent) { - // User super class to create the View - View v = convertView; - final ArrayAdapter thisAdapter = this; - boolean labelView = (getItem(position) instanceof Integer); - boolean viewText = v != null && v.findViewById(R.id.info_close) == null; - if (v == null || viewText != labelView) { - v = ctx.getLayoutInflater().inflate(labelView ? R.layout.waypoint_header : R.layout.waypoint_reached, null); - } - if (getItem(position) instanceof String && getItem(position).equals(POI_RADIUS)){ - v = ctx.getLayoutInflater().inflate(R.layout.radius_search_list_element, null); - v.findViewById(R.id.ProgressBar).setVisibility(position == running[0] ? View.VISIBLE : View.GONE); - final TextView radius = (TextView) v.findViewById(R.id.radius); - radius.setText(OsmAndFormatter.getFormattedDistance(waypointHelper.getPoiSearchDeviationRadius(), app)); - radius.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - int length = WaypointHelper.SEARCH_RADIUS_VALUES.length; - String[] names = new String[length]; - int selected = 0; - for (int i = 0; i < length; i++) { - names[i] = OsmAndFormatter.getFormattedDistance(WaypointHelper.SEARCH_RADIUS_VALUES[i], app); - if (WaypointHelper.SEARCH_RADIUS_VALUES[i] == waypointHelper.getPoiSearchDeviationRadius()){ - selected = i; - } - } - new AlertDialog.Builder(getActivity()) - .setSingleChoiceItems(names, selected, new OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - int value = WaypointHelper.SEARCH_RADIUS_VALUES[i]; - if (waypointHelper.getPoiSearchDeviationRadius() != value){ - running[0] = position; - waypointHelper.setPoiSearchDeviationRadius(value); - radius.setText(OsmAndFormatter.getFormattedDistance(value, app)); - recalculatePoints(running, thisAdapter, WaypointHelper.POI); - dialogInterface.dismiss(); - } - } - }).setTitle(app.getString(R.string.search_radius)+ " " + app.getString(R.string.poi)) - .setNegativeButton(R.string.default_buttons_cancel, null) - .show(); - } - }); - } else if (getItem(position) instanceof String && getItem(position).equals(SEARCH_RADIUS)){ - v = ctx.getLayoutInflater().inflate(R.layout.radius_search_list_element, null); - v.findViewById(R.id.ProgressBar).setVisibility(position == running[0] ? View.VISIBLE : View.GONE); - final TextView radius = (TextView) v.findViewById(R.id.radius); - radius.setText(OsmAndFormatter.getFormattedDistance(waypointHelper.getSearchDeviationRadius(), app)); - radius.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - int length = WaypointHelper.SEARCH_RADIUS_VALUES.length; - String[] names = new String[length]; - int selected = 0; - for (int i = 0; i < length; i++) { - names[i] = OsmAndFormatter.getFormattedDistance(WaypointHelper.SEARCH_RADIUS_VALUES[i], app); - if (WaypointHelper.SEARCH_RADIUS_VALUES[i] == waypointHelper.getSearchDeviationRadius()){ - selected = i; - } - } - new AlertDialog.Builder(getActivity()) - .setSingleChoiceItems(names, selected, new OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - int value = WaypointHelper.SEARCH_RADIUS_VALUES[i]; - if (waypointHelper.getSearchDeviationRadius() != value){ - running[0] = position; - waypointHelper.setSearchDeviationRadius(value); - radius.setText(OsmAndFormatter.getFormattedDistance(value, app)); - recalculatePoints(running, thisAdapter, -1); - dialogInterface.dismiss(); - } - } - }).setTitle(app.getString(R.string.search_radius)) - .setNegativeButton(R.string.default_buttons_cancel, null) - .show(); - } - }); - } else if (labelView) { - v = ctx.getLayoutInflater().inflate(R.layout.waypoint_header, null); - final int type = (Integer) getItem(position); - ImageView sort = (ImageView) v.findViewById(R.id.sort); - //sort button in Destination header - if (type == 0 && sort != null){ - sort.setVisibility(View.VISIBLE); - if (app.getSettings().isLightContent()){ - sort.setImageResource(R.drawable.ic_sort_waypoint_white); - } else { - sort.setImageResource(R.drawable.ic_sort_waypoint_dark); - } - sort.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - IntermediatePointsDialog.openIntermediatePointsDialog(ctx, app, true); - } - }); - } - final CompoundButton btn = (CompoundButton) v.findViewById(R.id.check_item); - btn.setVisibility(waypointHelper.isTypeConfigurable(type) ? View.VISIBLE : View.GONE); - btn.setOnCheckedChangeListener(null); - final boolean checked = waypointHelper.isTypeEnabled(type); - btn.setChecked(checked); - btn.setEnabled(running[0] == -1); - v.findViewById(R.id.ProgressBar).setVisibility(position == running[0] ? View.VISIBLE : View.GONE); - btn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - running[0] = position; - thisAdapter.notifyDataSetInvalidated(); - if (type == WaypointHelper.POI && isChecked) { - selectPoi(running, thisAdapter, type, isChecked); - } else { - enableType(running, thisAdapter, type, isChecked); - } - } - - }); - TextView tv = (TextView) v.findViewById(R.id.header_text); - tv.setText(getHeader(type, checked)); - } else { - v = ctx.getLayoutInflater().inflate(R.layout.waypoint_reached, null); - updatePointInfoView(app, ctx, v, (LocationPointWrapper) getItem(position), WaypointDialogFragment.this); - View remove = v.findViewById(R.id.info_close); - ((ImageButton) remove).setImageDrawable(ctx.getResources().getDrawable( - app.getSettings().isLightContent() ? R.drawable.ic_action_gremove_light - : R.drawable.ic_action_gremove_dark)); - remove.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - LocationPointWrapper point = (LocationPointWrapper) points.get(position); - remove(point); - deletedPoints.add(point); - notifyDataSetChanged(); - } - }); - } - return v; - } - }; + final List deletedPoints = new ArrayList(); + final ArrayAdapter listAdapter = dialogHelper.getWaypointsAdapter(ctx, deletedPoints); listView.setAdapter(listAdapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @@ -550,24 +325,6 @@ public class WaypointDialogHelper implements OsmAndLocationListener { return builder.create(); } - protected List getPoints() { - final List points = new ArrayList(); - for (int i = 0; i < WaypointHelper.MAX; i++) { - List tp = waypointHelper.getWaypoints(i); - if (waypointHelper.isTypeVisible(i)) { - points.add(new Integer(i)); - if (i == WaypointHelper.POI && waypointHelper.isTypeEnabled(WaypointHelper.POI)){ - points.add(POI_RADIUS); - } else if (i == WaypointHelper.FAVORITES && waypointHelper.isTypeEnabled(WaypointHelper.FAVORITES)){ - points.add(SEARCH_RADIUS); - } - if (tp != null && tp.size() > 0) { - points.addAll(tp); - } - } - } - return points; - } } @@ -603,5 +360,255 @@ public class WaypointDialogHelper implements OsmAndLocationListener { } } + public ArrayAdapter getWaypointsAdapter(final Activity ctx, final List deletedPoints){ + final List points = getPoints(); + final int[] running = new int[]{-1}; + return new ArrayAdapter(ctx, + R.layout.waypoint_reached, R.id.title, points) { + @Override + public View getView(final int position, View convertView, ViewGroup parent) { + // User super class to create the View + View v = convertView; + final ArrayAdapter thisAdapter = this; + boolean labelView = (getItem(position) instanceof Integer); + boolean viewText = v != null && v.findViewById(R.id.info_close) == null; + if (v == null || viewText != labelView) { + v = ctx.getLayoutInflater().inflate(labelView ? R.layout.waypoint_header : R.layout.waypoint_reached, null); + } + if (getItem(position) instanceof String && getItem(position).equals(POI_RADIUS)){ + v = ctx.getLayoutInflater().inflate(R.layout.radius_search_list_element, null); + v.findViewById(R.id.ProgressBar).setVisibility(position == running[0] ? View.VISIBLE : View.GONE); + final TextView radius = (TextView) v.findViewById(R.id.radius); + radius.setText(OsmAndFormatter.getFormattedDistance(waypointHelper.getPoiSearchDeviationRadius(), app)); + radius.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + int length = WaypointHelper.SEARCH_RADIUS_VALUES.length; + String[] names = new String[length]; + int selected = 0; + for (int i = 0; i < length; i++) { + names[i] = OsmAndFormatter.getFormattedDistance(WaypointHelper.SEARCH_RADIUS_VALUES[i], app); + if (WaypointHelper.SEARCH_RADIUS_VALUES[i] == waypointHelper.getPoiSearchDeviationRadius()){ + selected = i; + } + } + new AlertDialog.Builder(ctx) + .setSingleChoiceItems(names, selected, new OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + int value = WaypointHelper.SEARCH_RADIUS_VALUES[i]; + if (waypointHelper.getPoiSearchDeviationRadius() != value){ + running[0] = position; + waypointHelper.setPoiSearchDeviationRadius(value); + radius.setText(OsmAndFormatter.getFormattedDistance(value, app)); + recalculatePoints(running, thisAdapter, WaypointHelper.POI); + dialogInterface.dismiss(); + } + } + }).setTitle(app.getString(R.string.search_radius)+ " " + app.getString(R.string.poi)) + .setNegativeButton(R.string.default_buttons_cancel, null) + .show(); + } + }); + } else if (getItem(position) instanceof String && getItem(position).equals(SEARCH_RADIUS)){ + v = ctx.getLayoutInflater().inflate(R.layout.radius_search_list_element, null); + v.findViewById(R.id.ProgressBar).setVisibility(position == running[0] ? View.VISIBLE : View.GONE); + final TextView radius = (TextView) v.findViewById(R.id.radius); + radius.setText(OsmAndFormatter.getFormattedDistance(waypointHelper.getSearchDeviationRadius(), app)); + radius.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + int length = WaypointHelper.SEARCH_RADIUS_VALUES.length; + String[] names = new String[length]; + int selected = 0; + for (int i = 0; i < length; i++) { + names[i] = OsmAndFormatter.getFormattedDistance(WaypointHelper.SEARCH_RADIUS_VALUES[i], app); + if (WaypointHelper.SEARCH_RADIUS_VALUES[i] == waypointHelper.getSearchDeviationRadius()){ + selected = i; + } + } + new AlertDialog.Builder(ctx) + .setSingleChoiceItems(names, selected, new OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + int value = WaypointHelper.SEARCH_RADIUS_VALUES[i]; + if (waypointHelper.getSearchDeviationRadius() != value){ + running[0] = position; + waypointHelper.setSearchDeviationRadius(value); + radius.setText(OsmAndFormatter.getFormattedDistance(value, app)); + recalculatePoints(running, thisAdapter, -1); + dialogInterface.dismiss(); + } + } + }).setTitle(app.getString(R.string.search_radius)) + .setNegativeButton(R.string.default_buttons_cancel, null) + .show(); + } + }); + } else if (labelView) { + v = ctx.getLayoutInflater().inflate(R.layout.waypoint_header, null); + final int type = (Integer) getItem(position); + ImageView sort = (ImageView) v.findViewById(R.id.sort); + //sort button in Destination header + if (type == 0 && sort != null){ + sort.setVisibility(View.VISIBLE); + if (app.getSettings().isLightContent()){ + sort.setImageResource(R.drawable.ic_sort_waypoint_white); + } else { + sort.setImageResource(R.drawable.ic_sort_waypoint_dark); + } + sort.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + IntermediatePointsDialog.openIntermediatePointsDialog(ctx, app, true); + } + }); + } + final CompoundButton btn = (CompoundButton) v.findViewById(R.id.check_item); + btn.setVisibility(waypointHelper.isTypeConfigurable(type) ? View.VISIBLE : View.GONE); + btn.setOnCheckedChangeListener(null); + final boolean checked = waypointHelper.isTypeEnabled(type); + btn.setChecked(checked); + btn.setEnabled(running[0] == -1); + v.findViewById(R.id.ProgressBar).setVisibility(position == running[0] ? View.VISIBLE : View.GONE); + btn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + running[0] = position; + thisAdapter.notifyDataSetInvalidated(); + if (type == WaypointHelper.POI && isChecked) { + selectPoi(running, thisAdapter, type, isChecked, mapActivity); + } else { + enableType(running, thisAdapter, type, isChecked); + } + } + + }); + TextView tv = (TextView) v.findViewById(R.id.header_text); + tv.setText(getHeader(ctx, type, checked)); + } else { + v = ctx.getLayoutInflater().inflate(R.layout.waypoint_reached, null); + updatePointInfoView(app, ctx, v, (LocationPointWrapper) getItem(position), null); + View remove = v.findViewById(R.id.info_close); + ((ImageButton) remove).setImageDrawable(ctx.getResources().getDrawable( + app.getSettings().isLightContent() ? R.drawable.ic_action_gremove_light + : R.drawable.ic_action_gremove_dark)); + remove.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + LocationPointWrapper point = (LocationPointWrapper) points.get(position); + remove(point); + deletedPoints.add(point); + notifyDataSetChanged(); + } + }); + } + return v; + } + }; + } + + protected String getHeader(Activity ctx, int type, boolean checked) { + String str = ctx.getString(R.string.waypoints); + switch (type) { + case WaypointHelper.TARGETS: + str = ctx.getString(R.string.targets); + break; + case WaypointHelper.ALARMS: + str = ctx.getString(R.string.way_alarms); + break; + case WaypointHelper.FAVORITES: + str = ctx.getString(R.string.my_favorites); + break; + case WaypointHelper.WAYPOINTS: + str = ctx.getString(R.string.waypoints); + break; + case WaypointHelper.POI: + str = waypointHelper.getPoiFilter() == null || !checked ? ctx.getString(R.string.poi) : waypointHelper + .getPoiFilter().getName(); + break; + } + return str; + } + + private void selectPoi(final int[] running, final ArrayAdapter listAdapter, final int type, + final boolean enable, MapActivity map) { + if (!PoiFilter.CUSTOM_FILTER_ID.equals(app.getSettings().getPoiFilterForMap())) { + final PoiFilter[] selected = new PoiFilter[1]; + AlertDialog dlg = map.getMapLayers().selectPOIFilterLayer(map.getMapView(), selected); + dlg.setOnDismissListener(new OnDismissListener() { + + @Override + public void onDismiss(DialogInterface dialog) { + if (selected != null) { + enableType(running, listAdapter, type, enable); + } + } + }); + } else { + enableType(running, listAdapter, type, enable); + } + } + + private void recalculatePoints(final int[] running, final ArrayAdapter listAdapter, final int type){ + new AsyncTask() { + + @Override + protected Void doInBackground(Void... params) { + app.getWaypointHelper().recalculatePoints(type); + return null; + } + + protected void onPostExecute(Void result) { + running[0] = -1; + listAdapter.clear(); + for (Object point : getPoints()) { + listAdapter.add(point); + } + listAdapter.notifyDataSetChanged(); + } + }.execute((Void) null); + } + + protected List getPoints() { + final List points = new ArrayList(); + for (int i = 0; i < WaypointHelper.MAX; i++) { + List tp = waypointHelper.getWaypoints(i); + if (waypointHelper.isTypeVisible(i)) { + points.add(new Integer(i)); + if (i == WaypointHelper.POI && waypointHelper.isTypeEnabled(WaypointHelper.POI)){ + points.add(POI_RADIUS); + } else if (i == WaypointHelper.FAVORITES && waypointHelper.isTypeEnabled(WaypointHelper.FAVORITES)){ + points.add(SEARCH_RADIUS); + } + if (tp != null && tp.size() > 0) { + points.addAll(tp); + } + } + } + return points; + } + + private void enableType(final int[] running, final ArrayAdapter listAdapter, final int type, + final boolean enable) { + new AsyncTask() { + + @Override + protected Void doInBackground(Void... params) { + app.getWaypointHelper().enableWaypointType(type, enable); + return null; + } + + protected void onPostExecute(Void result) { + running[0] = -1; + listAdapter.clear(); + for (Object point : getPoints()) { + listAdapter.add(point); + } + listAdapter.notifyDataSetChanged(); + } + }.execute((Void) null); + } } diff --git a/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java b/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java index 31e9291da8..8df4641293 100644 --- a/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java +++ b/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java @@ -115,10 +115,11 @@ public class OsmandMonitoringPlugin extends OsmandPlugin implements MonitoringIn ContextMenuAdapter adapter, Object selectedObj) { OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { if (resId == R.string.context_menu_item_add_waypoint) { mapActivity.getMapActions().addWaypoint(latitude, longitude); } + return true; } }; adapter.item(R.string.context_menu_item_add_waypoint).icons(R.drawable.ic_action_gnew_label_dark, R.drawable.ic_action_gnew_label_light) @@ -447,7 +448,7 @@ public class OsmandMonitoringPlugin extends OsmandPlugin implements MonitoringIn int draw = !bgoff ? R.drawable.monitoring_rec_big : R.drawable.monitoring_rec_inactive; qa.item(msgId).icon(draw).listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (view.getApplication().getNavigationService() == null) { final ValueHolder vs = new ValueHolder(); final ValueHolder choice = new ValueHolder(); @@ -465,6 +466,7 @@ public class OsmandMonitoringPlugin extends OsmandPlugin implements MonitoringIn } else { view.getContext().stopService(serviceIntent); } + return true; } }).position(0).reg(); } diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java index 52fd47762a..080d2c1b9e 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java @@ -495,12 +495,13 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (itemId == R.string.osb_comment_menu_item) { commentBug(bug); } else if (itemId == R.string.osb_close_menu_item) { closeBug(bug); } + return true; } }; adapter.item(R.string.osb_comment_menu_item).icons( diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java index ff8fdfef20..407d1067d6 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java @@ -122,7 +122,7 @@ public class OsmEditingPlugin extends OsmandPlugin { final Object selectedObj) { OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { if (resId == R.string.context_menu_item_create_poi) { getPoiActions(mapActivity).showCreateDialog(latitude, longitude); } else if (resId == R.string.context_menu_item_open_bug) { @@ -135,6 +135,7 @@ public class OsmEditingPlugin extends OsmandPlugin { } else if (resId == R.string.poi_context_menu_modify) { getPoiActions(mapActivity).showEditDialog((Amenity) selectedObj); } + return true; } }; if(selectedObj instanceof Amenity) { @@ -156,10 +157,11 @@ public class OsmEditingPlugin extends OsmandPlugin { .icons(R.drawable.ic_action_bug_dark, R.drawable.ic_action_bug_light).listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (itemId == R.string.layer_osm_bugs) { settings.SHOW_OSM_BUGS.set(isChecked); } + return true; } }).position(7).reg(); @@ -178,8 +180,9 @@ public class OsmEditingPlugin extends OsmandPlugin { .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { sendGPXFiles(la, (AvailableGPXFragment) fragment, (GpxInfo) info); + return true; } }).reg(); } @@ -194,7 +197,7 @@ public class OsmEditingPlugin extends OsmandPlugin { .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { f.openSelectionMode(R.string.local_index_mi_upload_gpx, R.drawable.ic_action_gup_dark, R.drawable.ic_action_gup_light, new OnClickListener() { @Override @@ -204,6 +207,7 @@ public class OsmEditingPlugin extends OsmandPlugin { selectedItems.toArray(new GpxInfo[selectedItems.size()])); } }); + return true; } }).position(5).reg(); } diff --git a/OsmAnd/src/net/osmand/plus/osmo/OsMoPlugin.java b/OsmAnd/src/net/osmand/plus/osmo/OsMoPlugin.java index fe681a56aa..27a5ce28dd 100644 --- a/OsmAnd/src/net/osmand/plus/osmo/OsMoPlugin.java +++ b/OsmAnd/src/net/osmand/plus/osmo/OsMoPlugin.java @@ -136,13 +136,14 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer R.drawable.ic_action_gloc_light).listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { OsMoDevice o = (OsMoDevice) selectedObj; double lat = o.getLastLocation() == null ? latitude : o.getLastLocation().getLatitude(); double lon = o.getLastLocation() == null ? longitude : o.getLastLocation().getLongitude(); mapActivity.getMapView().setLatLon(lat, lon); MapActivity.getMapViewTrackingUtilities().setMapLinkedToLocation(false); OsMoPositionLayer.setFollowTrackerId(o); + return true; } }).position(0).reg(); if(OsMoPositionLayer.getFollowDestinationId() != null) { @@ -150,9 +151,10 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer R.drawable.ic_action_close_light).listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { OsMoPositionLayer.setFollowDestination(null); + return true; } }).position(0).reg(); @@ -161,13 +163,14 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer R.drawable.ic_action_flag_light).listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { OsMoDevice o = (OsMoDevice) selectedObj; if(o.getLastLocation() != null) { TargetPointsHelper targets = mapActivity.getMyApplication().getTargetPointsHelper(); targets.navigateToPoint(new LatLon(o.getLastLocation().getLatitude(), o.getLastLocation().getLongitude()), true, -1); } OsMoPositionLayer.setFollowDestination(o); + return true; } }).position(1).reg(); } @@ -291,10 +294,11 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { final double lat = view.getLatitude(); final double lon = view.getLongitude(); tracker.sendCoordinate(lat, lon); + return true; } }).reg(); } @@ -321,9 +325,10 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer helper.item(R.string.osmo_groups).icons(R.drawable.ic_action_eye_dark, R.drawable.ic_action_eye_light).position(6) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { Intent intent = new Intent(mapActivity, OsMoGroupsActivity.class); mapActivity.startActivity(intent); + return true; } }).reg(); } diff --git a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionPlugin.java b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionPlugin.java index 9664add743..459f87049b 100644 --- a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionPlugin.java +++ b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionPlugin.java @@ -200,11 +200,12 @@ public class ParkingPositionPlugin extends OsmandPlugin { if (selectedObj == parkingPosition && parkingPosition != null) { OnContextMenuClick removeListener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int resId, int pos, + public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { if ((resId == R.string.context_menu_item_delete_parking_point)) { showDeleteDialog(mapActivity); } + return true; } }; adapter.item(R.string.context_menu_item_delete_parking_point) @@ -213,11 +214,12 @@ public class ParkingPositionPlugin extends OsmandPlugin { OnContextMenuClick addListener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int resId, int pos, + public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { if (resId == R.string.context_menu_item_add_parking_point) { showAddParkingDialog(mapActivity, latitude, longitude); } + return true; } }; adapter.item(R.string.context_menu_item_add_parking_point) @@ -419,8 +421,9 @@ public class ParkingPositionPlugin extends OsmandPlugin { helper.item(R.string.osmand_parking_delete) .icons(R.drawable.ic_action_remove_dark, R.drawable.ic_action_remove_light).listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { showDeleteDialog(mapActivity); + return true; } }).reg(); diff --git a/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java b/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java index 577adeb357..30524217a5 100644 --- a/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java +++ b/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java @@ -186,7 +186,7 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { final MapActivityLayers layers = mapActivity.getMapLayers(); OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (itemId == R.string.layer_map) { dialog.dismiss(); layers.selectMapLayer(mapView); @@ -210,6 +210,7 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { mapActivity); } } + return true; } }; adapter.item(R.string.layer_map).icons(R.drawable.ic_action_globus_dark, R.drawable.ic_action_globus_light) @@ -228,13 +229,14 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { if (mapView.getMainLayer() instanceof MapTileLayer) { OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) { if (resId == R.string.context_menu_item_update_map) { mapActivity.getMapActions().reloadTile(mapView.getZoom(), latitude, longitude); } else if (resId == R.string.context_menu_item_download_map) { DownloadTilesDialog dlg = new DownloadTilesDialog(mapActivity, (OsmandApplication) mapActivity.getApplication(), mapView); dlg.openDialog(); } + return true; } }; adapter.item(R.string.context_menu_item_update_map).icons(R.drawable.ic_action_refresh_dark, R.drawable.ic_action_refresh_light) diff --git a/OsmAnd/src/net/osmand/plus/routepointsnavigation/RoutePointsLayer.java b/OsmAnd/src/net/osmand/plus/routepointsnavigation/RoutePointsLayer.java index abdea19a7f..d4f4055a42 100644 --- a/OsmAnd/src/net/osmand/plus/routepointsnavigation/RoutePointsLayer.java +++ b/OsmAnd/src/net/osmand/plus/routepointsnavigation/RoutePointsLayer.java @@ -75,7 +75,7 @@ public class RoutePointsLayer extends OsmandMapLayer implements ContextMenuLaye final GPXUtilities.WptPt point = (GPXUtilities.WptPt) o; ContextMenuAdapter.OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (itemId == R.string.mark_as_not_visited){ plugin.getCurrentRoute().markPoint(point,false); plugin.saveCurrentRoute(); @@ -91,6 +91,7 @@ public class RoutePointsLayer extends OsmandMapLayer implements ContextMenuLaye plugin.saveCurrentRoute(); } map.refreshMap(); + return true; } }; diff --git a/OsmAnd/src/net/osmand/plus/sherpafy/SherpafyCustomization.java b/OsmAnd/src/net/osmand/plus/sherpafy/SherpafyCustomization.java index 60cec5bfd6..503610ffd9 100644 --- a/OsmAnd/src/net/osmand/plus/sherpafy/SherpafyCustomization.java +++ b/OsmAnd/src/net/osmand/plus/sherpafy/SherpafyCustomization.java @@ -513,8 +513,9 @@ public class SherpafyCustomization extends OsmAndAppCustomization { adapter.item(R.string.show_waypoint_information).icons(R.drawable.ic_action_info_dark, R.drawable.ic_action_info_light ).position(0) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { showFavoriteDialog(mapActivity, selectedStage, sf); + return true; } }).reg(); @@ -564,19 +565,21 @@ public class SherpafyCustomization extends OsmAndAppCustomization { R.drawable.ic_action_gremove_dark, R.drawable.ic_action_gremove_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { app.getSettings().SHOW_POI_OVER_MAP.set(false); mapActivity.getMapLayers().updateLayers(mapActivity.getMapView()); + return true; } }).reg(); } else { adapter.item(R.string.poi).icons(R.drawable.ic_action_layers_dark, R.drawable.ic_action_layers_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { mapActivity.getMapLayers().selectPOIFilterLayer(mapActivity.getMapView(), null); app.getSettings().SHOW_POI_OVER_MAP.set(true); mapActivity.getMapLayers().updateLayers(mapActivity.getMapView()); + return true; } }).reg(); } @@ -584,10 +587,11 @@ public class SherpafyCustomization extends OsmAndAppCustomization { adapter.item(R.string.sherpafy_tour_info_txt).icons(R.drawable.ic_action_info_dark, R.drawable.ic_action_info_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { Intent newIntent = new Intent(mapActivity, TourViewActivity.class); // newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); mapActivity.startActivity(newIntent); + return true; } }).reg(); //complete stage @@ -597,9 +601,10 @@ public class SherpafyCustomization extends OsmAndAppCustomization { .icons(R.drawable.ic_action_finish_flag_dark, R.drawable.ic_action_finish_flag_light) .listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { markStageAsCompleted(stage); showCompleteStageFragment(mapActivity, stage, false); + return true; } }).reg(); } @@ -607,12 +612,13 @@ public class SherpafyCustomization extends OsmAndAppCustomization { adapter.item(R.string.context_menu_item_share_location).icons( R.drawable.ic_action_gshare_dark, R.drawable.ic_action_gshare_light).listen(new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (app.getLocationProvider().getLastKnownLocation() != null) { new ShareLocation(mapActivity).run(); } else { Toast.makeText(app, R.string.unknown_location, Toast.LENGTH_LONG).show(); } + return true; } }).reg(); } diff --git a/OsmAnd/src/net/osmand/plus/srtmplugin/SRTMPlugin.java b/OsmAnd/src/net/osmand/plus/srtmplugin/SRTMPlugin.java index db28d9df22..bbaf0446f5 100644 --- a/OsmAnd/src/net/osmand/plus/srtmplugin/SRTMPlugin.java +++ b/OsmAnd/src/net/osmand/plus/srtmplugin/SRTMPlugin.java @@ -95,11 +95,12 @@ public class SRTMPlugin extends OsmandPlugin { public void registerLayerContextMenuActions(final OsmandMapTileView mapView, ContextMenuAdapter adapter, final MapActivity mapActivity) { OnContextMenuClick listener = new OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (itemId == R.string.layer_hillshade) { HILLSHADE.set(!HILLSHADE.get()); updateLayers(mapView, mapActivity); } + return true; } }; adapter.item(R.string.layer_hillshade).selected(HILLSHADE.get()? 1 : 0) diff --git a/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java b/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java index 5044449f5a..605e2c5048 100644 --- a/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/FavoritesLayer.java @@ -198,7 +198,7 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer. final FavouritePoint a = (FavouritePoint) o; OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (itemId == R.string.favourites_context_menu_delete) { final Resources resources = view.getContext().getResources(); Builder builder = new AlertDialog.Builder(view.getContext()); @@ -213,6 +213,7 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer. }); builder.create().show(); } + return true; } }; adapter.item(R.string.favourites_context_menu_delete) diff --git a/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java b/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java index c439d16acf..40e8b07b37 100644 --- a/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java @@ -256,7 +256,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon final Amenity a = (Amenity) o; OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (itemId == R.string.poi_context_menu_call) { try { Intent intent = new Intent(Intent.ACTION_VIEW); @@ -278,6 +278,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon } else if (itemId == R.string.poi_context_menu_showdescription) { showDescriptionDialog(a); } + return true; } }; if (OsmAndFormatter.getAmenityDescriptionContent(view.getApplication(), a, false).length() > 0) { diff --git a/OsmAnd/src/net/osmand/plus/views/PointNavigationLayer.java b/OsmAnd/src/net/osmand/plus/views/PointNavigationLayer.java index b2752fa749..b766b6bfc0 100644 --- a/OsmAnd/src/net/osmand/plus/views/PointNavigationLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/PointNavigationLayer.java @@ -220,7 +220,7 @@ public class PointNavigationLayer extends OsmandMapLayer implements IContextMenu final TargetPoint a = (TargetPoint) o; OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { if (itemId == R.string.delete_target_point) { TargetPointsHelper targetPointsHelper = map.getMyApplication().getTargetPointsHelper(); if(a.intermediate) { @@ -230,6 +230,7 @@ public class PointNavigationLayer extends OsmandMapLayer implements IContextMenu } } map.getMapLayers().getContextMenuLayer().setLocation(null, ""); + return true; } }; diff --git a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java index 51859ac09f..5d6165e37c 100644 --- a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java @@ -216,8 +216,9 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa final TransportStop a = (TransportStop) o; OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() { @Override - public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { + public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) { showDescriptionDialog(a); + return true; } }; adapter.item(R.string.poi_context_menu_showdescription)