Merge pull request #926 from osmandapp/revert-924-mappref
Revert "Map preference and waypoint dialog moved to drawer menu."
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB |
|
@ -1,47 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingLeft="8dp"
|
|
||||||
android:paddingRight="8dp">
|
|
||||||
<ImageButton android:id="@+id/back"
|
|
||||||
android:focusable="false"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:background="@null"
|
|
||||||
android:layout_marginRight="10dp"/>
|
|
||||||
<ImageView android:id="@+id/icon"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:visibility="gone"
|
|
||||||
android:layout_gravity="center_vertical"/>
|
|
||||||
|
|
||||||
<LinearLayout android:orientation="vertical"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_marginBottom="10dp"
|
|
||||||
android:layout_marginTop="10dp">
|
|
||||||
<TextView android:id="@+id/name"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"/>
|
|
||||||
<TextView android:id="@+id/descr"
|
|
||||||
android:textSize="12sp"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:visibility="gone"/>
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<CheckBox android:id="@+id/check"
|
|
||||||
android:focusable="false"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:visibility="gone"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
|
@ -1,34 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="5dp"
|
|
||||||
android:layout_marginBottom="5dp">
|
|
||||||
|
|
||||||
<ProgressBar
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:id="@+id/ProgressBar"
|
|
||||||
android:layout_marginLeft="4dp"/>
|
|
||||||
|
|
||||||
<TextView android:id="@+id/header"
|
|
||||||
android:text="@string/search_radius_proximity"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_marginLeft="8dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:textSize="20sp"/>
|
|
||||||
|
|
||||||
<TextView android:id="@+id/radius"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textSize="20sp"
|
|
||||||
android:textColor="@color/sherpafy_selection"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:layout_marginRight="8dp"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
|
@ -4,15 +4,15 @@
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="3dp"
|
||||||
android:layout_marginBottom="5dp"
|
android:layout_marginBottom="3dp"
|
||||||
android:layout_marginRight="3dp">
|
android:layout_marginRight="3dp">
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:id="@+id/ProgressBar"
|
android:id="@+id/ProgressBar"
|
||||||
android:layout_marginLeft="4dp"/>
|
android:layout_marginLeft="4dp"/>
|
||||||
|
|
||||||
<TextView android:id="@+id/header_text"
|
<TextView android:id="@+id/header_text"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
@ -25,12 +25,4 @@
|
||||||
android:textSize="20sp"/>
|
android:textSize="20sp"/>
|
||||||
|
|
||||||
<include layout="@layout/check_item_rel"/>
|
<include layout="@layout/check_item_rel"/>
|
||||||
<ImageView
|
|
||||||
android:id="@+id/sort"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:visibility="gone"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
android:layout_marginRight="8dp"/>
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
|
@ -9,8 +9,6 @@
|
||||||
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
||||||
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
||||||
-->
|
-->
|
||||||
<string name="configure_map">Configure map</string>
|
|
||||||
<string name="search_radius_proximity">In proximity of</string>
|
|
||||||
<string name="osmo_device_not_found">Device not found</string>
|
<string name="osmo_device_not_found">Device not found</string>
|
||||||
<string name="osmo_no_connection_msg">OsMo service is not available:\n- check the connection;\n- check the settings;\n- check out our Twitter: https://twitter.com/OsMomobi</string>
|
<string name="osmo_no_connection_msg">OsMo service is not available:\n- check the connection;\n- check the settings;\n- check out our Twitter: https://twitter.com/OsMomobi</string>
|
||||||
<string name="anonymous_user_hint">An anonymous user can not:\n- create groups;\n- synchronize groups and devices with the server;\n- manage groups and devices in a private office.</string>
|
<string name="anonymous_user_hint">An anonymous user can not:\n- create groups;\n- synchronize groups and devices with the server;\n- manage groups and devices in a private office.</string>
|
||||||
|
|
|
@ -17,8 +17,8 @@ import android.widget.TextView;
|
||||||
public class ContextMenuAdapter {
|
public class ContextMenuAdapter {
|
||||||
|
|
||||||
public interface OnContextMenuClick {
|
public interface OnContextMenuClick {
|
||||||
//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);
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final Context ctx;
|
private final Context ctx;
|
||||||
|
|
|
@ -159,7 +159,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
||||||
optionsMenuAdapter = new ContextMenuAdapter(getActivity());
|
optionsMenuAdapter = new ContextMenuAdapter(getActivity());
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(final int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(final int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (itemId == R.string.local_index_mi_reload) {
|
if (itemId == R.string.local_index_mi_reload) {
|
||||||
asyncLoader = new LoadGpxTask();
|
asyncLoader = new LoadGpxTask();
|
||||||
asyncLoader.execute(getActivity());
|
asyncLoader.execute(getActivity());
|
||||||
|
@ -175,7 +175,6 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
optionsMenuAdapter.item(R.string.show_gpx_route)
|
optionsMenuAdapter.item(R.string.show_gpx_route)
|
||||||
|
@ -396,7 +395,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
||||||
private void basicFileOperation(final GpxInfo info, ContextMenuAdapter adapter) {
|
private void basicFileOperation(final GpxInfo info, ContextMenuAdapter adapter) {
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (resId == R.string.local_index_mi_rename) {
|
if (resId == R.string.local_index_mi_rename) {
|
||||||
renameFile(info);
|
renameFile(info);
|
||||||
} else if (resId == R.string.local_index_unselect_gpx_file ||
|
} else if (resId == R.string.local_index_unselect_gpx_file ||
|
||||||
|
@ -442,7 +441,6 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
||||||
AccessibleToast.makeText(getActivity(), R.string.gpx_file_is_empty, Toast.LENGTH_LONG).show();
|
AccessibleToast.makeText(getActivity(), R.string.gpx_file_is_empty, Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (info.gpx != null && info.file == null) {
|
if (info.gpx != null && info.file == null) {
|
||||||
|
|
|
@ -176,9 +176,8 @@ public class FavouritesTreeFragment extends OsmandExpandableListFragment {
|
||||||
new OnContextMenuClick() {
|
new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
editPoint(point);
|
editPoint(point);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
Item delete = qa.item(R.string.favourites_context_menu_delete).icons(
|
Item delete = qa.item(R.string.favourites_context_menu_delete).icons(
|
||||||
|
@ -187,9 +186,8 @@ public class FavouritesTreeFragment extends OsmandExpandableListFragment {
|
||||||
new OnContextMenuClick() {
|
new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
deletePoint(point);
|
deletePoint(point);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
MapActivityActions.showObjectContextMenu(qa, getActivity(), onshow);
|
MapActivityActions.showObjectContextMenu(qa, getActivity(), onshow);
|
||||||
|
|
|
@ -124,12 +124,11 @@ public class MapActivity extends AccessibleActivity {
|
||||||
settings = app.getSettings();
|
settings = app.getSettings();
|
||||||
app.applyTheme(this);
|
app.applyTheme(this);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mapActions = new MapActivityActions(this);
|
mapActions = new MapActivityActions(this);
|
||||||
mapLayers = new MapActivityLayers(this);
|
mapLayers = new MapActivityLayers(this);
|
||||||
|
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||||
// Full screen is not used here
|
// Full screen is not used here
|
||||||
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||||
setContentView(R.layout.main);
|
setContentView(R.layout.main);
|
||||||
|
@ -275,7 +274,7 @@ public class MapActivity extends AccessibleActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
if (!mapActions.onBackPressed()) {
|
if (!mapActions.onBackPressed()){
|
||||||
super.onBackPressed();
|
super.onBackPressed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,11 +47,9 @@ import net.osmand.plus.activities.actions.ShareLocation;
|
||||||
import net.osmand.plus.activities.actions.StartGPSStatus;
|
import net.osmand.plus.activities.actions.StartGPSStatus;
|
||||||
import net.osmand.plus.activities.search.SearchActivity;
|
import net.osmand.plus.activities.search.SearchActivity;
|
||||||
import net.osmand.plus.base.FavoriteImageDrawable;
|
import net.osmand.plus.base.FavoriteImageDrawable;
|
||||||
import net.osmand.plus.configuremap.ConfigureSettingsMenu;
|
|
||||||
import net.osmand.plus.development.OsmandDevelopmentPlugin;
|
import net.osmand.plus.development.OsmandDevelopmentPlugin;
|
||||||
import net.osmand.plus.helpers.WaypointDialogHelper;
|
import net.osmand.plus.helpers.WaypointDialogHelper;
|
||||||
import net.osmand.plus.osmo.OsMoPositionLayer;
|
import net.osmand.plus.osmo.OsMoPositionLayer;
|
||||||
import net.osmand.plus.helpers.WaypointHelper;
|
|
||||||
import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder;
|
import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder;
|
||||||
import net.osmand.plus.routing.RoutingHelper;
|
import net.osmand.plus.routing.RoutingHelper;
|
||||||
import net.osmand.plus.views.BaseMapLayer;
|
import net.osmand.plus.views.BaseMapLayer;
|
||||||
|
@ -97,22 +95,17 @@ public class MapActivityActions implements DialogProvider {
|
||||||
|
|
||||||
DrawerLayout mDrawerLayout;
|
DrawerLayout mDrawerLayout;
|
||||||
ListView mDrawerList;
|
ListView mDrawerList;
|
||||||
private WaypointDialogHelper waypointDialogHelper;
|
|
||||||
private ConfigureSettingsMenu configureSettingsMenu;
|
|
||||||
|
|
||||||
|
|
||||||
public MapActivityActions(MapActivity mapActivity){
|
public MapActivityActions(MapActivity mapActivity){
|
||||||
this.mapActivity = mapActivity;
|
this.mapActivity = mapActivity;
|
||||||
settings = mapActivity.getMyApplication().getSettings();
|
settings = mapActivity.getMyApplication().getSettings();
|
||||||
routingHelper = mapActivity.getMyApplication().getRoutingHelper();
|
routingHelper = mapActivity.getMyApplication().getRoutingHelper();
|
||||||
waypointDialogHelper = new WaypointDialogHelper(mapActivity);
|
|
||||||
configureSettingsMenu = new ConfigureSettingsMenu(mapActivity.getMyApplication());
|
|
||||||
waypointDialogHelper.init();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void addFavouritePoint(final double latitude, final double longitude){
|
protected void addFavouritePoint(final double latitude, final double longitude){
|
||||||
String name = mapActivity.getMapLayers().getContextMenuLayer().getSelectedObjectName();
|
String name = mapActivity.getMapLayers().getContextMenuLayer().getSelectedObjectName();
|
||||||
enhance(dialogBundle, latitude, longitude, name);
|
enhance(dialogBundle,latitude,longitude, name);
|
||||||
mapActivity.showDialog(DIALOG_ADD_FAVORITE);
|
mapActivity.showDialog(DIALOG_ADD_FAVORITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,11 +202,11 @@ public class MapActivityActions implements DialogProvider {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compare(FavouritePoint o1, FavouritePoint o2) {
|
public int compare(FavouritePoint o1, FavouritePoint o2) {
|
||||||
if (distance && activity instanceof MapActivity) {
|
if(distance && activity instanceof MapActivity) {
|
||||||
float f1 = (float) MapUtils.getDistance(((MapActivity) activity).getMapLocation(), o1.getLatitude(),
|
float f1 = (float) MapUtils.getDistance(((MapActivity) activity).getMapLocation(), o1.getLatitude(),
|
||||||
o1.getLongitude());
|
o1.getLongitude());
|
||||||
float f2 = (float) MapUtils.getDistance(((MapActivity) activity).getMapLocation(), o2.getLatitude(),
|
float f2 = (float) MapUtils.getDistance(((MapActivity) activity).getMapLocation(), o2.getLatitude(),
|
||||||
o2.getLongitude());
|
o2.getLongitude());
|
||||||
return Float.compare(f1, f2);
|
return Float.compare(f1, f2);
|
||||||
}
|
}
|
||||||
return ci.compare(o1.getCategory() + " " + o1.getName(), o2.getCategory() + " " + o2.getName());
|
return ci.compare(o1.getCategory() + " " + o1.getName(), o2.getCategory() + " " + o2.getName());
|
||||||
|
@ -440,7 +433,8 @@ public class MapActivityActions implements DialogProvider {
|
||||||
|
|
||||||
return dlg;
|
return dlg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static class SaveDirectionsAsyncTask extends AsyncTask<File, Void, String> {
|
private static class SaveDirectionsAsyncTask extends AsyncTask<File, Void, String> {
|
||||||
|
|
||||||
private final OsmandApplication app;
|
private final OsmandApplication app;
|
||||||
|
@ -752,11 +746,9 @@ public class MapActivityActions implements DialogProvider {
|
||||||
|
|
||||||
public void createOptionsMenuAsDrawer(boolean show){
|
public void createOptionsMenuAsDrawer(boolean show){
|
||||||
final ContextMenuAdapter cm = createOptionsMenu();
|
final ContextMenuAdapter cm = createOptionsMenu();
|
||||||
if (mDrawerLayout == null){
|
mDrawerLayout = (DrawerLayout) mapActivity.findViewById(R.id.drawer_layout);
|
||||||
mDrawerLayout = (DrawerLayout) mapActivity.findViewById(R.id.drawer_layout);
|
|
||||||
mDrawerList = (ListView) mapActivity.findViewById(R.id.left_drawer);
|
mDrawerList = (ListView) mapActivity.findViewById(R.id.left_drawer);
|
||||||
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
|
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
|
||||||
}
|
|
||||||
ListAdapter listAdapter;
|
ListAdapter listAdapter;
|
||||||
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){
|
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){
|
||||||
listAdapter =
|
listAdapter =
|
||||||
|
@ -778,12 +770,9 @@ public class MapActivityActions implements DialogProvider {
|
||||||
public void onItemClick(AdapterView<?> parent, View view, int which, long id) {
|
public void onItemClick(AdapterView<?> parent, View view, int which, long id) {
|
||||||
OnContextMenuClick click = cm.getClickAdapter(which);
|
OnContextMenuClick click = cm.getClickAdapter(which);
|
||||||
if (click != null) {
|
if (click != null) {
|
||||||
if (click.onContextMenuClick(cm.getItemId(which), which, false, null)){
|
click.onContextMenuClick(cm.getItemId(which), which, false, null);
|
||||||
mDrawerLayout.closeDrawer(mDrawerList);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
mDrawerLayout.closeDrawer(mDrawerList);
|
|
||||||
}
|
}
|
||||||
|
mDrawerLayout.closeDrawer(mDrawerList);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -830,13 +819,12 @@ public class MapActivityActions implements DialogProvider {
|
||||||
icons(R.drawable.ic_action_gloc_dark, R.drawable.ic_action_gloc_light)
|
icons(R.drawable.ic_action_gloc_dark, R.drawable.ic_action_gloc_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (getMyApplication().accessibilityEnabled()) {
|
if (getMyApplication().accessibilityEnabled()) {
|
||||||
whereAmIDialog();
|
whereAmIDialog();
|
||||||
} else {
|
} else {
|
||||||
mapActivity.getMapViewTrackingUtilities().backToLocationImpl();
|
mapActivity.getMapViewTrackingUtilities().backToLocationImpl();
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
|
|
||||||
|
@ -857,9 +845,8 @@ public class MapActivityActions implements DialogProvider {
|
||||||
optionsMenuHelper.item(t).icons(icon, iconLight)
|
optionsMenuHelper.item(t).icons(icon, iconLight)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
routingHelper.getVoiceRouter().setMute(!routingHelper.getVoiceRouter().isMute());
|
routingHelper.getVoiceRouter().setMute(!routingHelper.getVoiceRouter().isMute());
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
@ -868,9 +855,8 @@ public class MapActivityActions implements DialogProvider {
|
||||||
.icons(R.drawable.ic_action_gdirections_dark, R.drawable.ic_action_gdirections_light)
|
.icons(R.drawable.ic_action_gdirections_dark, R.drawable.ic_action_gdirections_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
enterRoutePlanningMode(null, null, false);
|
enterRoutePlanningMode(null, null, false);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
} else if(routingHelper.isRouteCalculated()) {
|
} else if(routingHelper.isRouteCalculated()) {
|
||||||
|
@ -880,7 +866,7 @@ public class MapActivityActions implements DialogProvider {
|
||||||
.icons(R.drawable.ic_action_gdirections_dark, R.drawable.ic_action_gdirections_light)
|
.icons(R.drawable.ic_action_gdirections_dark, R.drawable.ic_action_gdirections_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if(routingHelper.isRoutePlanningMode()) {
|
if(routingHelper.isRoutePlanningMode()) {
|
||||||
routingHelper.setRoutePlanningMode(false);
|
routingHelper.setRoutePlanningMode(false);
|
||||||
routingHelper.setFollowingMode(true);
|
routingHelper.setFollowingMode(true);
|
||||||
|
@ -891,7 +877,6 @@ public class MapActivityActions implements DialogProvider {
|
||||||
}
|
}
|
||||||
mapActivity.getMapViewTrackingUtilities().switchToRoutePlanningMode();
|
mapActivity.getMapViewTrackingUtilities().switchToRoutePlanningMode();
|
||||||
mapActivity.refreshMap();
|
mapActivity.refreshMap();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
@ -907,13 +892,12 @@ public class MapActivityActions implements DialogProvider {
|
||||||
optionsMenuHelper.item(nav).icons(R.drawable.ic_action_remove_dark, R.drawable.ic_action_remove_light)
|
optionsMenuHelper.item(nav).icons(R.drawable.ic_action_remove_dark, R.drawable.ic_action_remove_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
stopNavigationActionConfirm(mapView);
|
stopNavigationActionConfirm(mapView);
|
||||||
OsMoPositionLayer osMoPositionLayer = mapActivity.getMapView().getLayerByClass(OsMoPositionLayer.class);
|
OsMoPositionLayer osMoPositionLayer = mapActivity.getMapView().getLayerByClass(OsMoPositionLayer.class);
|
||||||
if (osMoPositionLayer != null) {
|
if (osMoPositionLayer != null) {
|
||||||
OsMoPositionLayer.setFollowDestination(null);
|
OsMoPositionLayer.setFollowDestination(null);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
@ -921,56 +905,46 @@ public class MapActivityActions implements DialogProvider {
|
||||||
optionsMenuHelper.item(R.string.target_points).icons(R.drawable.ic_action_flage_dark, R.drawable.ic_action_flage_light)
|
optionsMenuHelper.item(R.string.target_points).icons(R.drawable.ic_action_flage_dark, R.drawable.ic_action_flage_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (getMyApplication().getWaypointHelper().isRouteCalculated()) {
|
if (getMyApplication().getWaypointHelper().isRouteCalculated()) {
|
||||||
|
WaypointDialogHelper.showWaypointsDialog(mapActivity);
|
||||||
final List<WaypointHelper.LocationPointWrapper> deletedPoints = new ArrayList<WaypointHelper.LocationPointWrapper>();
|
|
||||||
ArrayAdapter<Object> adapter = waypointDialogHelper.getWaypointsAdapter(app.getMapActivity(), deletedPoints);
|
|
||||||
mDrawerList.setAdapter(adapter);
|
|
||||||
return false;
|
|
||||||
} else {
|
} else {
|
||||||
openIntermediatePointsDialog();
|
openIntermediatePointsDialog();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5-9. Default actions (Layers, Configure Map screen, Settings, Search, Favorites)
|
// 5-9. Default actions (Layers, Configure Map screen, Settings, Search, Favorites)
|
||||||
optionsMenuHelper.item(R.string.configure_map).icons(R.drawable.ic_action_layers_dark, R.drawable.ic_action_layers_light)
|
optionsMenuHelper.item(R.string.menu_layers).icons(R.drawable.ic_action_layers_dark, R.drawable.ic_action_layers_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
configureSettingsMenu.setListView(mDrawerList);
|
mapActivity.getMapLayers().openLayerSelectionDialog(mapView);
|
||||||
return false;
|
|
||||||
//mapActivity.getMapLayers().openLayerSelectionDialog(mapView);
|
|
||||||
//return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
|
|
||||||
optionsMenuHelper.item(R.string.layer_map_appearance).icons(R.drawable.ic_action_settings_dark, R.drawable.ic_action_settings_light)
|
optionsMenuHelper.item(R.string.layer_map_appearance).icons(R.drawable.ic_action_settings_dark, R.drawable.ic_action_settings_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
mapActivity.getMapLayers().getMapInfoLayer().openViewConfigureDialog();
|
mapActivity.getMapLayers().getMapInfoLayer().openViewConfigureDialog();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
|
|
||||||
optionsMenuHelper.item(R.string.settings_Button).icons(R.drawable.ic_action_settings2_dark, R.drawable.ic_action_settings2_light)
|
optionsMenuHelper.item(R.string.settings_Button).icons(R.drawable.ic_action_settings2_dark, R.drawable.ic_action_settings2_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
final Intent intentSettings = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getSettingsActivity());
|
final Intent intentSettings = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getSettingsActivity());
|
||||||
mapActivity.startActivity(intentSettings);
|
mapActivity.startActivity(intentSettings);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
|
|
||||||
optionsMenuHelper.item(R.string.search_button).icons(R.drawable.ic_action_search_dark, R.drawable.ic_action_search_light)
|
optionsMenuHelper.item(R.string.search_button).icons(R.drawable.ic_action_search_dark, R.drawable.ic_action_search_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
Intent newIntent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getSearchActivity());
|
Intent newIntent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getSearchActivity());
|
||||||
// causes wrong position caching: newIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
// causes wrong position caching: newIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||||
LatLon loc = mapActivity.getMapLocation();
|
LatLon loc = mapActivity.getMapLocation();
|
||||||
|
@ -978,26 +952,23 @@ public class MapActivityActions implements DialogProvider {
|
||||||
newIntent.putExtra(SearchActivity.SEARCH_LON, loc.getLongitude());
|
newIntent.putExtra(SearchActivity.SEARCH_LON, loc.getLongitude());
|
||||||
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
mapActivity.startActivity(newIntent);
|
mapActivity.startActivity(newIntent);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
|
|
||||||
optionsMenuHelper.item(R.string.favorites_Button).icons( R.drawable.ic_action_fav_dark, R.drawable.ic_action_fav_light)
|
optionsMenuHelper.item(R.string.favorites_Button).icons( R.drawable.ic_action_fav_dark, R.drawable.ic_action_fav_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
Intent newIntent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getFavoritesActivity());
|
Intent newIntent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getFavoritesActivity());
|
||||||
// causes wrong position caching: newIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
// causes wrong position caching: newIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||||
mapActivity.startActivity(newIntent);
|
mapActivity.startActivity(newIntent);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
optionsMenuHelper.item(R.string.show_point_options).icons(R.drawable.ic_action_marker_dark, R.drawable.ic_action_marker_light )
|
optionsMenuHelper.item(R.string.show_point_options).icons(R.drawable.ic_action_marker_dark, R.drawable.ic_action_marker_light )
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
contextMenuPoint(mapView.getLatitude(), mapView.getLongitude());
|
contextMenuPoint(mapView.getLatitude(), mapView.getLongitude());
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
//////////// Others
|
//////////// Others
|
||||||
|
@ -1006,9 +977,8 @@ public class MapActivityActions implements DialogProvider {
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
new StartGPSStatus(mapActivity).run();
|
new StartGPSStatus(mapActivity).run();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
@ -1017,7 +987,7 @@ public class MapActivityActions implements DialogProvider {
|
||||||
listen(new OnContextMenuClick() {
|
listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (MainMenuActivity.TIPS_AND_TRICKS) {
|
if (MainMenuActivity.TIPS_AND_TRICKS) {
|
||||||
TipsAndTricksActivity tactivity = new TipsAndTricksActivity(mapActivity);
|
TipsAndTricksActivity tactivity = new TipsAndTricksActivity(mapActivity);
|
||||||
Dialog dlg = tactivity.getDialogToShowTips(false, true);
|
Dialog dlg = tactivity.getDialogToShowTips(false, true);
|
||||||
|
@ -1026,7 +996,6 @@ public class MapActivityActions implements DialogProvider {
|
||||||
final Intent helpIntent = new Intent(mapActivity, HelpActivity.class);
|
final Intent helpIntent = new Intent(mapActivity, HelpActivity.class);
|
||||||
mapActivity.startActivity(helpIntent);
|
mapActivity.startActivity(helpIntent);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
final OsmAndLocationProvider loc = app.getLocationProvider();
|
final OsmAndLocationProvider loc = app.getLocationProvider();
|
||||||
|
@ -1038,11 +1007,10 @@ public class MapActivityActions implements DialogProvider {
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked,
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked,
|
||||||
DialogInterface dialog) {
|
DialogInterface dialog) {
|
||||||
// animate moving on route
|
// animate moving on route
|
||||||
loc.getLocationSimulation().startStopRouteAnimation(mapActivity);
|
loc.getLocationSimulation().startStopRouteAnimation(mapActivity);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
@ -1052,7 +1020,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 )
|
optionsMenuHelper.item(R.string.exit_Button).icons(R.drawable.ic_action_quit_dark, R.drawable.ic_action_quit_light )
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
// 1. Work for almost all cases when user open apps from main menu
|
// 1. Work for almost all cases when user open apps from main menu
|
||||||
Intent newIntent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getMainMenuActivity());
|
Intent newIntent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getMainMenuActivity());
|
||||||
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
|
@ -1060,7 +1028,6 @@ public class MapActivityActions implements DialogProvider {
|
||||||
mapActivity.startActivity(newIntent);
|
mapActivity.startActivity(newIntent);
|
||||||
// In future when map will be main screen this should change
|
// In future when map will be main screen this should change
|
||||||
// app.closeApplication(mapActivity);
|
// app.closeApplication(mapActivity);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
|
|
||||||
|
@ -1163,9 +1130,8 @@ public class MapActivityActions implements DialogProvider {
|
||||||
new OnContextMenuClick() {
|
new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
MapActivityActions.directionsToDialogAndLaunchMap(activity, location.getLatitude(), location.getLongitude(), name);
|
MapActivityActions.directionsToDialogAndLaunchMap(activity, location.getLatitude(), location.getLongitude(), name);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
Item intermediate;
|
Item intermediate;
|
||||||
|
@ -1178,9 +1144,8 @@ public class MapActivityActions implements DialogProvider {
|
||||||
}
|
}
|
||||||
intermediate.listen(new OnContextMenuClick() {
|
intermediate.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
addWaypointDialogAndLaunchMap(activity, location.getLatitude(), location.getLongitude(), name);
|
addWaypointDialogAndLaunchMap(activity, location.getLatitude(), location.getLongitude(), name);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
|
|
||||||
|
@ -1190,11 +1155,10 @@ public class MapActivityActions implements DialogProvider {
|
||||||
new OnContextMenuClick() {
|
new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
app.getSettings().setMapLocationToShow(location.getLatitude(), location.getLongitude(), z, saveHistory ? name : null, name,
|
app.getSettings().setMapLocationToShow(location.getLatitude(), location.getLongitude(), z, saveHistory ? name : null, name,
|
||||||
obj); //$NON-NLS-1$
|
obj); //$NON-NLS-1$
|
||||||
MapActivity.launchMapActivityMoveToTop(activity);
|
MapActivity.launchMapActivityMoveToTop(activity);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
if (favorite) {
|
if (favorite) {
|
||||||
|
@ -1203,13 +1167,13 @@ public class MapActivityActions implements DialogProvider {
|
||||||
addToFavorite.listen(new OnContextMenuClick() {
|
addToFavorite.listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
Dialog dlg = createAddFavouriteDialog(activity, args);
|
Dialog dlg = createAddFavouriteDialog(activity, args);
|
||||||
dlg.show();
|
dlg.show();
|
||||||
prepareAddFavouriteDialog(activity, dlg, args, location.getLatitude(), location.getLongitude(),
|
prepareAddFavouriteDialog(activity, dlg, args, location.getLatitude(), location.getLongitude(),
|
||||||
name);
|
name);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
|
|
@ -349,7 +349,7 @@ public class MapActivityLayers {
|
||||||
adapter.item(R.string.layer_transport).selected( settings.SHOW_TRANSPORT_OVER_MAP.get() ? 1 : 0)
|
adapter.item(R.string.layer_transport).selected( settings.SHOW_TRANSPORT_OVER_MAP.get() ? 1 : 0)
|
||||||
.icons(R.drawable.ic_action_bus_dark, R.drawable.ic_action_bus_light).reg();
|
.icons(R.drawable.ic_action_bus_dark, R.drawable.ic_action_bus_light).reg();
|
||||||
if(TransportRouteHelper.getInstance().routeIsCalculated()){
|
if(TransportRouteHelper.getInstance().routeIsCalculated()){
|
||||||
adapter.item(R.string.layer_transport_route).selected(1)
|
adapter.item(R.string.layer_transport_route).selected(1 )
|
||||||
.icons(R.drawable.ic_action_bus_dark, R.drawable.ic_action_bus_light).reg();
|
.icons(R.drawable.ic_action_bus_dark, R.drawable.ic_action_bus_light).reg();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -600,10 +600,6 @@ public class MapActivityLayers {
|
||||||
});
|
});
|
||||||
return builder.show();
|
return builder.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPoiFilter(PoiFilter f){
|
|
||||||
poiMapLayer.setFilter(f);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void selectMapLayer(final OsmandMapTileView mapView){
|
public void selectMapLayer(final OsmandMapTileView mapView){
|
||||||
if(OsmandPlugin.getEnabledPlugin(OsmandRasterMapsPlugin.class) == null) {
|
if(OsmandPlugin.getEnabledPlugin(OsmandRasterMapsPlugin.class) == null) {
|
||||||
|
|
|
@ -188,14 +188,13 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment {
|
||||||
private void basicFileOperation(final GpxDisplayItem gpxDisplayItem, ContextMenuAdapter adapter) {
|
private void basicFileOperation(final GpxDisplayItem gpxDisplayItem, ContextMenuAdapter adapter) {
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (resId == R.string.show_gpx_route) {
|
if (resId == R.string.show_gpx_route) {
|
||||||
OsmandSettings settings = app.getSettings();
|
OsmandSettings settings = app.getSettings();
|
||||||
settings.setMapLocationToShow(gpxDisplayItem.locationStart.lat, gpxDisplayItem.locationStart.lon,
|
settings.setMapLocationToShow(gpxDisplayItem.locationStart.lat, gpxDisplayItem.locationStart.lon,
|
||||||
settings.getLastKnownMapZoom(), Html.fromHtml(gpxDisplayItem.name).toString());
|
settings.getLastKnownMapZoom(), Html.fromHtml(gpxDisplayItem.name).toString());
|
||||||
MapActivity.launchMapActivityMoveToTop(getMyActivity());
|
MapActivity.launchMapActivityMoveToTop(getMyActivity());
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (gpxDisplayItem.locationStart != null) {
|
if (gpxDisplayItem.locationStart != null) {
|
||||||
|
|
|
@ -9,8 +9,6 @@ import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import android.os.Build;
|
|
||||||
import android.preference.*;
|
|
||||||
import net.osmand.access.AccessibleToast;
|
import net.osmand.access.AccessibleToast;
|
||||||
import net.osmand.plus.ApplicationMode;
|
import net.osmand.plus.ApplicationMode;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
|
@ -27,8 +25,14 @@ import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.DialogInterface.OnMultiChoiceClickListener;
|
import android.content.DialogInterface.OnMultiChoiceClickListener;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.preference.CheckBoxPreference;
|
||||||
|
import android.preference.EditTextPreference;
|
||||||
|
import android.preference.ListPreference;
|
||||||
|
import android.preference.Preference;
|
||||||
import android.preference.Preference.OnPreferenceChangeListener;
|
import android.preference.Preference.OnPreferenceChangeListener;
|
||||||
import android.preference.Preference.OnPreferenceClickListener;
|
import android.preference.Preference.OnPreferenceClickListener;
|
||||||
|
import android.preference.PreferenceGroup;
|
||||||
|
import android.preference.PreferenceScreen;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
@ -42,7 +46,7 @@ public abstract class SettingsBaseActivity extends SherlockPreferenceActivity im
|
||||||
|
|
||||||
protected OsmandSettings settings;
|
protected OsmandSettings settings;
|
||||||
protected final boolean profileSettings ;
|
protected final boolean profileSettings ;
|
||||||
protected List<ApplicationMode> modes = new ArrayList<ApplicationMode>();
|
private List<ApplicationMode> modes = new ArrayList<ApplicationMode>();
|
||||||
private ApplicationMode previousAppMode;
|
private ApplicationMode previousAppMode;
|
||||||
|
|
||||||
private Map<String, Preference> screenPreferences = new LinkedHashMap<String, Preference>();
|
private Map<String, Preference> screenPreferences = new LinkedHashMap<String, Preference>();
|
||||||
|
@ -70,23 +74,6 @@ public abstract class SettingsBaseActivity extends SherlockPreferenceActivity im
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CheckBoxPreference createCheckBoxPreference(OsmandPreference<Boolean> b, int title, int darkIcon, int lightIcon){
|
|
||||||
CheckBoxPreference p = new CheckBoxPreference(this);
|
|
||||||
p.setTitle(title);
|
|
||||||
p.setKey(b.getId());
|
|
||||||
p.setOnPreferenceChangeListener(this);
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
|
|
||||||
if (getMyApplication().getSettings().isLightContent()) {
|
|
||||||
p.setIcon(lightIcon);
|
|
||||||
} else {
|
|
||||||
p.setIcon(darkIcon);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
screenPreferences.put(b.getId(), p);
|
|
||||||
booleanPreferences.put(b.getId(), b);
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CheckBoxPreference createCheckBoxPreference(OsmandPreference<Boolean> b, int title, int summary) {
|
public CheckBoxPreference createCheckBoxPreference(OsmandPreference<Boolean> b, int title, int summary) {
|
||||||
CheckBoxPreference p = new CheckBoxPreference(this);
|
CheckBoxPreference p = new CheckBoxPreference(this);
|
||||||
p.setTitle(title);
|
p.setTitle(title);
|
||||||
|
|
|
@ -580,7 +580,7 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa
|
||||||
poiDescr.listen(new OnContextMenuClick() {
|
poiDescr.listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dlg) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dlg) {
|
||||||
// Build text(amenity)
|
// Build text(amenity)
|
||||||
|
|
||||||
// Find and format links
|
// Find and format links
|
||||||
|
@ -597,8 +597,7 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa
|
||||||
// Make links clickable
|
// Make links clickable
|
||||||
TextView textView = (TextView) dialog.findViewById(android.R.id.message);
|
TextView textView = (TextView) dialog.findViewById(android.R.id.message);
|
||||||
textView.setMovementMethod(LinkMovementMethod.getInstance());
|
textView.setMovementMethod(LinkMovementMethod.getInstance());
|
||||||
textView.setLinksClickable(true);
|
textView.setLinksClickable(true);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
@ -607,9 +606,8 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa
|
||||||
showDetails.listen(new OnContextMenuClick() {
|
showDetails.listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dlg) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dlg) {
|
||||||
showPOIDetails(amenity, settings.usingEnglishNames());
|
showPOIDetails(amenity, settings.usingEnglishNames());
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,14 +118,13 @@ public class AudioNotesLayer extends OsmandMapLayer implements IContextMenuProvi
|
||||||
final Recording r = (Recording) o;
|
final Recording r = (Recording) o;
|
||||||
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (itemId == R.string.recording_context_menu_play ||
|
if (itemId == R.string.recording_context_menu_play ||
|
||||||
itemId == R.string.recording_context_menu_show) {
|
itemId == R.string.recording_context_menu_show) {
|
||||||
plugin.playRecording(view.getContext(), r);
|
plugin.playRecording(view.getContext(), r);
|
||||||
} else if (itemId == R.string.recording_context_menu_delete) {
|
} else if (itemId == R.string.recording_context_menu_delete) {
|
||||||
deleteRecording(r);
|
deleteRecording(r);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -414,13 +414,12 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
|
||||||
public void registerLayerContextMenuActions(final OsmandMapTileView mapView, ContextMenuAdapter adapter, final MapActivity mapActivity) {
|
public void registerLayerContextMenuActions(final OsmandMapTileView mapView, ContextMenuAdapter adapter, final MapActivity mapActivity) {
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (itemId == R.string.layer_recordings) {
|
if (itemId == R.string.layer_recordings) {
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
SHOW_RECORDINGS.set(!SHOW_RECORDINGS.get());
|
SHOW_RECORDINGS.set(!SHOW_RECORDINGS.get());
|
||||||
updateLayers(mapView, mapActivity);
|
updateLayers(mapView, mapActivity);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
adapter.item(R.string.layer_recordings).selected(SHOW_RECORDINGS.get() ? 1 : 0)
|
adapter.item(R.string.layer_recordings).selected(SHOW_RECORDINGS.get() ? 1 : 0)
|
||||||
|
@ -434,26 +433,23 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
recordAudio(latitude, longitude, mapActivity);
|
recordAudio(latitude, longitude, mapActivity);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).position(6).reg();
|
}).position(6).reg();
|
||||||
adapter.item(R.string.recording_context_menu_vrecord).icons(R.drawable.ic_action_video_dark, R.drawable.ic_action_video_light)
|
adapter.item(R.string.recording_context_menu_vrecord).icons(R.drawable.ic_action_video_dark, R.drawable.ic_action_video_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
recordVideo(latitude, longitude, mapActivity);
|
recordVideo(latitude, longitude, mapActivity);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).position(7).reg();
|
}).position(7).reg();
|
||||||
adapter.item(R.string.recording_context_menu_precord).icons(R.drawable.ic_action_photo_dark, R.drawable.ic_action_photo_light)
|
adapter.item(R.string.recording_context_menu_precord).icons(R.drawable.ic_action_photo_dark, R.drawable.ic_action_photo_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
takePhoto(latitude, longitude, mapActivity);
|
takePhoto(latitude, longitude, mapActivity);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}).position(8).reg();
|
}).position(8).reg();
|
||||||
|
@ -1105,9 +1101,8 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
|
||||||
final RecordingLocalIndexInfo ri = (RecordingLocalIndexInfo) info;
|
final RecordingLocalIndexInfo ri = (RecordingLocalIndexInfo) info;
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
playRecording(la, ri.rec);
|
playRecording(la, ri.rec);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (ri.rec.isPhoto()) {
|
if (ri.rec.isPhoto()) {
|
||||||
|
@ -1123,13 +1118,13 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
|
||||||
.icons(R.drawable.ic_action_marker_dark, R.drawable.ic_action_marker_light)
|
.icons(R.drawable.ic_action_marker_dark, R.drawable.ic_action_marker_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked,
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked,
|
||||||
DialogInterface dialog) {
|
DialogInterface dialog) {
|
||||||
SHOW_RECORDINGS.set(true);
|
SHOW_RECORDINGS.set(true);
|
||||||
app.getSettings().setMapLocationToShow(ri.rec.lat, ri.rec.lon,
|
app.getSettings().setMapLocationToShow(ri.rec.lat, ri.rec.lon,
|
||||||
app.getSettings().getLastKnownMapZoom());
|
app.getSettings().getLastKnownMapZoom());
|
||||||
MapActivity.launchMapActivityMoveToTop(la);
|
MapActivity.launchMapActivityMoveToTop(la);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,527 +0,0 @@
|
||||||
package net.osmand.plus.configuremap;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.graphics.Typeface;
|
|
||||||
import android.os.Build;
|
|
||||||
import android.preference.*;
|
|
||||||
import android.util.TypedValue;
|
|
||||||
import android.view.KeyEvent;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.*;
|
|
||||||
import net.osmand.CallbackWithObject;
|
|
||||||
import net.osmand.access.AccessibleToast;
|
|
||||||
import net.osmand.data.AmenityType;
|
|
||||||
import net.osmand.plus.*;
|
|
||||||
import net.osmand.plus.activities.*;
|
|
||||||
import net.osmand.plus.helpers.GpxUiHelper;
|
|
||||||
import net.osmand.plus.render.RenderingIcons;
|
|
||||||
import net.osmand.plus.views.mapwidgets.AppearanceWidgetsFactory;
|
|
||||||
import net.osmand.plus.views.mapwidgets.MapWidgetRegistry;
|
|
||||||
import net.osmand.render.RenderingRuleProperty;
|
|
||||||
import net.osmand.render.RenderingRulesStorage;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Denis on 14.10.2014.
|
|
||||||
*/
|
|
||||||
public class ConfigureSettingsMenu {
|
|
||||||
|
|
||||||
public static final int BACK_HEADER = 0;
|
|
||||||
public static final int HEADER = 1;
|
|
||||||
public static final int LAYER = 2;
|
|
||||||
public static final int MAP_REDNDER = 3;
|
|
||||||
public static final int RENDERING_PROPERTY = 4;
|
|
||||||
|
|
||||||
|
|
||||||
private ListView listView;
|
|
||||||
private OsmandApplication app;
|
|
||||||
List<ConfigureMapMenuItem> items = new ArrayList<ConfigureMapMenuItem>();
|
|
||||||
|
|
||||||
public class ConfigureMapMenuItem {
|
|
||||||
int nameId;
|
|
||||||
int type;
|
|
||||||
int darkIcon = -1;
|
|
||||||
int lightIcon = -1;
|
|
||||||
Object preference;
|
|
||||||
|
|
||||||
|
|
||||||
ConfigureMapMenuItem(int type, int name, int darkIcon, int whiteIcon, Object preference) {
|
|
||||||
this.type = type;
|
|
||||||
this.nameId = name;
|
|
||||||
this.darkIcon = darkIcon;
|
|
||||||
this.lightIcon = whiteIcon;
|
|
||||||
this.preference = preference;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public ConfigureSettingsMenu(OsmandApplication app) {
|
|
||||||
this.app = app;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setListView(ListView list) {
|
|
||||||
this.listView = list;
|
|
||||||
listView.setAdapter(createSettingsAdapter());
|
|
||||||
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onItemClick(AdapterView<?> adapterView, View view, int pos, long l) {
|
|
||||||
onMenuItemClick(items.get(pos), (CheckBox) view.findViewById(R.id.check));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
//checkBox should be set only if u have checkBox preference
|
|
||||||
private void onMenuItemClick(ConfigureMapMenuItem item, CheckBox ch) {
|
|
||||||
if (item.type == BACK_HEADER){
|
|
||||||
app.getMapActivity().getMapActions().createOptionsMenuAsDrawer(false);
|
|
||||||
} else if (item.type == LAYER) {
|
|
||||||
if (ch != null){
|
|
||||||
ch.setChecked(!ch.isChecked());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.nameId == R.string.layer_poi) {
|
|
||||||
final OsmandSettings.OsmandPreference<Boolean> pref = (OsmandSettings.OsmandPreference<Boolean>) item.preference;
|
|
||||||
boolean value = !pref.get();
|
|
||||||
if (value) {
|
|
||||||
selectPOIFilterLayer(null);
|
|
||||||
}
|
|
||||||
pref.set(!pref.get());
|
|
||||||
} else if (item.nameId == R.string.layer_gpx_layer) {
|
|
||||||
if(app.getSelectedGpxHelper().isShowingAnyGpxFiles()){
|
|
||||||
app.getSelectedGpxHelper().clearAllGpxFileToShow();
|
|
||||||
} else {
|
|
||||||
showGPXFileDialog(null);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
final OsmandSettings.OsmandPreference<Boolean> pref = (OsmandSettings.OsmandPreference<Boolean>) item.preference;
|
|
||||||
pref.set(!pref.get());
|
|
||||||
}
|
|
||||||
} else if (item.type == MAP_REDNDER) {
|
|
||||||
if (item.nameId == R.string.map_widget_renderer) {
|
|
||||||
AlertDialog.Builder bld = new AlertDialog.Builder(app.getMapActivity());
|
|
||||||
bld.setTitle(R.string.renderers);
|
|
||||||
Collection<String> rendererNames = app.getRendererRegistry().getRendererNames();
|
|
||||||
final String[] items = rendererNames.toArray(new String[rendererNames.size()]);
|
|
||||||
final String[] visibleNames = new String[items.length];
|
|
||||||
int selected = -1;
|
|
||||||
final String selectedName = app.getRendererRegistry().getCurrentSelectedRenderer().getName();
|
|
||||||
for (int j = 0; j < items.length; j++) {
|
|
||||||
if (items[j].equals(selectedName)) {
|
|
||||||
selected = j;
|
|
||||||
}
|
|
||||||
visibleNames[j] = items[j].replace('_', ' ').replace(
|
|
||||||
'-', ' ');
|
|
||||||
}
|
|
||||||
bld.setSingleChoiceItems(visibleNames, selected, new DialogInterface.OnClickListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
String renderer = items[which];
|
|
||||||
RenderingRulesStorage loaded = app.getRendererRegistry().getRenderer(renderer);
|
|
||||||
if (loaded != null) {
|
|
||||||
app.getSettings().RENDERER.set(renderer);
|
|
||||||
app.getRendererRegistry().setCurrentSelectedRender(loaded);
|
|
||||||
app.getResourceManager().getRenderer().clearCache();
|
|
||||||
listView.setAdapter(createSettingsAdapter());
|
|
||||||
} else {
|
|
||||||
AccessibleToast.makeText(app, R.string.renderer_load_exception, Toast.LENGTH_SHORT).show();
|
|
||||||
}
|
|
||||||
dialog.dismiss();
|
|
||||||
createSettingsAdapter();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
bld.show();
|
|
||||||
} else if (item.nameId == R.string.map_widget_day_night) {
|
|
||||||
AlertDialog.Builder bld = new AlertDialog.Builder(app.getMapActivity());
|
|
||||||
bld.setTitle(R.string.daynight);
|
|
||||||
final String[] items = new String[OsmandSettings.DayNightMode.values().length];
|
|
||||||
for (int i = 0; i < items.length; i++) {
|
|
||||||
items[i] = OsmandSettings.DayNightMode.values()[i].toHumanString(app);
|
|
||||||
}
|
|
||||||
int i = app.getSettings().DAYNIGHT_MODE.get().ordinal();
|
|
||||||
bld.setSingleChoiceItems(items, i, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
app.getSettings().DAYNIGHT_MODE.set(OsmandSettings.DayNightMode.values()[which]);
|
|
||||||
app.getResourceManager().getRenderer().clearCache();
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
bld.show();
|
|
||||||
}
|
|
||||||
} else if (item.type == RENDERING_PROPERTY) {
|
|
||||||
if (ch != null){
|
|
||||||
ch.setChecked(!ch.isChecked());
|
|
||||||
}
|
|
||||||
final RenderingRuleProperty p = (RenderingRuleProperty) item.preference;
|
|
||||||
final String propertyDescription = SettingsActivity.getStringPropertyDescription(app, p.getAttrName(), p.getName());
|
|
||||||
if (p.isBoolean()) {
|
|
||||||
final OsmandSettings.CommonPreference<Boolean> pref = app.getSettings().getCustomRenderBooleanProperty(p.getAttrName());
|
|
||||||
pref.set(!pref.get());
|
|
||||||
app.getResourceManager().getRenderer().clearCache();
|
|
||||||
} else {
|
|
||||||
final OsmandSettings.CommonPreference<String> pref = app.getSettings().getCustomRenderProperty(p.getAttrName());
|
|
||||||
AlertDialog.Builder b = new AlertDialog.Builder(app.getMapActivity());
|
|
||||||
//test old descr as title
|
|
||||||
b.setTitle(propertyDescription);
|
|
||||||
|
|
||||||
int i = Arrays.asList(p.getPossibleValues()).indexOf(pref.get());
|
|
||||||
|
|
||||||
String[] possibleValuesString = new String[p.getPossibleValues().length];
|
|
||||||
|
|
||||||
for (int j = 0; j < p.getPossibleValues().length; j++) {
|
|
||||||
possibleValuesString[j] = SettingsActivity.getStringPropertyValue(app, p.getPossibleValues()[j]);
|
|
||||||
}
|
|
||||||
|
|
||||||
b.setSingleChoiceItems(possibleValuesString, i, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
pref.set(p.getPossibleValues()[which]);
|
|
||||||
app.getResourceManager().getRenderer().clearCache();
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
b.show();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
app.getMapActivity().getMapLayers().updateLayers(app.getMapActivity().getMapView());
|
|
||||||
app.getMapActivity().getMapView().refreshMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
private ArrayAdapter<ConfigureMapMenuItem> createSettingsAdapter() {
|
|
||||||
items.clear();
|
|
||||||
items.add(new ConfigureMapMenuItem(BACK_HEADER, R.string.configure_map, R.drawable.ic_back_drawer_dark, R.drawable.ic_back_drawer_white, null));
|
|
||||||
createLayersItems(items);
|
|
||||||
createRenderingAttributeItems(items);
|
|
||||||
return new ArrayAdapter<ConfigureMapMenuItem>(app, R.layout.map_settings_item, items) {
|
|
||||||
@Override
|
|
||||||
public View getView(int position,View convertView, ViewGroup parent) {
|
|
||||||
if (convertView == null) {
|
|
||||||
convertView = app.getMapActivity().getLayoutInflater().inflate(R.layout.map_settings_item, null);
|
|
||||||
}
|
|
||||||
final ConfigureMapMenuItem item = getItem(position);
|
|
||||||
prepareView(convertView, item);
|
|
||||||
if (item.type == BACK_HEADER) {
|
|
||||||
((TextView) convertView.findViewById(R.id.name)).setText(item.nameId);
|
|
||||||
ImageButton button = (ImageButton) convertView.findViewById(R.id.back);
|
|
||||||
button.setImageResource(getIcon(item));
|
|
||||||
button.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
app.getMapActivity().getMapActions().createOptionsMenuAsDrawer(false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else if (item.type == HEADER) {
|
|
||||||
((TextView) convertView.findViewById(R.id.name)).setText((String) item.preference);
|
|
||||||
} else if (item.type == LAYER) {
|
|
||||||
((TextView) convertView.findViewById(R.id.name)).setText(item.nameId);
|
|
||||||
final CheckBox ch = (CheckBox) convertView.findViewById(R.id.check);
|
|
||||||
ch.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
onMenuItemClick(item, null);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if (item.nameId == R.string.layer_gpx_layer){
|
|
||||||
ch.setChecked(app.getSelectedGpxHelper().isShowingAnyGpxFiles());
|
|
||||||
} else {
|
|
||||||
OsmandSettings.OsmandPreference<Boolean> pref = (OsmandSettings.OsmandPreference<Boolean>) item.preference;
|
|
||||||
ch.setChecked(pref.get());
|
|
||||||
}
|
|
||||||
} else if (item.type == MAP_REDNDER) {
|
|
||||||
((TextView) convertView.findViewById(R.id.name)).setText(item.nameId);
|
|
||||||
if (item.nameId == R.string.map_widget_renderer) {
|
|
||||||
((TextView) convertView.findViewById(R.id.descr)).setText(app.getSettings().RENDERER.get());
|
|
||||||
} else if (item.nameId == R.string.map_widget_day_night) {
|
|
||||||
((TextView) convertView.findViewById(R.id.descr)).setText(app.getSettings().DAYNIGHT_MODE.get().toHumanString(app));
|
|
||||||
}
|
|
||||||
} else if (item.type == RENDERING_PROPERTY) {
|
|
||||||
convertView.findViewById(R.id.icon).setVisibility(View.GONE);
|
|
||||||
final RenderingRuleProperty p = (RenderingRuleProperty) item.preference;
|
|
||||||
String propertyName = SettingsActivity.getStringPropertyName(app, p.getAttrName(), p.getName());
|
|
||||||
TextView header = (TextView) convertView.findViewById(R.id.name);
|
|
||||||
header.setText(propertyName);
|
|
||||||
header.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
|
|
||||||
convertView.findViewById(R.id.icon).setVisibility(View.GONE);
|
|
||||||
final String propertyDescription = SettingsActivity.getStringPropertyDescription(app, p.getAttrName(), p.getName());
|
|
||||||
if (p.isBoolean()) {
|
|
||||||
OsmandSettings.CommonPreference<Boolean> pref = app.getSettings().getCustomRenderBooleanProperty(p.getAttrName());
|
|
||||||
final CheckBox ch = (CheckBox) convertView.findViewById(R.id.check);
|
|
||||||
ch.setChecked(pref.get());
|
|
||||||
ch.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
onMenuItemClick(item, null);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return convertView;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Hiding and showing items based on current item
|
|
||||||
//setting proper visual property
|
|
||||||
private void prepareView(View convertView, ConfigureMapMenuItem item) {
|
|
||||||
((TextView) convertView.findViewById(R.id.descr)).setTypeface(null, Typeface.ITALIC);
|
|
||||||
|
|
||||||
int type = item.type;
|
|
||||||
//setting name textview
|
|
||||||
if (type == BACK_HEADER) {
|
|
||||||
TextView header = (TextView) convertView.findViewById(R.id.name);
|
|
||||||
header.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22);
|
|
||||||
header.setTypeface(Typeface.DEFAULT_BOLD);
|
|
||||||
} else if (type == HEADER) {
|
|
||||||
TextView header = (TextView) convertView.findViewById(R.id.name);
|
|
||||||
header.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
|
|
||||||
header.setTypeface(Typeface.DEFAULT_BOLD);
|
|
||||||
} else {
|
|
||||||
TextView header = ((TextView) convertView.findViewById(R.id.name));
|
|
||||||
header.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
|
|
||||||
header.setTypeface(Typeface.DEFAULT);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//setting backbutton
|
|
||||||
if (type == BACK_HEADER) {
|
|
||||||
convertView.findViewById(R.id.back).setVisibility(View.VISIBLE);
|
|
||||||
} else {
|
|
||||||
convertView.findViewById(R.id.back).setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
//other elements
|
|
||||||
if (type == BACK_HEADER) {
|
|
||||||
convertView.findViewById(R.id.check).setVisibility(View.GONE);
|
|
||||||
convertView.findViewById(R.id.descr).setVisibility(View.GONE);
|
|
||||||
convertView.findViewById(R.id.icon).setVisibility(View.GONE);
|
|
||||||
} else if (type == HEADER) {
|
|
||||||
convertView.findViewById(R.id.icon).setVisibility(View.GONE);
|
|
||||||
convertView.findViewById(R.id.check).setVisibility(View.GONE);
|
|
||||||
convertView.findViewById(R.id.descr).setVisibility(View.GONE);
|
|
||||||
} else if (type == LAYER) {
|
|
||||||
((ImageView) convertView.findViewById(R.id.icon)).setImageResource(getIcon(item));
|
|
||||||
convertView.findViewById(R.id.icon).setVisibility(View.VISIBLE);
|
|
||||||
convertView.findViewById(R.id.check).setVisibility(View.VISIBLE);
|
|
||||||
} else if (type == MAP_REDNDER) {
|
|
||||||
convertView.findViewById(R.id.icon).setVisibility(View.GONE);
|
|
||||||
convertView.findViewById(R.id.check).setVisibility(View.GONE);
|
|
||||||
convertView.findViewById(R.id.descr).setVisibility(View.VISIBLE);
|
|
||||||
} else if (type == RENDERING_PROPERTY) {
|
|
||||||
final RenderingRuleProperty p = (RenderingRuleProperty) item.preference;
|
|
||||||
if (p.isBoolean()) {
|
|
||||||
convertView.findViewById(R.id.check).setVisibility(View.VISIBLE);
|
|
||||||
} else {
|
|
||||||
convertView.findViewById(R.id.check).setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private int getIcon(ConfigureMapMenuItem item) {
|
|
||||||
if (app.getSettings().isLightContent()) {
|
|
||||||
return item.lightIcon;
|
|
||||||
} else {
|
|
||||||
return item.darkIcon;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createLayersItems(List<ConfigureMapMenuItem> items) {
|
|
||||||
items.add(new ConfigureMapMenuItem(HEADER, -1, -1, -1, "Show:"));
|
|
||||||
items.add(new ConfigureMapMenuItem(LAYER, R.string.layer_poi, R.drawable.ic_action_info_dark,
|
|
||||||
R.drawable.ic_action_info_light, app.getSettings().SHOW_POI_OVER_MAP));
|
|
||||||
items.add(new ConfigureMapMenuItem(LAYER, R.string.layer_amenity_label, R.drawable.ic_action_text_dark,
|
|
||||||
R.drawable.ic_action_text_light, app.getSettings().SHOW_POI_LABEL));
|
|
||||||
items.add(new ConfigureMapMenuItem(LAYER, R.string.layer_favorites, R.drawable.ic_action_fav_dark,
|
|
||||||
R.drawable.ic_action_fav_light, app.getSettings().SHOW_FAVORITES));
|
|
||||||
items.add(new ConfigureMapMenuItem(LAYER, R.string.layer_gpx_layer, R.drawable.ic_action_polygom_dark,
|
|
||||||
R.drawable.ic_action_polygom_light, null));
|
|
||||||
items.add(new ConfigureMapMenuItem(LAYER, R.string.layer_transport, R.drawable.ic_action_bus_dark,
|
|
||||||
R.drawable.ic_action_bus_light, app.getSettings().SHOW_TRANSPORT_OVER_MAP));
|
|
||||||
if (TransportRouteHelper.getInstance().routeIsCalculated()) {
|
|
||||||
items.add(new ConfigureMapMenuItem(R.string.layer_transport, LAYER,
|
|
||||||
R.drawable.ic_action_bus_dark, R.drawable.ic_action_bus_light, 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createRenderingAttributeItems(List<ConfigureMapMenuItem> items) {
|
|
||||||
items.add(new ConfigureMapMenuItem(HEADER, -1, -1, -1, app.getString(R.string.map_widget_map_rendering)));
|
|
||||||
items.add(new ConfigureMapMenuItem(MAP_REDNDER, R.string.map_widget_renderer, -1, -1, null));
|
|
||||||
items.add(new ConfigureMapMenuItem(MAP_REDNDER, R.string.map_widget_day_night, -1, -1, null));
|
|
||||||
|
|
||||||
RenderingRulesStorage renderer = app.getRendererRegistry().getCurrentSelectedRenderer();
|
|
||||||
if (renderer != null && AppearanceWidgetsFactory.EXTRA_SETTINGS) {
|
|
||||||
createMapRenderingPreferences(items);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createMapRenderingPreferences(List<ConfigureMapMenuItem> items) {
|
|
||||||
items.add(new ConfigureMapMenuItem(HEADER, -1, -1, -1, app.getString(R.string.map_widget_vector_attributes)));
|
|
||||||
RenderingRulesStorage renderer = app.getRendererRegistry().getCurrentSelectedRenderer();
|
|
||||||
List<RenderingRuleProperty> customRules = renderer.PROPS.getCustomRules();
|
|
||||||
for (RenderingRuleProperty p : customRules) {
|
|
||||||
items.add(new ConfigureMapMenuItem(RENDERING_PROPERTY, -1, -1, -1, p));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public AlertDialog selectPOIFilterLayer(final PoiFilter[] selected) {
|
|
||||||
final List<PoiFilter> userDefined = new ArrayList<PoiFilter>();
|
|
||||||
final PoiFiltersHelper poiFilters = app.getPoiFilters();
|
|
||||||
final ContextMenuAdapter adapter = new ContextMenuAdapter(app.getMapActivity());
|
|
||||||
|
|
||||||
ContextMenuAdapter.Item is = adapter.item(app.getString(R.string.any_poi));
|
|
||||||
if (RenderingIcons.containsBigIcon("null")) {
|
|
||||||
is.icon(RenderingIcons.getBigIconResourceId("null"));
|
|
||||||
}
|
|
||||||
is.reg();
|
|
||||||
// 2nd custom
|
|
||||||
adapter.item(app.getString(R.string.poi_filter_custom_filter)).icon(RenderingIcons.getBigIconResourceId("user_defined")).reg();
|
|
||||||
|
|
||||||
for (PoiFilter f : poiFilters.getUserDefinedPoiFilters()) {
|
|
||||||
ContextMenuAdapter.Item it = adapter.item(f.getName());
|
|
||||||
if (RenderingIcons.containsBigIcon(f.getSimplifiedId())) {
|
|
||||||
it.icon(RenderingIcons.getBigIconResourceId(f.getSimplifiedId()));
|
|
||||||
} else {
|
|
||||||
it.icon(RenderingIcons.getBigIconResourceId("user_defined"));
|
|
||||||
}
|
|
||||||
it.reg();
|
|
||||||
userDefined.add(f);
|
|
||||||
}
|
|
||||||
final AmenityType[] categories = AmenityType.getCategories();
|
|
||||||
for (AmenityType t : categories) {
|
|
||||||
ContextMenuAdapter.Item it = adapter.item(OsmAndFormatter.toPublicString(t, app));
|
|
||||||
if (RenderingIcons.containsBigIcon(t.toString().toLowerCase())) {
|
|
||||||
it.icon(RenderingIcons.getBigIconResourceId(t.toString().toLowerCase()));
|
|
||||||
}
|
|
||||||
it.reg();
|
|
||||||
}
|
|
||||||
final AlertDialog.Builder builder = new AlertDialog.Builder(app.getMapActivity());
|
|
||||||
final ListAdapter listAdapter;
|
|
||||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
|
|
||||||
listAdapter =
|
|
||||||
adapter.createListAdapter(app.getMapActivity(), R.layout.list_menu_item, app.getSettings().isLightContentMenu());
|
|
||||||
} else {
|
|
||||||
listAdapter =
|
|
||||||
adapter.createListAdapter(app.getMapActivity(), R.layout.list_menu_item_native, app.getSettings().isLightContentMenu());
|
|
||||||
}
|
|
||||||
builder.setAdapter(listAdapter, new DialogInterface.OnClickListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
if (which == 1) {
|
|
||||||
String filterId = PoiFilter.CUSTOM_FILTER_ID;
|
|
||||||
app.getSettings().setPoiFilterForMap(filterId);
|
|
||||||
Intent newIntent = new Intent(app, EditPOIFilterActivity.class);
|
|
||||||
newIntent.putExtra(EditPOIFilterActivity.AMENITY_FILTER, filterId);
|
|
||||||
newIntent.putExtra(EditPOIFilterActivity.SEARCH_LAT, app.getMapActivity().getMapView().getLatitude());
|
|
||||||
newIntent.putExtra(EditPOIFilterActivity.SEARCH_LON, app.getMapActivity().getMapView().getLongitude());
|
|
||||||
app.getMapActivity().startActivity(newIntent);
|
|
||||||
} else {
|
|
||||||
String filterId;
|
|
||||||
if (which == 0) {
|
|
||||||
filterId = PoiFiltersHelper.getOsmDefinedFilterId(null);
|
|
||||||
} else if (which <= userDefined.size() + 1) {
|
|
||||||
filterId = userDefined.get(which - 2).getFilterId();
|
|
||||||
} else {
|
|
||||||
filterId = PoiFiltersHelper.getOsmDefinedFilterId(categories[which - userDefined.size() - 2]);
|
|
||||||
}
|
|
||||||
app.getSettings().setPoiFilterForMap(filterId);
|
|
||||||
PoiFilter f = poiFilters.getFilterById(filterId);
|
|
||||||
if (f != null) {
|
|
||||||
f.clearNameFilter();
|
|
||||||
}
|
|
||||||
app.getMapActivity().getMapLayers().setPoiFilter(f);
|
|
||||||
app.getMapActivity().getMapView().refreshMap();
|
|
||||||
if (selected != null && selected.length > 0) {
|
|
||||||
selected[0] = f;
|
|
||||||
}
|
|
||||||
listView.setAdapter(createSettingsAdapter());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
builder.setOnKeyListener(new DialogInterface.OnKeyListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onKey(DialogInterface dialogInterface, int i, KeyEvent event) {
|
|
||||||
if (i == KeyEvent.KEYCODE_BACK &&
|
|
||||||
event.getAction() == KeyEvent.ACTION_UP &&
|
|
||||||
!event.isCanceled()) {
|
|
||||||
dialogInterface.cancel();
|
|
||||||
app.getSettings().SHOW_POI_OVER_MAP.set(false);
|
|
||||||
listView.setAdapter(createSettingsAdapter());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return builder.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void showGPXFileDialog(List<String> files) {
|
|
||||||
CallbackWithObject<GPXUtilities.GPXFile[]> callbackWithObject = new CallbackWithObject<GPXUtilities.GPXFile[]>() {
|
|
||||||
@Override
|
|
||||||
public boolean processResult(GPXUtilities.GPXFile[] result) {
|
|
||||||
GPXUtilities.WptPt locToShow = null;
|
|
||||||
for (GPXUtilities.GPXFile g : result) {
|
|
||||||
if (g.showCurrentTrack) {
|
|
||||||
if (!app.getSettings().SAVE_TRACK_TO_GPX.get() && !
|
|
||||||
app.getSettings().SAVE_GLOBAL_TRACK_TO_GPX.get()) {
|
|
||||||
AccessibleToast.makeText(app.getMapActivity(), R.string.gpx_monitoring_disabled_warn, Toast.LENGTH_SHORT).show();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (!g.showCurrentTrack || locToShow == null) {
|
|
||||||
locToShow = g.findPointToShow();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
app.getSelectedGpxHelper().setGpxFileToDisplay(result);
|
|
||||||
listView.setAdapter(createSettingsAdapter());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
AlertDialog dialog;
|
|
||||||
if (files == null) {
|
|
||||||
dialog = GpxUiHelper.selectGPXFile(app.getMapActivity(), true, true, callbackWithObject);
|
|
||||||
} else {
|
|
||||||
dialog = GpxUiHelper.selectGPXFile(files, app.getMapActivity(), true, true, callbackWithObject);
|
|
||||||
}
|
|
||||||
if (dialog != null) {
|
|
||||||
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onKey(DialogInterface dialogInterface, int i, KeyEvent event) {
|
|
||||||
if (i == KeyEvent.KEYCODE_BACK &&
|
|
||||||
event.getAction() == KeyEvent.ACTION_UP &&
|
|
||||||
!event.isCanceled()) {
|
|
||||||
dialogInterface.cancel();
|
|
||||||
listView.setAdapter(createSettingsAdapter());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<String> getAlreadySelectedGpx() {
|
|
||||||
GpxSelectionHelper gpxSelectionHelper = app.getSelectedGpxHelper();
|
|
||||||
if (gpxSelectionHelper == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
List<GpxSelectionHelper.SelectedGpxFile> selectedGpxFiles = gpxSelectionHelper.getSelectedGPXFiles();
|
|
||||||
List<String> files = new ArrayList<String>();
|
|
||||||
for (GpxSelectionHelper.SelectedGpxFile file : selectedGpxFiles) {
|
|
||||||
files.add(file.getGpxFile().path);
|
|
||||||
}
|
|
||||||
return files;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -584,7 +584,7 @@ public class DistanceCalculatorPlugin extends OsmandPlugin {
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (itemId == R.string.delete_point) {
|
if (itemId == R.string.delete_point) {
|
||||||
for (int i = 0; i < measurementPoints.size(); i++) {
|
for (int i = 0; i < measurementPoints.size(); i++) {
|
||||||
Iterator<WptPt> it = measurementPoints.get(i).iterator();
|
Iterator<WptPt> it = measurementPoints.get(i).iterator();
|
||||||
|
@ -596,7 +596,6 @@ public class DistanceCalculatorPlugin extends OsmandPlugin {
|
||||||
}
|
}
|
||||||
calculateDistance();
|
calculateDistance();
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
adapter.item(R.string.delete_point).icons(R.drawable.ic_action_delete_dark,
|
adapter.item(R.string.delete_point).icons(R.drawable.ic_action_delete_dark,
|
||||||
|
|
|
@ -158,7 +158,7 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment {
|
||||||
private void basicFileOperation(final LocalIndexInfo info, ContextMenuAdapter adapter) {
|
private void basicFileOperation(final LocalIndexInfo info, ContextMenuAdapter adapter) {
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (resId == R.string.local_index_mi_rename) {
|
if (resId == R.string.local_index_mi_rename) {
|
||||||
renameFile(info);
|
renameFile(info);
|
||||||
} else if (resId == R.string.local_index_mi_restore) {
|
} else if (resId == R.string.local_index_mi_restore) {
|
||||||
|
@ -177,7 +177,6 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment {
|
||||||
} else if (resId == R.string.local_index_mi_backup) {
|
} else if (resId == R.string.local_index_mi_backup) {
|
||||||
new LocalIndexOperationTask(BACKUP_OPERATION).execute(info);
|
new LocalIndexOperationTask(BACKUP_OPERATION).execute(info);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if(info.getType() == LocalIndexType.MAP_DATA || info.getType() == LocalIndexType.SRTM_DATA){
|
if(info.getType() == LocalIndexType.MAP_DATA || info.getType() == LocalIndexType.SRTM_DATA){
|
||||||
|
@ -476,9 +475,8 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment {
|
||||||
optionsMenuAdapter = new ContextMenuAdapter(getDownloadActivity());
|
optionsMenuAdapter = new ContextMenuAdapter(getDownloadActivity());
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
localOptionsMenu(itemId);
|
localOptionsMenu(itemId);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
optionsMenuAdapter.item(R.string.local_index_mi_reload)
|
optionsMenuAdapter.item(R.string.local_index_mi_reload)
|
||||||
|
|
|
@ -128,7 +128,7 @@ public class GpxUiHelper {
|
||||||
return description.toString();
|
return description.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AlertDialog selectGPXFile(List<String> selectedGpxList, final Activity activity,
|
public static void selectGPXFile(List<String> selectedGpxList, final Activity activity,
|
||||||
final boolean showCurrentGpx, final boolean multipleChoice, final CallbackWithObject<GPXFile[]> callbackWithObject){
|
final boolean showCurrentGpx, final boolean multipleChoice, final CallbackWithObject<GPXFile[]> callbackWithObject){
|
||||||
OsmandApplication app = (OsmandApplication) activity.getApplication();
|
OsmandApplication app = (OsmandApplication) activity.getApplication();
|
||||||
final File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR);
|
final File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR);
|
||||||
|
@ -142,12 +142,11 @@ public class GpxUiHelper {
|
||||||
allGpxList.add(0, activity.getString(R.string.show_current_gpx_title));
|
allGpxList.add(0, activity.getString(R.string.show_current_gpx_title));
|
||||||
}
|
}
|
||||||
final ContextMenuAdapter adapter = createGpxContextMenuAdapter(activity,allGpxList, selectedGpxList, multipleChoice);
|
final ContextMenuAdapter adapter = createGpxContextMenuAdapter(activity,allGpxList, selectedGpxList, multipleChoice);
|
||||||
return createDialog(activity, showCurrentGpx, multipleChoice, callbackWithObject, allGpxList, adapter);
|
createDialog(activity, showCurrentGpx, multipleChoice, callbackWithObject, allGpxList, adapter);
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AlertDialog selectGPXFile(final Activity activity,
|
public static void selectGPXFile(final Activity activity,
|
||||||
final boolean showCurrentGpx, final boolean multipleChoice, final CallbackWithObject<GPXFile[]> callbackWithObject) {
|
final boolean showCurrentGpx, final boolean multipleChoice, final CallbackWithObject<GPXFile[]> callbackWithObject) {
|
||||||
OsmandApplication app = (OsmandApplication) activity.getApplication();
|
OsmandApplication app = (OsmandApplication) activity.getApplication();
|
||||||
final File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR);
|
final File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR);
|
||||||
|
@ -161,9 +160,8 @@ public class GpxUiHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
final ContextMenuAdapter adapter = createGpxContextMenuAdapter(activity, list, null, multipleChoice);
|
final ContextMenuAdapter adapter = createGpxContextMenuAdapter(activity, list, null, multipleChoice);
|
||||||
return createDialog(activity, showCurrentGpx, multipleChoice, callbackWithObject, list, adapter);
|
createDialog(activity, showCurrentGpx, multipleChoice, callbackWithObject, list, adapter);
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ContextMenuAdapter createGpxContextMenuAdapter(Activity activity, List<String> allGpxList, List<String> selectedGpxList, boolean multipleChoice) {
|
private static ContextMenuAdapter createGpxContextMenuAdapter(Activity activity, List<String> allGpxList, List<String> selectedGpxList, boolean multipleChoice) {
|
||||||
|
@ -209,7 +207,7 @@ public class GpxUiHelper {
|
||||||
}, dir, null, filename);
|
}, dir, null, filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static AlertDialog createDialog(final Activity activity, final boolean showCurrentGpx,
|
private static void createDialog(final Activity activity, final boolean showCurrentGpx,
|
||||||
final boolean multipleChoice, final CallbackWithObject<GPXFile[]> callbackWithObject,
|
final boolean multipleChoice, final CallbackWithObject<GPXFile[]> callbackWithObject,
|
||||||
final List<String> list, final ContextMenuAdapter adapter) {
|
final List<String> list, final ContextMenuAdapter adapter) {
|
||||||
final OsmandApplication app = (OsmandApplication) activity.getApplication();
|
final OsmandApplication app = (OsmandApplication) activity.getApplication();
|
||||||
|
@ -338,7 +336,6 @@ public class GpxUiHelper {
|
||||||
// java.lang.ClassCastException: com.android.internal.widget.RoundCornerListAdapter
|
// java.lang.ClassCastException: com.android.internal.widget.RoundCornerListAdapter
|
||||||
// Unknown reason but on some devices fail
|
// Unknown reason but on some devices fail
|
||||||
}
|
}
|
||||||
return dlg;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<String> getSortedGPXFilenames(File dir,String sub) {
|
private static List<String> getSortedGPXFilenames(File dir,String sub) {
|
||||||
|
|
|
@ -3,6 +3,7 @@ package net.osmand.plus.helpers;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import android.support.v4.widget.DrawerLayout;
|
||||||
import android.widget.*;
|
import android.widget.*;
|
||||||
import net.osmand.Location;
|
import net.osmand.Location;
|
||||||
import net.osmand.data.LatLon;
|
import net.osmand.data.LatLon;
|
||||||
|
@ -12,7 +13,6 @@ import net.osmand.plus.OsmAndLocationProvider.OsmAndLocationListener;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.PoiFilter;
|
import net.osmand.plus.PoiFilter;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.activities.IntermediatePointsDialog;
|
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.helpers.WaypointHelper.LocationPointWrapper;
|
import net.osmand.plus.helpers.WaypointHelper.LocationPointWrapper;
|
||||||
import net.osmand.plus.views.AnimateDraggingMapThread;
|
import net.osmand.plus.views.AnimateDraggingMapThread;
|
||||||
|
@ -44,9 +44,6 @@ public class WaypointDialogHelper implements OsmAndLocationListener {
|
||||||
private LinearLayout mainLayout;
|
private LinearLayout mainLayout;
|
||||||
private WaypointHelper waypointHelper;
|
private WaypointHelper waypointHelper;
|
||||||
|
|
||||||
private final static String POI_RADIUS = "poi_radius";
|
|
||||||
private final static String SEARCH_RADIUS = "favorite_radius";
|
|
||||||
|
|
||||||
public final static boolean OVERLAP_LAYOUT = true; // only true is supported
|
public final static boolean OVERLAP_LAYOUT = true; // only true is supported
|
||||||
private View closePointDialog;
|
private View closePointDialog;
|
||||||
private List<LocationPointWrapper> many = new ArrayList<WaypointHelper.LocationPointWrapper>();
|
private List<LocationPointWrapper> many = new ArrayList<WaypointHelper.LocationPointWrapper>();
|
||||||
|
@ -194,16 +191,14 @@ public class WaypointDialogHelper implements OsmAndLocationListener {
|
||||||
public static void showWaypointsDialogFlat(FragmentActivity fragmentActivity) {
|
public static void showWaypointsDialogFlat(FragmentActivity fragmentActivity) {
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putBoolean(WaypointDialogFragment.FLAT_ARG, true);
|
args.putBoolean(WaypointDialogFragment.FLAT_ARG, true);
|
||||||
//TODO remove this method totally
|
WaypointDialogFragment wdf = new WaypointDialogFragment();
|
||||||
WaypointDialogFragment wdf = new WaypointDialogFragment(new WaypointDialogHelper(null));
|
|
||||||
wdf.setArguments(args);
|
wdf.setArguments(args);
|
||||||
fragmentActivity.getSupportFragmentManager().beginTransaction().add(wdf, "tag").commit();
|
fragmentActivity.getSupportFragmentManager().beginTransaction().add(wdf, "tag").commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void showWaypointsDialog(FragmentActivity fragmentActivity) {
|
public static void showWaypointsDialog(FragmentActivity fragmentActivity) {
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
//TODO remove this method totally
|
WaypointDialogFragment wdf = new WaypointDialogFragment();
|
||||||
WaypointDialogFragment wdf = new WaypointDialogFragment(new WaypointDialogHelper(null));
|
|
||||||
wdf.setArguments(args);
|
wdf.setArguments(args);
|
||||||
fragmentActivity.getSupportFragmentManager().beginTransaction().add(wdf, "tag").commit();
|
fragmentActivity.getSupportFragmentManager().beginTransaction().add(wdf, "tag").commit();
|
||||||
}
|
}
|
||||||
|
@ -212,14 +207,9 @@ public class WaypointDialogHelper implements OsmAndLocationListener {
|
||||||
|
|
||||||
WaypointHelper waypointHelper;
|
WaypointHelper waypointHelper;
|
||||||
private OsmandApplication app;
|
private OsmandApplication app;
|
||||||
private WaypointDialogHelper dialogHelper;
|
|
||||||
|
|
||||||
public static final String FLAT_ARG = "FLAT_ARG";
|
public static final String FLAT_ARG = "FLAT_ARG";
|
||||||
|
|
||||||
public WaypointDialogFragment(WaypointDialogHelper helper){
|
|
||||||
this.dialogHelper = helper;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Activity activity) {
|
public void onAttach(Activity activity) {
|
||||||
super.onAttach(activity);
|
super.onAttach(activity);
|
||||||
|
@ -229,7 +219,80 @@ public class WaypointDialogHelper implements OsmAndLocationListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
return createWaypointsDialogFlat(waypointHelper.getAllPoints());
|
if (getArguments() != null && getArguments().getBoolean(FLAT_ARG)) {
|
||||||
|
return createWaypointsDialogFlat(waypointHelper.getAllPoints());
|
||||||
|
}
|
||||||
|
return createWaypointsDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void selectPoi(final int[] running, final ArrayAdapter<Object> 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 enableType(final int[] running, final ArrayAdapter<Object> listAdapter, final int type,
|
||||||
|
final boolean enable) {
|
||||||
|
new AsyncTask<Void, Void, Void>() {
|
||||||
|
|
||||||
|
protected void onPreExecute() {
|
||||||
|
}
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
@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<LocationPointWrapper> points) {
|
public AlertDialog createWaypointsDialogFlat(final List<LocationPointWrapper> points) {
|
||||||
|
@ -285,6 +348,113 @@ public class WaypointDialogHelper implements OsmAndLocationListener {
|
||||||
return builder.create();
|
return builder.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AlertDialog createWaypointsDialog() {
|
||||||
|
final List<Object> points = getPoints();
|
||||||
|
final List<LocationPointWrapper> deletedPoints = new ArrayList<WaypointHelper.LocationPointWrapper>();
|
||||||
|
final FragmentActivity ctx = getActivity();
|
||||||
|
final ListView listView = new ListView(ctx);
|
||||||
|
final int[] running = new int[]{-1};
|
||||||
|
final ArrayAdapter<Object> listAdapter = new ArrayAdapter<Object>(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<Object> 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 (labelView) {
|
||||||
|
final int type = (Integer) getItem(position);
|
||||||
|
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 {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
listView.setAdapter(listAdapter);
|
||||||
|
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemClick(AdapterView<?> adapterView, View view, int item, long l) {
|
||||||
|
if (listAdapter.getItem(item) instanceof LocationPointWrapper) {
|
||||||
|
LocationPointWrapper ps = (LocationPointWrapper) listAdapter.getItem(item);
|
||||||
|
showOnMap(app, ctx, ps.getPoint(), WaypointDialogFragment.this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
|
||||||
|
builder.setView(listView);
|
||||||
|
builder.setNeutralButton(R.string.flat_list_waypoints, new OnClickListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
showWaypointsDialogFlat(getActivity());
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
builder.setPositiveButton(R.string.default_buttons_ok, new OnClickListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
waypointHelper.removeVisibleLocationPoint(deletedPoints);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.setNegativeButton(ctx.getString(R.string.default_buttons_cancel), null);
|
||||||
|
return builder.create();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected List<Object> getPoints() {
|
||||||
|
final List<Object> points = new ArrayList<Object>();
|
||||||
|
for (int i = 0; i < WaypointHelper.MAX; i++) {
|
||||||
|
List<LocationPointWrapper> tp = waypointHelper.getWaypoints(i);
|
||||||
|
if (waypointHelper.isTypeVisible(i)) {
|
||||||
|
points.add(new Integer(i));
|
||||||
|
if (tp != null && tp.size() > 0) {
|
||||||
|
points.addAll(tp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return points;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -320,257 +490,5 @@ public class WaypointDialogHelper implements OsmAndLocationListener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayAdapter<Object> getWaypointsAdapter(final Activity ctx, final List<LocationPointWrapper> deletedPoints){
|
|
||||||
final List<Object> points = getPoints();
|
|
||||||
final int[] running = new int[]{-1};
|
|
||||||
return new ArrayAdapter<Object>(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<Object> 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;
|
|
||||||
thisAdapter.notifyDataSetInvalidated();
|
|
||||||
waypointHelper.setPoiSearchDeviationRadius(value);
|
|
||||||
radius.setText(OsmAndFormatter.getFormattedDistance(value, app));
|
|
||||||
recalculatePoints(running, thisAdapter, WaypointHelper.POI);
|
|
||||||
dialogInterface.dismiss();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}).setTitle(app.getString(R.string.search_radius_proximity)+ " " + 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;
|
|
||||||
thisAdapter.notifyDataSetInvalidated();
|
|
||||||
waypointHelper.setSearchDeviationRadius(value);
|
|
||||||
radius.setText(OsmAndFormatter.getFormattedDistance(value, app));
|
|
||||||
recalculatePoints(running, thisAdapter, -1);
|
|
||||||
dialogInterface.dismiss();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}).setTitle(app.getString(R.string.search_radius_proximity))
|
|
||||||
.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<Object> 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<Object> listAdapter, final int type){
|
|
||||||
new AsyncTask<Void, Void, Void>() {
|
|
||||||
|
|
||||||
@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<Object> getPoints() {
|
|
||||||
final List<Object> points = new ArrayList<Object>();
|
|
||||||
for (int i = 0; i < WaypointHelper.MAX; i++) {
|
|
||||||
List<LocationPointWrapper> 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<Object> listAdapter, final int type,
|
|
||||||
final boolean enable) {
|
|
||||||
new AsyncTask<Void, Void, Void>() {
|
|
||||||
|
|
||||||
@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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,6 @@ public class WaypointHelper {
|
||||||
private static final int ANNOUNCED_DONE = 2;
|
private static final int ANNOUNCED_DONE = 2;
|
||||||
|
|
||||||
private int searchDeviationRadius = 500;
|
private int searchDeviationRadius = 500;
|
||||||
private int poiSearchDeviationRadius = 150;
|
|
||||||
private static final int LONG_ANNOUNCE_RADIUS = 700;
|
private static final int LONG_ANNOUNCE_RADIUS = 700;
|
||||||
private static final int SHORT_ANNOUNCE_RADIUS = 150;
|
private static final int SHORT_ANNOUNCE_RADIUS = 150;
|
||||||
private static final int ALARMS_ANNOUNCE_RADIUS = 150;
|
private static final int ALARMS_ANNOUNCE_RADIUS = 150;
|
||||||
|
@ -57,7 +56,6 @@ public class WaypointHelper {
|
||||||
public static final int FAVORITES = 3;
|
public static final int FAVORITES = 3;
|
||||||
public static final int ALARMS = 4;
|
public static final int ALARMS = 4;
|
||||||
public static final int MAX = 5;
|
public static final int MAX = 5;
|
||||||
public static final int[] SEARCH_RADIUS_VALUES = {50, 100, 250, 500, 1000, 1500};
|
|
||||||
|
|
||||||
private List<List<LocationPointWrapper>> locationPoints = new ArrayList<List<LocationPointWrapper>>();
|
private List<List<LocationPointWrapper>> locationPoints = new ArrayList<List<LocationPointWrapper>>();
|
||||||
private ConcurrentHashMap<LocationPoint, Integer> locationPointsStates = new ConcurrentHashMap<LocationPoint, Integer>();
|
private ConcurrentHashMap<LocationPoint, Integer> locationPointsStates = new ConcurrentHashMap<LocationPoint, Integer>();
|
||||||
|
@ -212,9 +210,7 @@ public class WaypointHelper {
|
||||||
recalculatePoints(route, type, locationPoints);
|
recalculatePoints(route, type, locationPoints);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void recalculatePoints(int type){
|
|
||||||
recalculatePoints(route, type, locationPoints);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public boolean isTypeConfigurable(int waypointType) {
|
public boolean isTypeConfigurable(int waypointType) {
|
||||||
|
@ -510,7 +506,7 @@ public class WaypointHelper {
|
||||||
PoiFilter pf = getPoiFilter();
|
PoiFilter pf = getPoiFilter();
|
||||||
if (pf != null) {
|
if (pf != null) {
|
||||||
final List<Location> locs = route.getImmutableAllLocations();
|
final List<Location> locs = route.getImmutableAllLocations();
|
||||||
List<Amenity> amenities = app.getResourceManager().searchAmenitiesOnThePath(locs, getPoiSearchDeviationRadius(),
|
List<Amenity> amenities = app.getResourceManager().searchAmenitiesOnThePath(locs, getSearchRadius(POI),
|
||||||
pf, new ResultMatcher<Amenity>() {
|
pf, new ResultMatcher<Amenity>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -537,6 +533,12 @@ public class WaypointHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected int getSearchRadius(int type) {
|
||||||
|
// app.getAppCustomization().getWaypointSearchRadius(searchDeviationRadius, type);
|
||||||
|
return searchDeviationRadius;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void calculateAlarms(RouteCalculationResult route, List<LocationPointWrapper> array) {
|
private void calculateAlarms(RouteCalculationResult route, List<LocationPointWrapper> array) {
|
||||||
for(AlarmInfo i : route.getAlarmInfo()) {
|
for(AlarmInfo i : route.getAlarmInfo()) {
|
||||||
|
@ -575,7 +577,7 @@ public class WaypointHelper {
|
||||||
int[] ind = new int[1];
|
int[] ind = new int[1];
|
||||||
for(LocationPoint p : points) {
|
for(LocationPoint p : points) {
|
||||||
float dist = dist(p, immutableAllLocations, ind);
|
float dist = dist(p, immutableAllLocations, ind);
|
||||||
if(dist <= getSearchDeviationRadius() && type != POI) {
|
if(dist <= getSearchRadius(type)) {
|
||||||
LocationPointWrapper lpw = new LocationPointWrapper(rt, type, p, dist, ind[0]);
|
LocationPointWrapper lpw = new LocationPointWrapper(rt, type, p, dist, ind[0]);
|
||||||
lpw.setAnnounce(announce);
|
lpw.setAnnounce(announce);
|
||||||
locationPoints.add(lpw);
|
locationPoints.add(lpw);
|
||||||
|
@ -703,22 +705,6 @@ public class WaypointHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSearchDeviationRadius(){
|
|
||||||
return searchDeviationRadius;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSearchDeviationRadius(int radius){
|
|
||||||
this.searchDeviationRadius = radius;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getPoiSearchDeviationRadius() {
|
|
||||||
return poiSearchDeviationRadius;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPoiSearchDeviationRadius(int radius) {
|
|
||||||
this.poiSearchDeviationRadius = radius;
|
|
||||||
}
|
|
||||||
|
|
||||||
private class AmenityLocationPoint implements LocationPoint {
|
private class AmenityLocationPoint implements LocationPoint {
|
||||||
|
|
||||||
|
|
|
@ -115,11 +115,10 @@ public class OsmandMonitoringPlugin extends OsmandPlugin implements MonitoringIn
|
||||||
ContextMenuAdapter adapter, Object selectedObj) {
|
ContextMenuAdapter adapter, Object selectedObj) {
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (resId == R.string.context_menu_item_add_waypoint) {
|
if (resId == R.string.context_menu_item_add_waypoint) {
|
||||||
mapActivity.getMapActions().addWaypoint(latitude, longitude);
|
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)
|
adapter.item(R.string.context_menu_item_add_waypoint).icons(R.drawable.ic_action_gnew_label_dark, R.drawable.ic_action_gnew_label_light)
|
||||||
|
@ -448,7 +447,7 @@ public class OsmandMonitoringPlugin extends OsmandPlugin implements MonitoringIn
|
||||||
int draw = !bgoff ? R.drawable.monitoring_rec_big : R.drawable.monitoring_rec_inactive;
|
int draw = !bgoff ? R.drawable.monitoring_rec_big : R.drawable.monitoring_rec_inactive;
|
||||||
qa.item(msgId).icon(draw).listen(new OnContextMenuClick() {
|
qa.item(msgId).icon(draw).listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (view.getApplication().getNavigationService() == null) {
|
if (view.getApplication().getNavigationService() == null) {
|
||||||
final ValueHolder<Integer> vs = new ValueHolder<Integer>();
|
final ValueHolder<Integer> vs = new ValueHolder<Integer>();
|
||||||
final ValueHolder<Boolean> choice = new ValueHolder<Boolean>();
|
final ValueHolder<Boolean> choice = new ValueHolder<Boolean>();
|
||||||
|
@ -466,7 +465,6 @@ public class OsmandMonitoringPlugin extends OsmandPlugin implements MonitoringIn
|
||||||
} else {
|
} else {
|
||||||
view.getContext().stopService(serviceIntent);
|
view.getContext().stopService(serviceIntent);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).position(0).reg();
|
}).position(0).reg();
|
||||||
}
|
}
|
||||||
|
|
|
@ -495,13 +495,12 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (itemId == R.string.osb_comment_menu_item) {
|
if (itemId == R.string.osb_comment_menu_item) {
|
||||||
commentBug(bug);
|
commentBug(bug);
|
||||||
} else if (itemId == R.string.osb_close_menu_item) {
|
} else if (itemId == R.string.osb_close_menu_item) {
|
||||||
closeBug(bug);
|
closeBug(bug);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
adapter.item(R.string.osb_comment_menu_item).icons(
|
adapter.item(R.string.osb_comment_menu_item).icons(
|
||||||
|
|
|
@ -122,7 +122,7 @@ public class OsmEditingPlugin extends OsmandPlugin {
|
||||||
final Object selectedObj) {
|
final Object selectedObj) {
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (resId == R.string.context_menu_item_create_poi) {
|
if (resId == R.string.context_menu_item_create_poi) {
|
||||||
getPoiActions(mapActivity).showCreateDialog(latitude, longitude);
|
getPoiActions(mapActivity).showCreateDialog(latitude, longitude);
|
||||||
} else if (resId == R.string.context_menu_item_open_bug) {
|
} else if (resId == R.string.context_menu_item_open_bug) {
|
||||||
|
@ -135,7 +135,6 @@ public class OsmEditingPlugin extends OsmandPlugin {
|
||||||
} else if (resId == R.string.poi_context_menu_modify) {
|
} else if (resId == R.string.poi_context_menu_modify) {
|
||||||
getPoiActions(mapActivity).showEditDialog((Amenity) selectedObj);
|
getPoiActions(mapActivity).showEditDialog((Amenity) selectedObj);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if(selectedObj instanceof Amenity) {
|
if(selectedObj instanceof Amenity) {
|
||||||
|
@ -157,11 +156,10 @@ public class OsmEditingPlugin extends OsmandPlugin {
|
||||||
.icons(R.drawable.ic_action_bug_dark, R.drawable.ic_action_bug_light).listen(new OnContextMenuClick() {
|
.icons(R.drawable.ic_action_bug_dark, R.drawable.ic_action_bug_light).listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (itemId == R.string.layer_osm_bugs) {
|
if (itemId == R.string.layer_osm_bugs) {
|
||||||
settings.SHOW_OSM_BUGS.set(isChecked);
|
settings.SHOW_OSM_BUGS.set(isChecked);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).position(7).reg();
|
}).position(7).reg();
|
||||||
|
|
||||||
|
@ -180,9 +178,8 @@ public class OsmEditingPlugin extends OsmandPlugin {
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
sendGPXFiles(la, (AvailableGPXFragment) fragment, (GpxInfo) info);
|
sendGPXFiles(la, (AvailableGPXFragment) fragment, (GpxInfo) info);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
@ -197,7 +194,7 @@ public class OsmEditingPlugin extends OsmandPlugin {
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
f.openSelectionMode(R.string.local_index_mi_upload_gpx, R.drawable.ic_action_gup_dark,
|
f.openSelectionMode(R.string.local_index_mi_upload_gpx, R.drawable.ic_action_gup_dark,
|
||||||
R.drawable.ic_action_gup_light, new OnClickListener() {
|
R.drawable.ic_action_gup_light, new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -207,7 +204,6 @@ public class OsmEditingPlugin extends OsmandPlugin {
|
||||||
selectedItems.toArray(new GpxInfo[selectedItems.size()]));
|
selectedItems.toArray(new GpxInfo[selectedItems.size()]));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).position(5).reg();
|
}).position(5).reg();
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,14 +136,13 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer
|
||||||
R.drawable.ic_action_gloc_light).listen(new OnContextMenuClick() {
|
R.drawable.ic_action_gloc_light).listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
OsMoDevice o = (OsMoDevice) selectedObj;
|
OsMoDevice o = (OsMoDevice) selectedObj;
|
||||||
double lat = o.getLastLocation() == null ? latitude : o.getLastLocation().getLatitude();
|
double lat = o.getLastLocation() == null ? latitude : o.getLastLocation().getLatitude();
|
||||||
double lon = o.getLastLocation() == null ? longitude : o.getLastLocation().getLongitude();
|
double lon = o.getLastLocation() == null ? longitude : o.getLastLocation().getLongitude();
|
||||||
mapActivity.getMapView().setLatLon(lat, lon);
|
mapActivity.getMapView().setLatLon(lat, lon);
|
||||||
MapActivity.getMapViewTrackingUtilities().setMapLinkedToLocation(false);
|
MapActivity.getMapViewTrackingUtilities().setMapLinkedToLocation(false);
|
||||||
OsMoPositionLayer.setFollowTrackerId(o);
|
OsMoPositionLayer.setFollowTrackerId(o);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).position(0).reg();
|
}).position(0).reg();
|
||||||
if(OsMoPositionLayer.getFollowDestinationId() != null) {
|
if(OsMoPositionLayer.getFollowDestinationId() != null) {
|
||||||
|
@ -151,10 +150,9 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer
|
||||||
R.drawable.ic_action_close_light).listen(new OnContextMenuClick() {
|
R.drawable.ic_action_close_light).listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked,
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked,
|
||||||
DialogInterface dialog) {
|
DialogInterface dialog) {
|
||||||
OsMoPositionLayer.setFollowDestination(null);
|
OsMoPositionLayer.setFollowDestination(null);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}).position(0).reg();
|
}).position(0).reg();
|
||||||
|
@ -163,14 +161,13 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer
|
||||||
R.drawable.ic_action_flag_light).listen(new OnContextMenuClick() {
|
R.drawable.ic_action_flag_light).listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
OsMoDevice o = (OsMoDevice) selectedObj;
|
OsMoDevice o = (OsMoDevice) selectedObj;
|
||||||
if(o.getLastLocation() != null) {
|
if(o.getLastLocation() != null) {
|
||||||
TargetPointsHelper targets = mapActivity.getMyApplication().getTargetPointsHelper();
|
TargetPointsHelper targets = mapActivity.getMyApplication().getTargetPointsHelper();
|
||||||
targets.navigateToPoint(new LatLon(o.getLastLocation().getLatitude(), o.getLastLocation().getLongitude()), true, -1);
|
targets.navigateToPoint(new LatLon(o.getLastLocation().getLatitude(), o.getLastLocation().getLongitude()), true, -1);
|
||||||
}
|
}
|
||||||
OsMoPositionLayer.setFollowDestination(o);
|
OsMoPositionLayer.setFollowDestination(o);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).position(1).reg();
|
}).position(1).reg();
|
||||||
}
|
}
|
||||||
|
@ -294,11 +291,10 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
final double lat = view.getLatitude();
|
final double lat = view.getLatitude();
|
||||||
final double lon = view.getLongitude();
|
final double lon = view.getLongitude();
|
||||||
tracker.sendCoordinate(lat, lon);
|
tracker.sendCoordinate(lat, lon);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
@ -325,10 +321,9 @@ 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)
|
helper.item(R.string.osmo_groups).icons(R.drawable.ic_action_eye_dark, R.drawable.ic_action_eye_light).position(6)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
Intent intent = new Intent(mapActivity, OsMoGroupsActivity.class);
|
Intent intent = new Intent(mapActivity, OsMoGroupsActivity.class);
|
||||||
mapActivity.startActivity(intent);
|
mapActivity.startActivity(intent);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
|
|
@ -200,12 +200,11 @@ public class ParkingPositionPlugin extends OsmandPlugin {
|
||||||
if (selectedObj == parkingPosition && parkingPosition != null) {
|
if (selectedObj == parkingPosition && parkingPosition != null) {
|
||||||
OnContextMenuClick removeListener = new OnContextMenuClick() {
|
OnContextMenuClick removeListener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int resId, int pos,
|
public void onContextMenuClick(int resId, int pos,
|
||||||
boolean isChecked, DialogInterface dialog) {
|
boolean isChecked, DialogInterface dialog) {
|
||||||
if ((resId == R.string.context_menu_item_delete_parking_point)) {
|
if ((resId == R.string.context_menu_item_delete_parking_point)) {
|
||||||
showDeleteDialog(mapActivity);
|
showDeleteDialog(mapActivity);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
adapter.item(R.string.context_menu_item_delete_parking_point)
|
adapter.item(R.string.context_menu_item_delete_parking_point)
|
||||||
|
@ -214,12 +213,11 @@ public class ParkingPositionPlugin extends OsmandPlugin {
|
||||||
|
|
||||||
OnContextMenuClick addListener = new OnContextMenuClick() {
|
OnContextMenuClick addListener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int resId, int pos,
|
public void onContextMenuClick(int resId, int pos,
|
||||||
boolean isChecked, DialogInterface dialog) {
|
boolean isChecked, DialogInterface dialog) {
|
||||||
if (resId == R.string.context_menu_item_add_parking_point) {
|
if (resId == R.string.context_menu_item_add_parking_point) {
|
||||||
showAddParkingDialog(mapActivity, latitude, longitude);
|
showAddParkingDialog(mapActivity, latitude, longitude);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
adapter.item(R.string.context_menu_item_add_parking_point)
|
adapter.item(R.string.context_menu_item_add_parking_point)
|
||||||
|
@ -421,9 +419,8 @@ public class ParkingPositionPlugin extends OsmandPlugin {
|
||||||
helper.item(R.string.osmand_parking_delete)
|
helper.item(R.string.osmand_parking_delete)
|
||||||
.icons(R.drawable.ic_action_remove_dark, R.drawable.ic_action_remove_light).listen(new OnContextMenuClick() {
|
.icons(R.drawable.ic_action_remove_dark, R.drawable.ic_action_remove_light).listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
showDeleteDialog(mapActivity);
|
showDeleteDialog(mapActivity);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}).reg();
|
}).reg();
|
||||||
|
|
|
@ -186,7 +186,7 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin {
|
||||||
final MapActivityLayers layers = mapActivity.getMapLayers();
|
final MapActivityLayers layers = mapActivity.getMapLayers();
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (itemId == R.string.layer_map) {
|
if (itemId == R.string.layer_map) {
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
layers.selectMapLayer(mapView);
|
layers.selectMapLayer(mapView);
|
||||||
|
@ -210,7 +210,6 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin {
|
||||||
mapActivity);
|
mapActivity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
adapter.item(R.string.layer_map).icons(R.drawable.ic_action_globus_dark, R.drawable.ic_action_globus_light)
|
adapter.item(R.string.layer_map).icons(R.drawable.ic_action_globus_dark, R.drawable.ic_action_globus_light)
|
||||||
|
@ -229,14 +228,13 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin {
|
||||||
if (mapView.getMainLayer() instanceof MapTileLayer) {
|
if (mapView.getMainLayer() instanceof MapTileLayer) {
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (resId == R.string.context_menu_item_update_map) {
|
if (resId == R.string.context_menu_item_update_map) {
|
||||||
mapActivity.getMapActions().reloadTile(mapView.getZoom(), latitude, longitude);
|
mapActivity.getMapActions().reloadTile(mapView.getZoom(), latitude, longitude);
|
||||||
} else if (resId == R.string.context_menu_item_download_map) {
|
} else if (resId == R.string.context_menu_item_download_map) {
|
||||||
DownloadTilesDialog dlg = new DownloadTilesDialog(mapActivity, (OsmandApplication) mapActivity.getApplication(), mapView);
|
DownloadTilesDialog dlg = new DownloadTilesDialog(mapActivity, (OsmandApplication) mapActivity.getApplication(), mapView);
|
||||||
dlg.openDialog();
|
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)
|
adapter.item(R.string.context_menu_item_update_map).icons(R.drawable.ic_action_refresh_dark, R.drawable.ic_action_refresh_light)
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class RoutePointsLayer extends OsmandMapLayer implements ContextMenuLaye
|
||||||
final GPXUtilities.WptPt point = (GPXUtilities.WptPt) o;
|
final GPXUtilities.WptPt point = (GPXUtilities.WptPt) o;
|
||||||
ContextMenuAdapter.OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
ContextMenuAdapter.OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (itemId == R.string.mark_as_not_visited){
|
if (itemId == R.string.mark_as_not_visited){
|
||||||
plugin.getCurrentRoute().markPoint(point,false);
|
plugin.getCurrentRoute().markPoint(point,false);
|
||||||
plugin.saveCurrentRoute();
|
plugin.saveCurrentRoute();
|
||||||
|
@ -91,7 +91,6 @@ public class RoutePointsLayer extends OsmandMapLayer implements ContextMenuLaye
|
||||||
plugin.saveCurrentRoute();
|
plugin.saveCurrentRoute();
|
||||||
}
|
}
|
||||||
map.refreshMap();
|
map.refreshMap();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -513,9 +513,8 @@ 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)
|
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() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
showFavoriteDialog(mapActivity, selectedStage, sf);
|
showFavoriteDialog(mapActivity, selectedStage, sf);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
|
|
||||||
|
@ -565,21 +564,19 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
R.drawable.ic_action_gremove_dark, R.drawable.ic_action_gremove_light)
|
R.drawable.ic_action_gremove_dark, R.drawable.ic_action_gremove_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
app.getSettings().SHOW_POI_OVER_MAP.set(false);
|
app.getSettings().SHOW_POI_OVER_MAP.set(false);
|
||||||
mapActivity.getMapLayers().updateLayers(mapActivity.getMapView());
|
mapActivity.getMapLayers().updateLayers(mapActivity.getMapView());
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
} else {
|
} else {
|
||||||
adapter.item(R.string.poi).icons(R.drawable.ic_action_layers_dark, R.drawable.ic_action_layers_light)
|
adapter.item(R.string.poi).icons(R.drawable.ic_action_layers_dark, R.drawable.ic_action_layers_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
mapActivity.getMapLayers().selectPOIFilterLayer(mapActivity.getMapView(), null);
|
mapActivity.getMapLayers().selectPOIFilterLayer(mapActivity.getMapView(), null);
|
||||||
app.getSettings().SHOW_POI_OVER_MAP.set(true);
|
app.getSettings().SHOW_POI_OVER_MAP.set(true);
|
||||||
mapActivity.getMapLayers().updateLayers(mapActivity.getMapView());
|
mapActivity.getMapLayers().updateLayers(mapActivity.getMapView());
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
@ -587,11 +584,10 @@ 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)
|
adapter.item(R.string.sherpafy_tour_info_txt).icons(R.drawable.ic_action_info_dark, R.drawable.ic_action_info_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
Intent newIntent = new Intent(mapActivity, TourViewActivity.class);
|
Intent newIntent = new Intent(mapActivity, TourViewActivity.class);
|
||||||
// newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
// newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
mapActivity.startActivity(newIntent);
|
mapActivity.startActivity(newIntent);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
//complete stage
|
//complete stage
|
||||||
|
@ -601,10 +597,9 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
.icons(R.drawable.ic_action_finish_flag_dark, R.drawable.ic_action_finish_flag_light)
|
.icons(R.drawable.ic_action_finish_flag_dark, R.drawable.ic_action_finish_flag_light)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
markStageAsCompleted(stage);
|
markStageAsCompleted(stage);
|
||||||
showCompleteStageFragment(mapActivity, stage, false);
|
showCompleteStageFragment(mapActivity, stage, false);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
@ -612,13 +607,12 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
adapter.item(R.string.context_menu_item_share_location).icons(
|
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() {
|
R.drawable.ic_action_gshare_dark, R.drawable.ic_action_gshare_light).listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (app.getLocationProvider().getLastKnownLocation() != null) {
|
if (app.getLocationProvider().getLastKnownLocation() != null) {
|
||||||
new ShareLocation(mapActivity).run();
|
new ShareLocation(mapActivity).run();
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(app, R.string.unknown_location, Toast.LENGTH_LONG).show();
|
Toast.makeText(app, R.string.unknown_location, Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,12 +95,11 @@ public class SRTMPlugin extends OsmandPlugin {
|
||||||
public void registerLayerContextMenuActions(final OsmandMapTileView mapView, ContextMenuAdapter adapter, final MapActivity mapActivity) {
|
public void registerLayerContextMenuActions(final OsmandMapTileView mapView, ContextMenuAdapter adapter, final MapActivity mapActivity) {
|
||||||
OnContextMenuClick listener = new OnContextMenuClick() {
|
OnContextMenuClick listener = new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (itemId == R.string.layer_hillshade) {
|
if (itemId == R.string.layer_hillshade) {
|
||||||
HILLSHADE.set(!HILLSHADE.get());
|
HILLSHADE.set(!HILLSHADE.get());
|
||||||
updateLayers(mapView, mapActivity);
|
updateLayers(mapView, mapActivity);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
adapter.item(R.string.layer_hillshade).selected(HILLSHADE.get()? 1 : 0)
|
adapter.item(R.string.layer_hillshade).selected(HILLSHADE.get()? 1 : 0)
|
||||||
|
|
|
@ -198,7 +198,7 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer.
|
||||||
final FavouritePoint a = (FavouritePoint) o;
|
final FavouritePoint a = (FavouritePoint) o;
|
||||||
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (itemId == R.string.favourites_context_menu_delete) {
|
if (itemId == R.string.favourites_context_menu_delete) {
|
||||||
final Resources resources = view.getContext().getResources();
|
final Resources resources = view.getContext().getResources();
|
||||||
Builder builder = new AlertDialog.Builder(view.getContext());
|
Builder builder = new AlertDialog.Builder(view.getContext());
|
||||||
|
@ -213,7 +213,6 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer.
|
||||||
});
|
});
|
||||||
builder.create().show();
|
builder.create().show();
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
adapter.item(R.string.favourites_context_menu_delete)
|
adapter.item(R.string.favourites_context_menu_delete)
|
||||||
|
|
|
@ -65,11 +65,12 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
private LinearLayout transparencyBarLayout;
|
private LinearLayout transparencyBarLayout;
|
||||||
private static CommonPreference<Integer> settingsToTransparency;
|
private static CommonPreference<Integer> settingsToTransparency;
|
||||||
private OsmandSettings settings;
|
private OsmandSettings settings;
|
||||||
|
private WaypointDialogHelper waypointDialogHelper;
|
||||||
|
|
||||||
public MapControlsLayer(MapActivity activity){
|
public MapControlsLayer(MapActivity activity){
|
||||||
this.mapActivity = activity;
|
this.mapActivity = activity;
|
||||||
settings = activity.getMyApplication().getSettings();
|
settings = activity.getMyApplication().getSettings();
|
||||||
|
waypointDialogHelper = new WaypointDialogHelper(activity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -121,7 +122,8 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
mapCancelNavigationControl.setMargin(mapSmallMenuControls.getWidth());
|
mapCancelNavigationControl.setMargin(mapSmallMenuControls.getWidth());
|
||||||
mapInfoNavigationControl.setMargin(mapSmallMenuControls.getWidth() + mapCancelNavigationControl.getWidth());
|
mapInfoNavigationControl.setMargin(mapSmallMenuControls.getWidth() + mapCancelNavigationControl.getWidth());
|
||||||
mapAppModeControl.setMargin(mapNavigationControl.getWidth());
|
mapAppModeControl.setMargin(mapNavigationControl.getWidth());
|
||||||
|
|
||||||
|
waypointDialogHelper.init();
|
||||||
initTransparencyBar(view, parent);
|
initTransparencyBar(view, parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,7 +150,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void destroyLayer() {
|
public void destroyLayer() {
|
||||||
|
waypointDialogHelper.removeListener();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -335,6 +337,10 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
mapInfoNavigationControl.setShowDialog();
|
mapInfoNavigationControl.setShowDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WaypointDialogHelper getWaypointDialogHelper() {
|
||||||
|
return waypointDialogHelper;
|
||||||
|
}
|
||||||
|
|
||||||
private int getScreenOrientation() {
|
private int getScreenOrientation() {
|
||||||
int rotation = mapActivity.getWindowManager().getDefaultDisplay().getRotation();
|
int rotation = mapActivity.getWindowManager().getDefaultDisplay().getRotation();
|
||||||
DisplayMetrics dm = new DisplayMetrics();
|
DisplayMetrics dm = new DisplayMetrics();
|
||||||
|
|
|
@ -256,7 +256,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
|
||||||
final Amenity a = (Amenity) o;
|
final Amenity a = (Amenity) o;
|
||||||
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (itemId == R.string.poi_context_menu_call) {
|
if (itemId == R.string.poi_context_menu_call) {
|
||||||
try {
|
try {
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||||
|
@ -278,7 +278,6 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
|
||||||
} else if (itemId == R.string.poi_context_menu_showdescription) {
|
} else if (itemId == R.string.poi_context_menu_showdescription) {
|
||||||
showDescriptionDialog(a);
|
showDescriptionDialog(a);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (OsmAndFormatter.getAmenityDescriptionContent(view.getApplication(), a, false).length() > 0) {
|
if (OsmAndFormatter.getAmenityDescriptionContent(view.getApplication(), a, false).length() > 0) {
|
||||||
|
|
|
@ -220,7 +220,7 @@ public class PointNavigationLayer extends OsmandMapLayer implements IContextMenu
|
||||||
final TargetPoint a = (TargetPoint) o;
|
final TargetPoint a = (TargetPoint) o;
|
||||||
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
if (itemId == R.string.delete_target_point) {
|
if (itemId == R.string.delete_target_point) {
|
||||||
TargetPointsHelper targetPointsHelper = map.getMyApplication().getTargetPointsHelper();
|
TargetPointsHelper targetPointsHelper = map.getMyApplication().getTargetPointsHelper();
|
||||||
if(a.intermediate) {
|
if(a.intermediate) {
|
||||||
|
@ -230,7 +230,6 @@ public class PointNavigationLayer extends OsmandMapLayer implements IContextMenu
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
map.getMapLayers().getContextMenuLayer().setLocation(null, "");
|
map.getMapLayers().getContextMenuLayer().setLocation(null, "");
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -216,9 +216,8 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa
|
||||||
final TransportStop a = (TransportStop) o;
|
final TransportStop a = (TransportStop) o;
|
||||||
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
showDescriptionDialog(a);
|
showDescriptionDialog(a);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
adapter.item(R.string.poi_context_menu_showdescription)
|
adapter.item(R.string.poi_context_menu_showdescription)
|
||||||
|
|