From 1b75a6bd5274ff0c21d436c476138934875140a3 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Fri, 22 May 2020 16:11:50 +0300 Subject: [PATCH 01/12] Fix tablet sizes --- .../net/osmand/plus/views/MapControlsLayer.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java index 153159c44a..b79f36ab57 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java @@ -298,9 +298,7 @@ public class MapControlsLayer extends OsmandMapLayer { }); View search = mapActivity.findViewById(R.id.map_search_button); - quickSearchHud = createHudButton(search, R.drawable.map_search_dark, QUICK_SEARCH_HUD_ID) - .setIconsId(R.drawable.map_search_dark, R.drawable.map_search_night) - .setIconColorId(0) + quickSearchHud = createHudButton(search, R.drawable.ic_action_search_dark, QUICK_SEARCH_HUD_ID) .setBg(R.drawable.btn_inset_circle_trans, R.drawable.btn_inset_circle_night); controls.add(quickSearchHud); search.setOnClickListener(new View.OnClickListener() { @@ -375,7 +373,7 @@ public class MapControlsLayer extends OsmandMapLayer { final boolean dash = settings.SHOW_DASHBOARD_ON_MAP_SCREEN.get(); menuControl = createHudButton(backToMenuButton, - !dash ? R.drawable.map_drawer : R.drawable.map_dashboard, MENU_HUD_ID).setBg( + !dash ? R.drawable.ic_navigation_drawer : R.drawable.ic_dashboard_dark, MENU_HUD_ID).setBg( R.drawable.btn_round, R.drawable.btn_round_night); controls.add(menuControl); backToMenuButton.setOnClickListener(new View.OnClickListener() { @@ -392,7 +390,7 @@ public class MapControlsLayer extends OsmandMapLayer { zoomText = (TextView) mapActivity.findViewById(R.id.map_app_mode_text); View routePlanButton = mapActivity.findViewById(R.id.map_route_info_button); - routePlanningBtn = createHudButton(routePlanButton, R.drawable.map_directions, ROUTE_PLANNING_HUD_ID).setBg( + routePlanningBtn = createHudButton(routePlanButton, R.drawable.ic_action_gdirections_dark, ROUTE_PLANNING_HUD_ID).setBg( R.drawable.btn_round, R.drawable.btn_round_night); controls.add(routePlanningBtn); routePlanButton.setOnClickListener(new View.OnClickListener() { @@ -586,8 +584,7 @@ public class MapControlsLayer extends OsmandMapLayer { private void initZooms() { final OsmandMapTileView view = mapActivity.getMapView(); View zoomInButton = mapActivity.findViewById(R.id.map_zoom_in_button); - mapZoomIn = createHudButton(zoomInButton, R.drawable.map_zoom_in, ZOOM_IN_HUD_ID). - setIconsId(R.drawable.map_zoom_in, R.drawable.map_zoom_in_night).setRoundTransparent(); + mapZoomIn = createHudButton(zoomInButton, R.drawable.map_zoom_in, ZOOM_IN_HUD_ID).setRoundTransparent(); controls.add(mapZoomIn); zoomInButton.setOnClickListener(new View.OnClickListener() { @Override @@ -606,8 +603,7 @@ public class MapControlsLayer extends OsmandMapLayer { final View.OnLongClickListener listener = MapControlsLayer.getOnClickMagnifierListener(view); zoomInButton.setOnLongClickListener(listener); View zoomOutButton = mapActivity.findViewById(R.id.map_zoom_out_button); - mapZoomOut = createHudButton(zoomOutButton, R.drawable.map_zoom_out, ZOOM_OUT_HUD_ID). - setIconsId(R.drawable.map_zoom_out, R.drawable.map_zoom_out_night).setRoundTransparent(); + mapZoomOut = createHudButton(zoomOutButton, R.drawable.map_zoom_out, ZOOM_OUT_HUD_ID).setRoundTransparent(); controls.add(mapZoomOut); zoomOutButton.setOnClickListener(new View.OnClickListener() { @Override From e41a71d74da341634572f557f7c9da4f495a7736 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Fri, 22 May 2020 20:02:06 +0300 Subject: [PATCH 02/12] Fix tablet context menu --- OsmAnd/res/layout/map_context_menu_button.xml | 8 ++++---- OsmAnd/res/values-large/sizes.xml | 2 -- OsmAnd/res/values/sizes.xml | 1 - .../plus/mapcontextmenu/MapContextMenuFragment.java | 12 ++++++------ 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/OsmAnd/res/layout/map_context_menu_button.xml b/OsmAnd/res/layout/map_context_menu_button.xml index 4062300fd0..8e5920ac84 100644 --- a/OsmAnd/res/layout/map_context_menu_button.xml +++ b/OsmAnd/res/layout/map_context_menu_button.xml @@ -21,15 +21,15 @@ android:layout_height="match_parent" android:background="@null" android:gravity="center_vertical" - android:paddingLeft="@dimen/context_menu_button_padding_x" - android:paddingRight="@dimen/context_menu_button_padding_x" + android:paddingLeft="@dimen/content_padding_half" + android:paddingRight="@dimen/content_padding_half" android:textAllCaps="true" android:textSize="@dimen/default_desc_text_size" osmand:typeface="@string/font_roboto_medium" android:duplicateParentState="true" tools:text="Button" - android:paddingStart="@dimen/context_menu_button_padding_x" - android:paddingEnd="@dimen/context_menu_button_padding_x" /> + android:paddingStart="@dimen/content_padding_half" + android:paddingEnd="@dimen/content_padding_half" /> diff --git a/OsmAnd/res/values-large/sizes.xml b/OsmAnd/res/values-large/sizes.xml index 2773ca50f3..70b9e5eb7e 100644 --- a/OsmAnd/res/values-large/sizes.xml +++ b/OsmAnd/res/values-large/sizes.xml @@ -51,13 +51,11 @@ 24dp 6dp 114dp - 15dp -24dp 80dp 66dp 36dp 30dp - 24dp 15dp 9dp 23dp diff --git a/OsmAnd/res/values/sizes.xml b/OsmAnd/res/values/sizes.xml index 6383e285c7..cd33774ac5 100644 --- a/OsmAnd/res/values/sizes.xml +++ b/OsmAnd/res/values/sizes.xml @@ -164,7 +164,6 @@ 16dp 4dp 76dp - 10dp -16dp 4dp 54dp diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index 31ef529274..8559982176 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -1150,7 +1150,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable leftIcon = leftTitleButtonController.getLeftIcon(); Drawable rightIcon = leftTitleButtonController.getRightIcon(); leftTitleButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); - leftTitleButton.setCompoundDrawablePadding(dpToPx(8f)); + leftTitleButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); ((LinearLayout) leftTitleButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); } else { leftTitleButtonView.setVisibility(View.INVISIBLE); @@ -1169,7 +1169,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable leftIcon = rightTitleButtonController.getLeftIcon(); Drawable rightIcon = rightTitleButtonController.getRightIcon(); rightTitleButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); - rightTitleButton.setCompoundDrawablePadding(dpToPx(8f)); + rightTitleButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); ((LinearLayout) rightTitleButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); } else { rightTitleButtonView.setVisibility(View.INVISIBLE); @@ -1185,7 +1185,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable leftIcon = bottomTitleButtonController.getLeftIcon(); Drawable rightIcon = bottomTitleButtonController.getRightIcon(); bottomTitleButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); - bottomTitleButton.setCompoundDrawablePadding(dpToPx(8f)); + bottomTitleButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); ((LinearLayout) bottomTitleButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); } else { bottomTitleButtonView.setVisibility(View.GONE); @@ -1209,7 +1209,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable leftIcon = leftDownloadButtonController.getLeftIcon(); Drawable rightIcon = leftDownloadButtonController.getRightIcon(); leftDownloadButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); - leftDownloadButton.setCompoundDrawablePadding(dpToPx(8f)); + leftDownloadButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); ((LinearLayout) leftDownloadButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); } else { leftDownloadButtonView.setVisibility(View.INVISIBLE); @@ -1225,7 +1225,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable leftIcon = rightDownloadButtonController.getLeftIcon(); Drawable rightIcon = rightDownloadButtonController.getRightIcon(); rightDownloadButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); - rightDownloadButton.setCompoundDrawablePadding(dpToPx(8f)); + rightDownloadButton.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); ((LinearLayout) rightDownloadButtonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); } else { rightDownloadButtonView.setVisibility(View.INVISIBLE); @@ -1295,7 +1295,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo Drawable leftIcon = buttonController.getLeftIcon(); Drawable rightIcon = buttonController.getRightIcon(); buttonText.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, rightIcon, null); - buttonText.setCompoundDrawablePadding(dpToPx(8f)); + buttonText.setCompoundDrawablePadding(view.getResources().getDimensionPixelSize(R.dimen.content_padding_half)); ((LinearLayout) buttonView).setGravity(rightIcon != null ? Gravity.END : Gravity.START); buttonView.setOnClickListener(new View.OnClickListener() { @Override From 4c4751683ddd9d145a752e3642d6170614e4444f Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Mon, 25 May 2020 12:09:10 +0300 Subject: [PATCH 03/12] Fix dashboard fav color --- OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java index 1b01f158be..8ca1c92810 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java @@ -143,7 +143,7 @@ public class DashFavoritesFragment extends DashLocationFragment { } ((ImageView) view.findViewById(R.id.favourite_icon)).setImageDrawable(FavoriteImageDrawable.getOrCreate( - getActivity(), point.getColor(), false, point)); + getActivity(), app.getFavorites().getColorWithCategory(point, getResources().getColor(R.color.color_favorite)), false, point)); DashLocationView dv = new DashLocationView(direction, label, new LatLon(point.getLatitude(), point.getLongitude())); distances.add(dv); From 3fd36ba47f664594211984284fdf89d71c772ddf Mon Sep 17 00:00:00 2001 From: Nazar-Kutz Date: Mon, 25 May 2020 14:15:16 +0300 Subject: [PATCH 04/12] return wikipedia poi type --- OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java b/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java index d24109f6f2..8e30fb274f 100644 --- a/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java +++ b/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java @@ -340,11 +340,7 @@ public class PoiFiltersHelper { public List getSortedPoiFilters(@NonNull ApplicationMode appMode, boolean onlyActive) { initPoiUIFiltersState(appMode); List allFilters = new ArrayList<>(); - for (PoiUIFilter filter : getTopDefinedPoiFilters()) { - if (!filter.isWikiFilter()) { - allFilters.add(filter); - } - } + allFilters.addAll(getTopDefinedPoiFilters()); allFilters.addAll(getSearchPoiFilters()); Collections.sort(allFilters); if (onlyActive) { From 30eac3412f9aff9204bd9addfa362f6a987114ce Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 25 May 2020 15:45:36 +0300 Subject: [PATCH 05/12] Fix several possible exceptions --- .../src/net/osmand/plus/AppInitializer.java | 3 +- .../OsmandInAppPurchaseActivity.java | 7 ++-- .../SettingsDevelopmentActivity.java | 2 +- .../osmand/plus/dialogs/ConfigureMapMenu.java | 2 +- .../download/ui/LocalIndexesFragment.java | 16 +++---- .../osmand/plus/helpers/WaypointHelper.java | 25 +++++------ .../monitoring/OsmandMonitoringPlugin.java | 42 ++++++++++--------- .../fragments/VehicleParametersFragment.java | 7 ++-- .../plus/srtmplugin/TerrainFragment.java | 28 ++++++------- .../wikipedia/WikipediaWebViewClient.java | 5 ++- .../wikivoyage/WikivoyageWebViewClient.java | 7 +++- 11 files changed, 80 insertions(+), 64 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java index 3338594403..f09785122e 100644 --- a/OsmAnd/src/net/osmand/plus/AppInitializer.java +++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java @@ -553,7 +553,8 @@ public class AppInitializer implements IProgress { customConfigs.put(fileName, builder); } catch (XmlPullParserException | IOException e) { - throw new IllegalStateException(e); + Algorithms.removeAllFiles(f); + LOG.error(e); } } } diff --git a/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java b/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java index 76293f870d..cb91f7d167 100644 --- a/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/OsmandInAppPurchaseActivity.java @@ -166,17 +166,18 @@ public class OsmandInAppPurchaseActivity extends AppCompatActivity implements In @Override public void onItemPurchased(String sku, boolean active) { + FragmentManager fragmentManager = getSupportFragmentManager(); if (purchaseHelper != null && purchaseHelper.getLiveUpdates().containsSku(sku)) { getMyApplication().logEvent("live_osm_subscription_purchased"); - if (!active) { + if (!active && !fragmentManager.isStateSaved()) { OsmLiveRestartBottomSheetDialogFragment fragment = new OsmLiveRestartBottomSheetDialogFragment(); fragment.setUsedOnMap(this instanceof MapActivity); - fragment.show(getSupportFragmentManager(), OsmLiveRestartBottomSheetDialogFragment.TAG); + fragment.show(fragmentManager, OsmLiveRestartBottomSheetDialogFragment.TAG); } } onInAppPurchaseItemPurchased(sku); - fireInAppPurchaseItemPurchasedOnFragments(getSupportFragmentManager(), sku, active); + fireInAppPurchaseItemPurchasedOnFragments(fragmentManager, sku, active); } public void fireInAppPurchaseItemPurchasedOnFragments(@NonNull FragmentManager fragmentManager, diff --git a/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java b/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java index 3cfd370057..b5ea815bed 100644 --- a/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java +++ b/OsmAnd/src/net/osmand/plus/development/SettingsDevelopmentActivity.java @@ -215,7 +215,7 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity { SunriseSunset sunriseSunset = getMyApplication().getDaynightHelper().getSunriseSunset(); pref = new Preference(this); pref.setTitle(R.string.day_night_info); - if (sunriseSunset != null) { + if (sunriseSunset != null && sunriseSunset.getSunrise() != null && sunriseSunset.getSunset() != null) { SimpleDateFormat prt = new SimpleDateFormat("yyyy-MM-dd HH:mm"); pref.setSummary(getString(R.string.day_night_info_description, prt.format(sunriseSunset.getSunrise()), prt.format(sunriseSunset.getSunset()))); diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index 0ab07cc75b..b3e11e54b6 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -504,7 +504,7 @@ public class ConfigureMapMenu { String description = ""; SunriseSunset sunriseSunset = activity.getMyApplication().getDaynightHelper().getSunriseSunset(); - if (sunriseSunset != null) { + if (sunriseSunset != null && sunriseSunset.getSunrise() != null && sunriseSunset.getSunset() != null) { DateFormat dateFormat = DateFormat.getTimeInstance(DateFormat.SHORT); String sunriseTime = dateFormat.format(sunriseSunset.getSunrise()); String sunsetTime = dateFormat.format(sunriseSunset.getSunset()); diff --git a/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java b/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java index bbb0f694e9..b4441a2ed6 100644 --- a/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java +++ b/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java @@ -768,13 +768,15 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment implement } @Override - public boolean onOptionsItemSelected(MenuItem item) { - int itemId = item.getItemId(); - for (int i = 0; i < optionsMenuAdapter.length(); i++) { - ContextMenuItem contextMenuItem = optionsMenuAdapter.getItem(i); - if (itemId == contextMenuItem.getTitleId()) { - contextMenuItem.getItemClickListener().onContextMenuClick(null, itemId, i, false, null); - return true; + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + if (optionsMenuAdapter != null) { + int itemId = item.getItemId(); + for (int i = 0; i < optionsMenuAdapter.length(); i++) { + ContextMenuItem contextMenuItem = optionsMenuAdapter.getItem(i); + if (itemId == contextMenuItem.getTitleId()) { + contextMenuItem.getItemClickListener().onContextMenuClick(null, itemId, i, false, null); + return true; + } } } return super.onOptionsItemSelected(item); diff --git a/OsmAnd/src/net/osmand/plus/helpers/WaypointHelper.java b/OsmAnd/src/net/osmand/plus/helpers/WaypointHelper.java index 239715e192..5cd0ce4b39 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/WaypointHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/WaypointHelper.java @@ -17,11 +17,8 @@ import net.osmand.data.LocationPoint; import net.osmand.data.PointDescription; import net.osmand.data.WptLocationPoint; import net.osmand.osm.PoiType; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.OsmandSettings.MetricsConstants; import net.osmand.plus.R; import net.osmand.plus.TargetPointsHelper.TargetPoint; import net.osmand.plus.UiUtilities; @@ -33,6 +30,9 @@ import net.osmand.plus.routing.AlarmInfo; import net.osmand.plus.routing.AlarmInfo.AlarmInfoType; import net.osmand.plus.routing.RouteCalculationResult; import net.osmand.plus.routing.VoiceRouter; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.backend.OsmandSettings.MetricsConstants; import net.osmand.util.MapUtils; import java.util.ArrayList; @@ -627,20 +627,21 @@ public class WaypointHelper { amenities.addAll(pf.searchAmenitiesOnThePath(locs, poiSearchDeviationRadius)); } for (Amenity a : amenities) { - AmenityRoutePoint rp = a.getRoutePoint(); - int i = locs.indexOf(rp.pointA); - if (i >= 0) { - LocationPointWrapper lwp = new LocationPointWrapper(route, POI, new AmenityLocationPoint(a), - (float) rp.deviateDistance, i); - lwp.deviationDirectionRight = rp.deviationDirectionRight; - lwp.setAnnounce(announcePOI); - locationPoints.add(lwp); + AmenityRoutePoint routePoint = a.getRoutePoint(); + if (routePoint != null) { + int i = locs.indexOf(routePoint.pointA); + if (i >= 0) { + LocationPointWrapper lwp = new LocationPointWrapper(route, POI, new AmenityLocationPoint(a), + (float) routePoint.deviateDistance, i); + lwp.deviationDirectionRight = routePoint.deviationDirectionRight; + lwp.setAnnounce(announcePOI); + locationPoints.add(lwp); + } } } } } - private void calculateAlarms(RouteCalculationResult route, List array, ApplicationMode mode) { AlarmInfo prevSpeedCam = null; for (AlarmInfo i : route.getAlarmInfo()) { diff --git a/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java b/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java index 9ae44d87b1..b869ea992c 100644 --- a/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java +++ b/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java @@ -25,19 +25,19 @@ import com.google.android.material.slider.Slider; import net.osmand.AndroidUtils; import net.osmand.Location; import net.osmand.ValueHolder; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.NavigationService; import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmAndTaskManager.OsmAndTaskRunnable; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.SavingTrackHelper; import net.osmand.plus.activities.SavingTrackHelper.SaveGpxResult; import net.osmand.plus.dashboard.tools.DashFragmentData; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.fragments.BaseSettingsFragment; import net.osmand.plus.views.MapInfoLayer; import net.osmand.plus.views.OsmandMapLayer.DrawSettings; @@ -333,18 +333,20 @@ public class OsmandMonitoringPlugin extends OsmandPlugin { startGPXMonitoring(activity, showTrackSelection); } } else if (item == R.string.clear_recorded_data) { - AlertDialog.Builder builder = new AlertDialog.Builder(UiUtilities.getThemedContext(activity, nightMode)); - builder.setTitle(R.string.clear_recorded_data); - builder.setMessage(R.string.are_you_sure); - builder.setNegativeButton(R.string.shared_string_cancel, null).setPositiveButton( - R.string.shared_string_ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - app.getSavingTrackHelper().clearRecordedData(true); - app.getNotificationHelper().refreshNotifications(); - } - }); - builder.show(); + if (AndroidUtils.isActivityNotDestroyed(activity)) { + AlertDialog.Builder builder = new AlertDialog.Builder(UiUtilities.getThemedContext(activity, nightMode)); + builder.setTitle(R.string.clear_recorded_data); + builder.setMessage(R.string.are_you_sure); + builder.setNegativeButton(R.string.shared_string_cancel, null).setPositiveButton( + R.string.shared_string_ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + app.getSavingTrackHelper().clearRecordedData(true); + app.getNotificationHelper().refreshNotifications(); + } + }); + builder.show(); + } } else if(item == R.string.gpx_monitoring_stop) { stopRecording(); } else if(item == R.string.gpx_start_new_segment) { @@ -481,19 +483,21 @@ public class OsmandMonitoringPlugin extends OsmandPlugin { } } - - public static void showIntervalChooseDialog(final Context uiCtx, final String patternMsg, + public static void showIntervalChooseDialog(final Activity activity, final String patternMsg, String title, final int[] seconds, final int[] minutes, final ValueHolder choice, final ValueHolder v, final boolean showTrackSelection, OnClickListener onclick) { - final OsmandApplication app = (OsmandApplication) uiCtx.getApplicationContext(); + if (!AndroidUtils.isActivityNotDestroyed(activity)) { + return; + } + final OsmandApplication app = (OsmandApplication) activity.getApplicationContext(); boolean nightMode; - if (uiCtx instanceof MapActivity) { + if (activity instanceof MapActivity) { nightMode = app.getDaynightHelper().isNightModeForMapControls(); } else { nightMode = !app.getSettings().isLightContent(); } - Context themedContext = UiUtilities.getThemedContext(uiCtx, nightMode); + Context themedContext = UiUtilities.getThemedContext(activity, nightMode); AlertDialog.Builder dlg = new AlertDialog.Builder(themedContext); dlg.setTitle(title); LinearLayout ll = createIntervalChooseLayout(app, themedContext, patternMsg, seconds, minutes, choice, v, showTrackSelection, nightMode); diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java index 590be355fa..14ff53106b 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/VehicleParametersFragment.java @@ -7,13 +7,13 @@ import android.widget.ImageView; import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.activities.SettingsBaseActivity; import net.osmand.plus.routing.RouteProvider.RouteService; import net.osmand.plus.routing.RoutingHelper; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.settings.preferences.ListPreferenceEx; import net.osmand.router.GeneralRouter; @@ -123,7 +123,8 @@ public class VehicleParametersFragment extends BaseSettingsFragment implements O public boolean onPreferenceClick(Preference preference) { if (preference.getKey().equals(GeneralRouter.DEFAULT_SPEED)) { RouteService routeService = getSelectedAppMode().getRouteService(); - showSeekbarSettingsDialog(getActivity(), routeService == RouteService.STRAIGHT, getSelectedAppMode()); + boolean defaultSpeedOnly = routeService == RouteService.STRAIGHT || routeService == RouteService.DIRECT_TO; + showSeekbarSettingsDialog(getActivity(), defaultSpeedOnly, getSelectedAppMode()); return true; } return super.onPreferenceClick(preference); diff --git a/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainFragment.java b/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainFragment.java index bdd4b1a8b1..75bd4ed3db 100644 --- a/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainFragment.java +++ b/OsmAnd/src/net/osmand/plus/srtmplugin/TerrainFragment.java @@ -35,8 +35,6 @@ import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuItem; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; -import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.OsmandSettings.TerrainMode; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; @@ -46,6 +44,8 @@ import net.osmand.plus.download.DownloadResources; import net.osmand.plus.download.DownloadValidationManager; import net.osmand.plus.download.IndexItem; import net.osmand.plus.helpers.FontCache; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.backend.OsmandSettings.TerrainMode; import net.osmand.plus.widgets.style.CustomTypefaceSpan; import org.apache.commons.logging.Log; @@ -53,10 +53,10 @@ import org.apache.commons.logging.Log; import java.io.IOException; import java.util.List; -import static net.osmand.plus.settings.backend.OsmandSettings.TerrainMode.HILLSHADE; -import static net.osmand.plus.settings.backend.OsmandSettings.TerrainMode.SLOPE; import static net.osmand.plus.download.DownloadActivityType.HILLSHADE_FILE; import static net.osmand.plus.download.DownloadActivityType.SLOPE_FILE; +import static net.osmand.plus.settings.backend.OsmandSettings.TerrainMode.HILLSHADE; +import static net.osmand.plus.settings.backend.OsmandSettings.TerrainMode.SLOPE; import static net.osmand.plus.srtmplugin.SRTMPlugin.TERRAIN_MAX_ZOOM; import static net.osmand.plus.srtmplugin.SRTMPlugin.TERRAIN_MIN_ZOOM; @@ -527,18 +527,18 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL @Override public void downloadInProgress() { DownloadIndexesThread downloadThread = app.getDownloadThread(); - IndexItem downloadIndexItem = downloadThread.getCurrentDownloadingItem(); - if (downloadIndexItem != null) { - int downloadProgress = downloadThread.getCurrentDownloadingItemProgress(); - ArrayAdapter adapter = (ArrayAdapter) listAdapter; - for (int i = 0; i < adapter.getCount(); i++) { - ContextMenuItem item = adapter.getItem(i); - if (item != null && item.getProgressListener() != null) { - item.getProgressListener().onProgressChanged( - downloadIndexItem, downloadProgress, adapter, (int) adapter.getItemId(i), i); - } + IndexItem downloadIndexItem = downloadThread.getCurrentDownloadingItem(); + if (downloadIndexItem != null && listAdapter != null) { + int downloadProgress = downloadThread.getCurrentDownloadingItemProgress(); + ArrayAdapter adapter = (ArrayAdapter) listAdapter; + for (int i = 0; i < adapter.getCount(); i++) { + ContextMenuItem item = adapter.getItem(i); + if (item != null && item.getProgressListener() != null) { + item.getProgressListener().onProgressChanged( + downloadIndexItem, downloadProgress, adapter, (int) adapter.getItemId(i), i); } } + } } @Override diff --git a/OsmAnd/src/net/osmand/plus/wikipedia/WikipediaWebViewClient.java b/OsmAnd/src/net/osmand/plus/wikipedia/WikipediaWebViewClient.java index ccc40c5ad4..d2830e4b62 100644 --- a/OsmAnd/src/net/osmand/plus/wikipedia/WikipediaWebViewClient.java +++ b/OsmAnd/src/net/osmand/plus/wikipedia/WikipediaWebViewClient.java @@ -8,6 +8,7 @@ import android.webkit.WebViewClient; import androidx.fragment.app.FragmentActivity; +import net.osmand.AndroidUtils; import net.osmand.data.Amenity; import static net.osmand.plus.wikipedia.WikiArticleHelper.WIKI_DOMAIN; @@ -41,7 +42,9 @@ public class WikipediaWebViewClient extends WebViewClient { WikiArticleHelper.warnAboutExternalLoad(url, context, nightMode); } else { Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - context.startActivity(i); + if (AndroidUtils.isIntentSafe(context, i)) { + context.startActivity(i); + } } return true; } diff --git a/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java b/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java index b9fb48a1c3..fe47a8f370 100644 --- a/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java +++ b/OsmAnd/src/net/osmand/plus/wikivoyage/WikivoyageWebViewClient.java @@ -12,12 +12,13 @@ import androidx.annotation.Nullable; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; +import net.osmand.AndroidUtils; import net.osmand.GPXUtilities; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.activities.MapActivity; +import net.osmand.plus.settings.backend.OsmandSettings; import net.osmand.plus.wikipedia.WikiArticleHelper; import net.osmand.plus.wikivoyage.article.WikivoyageArticleDialogFragment; import net.osmand.plus.wikivoyage.data.TravelArticle; @@ -124,7 +125,9 @@ public class WikivoyageWebViewClient extends WebViewClient { } } else { Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - activity.startActivity(i); + if (AndroidUtils.isIntentSafe(activity, i)) { + activity.startActivity(i); + } } return true; } From 26805c4ae8002af5a35b941153070f14b3c0445c Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 25 May 2020 16:01:55 +0300 Subject: [PATCH 06/12] Fix possible IndexOutOfBoundsException --- OsmAnd/res/values/strings.xml | 1 + .../osmand/plus/OsmAndLocationSimulation.java | 2 +- .../plus/activities/MapActivityActions.java | 2 +- .../RoutingOptionsHelper.java | 2 +- .../osmand/plus/routing/RouteProvider.java | 23 ++++++++++--------- .../osmand/plus/routing/RoutingHelper.java | 2 +- 6 files changed, 17 insertions(+), 15 deletions(-) diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 65a1231387..1579d4c11e 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,7 @@ Thx - Hardy --> + OsmAnd GPX is not well formed, please contact support team to investigate further Unsupported type World overview map (detailed) Could not find any such profiles. diff --git a/OsmAnd/src/net/osmand/plus/OsmAndLocationSimulation.java b/OsmAnd/src/net/osmand/plus/OsmAndLocationSimulation.java index 8e4ae960c2..0b2683fcc6 100644 --- a/OsmAnd/src/net/osmand/plus/OsmAndLocationSimulation.java +++ b/OsmAnd/src/net/osmand/plus/OsmAndLocationSimulation.java @@ -79,7 +79,7 @@ public class OsmAndLocationSimulation { @Override public boolean processResult(GPXUtilities.GPXFile[] result) { GPXRouteParamsBuilder builder = new GPXRouteParamsBuilder(result[0], app.getSettings()); - startAnimationThread(app, builder.getPoints(), true, speedup.getValue() + 1); + startAnimationThread(app, builder.getPoints(app), true, speedup.getValue() + 1); if (runnable != null) { runnable.run(); } diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java index c5ad4ec536..071b50dd5b 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java @@ -514,7 +514,7 @@ public class MapActivityActions implements DialogProvider { params.setCalculateOsmAndRouteParts(settings.GPX_ROUTE_CALC_OSMAND_PARTS.get()); params.setUseIntermediatePointsRTE(settings.GPX_CALCULATE_RTEPT.get()); params.setCalculateOsmAndRoute(settings.GPX_ROUTE_CALC.get()); - List ps = params.getPoints(); + List ps = params.getPoints(settings.getContext()); mapActivity.getRoutingHelper().setGpxParams(params); settings.FOLLOW_THE_GPX_ROUTE.set(result.path); if (!ps.isEmpty()) { diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java index 0ba3112d26..80359f7dca 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java @@ -237,7 +237,7 @@ public class RoutingOptionsHelper { if (gpxParam.id == R.string.gpx_option_reverse_route) { rp.setReverse(selected); TargetPointsHelper tg = app.getTargetPointsHelper(); - List ps = rp.getPoints(); + List ps = rp.getPoints(app); if (ps.size() > 0) { Location first = ps.get(0); Location end = ps.get(ps.size() - 1); diff --git a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java index 2605e8a6c9..34fd072c85 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java +++ b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java @@ -19,15 +19,15 @@ import net.osmand.data.LatLon; import net.osmand.data.LocationPoint; import net.osmand.data.WptLocationPoint; import net.osmand.osm.io.NetworkUtils; -import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.settings.backend.OsmandSettings; -import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; import net.osmand.plus.R; import net.osmand.plus.TargetPointsHelper; import net.osmand.plus.TargetPointsHelper.TargetPoint; import net.osmand.plus.Version; import net.osmand.plus.render.NativeOsmandLibrary; +import net.osmand.plus.settings.backend.ApplicationMode; +import net.osmand.plus.settings.backend.OsmandSettings; +import net.osmand.plus.settings.backend.OsmandSettings.CommonPreference; import net.osmand.router.GeneralRouter; import net.osmand.router.GeneralRouter.RoutingParameter; import net.osmand.router.GeneralRouter.RoutingParameterType; @@ -173,12 +173,14 @@ public class RouteProvider { return passWholeRoute; } - public GPXRouteParams build(Location start, OsmandSettings settings) { + public GPXRouteParams build(OsmandApplication app) { GPXRouteParams res = new GPXRouteParams(); - res.prepareGPXFile(this); -// if (passWholeRoute && start != null) { -// res.points.add(0, start); -// } + try { + res.prepareGPXFile(this); + } catch (Exception e) { + log.error(e); + app.showShortToastMessage(app.getString(R.string.gpx_parse_error)); + } return res; } @@ -190,9 +192,8 @@ public class RouteProvider { return file; } - public List getPoints() { - GPXRouteParams copy = new GPXRouteParams(); - copy.prepareGPXFile(this); + public List getPoints(OsmandApplication app) { + GPXRouteParams copy = build(app); return copy.getPoints(); } } diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index f60e4f7ea9..9a4fb32f83 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -1172,7 +1172,7 @@ public class RoutingHelper { params.start = start; params.end = end; params.intermediates = intermediates; - params.gpxRoute = gpxRoute == null ? null : gpxRoute.build(start, settings); + params.gpxRoute = gpxRoute == null ? null : gpxRoute.build(app); params.onlyStartPointChanged = onlyStartPointChanged; if (recalculateCountInInterval < RECALCULATE_THRESHOLD_COUNT_CAUSING_FULL_RECALCULATE || (gpxRoute != null && gpxRoute.isPassWholeRoute() && isDeviatedFromRoute)) { From f288b9bffa9dbd6af987dc0c04f6f5019e184450 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Mon, 25 May 2020 19:40:48 +0300 Subject: [PATCH 07/12] Fix map button vector icon --- .../map_compass_niu_template.png | Bin 2590 -> 0 bytes .../map_compass_niu_white_template.png | Bin 2659 -> 0 bytes OsmAnd/res/drawable-hdpi/map_dashboard.png | Bin 1157 -> 0 bytes OsmAnd/res/drawable-hdpi/map_directions.png | Bin 1305 -> 0 bytes OsmAnd/res/drawable-hdpi/map_down.png | Bin 1289 -> 0 bytes OsmAnd/res/drawable-hdpi/map_drawer.png | Bin 1080 -> 0 bytes OsmAnd/res/drawable-hdpi/map_favorite.png | Bin 1269 -> 0 bytes OsmAnd/res/drawable-hdpi/map_layer_dark.png | Bin 1694 -> 0 bytes OsmAnd/res/drawable-hdpi/map_layer_night.png | Bin 1681 -> 0 bytes .../drawable-hdpi/map_overflow_menu_white.png | Bin 1385 -> 0 bytes OsmAnd/res/drawable-hdpi/map_search_dark.png | Bin 1561 -> 0 bytes OsmAnd/res/drawable-hdpi/map_search_night.png | Bin 1571 -> 0 bytes OsmAnd/res/drawable-hdpi/map_small_group.png | Bin 1117 -> 0 bytes .../drawable-hdpi/map_start_navigation.png | Bin 1437 -> 0 bytes OsmAnd/res/drawable-hdpi/map_up.png | Bin 1268 -> 0 bytes .../res/drawable-hdpi/map_zoom_in_night.png | Bin 1092 -> 0 bytes .../res/drawable-hdpi/map_zoom_out_night.png | Bin 1068 -> 0 bytes OsmAnd/res/drawable-mdpi/map_dashboard.png | Bin 1110 -> 0 bytes OsmAnd/res/drawable-mdpi/map_directions.png | Bin 1210 -> 0 bytes OsmAnd/res/drawable-mdpi/map_down.png | Bin 1195 -> 0 bytes OsmAnd/res/drawable-mdpi/map_drawer.png | Bin 1062 -> 0 bytes OsmAnd/res/drawable-mdpi/map_favorite.png | Bin 1162 -> 0 bytes OsmAnd/res/drawable-mdpi/map_layer_dark.png | Bin 1478 -> 0 bytes OsmAnd/res/drawable-mdpi/map_layer_night.png | Bin 1484 -> 0 bytes .../drawable-mdpi/map_overflow_menu_white.png | Bin 1141 -> 0 bytes OsmAnd/res/drawable-mdpi/map_search_dark.png | Bin 1343 -> 0 bytes OsmAnd/res/drawable-mdpi/map_search_night.png | Bin 1343 -> 0 bytes OsmAnd/res/drawable-mdpi/map_small_group.png | Bin 1054 -> 0 bytes .../drawable-mdpi/map_start_navigation.png | Bin 1262 -> 0 bytes OsmAnd/res/drawable-mdpi/map_up.png | Bin 1190 -> 0 bytes .../res/drawable-mdpi/map_zoom_in_night.png | Bin 1069 -> 0 bytes .../res/drawable-mdpi/map_zoom_out_night.png | Bin 1047 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_dashboard.png | Bin 1222 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_directions.png | Bin 1387 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_down.png | Bin 1405 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_drawer.png | Bin 1095 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_favorite.png | Bin 1368 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_layer_dark.png | Bin 2105 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_layer_night.png | Bin 2109 -> 0 bytes .../map_overflow_menu_white.png | Bin 1337 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_search_dark.png | Bin 1779 -> 0 bytes .../res/drawable-xhdpi/map_search_night.png | Bin 1780 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_small_group.png | Bin 1101 -> 0 bytes .../drawable-xhdpi/map_start_navigation.png | Bin 1664 -> 0 bytes OsmAnd/res/drawable-xhdpi/map_up.png | Bin 1369 -> 0 bytes .../res/drawable-xhdpi/map_zoom_in_night.png | Bin 1110 -> 0 bytes .../res/drawable-xhdpi/map_zoom_out_night.png | Bin 1084 -> 0 bytes OsmAnd/res/drawable-xxhdpi/map_dashboard.png | Bin 1339 -> 0 bytes OsmAnd/res/drawable-xxhdpi/map_directions.png | Bin 1598 -> 0 bytes OsmAnd/res/drawable-xxhdpi/map_down.png | Bin 1621 -> 0 bytes OsmAnd/res/drawable-xxhdpi/map_drawer.png | Bin 1157 -> 0 bytes OsmAnd/res/drawable-xxhdpi/map_favorite.png | Bin 1547 -> 0 bytes OsmAnd/res/drawable-xxhdpi/map_layer_dark.png | Bin 2452 -> 0 bytes .../res/drawable-xxhdpi/map_layer_night.png | Bin 2362 -> 0 bytes .../map_overflow_menu_white.png | Bin 1598 -> 0 bytes .../res/drawable-xxhdpi/map_search_dark.png | Bin 2164 -> 0 bytes .../res/drawable-xxhdpi/map_search_night.png | Bin 2163 -> 0 bytes .../res/drawable-xxhdpi/map_small_group.png | Bin 1148 -> 0 bytes .../drawable-xxhdpi/map_start_navigation.png | Bin 1936 -> 0 bytes OsmAnd/res/drawable-xxhdpi/map_up.png | Bin 1576 -> 0 bytes .../res/drawable-xxhdpi/map_zoom_in_night.png | Bin 1158 -> 0 bytes .../drawable-xxhdpi/map_zoom_out_night.png | Bin 1129 -> 0 bytes OsmAnd/res/drawable/ic_actions_menu.xml | 45 ++++++++++++++ OsmAnd/res/drawable/ic_compass.xml | 13 +++++ OsmAnd/res/drawable/ic_compass_bearing.xml | 12 ++++ .../res/drawable/ic_compass_bearing_white.xml | 12 ++++ OsmAnd/res/drawable/ic_compass_niu.xml | 12 ++++ OsmAnd/res/drawable/ic_compass_niu_white.xml | 12 ++++ OsmAnd/res/drawable/ic_compass_white.xml | 13 +++++ ...ic_dashboard_dark.xml => ic_dashboard.xml} | 2 +- ...map_my_location.xml => ic_my_location.xml} | 0 ...p_quick_action.xml => ic_quick_action.xml} | 0 .../{map_zoom_in.xml => ic_zoom_in.xml} | 2 +- .../{map_zoom_out.xml => ic_zoom_out.xml} | 2 +- OsmAnd/res/layout/dashboard_toolbar.xml | 1 + OsmAnd/res/layout/favourite_list_item.xml | 2 +- .../layout/fragment_map_markers_dialog.xml | 1 + ...ent_marker_options_bottom_sheet_dialog.xml | 2 +- .../res/layout/global_preference_toolbar.xml | 1 + OsmAnd/res/layout/map_marker_item.xml | 2 +- .../res/layout/maps_in_category_fragment.xml | 7 ++- OsmAnd/res/layout/mode_view.xml | 2 +- .../layout/mode_view_route_preparation.xml | 2 +- OsmAnd/res/layout/search_dialog_fragment.xml | 2 + OsmAnd/res/layout/waypoint_reached.xml | 2 +- OsmAnd/res/values/colors.xml | 2 + OsmAnd/src/net/osmand/AndroidUtils.java | 8 ++- OsmAnd/src/net/osmand/plus/UiUtilities.java | 2 +- .../plus/activities/MapActivityActions.java | 4 +- .../osmand/plus/dashboard/DashboardOnMap.java | 6 +- .../plus/mapcontextmenu/MapContextMenu.java | 2 +- .../MapContextMenuFragment.java | 6 +- .../editors/SelectCategoryDialogFragment.java | 3 +- .../plus/myplaces/AvailableGPXFragment.java | 2 +- .../ChooseRouteFragment.java | 10 ++-- .../MapRouteInfoMenu.java | 2 +- .../ImportedSettingsItemsAdapter.java | 2 +- .../osmand/plus/views/MapControlsLayer.java | 55 +++++++++--------- .../net/osmand/plus/views/MapInfoLayer.java | 8 ++- .../plus/views/MapQuickActionLayer.java | 12 +--- .../net/osmand/plus/views/OsmandMapLayer.java | 10 ++++ .../views/mapwidgets/MapWidgetRegistry.java | 2 +- 102 files changed, 210 insertions(+), 75 deletions(-) delete mode 100644 OsmAnd/res/drawable-hdpi/map_compass_niu_template.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_compass_niu_white_template.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_dashboard.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_directions.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_down.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_drawer.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_favorite.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_layer_dark.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_layer_night.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_overflow_menu_white.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_search_dark.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_search_night.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_small_group.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_start_navigation.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_up.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_zoom_in_night.png delete mode 100644 OsmAnd/res/drawable-hdpi/map_zoom_out_night.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_dashboard.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_directions.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_down.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_drawer.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_favorite.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_layer_dark.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_layer_night.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_overflow_menu_white.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_search_dark.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_search_night.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_small_group.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_start_navigation.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_up.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_zoom_in_night.png delete mode 100644 OsmAnd/res/drawable-mdpi/map_zoom_out_night.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_dashboard.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_directions.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_down.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_drawer.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_favorite.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_layer_dark.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_layer_night.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_overflow_menu_white.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_search_dark.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_search_night.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_small_group.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_start_navigation.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_up.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_zoom_in_night.png delete mode 100644 OsmAnd/res/drawable-xhdpi/map_zoom_out_night.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_dashboard.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_directions.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_down.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_drawer.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_favorite.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_layer_dark.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_layer_night.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_overflow_menu_white.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_search_dark.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_search_night.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_small_group.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_start_navigation.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_up.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_zoom_in_night.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/map_zoom_out_night.png create mode 100644 OsmAnd/res/drawable/ic_actions_menu.xml create mode 100644 OsmAnd/res/drawable/ic_compass.xml create mode 100644 OsmAnd/res/drawable/ic_compass_bearing.xml create mode 100644 OsmAnd/res/drawable/ic_compass_bearing_white.xml create mode 100644 OsmAnd/res/drawable/ic_compass_niu.xml create mode 100644 OsmAnd/res/drawable/ic_compass_niu_white.xml create mode 100644 OsmAnd/res/drawable/ic_compass_white.xml rename OsmAnd/res/drawable/{ic_dashboard_dark.xml => ic_dashboard.xml} (93%) rename OsmAnd/res/drawable/{map_my_location.xml => ic_my_location.xml} (100%) rename OsmAnd/res/drawable/{map_quick_action.xml => ic_quick_action.xml} (100%) rename OsmAnd/res/drawable/{map_zoom_in.xml => ic_zoom_in.xml} (88%) rename OsmAnd/res/drawable/{map_zoom_out.xml => ic_zoom_out.xml} (87%) diff --git a/OsmAnd/res/drawable-hdpi/map_compass_niu_template.png b/OsmAnd/res/drawable-hdpi/map_compass_niu_template.png deleted file mode 100644 index 1297b4378cb35bdfe3d3dd25a55fc475821c4f03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2590 zcmb_e`9qS~8dj2&+@M9wrAVg9GD|G8(p)h!4J)l&a{?_%6ir2RazQ8iT*;ebc3qlE zGm6N`FrFE^2^oX0|9|lc^oFC&JEI> z^l`<{25cECv2_~ltE4K>F#hqB>Oa#BULH-l9VM!J*R-GU`xk`JNV%4lrqR_OO)!O` zMP6*HSgWIxI)J4eM-25pH}?b{-b2h8T#%bck1Lr&>iXCwJg0}mR{GQh@J1_WvV=16@k zWy+NY)qaJE%1W9OJxhv6JWNMW=A!@PjJ5KvZ;*Anm$ERGiRyKty^GA89`VZ|Z3XgO zxYq=frFyvec|Yv)9e_#S{5YRAei=sa|4fUCV~?%ExzSlD+DU%)xDJEAH- zJr=m7g1>wGfs)({casC-dbdH5=_-YRgTac9{{*bcf{t@rk-oIIy8vs*R_s8HM@x{h zD8{9kI!FN^dUYEFH!8b>2*1kCZvoA%>SKMxxzxLD&?veqaZk^Gz}dNM6zyGYW>PN+ zF8jowmy&)dnlU{vRubS;F`j!6TD3UN=kR@~_4}`}pSe0H29npv>m8K}^-M;IY{(#D zDgRl~kS4;cR-UpLK*A3QW-|;-L>tevrPEQC3pMfwGtu>lRkt1*VxK3(xu>v@zUi|v+UZ_u34Muc#^fwo9x>b$P zGB`I9AJ%>E%BE2N?IsU=vq-)-LaT@D1bzZ1E6?5=ZWUd#eZ>Q#-Az3SeLCb~TRZ1>^oir?dD4VZVs8R?krs@+gRKe*1NBp(04po5K?gU zOKaV2v|ul#{I8!vEydwt4c5hsaHfyu`#PSb@b$uL4(z0L;+^j7xInQPWa8!R-3+^l~D5rK9n_t9V#Ey@;>Q7kN3jzd(EcBhDON?sH5O1x{7>+lm@0SF8a1ZXS z)~?=fm}&TGX-9wZk9i3f1=%lc$^-?JRB0~lX6M&Kz0BO1k5+Ou_6kQl)|y=RValmM zU##6^P*POlKVvfVa46$!y|ERZp=i2X!3|@^t63E8DV==lI$4U>YQo5@VxnLaYT!3NjHi^dtS-43Mu%0 zQbTBCO`xztCk{x0|KPmHAtp1o#4PP#%dbzd_KwVj&-H{2hIQ@h?dZwwmd@kIr!$?6 ziF{6oi~&T`9>>tg+DkCP zBxo$$J|g0O>vp8PJ#ndAGGOCKTfBeh&Gm+X&&|c|-2~G!Ws9`vCEdXCIn$k?Jegre0K&x89^{pfrzw5XbI>pPB^+>-to>N`i6aQ11-ne*<+R$h?r_}`0{z@7< zb5U(GPy2i4$2y_O*VL7Jw)`C$-wwnI^6D-%75U1&s#r|qvPaTGdH8HTau>;|eD$4p zDt}Ps{n3oF*>2skW*vjNdURzTk2tKyZN$`;nAILhN*~;RYfsZi=k5Dw7M?xuhykRHQ~&!0oV|V-KN^ghi#$yFySIH##M}FyN3y- z@!k_P(F|Q~xvwf@Z*Ww27qdQM8hXlE3qOlsQOK0Tf!qO45TdvP#%p2yQy39>GxM;e zH9#Fe2?(RvAZdr5lK&|ttfA)hUfxzEBGC-~zf}M{o3E#(2=w&|9pV?iHIVInt zXB8Zja$MADp{cMdBCo&|I3PsH=M`^xA6v1=3IhJRaaRhl;NmxMK>&j~IuFmHUjtt+ z8A+#X(4bV0W4o%c_7dJ<``|bz!&xLSL#%O@GSF&(tQC_(xo4wIMBZ8FlDa0-g9)Ry z5VnEw_ikjZ_D%tT9!$sA&-1{WBezb}xZhI+{W5-d^Pv=zjg8Dnz6IX9A%ac5Z8&P%KJ~i^u#3!zpC`r^NW#3QTqW#RBbT^?2|*r{v;9 Kz*ji@l>A>IqRsmN diff --git a/OsmAnd/res/drawable-hdpi/map_compass_niu_white_template.png b/OsmAnd/res/drawable-hdpi/map_compass_niu_white_template.png deleted file mode 100644 index 9b0a2cbc3abe06f374f78b941536bf7ceaa0df30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2659 zcmd5;`CpRx7Dg&GH3b_JOcQOoHDfL`skws|W;$6KXfBnwWeJX3ZXr3=%$tf#+1|_Eqr(96n#szN*A^H(5MeZy2pSVA~-|zQ1=RD7O&iU!Rede^sE=@yC z2n4dr^W9y3$-Ww!kw=*`S z3GbaHr>+jwTKxUa-=gp<&+C~**s~95E+#8SUo#mX0O!@ zbq&f%c`OnwiQJ^{ldQ_ zyJrc>fr1|%S2l2$3lBkOsSXkVj2*=4ibVT(>h>HWUsfE&%|7U>O zRB$&i$Kmji=7l;DIH$Ol$BhLnDECV)!phFZ`JTRY*bX4ect6q{>tx;yc;0bzunc8F z;?9I|zva#@xq1{^Ny9-L!UI@x`M?U~`Zw`jZxy-v=-Ri)P^;w?!!4@O2J$u7syi1! zCfnIT7cpTc%t76#@LZ&1-k};1wjD$Z_IUB-qnElh;p&cfYvPR*VlJWp&1cXKfXNp& zc){D%$;rtwaK6g!>?~*J926+rkHma3dn6K>4CU!#VX}ohghwk!3$w*PHh>H*KAvX~ zo_h&2ID(lPG=oMmAu`zmdcez{&Leoh5Yjv_fR5Xs4QU9G7-FSUU}7ieT<2QueG)U} z4$CZ_Ynq2BAkN6;Rv6;(>|^~HlJD$NLashyzfRIt5i*584*p} zIEUa9wRi36rKd81_*^6kWq-DDv3&SON?WkY(T2$09?ZoC)EM#+p_;rfSQBeMI*=rZ z!ETVE=0eiEV+RaGrKI*2vlhZjf=>!3jT6`!#>>lTZV#r0ko)RPMk|$x>vbbWXOwQM@JWsHAM0EnOMaXG#)jYh6v@l3Ach9j z#0-pdP}7UQ-k_{jUF|oX_i&R1We&e6|4^rVf*(Mv#9PcbM6Lc1xmqnTB`d2H4eV9^ z2<4+ZYGhmGC)UgN<7WgDtgsq_jJa^xW3)Y>B(m8=C^IH zK1!AS{?m2Q>6I;WmC3`^xxE{#-fk9MFV^pc(5t?MK^&@#-K)6*P^7ZdHBYkgk>u5N zg3II`L*IBt5na!Ayn;7iLVnsOH~8avK4qf9m3E6Sm!8$ScNfZS)Rl3gZJc`^KsP94 z*QWob9%e3p{pn#!q(d8 z__Sc@%C^A*lH=H({ZkaORehFObKqFy4=iE}qvF@=qK#&{!L^6}H)Ci`ibBQ%>&}S* ziKC)$rm;iMilBuv;{Ud@^tNm5MH()ojeJCXVGErW1it+9rUeWGb8OQN-TE z%BVklsRnNn-y3Hkxk>I~TI|sSGZ`Q|nJZ6LFwiH{Gy6y?XuD_4wWm-N)5TX&qp(H& zS|s>fo}fWmQ$3_=;tm&njYN#<`=eN5p| zY;1*`$Nd?}Wt+{H3p;qy>UMPbnMSX!T+_|2<4*R8?z!Nf{OK)!eFQ^ z6j!8mQ*05fnkvIJ+6rC;>fFMLmu0qK4BUQZ-yv{~he@t)f^h~<1Bl`M7+dmfQyHbIM~a-@V6FC zKOtWKTYXDfFgHzB@uC)?TS6w>4#T=_7$6Jp+O~Awo3I#; w`?eyW$ROx%H*g#4y`5zCfBrZc)(#y)y`-f+vQ-2B2_c>*P9LvzyY%ya0S7qYUH||9 diff --git a/OsmAnd/res/drawable-hdpi/map_dashboard.png b/OsmAnd/res/drawable-hdpi/map_dashboard.png deleted file mode 100644 index 04f8e5559aebe51d7f98ffad5f09d60592d57f03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1157 zcmbVMO=#3u91kkfT3XqI_z4nI4=$L=$4oMlIAa|rGwr}mtT*Wi`%K@F22qP4^*{F_8i3f};<^64cF! z{r|%hMJ*n;%N1NH{-y%tMD-98tveoJQ&g&_?&)9@V%mViwwq?&-MGonwwY#jN=3ft zW#Ne3H|fK{$^J5!90iKW^lYJ1b(JV^AlB)+Q*{Hio@N?)Rk9C{IfiaP@MxNubE;At zptHz_v=o(DzzcCYp+p5qPAG{@v`A!*PjVv9@`@_OR9>W;7elQ1rlpp&eA5<@(##0P zp2~5xS}j_OMUg+u35ud{yvT_nOAu@@;bOhcx{0WQIBZY+on$`c;sN-#iUJ|Ok5x?5zDyB`}0 zfy5hiyKj@C=v57YF$cQ1prsk|C2HEH8kbDdFl3n(WjW3&d|Y7_#S~c?3Qz(@99o9i z(z6g>5_nBX3VCwJ1tAyDWMn0uOC|&%DGT{ruEj050oGjrTefXtyUES{kgH~WsAJ@p z5vsPjU|K9*1V$M-JV{vuZEk1GFq7W+ed| zvw+M>Mm)wQfdp9DkN|+Z1QV9RH2LPw=8q#zabdH3*F3Ew(vjhIeiVo>KTOai6XcUo z`Izp#MaJw>LCciu4_;R?9S8Z&huSRl0YuPzRi|WLsS18Ka=?-(j5V9>_y|%mCtK4L&s+GQ`HAK tq5b0NlPk2_Gl$1_{MXx+8TxBcC-w5Ia_VT$=H=m!p^)p>rnl`q^c5($eIoz> diff --git a/OsmAnd/res/drawable-hdpi/map_directions.png b/OsmAnd/res/drawable-hdpi/map_directions.png deleted file mode 100644 index ad3e3daaa351c66863561158fd96aae8ada8386d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1305 zcmbVMYi!$86!xHOeXtD}u(T?Y>oSzmIesK|YOC4S*ba$Ay3UPgK?CZ?O=GpTQ`=3_ ziXSjq4XTb!z@`a)3{)OPV-N9?DugyVQ8qwm8k2ZPLsV2_>NX7_Z9+U$ZqlakquLKF z+4r7%&v(vuUVgr#{h_thb=3%htWCs48Lsyi-^$hSJBu7V2$xz<>h?PAw3k;LfVAnh z3ebe9^a2?u`q01`(25|p=8ROg*PVQr*K9MO6m;fRkS|fp(^M#tO$1P z;}aNa=n<@oNs`H|05V2=*a4lx?I~@zPvdlK>lU=Nz(WHj@D#LQ_FFDrh+rkVJlq$L z2@EZ%czqFUkyLlG0~KrspiF?pHIfRUVJ<*1Y?upgMrkM$WD7x)ILYx$kSA$$>A|2k zM^E#z7+dlMr3jYsyev-;`FuW*4+dABQ%N9i7YL1ch z4BJAB78TVV^dcB!x)_3)O(vHOTkcY#V9JPsk|n4BNtk9au9CLv$>3iaD{8x`p)4R| z;M#+Z2J4Y-EQ4Y0Ztke42-)!49Rn6c=@)Hn&;*v35F;483FwB-hZtQ~RhGqRmJQ(? z8RBq`(`lRq6ks$p1k$QrwzCqRiAoa5QBqiv1d5VEZCtcP2)5Bdu_a1NT&#>uSgxm7 z8YufVpzkHDcvCDdI6(1iCuQ6H?|q>rK+R;F2mC8yxUYP(_+*jaEu(# zV~%a2r9AV-3LJEXWzsZY@NhU7#`SQB!Bv$4I7NoiVW5W;zyfRuum9it5s(y7Y?l8t zPx%OTWO2JZ3Q$-cCSbt{a^R>Or`BCZkX2klY)ch>xboeXRnyzzQczq_V3#; zSJ`y_!e87Q@v5n*uE!fj-+Ft~Oa<7pV?ymoO?LaJ2Oo%yjO|e-ROKT%RT5z*Xb#R|R(8ZRaMYXZAk&$@uwurf*ao89!E|*YocP{_4}(jh(mWzSsQK@sX+v zzNX#VNA6NS zAjV8T6|4DUL{^@XpS>n@p04}t>CFvmlEIp@3xA&Ny4-XUscigpJ~RKRQT$mYq;~OW Hv}e~pYW2PX diff --git a/OsmAnd/res/drawable-hdpi/map_down.png b/OsmAnd/res/drawable-hdpi/map_down.png deleted file mode 100644 index 776da36efdb1b1c4a6d88a4fb2f46ad07143864e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1289 zcmaJ>ZEO=|96vK%VM!w|SycRT-bAT*uf3Pvu@1Ig=L)pUQqviX;pyGe_So*OySveD zd{AI6F?^U3jpLI>NT%S+X2iHm;%kfpL1ToV@ePJAG3cU%Xht+X*R_)m3zz5adHer< z|Mz>cJM}=YX-yM`VZlU~nnv^8{=2LZeJ@~RV`#d=i}!fj?Yvh84#e7ZI|uQE2?{U` zfj-zj16whyVc5v@cs@MWlqSwd(GYu#8W0j(E$cn%f}D@x2wzf0hT9wo9u zl1Y|guxNA*IdJ<>Dx(ecYO+pjY{OeC3L-F}2k?s7XSqrxN>q6jwDyl_0Y3zSG|49nw^OtFF}$#fypmQsYr4=b zN)$b>q|kJ^T&Bul%61AgE6Xy?a5Tq}NP=_+Ee}*k%WbJMsL<6MqvRR3h5L*kXAgK$ z0$IA?f>}x?7l|#m7AO=lx&lfxOEI)*`hHcVT`vv)H)Ba@H#1m*bQ-$$fTN*&2;o^@L`!3RaTA1BPz?XaXupQY)4p%NL(i`wyRwv(~#zIqjO7j4gWi*^Z*#j07y*JTY$x65wGPt$_eDs+t9Q15hX6R*ZuF_y3) z&+3tglm{e;XaXq%K1TwL=SYbc7@5^sUCwhv4X=^7ZBCzTNe~rWH@Dp8fFB7k@pCkKAY4M^$r6=)_8Ta|`k6x;Ot$wT-?VZ5U^U zA2+5$p-=bT`c=Pp?a=dUN6t*WkT7lu9$0?psp|OrvDHV%6nBKwqJGg8Cd=&rh>JhskDS#|wMp6pH6==;HX~>I(pas1#=a7_6GBLc zKcJ!=87d?O21XcQU;!2+V1bDZsYr;q2skHk=}^^@eZIT*e($~Cd%uVE<;C%lOCub| zjaMtB23x0-_xuq1e&hD`*m9AUTXcoAX%~fCyUiAD z)s{?~cv+O#WMeO2-W)eG8wbeVz?8S}y6YE&pD$ktyz3N%HLWJqf+Fs?m7Nf;>?}9! zoedj0!t8Z^CN>#>hbiJ?Z_|&=xFGa!P4=H0ivr&>p&JFEpH!<>=Zhr7yq490Ey*fx zz^tt41~jhm3fqfPUQ{F?K~u|_lEM!jfkg|Qw%I5x3}UfeLFiB#n4;M2cC+1FmW1n~ z3?URHMN|~PEI_pFQxpR~no1E$II=@Gpf2(G1QA(eixvcyX}<(7sMU^v{b)cGqfCrZ zAj(-u^t`05o^?bU_Idcd)Y%5|8ikY`Ul9U`PmK2iibVa}a24)dt8y3Xm;bV;r;* zl=H&C-#Niwe@@v6t0PF$F_8l8oSt(4%Ii5G%a~ExMi?Ls+cIS6iXjUkOHoWl=fo(b zM{GWm-(z90&9Stw&-4^B;e2{iyud_vqgtA4#$SGXmPa^#?A+_s-+vz+4%4fZ2k*aA zwetL_)mR-Hova&2zy2H@9=v<8doY^GWcDX^_a~SvJ|c5zc=7{Syqn>|c&Iu3^~vKz O%hmF7>Dm0Pd;b95@KoUd diff --git a/OsmAnd/res/drawable-hdpi/map_favorite.png b/OsmAnd/res/drawable-hdpi/map_favorite.png deleted file mode 100644 index e8307094fa23a45135f82e5e546041ae7aab7e9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1269 zcmbVMTWB0r7@j7$*uaL0(Zu@TI4!j5&NVx`GvjXS>?NBOcbjb2c0r|?ojIEf$y_os z$!@kQ=7QRw54E)q#cFK5pv8oM2*rkmst+nri&Qiz0UMMmC{n6eOEI3=>_#6#9~_uD z=RfEF{{Q=LGuf3+c$>C1Aqe74cE&PrZFAq-J@ET|F?<~^_c-yKv)3p%Macq)s2F*G zCN-%SWPqfM41NYe2+}yLW^+z1^_UtlL`gFt8bLz4OQt0E0|(86UR4icznz`O zP*n+I``HwgGNYhR?JQehZ#kWn%l$I1V7qsrp^^X%Xuy%sk~W~*LMe<@?Fw-39+Mba zRdM>m*cz!^stb)87C>1dfXfu^M}s^;vwIdka~xA3$zric6x#{I>LqEO=Shko83u3Rhcuu&$ygYJH-w@p0>@EQJIiu7&2co&QhplG z^Kt;^0tzTl4A0AoRJXGcp5o{jBT~U&FfP(`oQ;T)jt(&pjMEGk;iK_7HmTc=q|2c0 zTZO)B*uX8ZLev71V^~?k7^rtaSD)b+cAsIQ(P*{m=+6DBt{6r80k=$RQOAI#4g;mb zGBmWBXF=V7LxE=e49ocOpd_(4o%b_1pO*?a$4dTuo(u3iM`Ja-@_+M3LQ;cO=8P)&->WP{vW*#vH7*e z$s?U}jbFX~%}YDyZaaCkEju&)X#VDoza|eo^?vKIqm{+u%lztmFLN;P<_G)cU!1)$ zcymhJ{PObl9N{g`&7|&(5b18u0RQFK(-)q&=;{8t`NM`gmPdV89^N zF26NSyffC)IkCNS^ib+t*7WQ!k;H7n8&{g>(*4bMFCAQX_v*z;aLcKl6|u7L4(~i`V(LA8(vEec#0Amnw;c10PANKJ)Uf z1LwDV^6B9}{om$>g|sK$E)6wYSZNJkyEL=<`&6a1 Y2YE(mNqn~_^pN`_O2*T%nMlw0KZcI80ssI2 diff --git a/OsmAnd/res/drawable-hdpi/map_layer_dark.png b/OsmAnd/res/drawable-hdpi/map_layer_dark.png deleted file mode 100644 index 58b508506e0f14ec880ad9695c3151b191c0eead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1694 zcmbVNYfuwc6b=eRr791nfL2`=TR=&6H}74I9g+}@62uT8qRz0%Zb$|;8#gNiREppO zwJlE7Hi+0NPz14xsNjf-4=BDWYCED+EiH~X6-R3;cGQt>c(p$qe{^T=-h1wz@0{D=g-fIX1 z22|KgB{)dRq)!6WG(!SXp-fw-PEL+6M=Ye73qiVbTtkWCQUE~$VmZ;NaO+qjKTsdqEHZ4k`T*bc-YR{@Dfx8Yh>P~ibs%mNt{?B)1qQTrBG=Q zR62syIb1C6u#m&P?VRsHtW^6>ET(2ioTV8fO=k^vL6VJTX_t+50&4X@)q&_#yMv%} zTru7<4MwdY8GANKXc?LU2J(#A-@-v5L97yj3mC!Wa)At&AOajVO9ikF5O!)9)0GIoJw4tdCms#R0c% z?ta?@)z+@Kswilhv2H_NU^jig@u{dcA*!s#m+ivK@E7G7)_bMp)RDW6sJxoWU}Z{P zqOI)p;^;}gU1%>9^{3p@R{PZcRQpws0hA{3eQFwnujJJUq1P9tnqx{pS$#`&QZ=~P zEKRN7q5h@`tiNEm+t=Rc5gKo+g0`DlKQfLwp;)c^^aio4>gu<#S4s~CXTsTEQfSn% zNz0xAM=qG+b`(E4vZ$y#y}hU-&{EYM`zqfVURQV$I6v*d?aL&89eJ;;ry;y8jqJ@2 z-TOFwR5Ra|KHau1IX$6wVdMudcNTkQO$ra1{XEQaG|crmm2g;J(J`Zm?;rnE+;t)X zEiv?tA8QKT89B3U>GjQV$EEg=T@RK+1z)F!t>H~<$-i8SsuB(uq;IxWh^}-7WM!t^ z^GK%RD`nXFg+aS3{`U9queHqDji08Njd%RC=#rjN@tKwoXF&7KYpRrph-?r4&`q=E zlY($3zb>=ny@DxS*h5QsaPB1qt=}ZR)p#mx>gr>wm#CAwLgpd*Ep=tVB7AnZS#UgN zN=6A&_wv$=EGMCDef-GGo_iMjv+v9wmK-j7E^VVQeQEste2={OiLbDv1vv;EIl}efLRpp~b<>U#S;+VdSnP=0g!4&~$@rO;#Rr4=q_x%A@Zr&L=*S}oT v91vf;;g`PWiF;lM|LX5o_cwRYKK{Jr^TtLU?_TTU{bT6j6E)wd(hL6q&X0Hf diff --git a/OsmAnd/res/drawable-hdpi/map_layer_night.png b/OsmAnd/res/drawable-hdpi/map_layer_night.png deleted file mode 100644 index c77e9f2bab3c78999cb67802f78bcb764f9d722a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1681 zcmbVNc~BE)6b~Rr6{_J-#CEz}0ng3uCfOWoqCyfRmdlulVMJxK*^m{IjoF0+JSt!- zgsG0zR;K7^m1=c7U^=2LDpD<8$kHgFkM7Lw_r33XzxRIc znyt*rm=Q5FZm2*Yh|s5M4g4DKf5Srf@2`UDYJM5b>CD`0#>ROFHzi22G8PKZJBU2W zKoQpBMJFkhKoC?!8_k?KJq;%rhlud&h`bILj}{12)4VQ%%%?cOLgmp;HTXwk69~{& zH8=-LN77vy%1)=2xT)DC8Ah@spHy1GX;T4}7v~K)D2@QUjsho(d(~jSU7X+hk6{q# zSK;#2;44z*^ejNbxG4Y=$siIzrGQ*1LNS?KDW438c^O6&uo!_5C5}mOL<|f(An(m> zwc!SB%78CkQiFDmbKx-T@pwcYiHLFM!KhNHgb^_;7DK!S#1=a_!V5Xsv4a-06id2k z7e_Nrz;BVTFom2N8AOj5CvL>EOby#POnvi{Ef&;TXC_?LQ)nR z0g18Qe$?pyxb@8+s8!1~kA)t<<-luG0Dm;<$^4j*)6jSChYN{D0)(Up{$aoVP!-fZT_{^0`ecrl;YSGR2H>Xxtk4i9x1lQzM>gL`u-!koQT_6cfFp)i~ zaeLp z=dYaHw#>H_5IrkvukfLXi9a8$-?n9it$6SHX83HVtXbm1Ex+UdM57_%#fI!|vWHrQ zB!=`%a(}3@}w&}@8n3Dnm_6rft}rMj@dfCz3sccA0~>Q zMzxmC$jyA#Ep!b}D?8dV8{BJruVP8s(}p>XH)@M^$JyhSP$MO^#}3mU-dMdhp$Nmo z($?1Ki;v2y>RMXEeWxF5i~j!e-Akbp+vd48Jdd$0ypTFR`R0xWr>I=#nzgB_vn{qx zWGQ;k!Op1IvC-WA(?jqo+4;OdUk?kj4+nnfT^4lk!Z45UWw@@**E>3AuJ2UV8s-{N zv@~jT=e{SOPjB6-xD*(5ZH2dM@qymYy5lDHwLh_3ZB}j4Pf1L!SQNfpp02%Kuy{;8 zBHUL!siAT5w?96RqAyLo@iFzng$eD=cOl(*(avr69ZX;L-TS87K{L-?1nDI+?|kF5 l(w#4+Y=a)|?ff7hM4(zJjE;{RdD;Jy(Cad^dy;d@{sGbpb@c!M diff --git a/OsmAnd/res/drawable-hdpi/map_overflow_menu_white.png b/OsmAnd/res/drawable-hdpi/map_overflow_menu_white.png deleted file mode 100644 index 275193e115e54e87dc942c3d25b92dc7a2e2c111..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1385 zcmbVMeN5bB81I7U!bj$GMn1Bo_GWNGukBs$qaEku+Pm$R9h?Ungcw7weUIzl+M_MI z1N?~SGEG<<1}DzUz_x&7QxhX|vdw`yKL!~Pa5xr6mPJTFLLx%qvWPw4&_Brjuu1#A z&-*^V=lMNfecM;KJ3S>U1%jY-&mPvVuiNAA#)tLq9jLWcUotgUnN}aC{Ze-~gx;B?mHh z@d^Tqf&(eFcyVup0U>cuy#k8s3rqO=DxMOMUC+V!FqLE{vS6Y%PT z=-w0|Nc&m$sxMt~AR$eQ&=?ktMvYOkQC2E3f}$u4H(@3ds%xNXouqLwR8kEI3oKB1 zMT}^oEWvS$TtKeX9Ei?zC4_Lq>s>P}sjG?7Q-;O32u2ujEF6xckO1qsd$6OpqRxgcQbfHdTs156wP7G>9@c^AH%37eXu*yPHZo{O zDU!6IBte-`yD1Pvfr+3vAs|=)!6)pjhiBLVv(svEyG^8-AY3+zEpRbTdjV;)yPSlH zO<+Bes&Ntz623*<_bS%)KrGEDfYW59M3$=)UEmAJnyiN82+T0>GhU7trMSE!UZa(e zS)hoAfZ$f-Fua^(T3m+!Ww)7w7BYaE1Gohx$$$yvD1kt6ix~)Z%489E0$Ifi|2KJ< zP6~^6%6~d1aiq6ne7iOWy0A7$K+?xY(dQ&Zd88YHHZ*zIf|A(y@9z)hvM+4;VUEFa zbHUxQee{0z@!L+T|MRO^T{lAqm}aj3-Ag+>nZpa0Ye%({hU;f0 zYvfl>d^K_X<%zEO%W6Y&_YHF7AmKglWM1oN&)5zp@4vS#wfk;c+QC1m;bWaULE72H z`EqW$r|)#>)S{!jsH?r@ubOM4Pvl)mDIXjVLLUxWGr~{i*PXaE*X20ed==iXA9?EN z*^>_eUsBE&r48;o(;L$*7skIHn(Eu~*7KXI8%sM5J(}0}YQ&qIlB#?5_eYg zkI;Q|=(CZJ`X0M57Tas+H;<>C{_RpQZC2I&yxH?(=t$FnQ=2no;ptC0TiV}&CT9lD z_%^+soU)L9_?~kn^Y1Q(S(=;3CeMC@5oa7&`@;jB9sL6kNw=6BkjfFKR=JFkp0wI(fAJnzWFZz diff --git a/OsmAnd/res/drawable-hdpi/map_search_dark.png b/OsmAnd/res/drawable-hdpi/map_search_dark.png deleted file mode 100644 index 6d13bd3992ab33fa4aa0cf4f651a9e7e926380f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1561 zcmbVMeM}Q)96m8Zg|TQNek;c*T7~O<^!jlJg|$7HML{f8in5Hh_W~7r*WDd$VR6b7 zopDCkhLRbHj`^)@=u9TlpbLxOHk^vv&>5#_roxx@^IngSof->4P`qscYgfkE;a3%{d~ZOFjmj`Z&T`5HLa7{di2yQlf*Zg#pQ{Ym zfs3nps|%z<(CC2I;gp@Zix`jK)40Mmnvl=0pdlzdGvs%9Du4{TL7A5~A%A?;j=)~d zgcRy>@m#+ZlzSIci=d!7&*7=A@X#ERnE|JV7=^$GWEULrt>PsnWI~2`8D$>c#t?YO zM6NI)!=jwI`LIsgPNdLBZy@fLDMvblNd>&iUlfF@vU)s|Z}OAUXtLRip~?%LQ4G$^}1cwGL$+Ru_7CP6$f#!f6`5 zH48*<0C3r&;Dd+a%y?giPiv`7+QV-8prP=?YwEyE(7Zm~eNj!WfzpzXfw{K&EnU*&>jmvA zGWXr>J{9aPA=(Ffs(#UCNcZV>X@hp=*0g5@My+MaZdv91c-x)c=|5ysqYUrWOdB^U zrekwLO}_e3a}yAYV;W;_+uzpgpTnHdHAY*0e1==U(bnRS!(|{@z}$L_}vSaX`-JTh^32q^D?^X@3lH=?>l=v*3MbCTmEv?b~{g8-cYx_ z0dpMQZCy6AwQ*tWX?14iQq`E=ij>hQ7u&?ihfgI;?c3GIS!?UQw7lQi)_FS3R+{tZ zNDcp^o+ma=X#zV+c3xinQPk628v<{Rn$hyky}lwE*cdO;yZdH5?i}p++O)SnJNeqg zK1y3n?Pxf6^g;DEH;a=W^&bi)Cq|!8FVc4GIhp<0`P-i-3en`?qzB7)9&oJxuKQr} z0XeQ{+hBZ>rV_D@`8#L9_LacCWN_)9WtQUksa@b%Z{2wN#OqP7K!vv&mfvct+7$j- N+p_Z57E8&y{{VODH+%p9 diff --git a/OsmAnd/res/drawable-hdpi/map_search_night.png b/OsmAnd/res/drawable-hdpi/map_search_night.png deleted file mode 100644 index 3a11b7f50a231914f06baa2d47d91aa86687285e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1571 zcmbVMdrT8|9B%{+BchB=4XEraQ`_kE9(~Ze(IK|gRxLs;*tsp?diTRtXs^4w+JfMt zF=WO^RA8$lC{s~~b3V4{d`xi?Wy&-<%y3iD;RDo84HI=iw<}P$Ka79ulDpsQ`}ur7 zzwhH#=H|>uOh`?TNF<47lff#E??&GEq2l+3Boq>d6v1d0=CVbCpW=Wdn_(RQGP|h- zzzQg)^phV!rbH66$Yrw&cFSy%X59)ZVxtJSy&_s7$;=9PDY_U4kOM4md34eTM~+J& z7o(HTQ(I7rR}Y*nQyB;5mgU&!vSONGq*?DnnE_HHa07vY0`3wIPX=_-eqK_XN460u z)Ndjb>!bss?3P?e&vF1#D>N{TVHlJ_C@{5FiL0kTIEtwelt3^PMlljYNgRa+AF1e# zV~R+tVfvsiaix~HlTYz8$K_DoO;5aN=zq-XMG$k=A$S*3KnDcdPfmMQ4KkVbBRfzN(?ORa|4fHHt3|{iGp!4q)N>&4u?hq z;~I?$CQuat69j|98h`;c?NEUt2NUIaC0>JOsPvdhrNvbkX4Fj6tMu6hRI5kT(=#xm zHi|WSc!BcJAnMx{@jZZ5z7|XBIY0?4XJgrtXcgo-S%Kx9tQXSj`?C(o=D9o!>*wW> zG!5L^065noz)a^@H`E_z()B70>I}draV?yoVNh75Q2|&>U^EQ07z%JDqgLUxbP&({ z-}oV-C?rxW|0$m6mROOI>C09S7cZL$c*G9k#8zorp6ZZDhUm?PY+K;h`=PUw4S8cv zKWIs>v}$T|?RNRFF?}&~=e~y~dEOT0R?U6cqBNi!bMwtA8NRe>@5Ppq%VsO1tjg$I zeAj>Pm+r%z*ND!%o?UaEpCg{MmfyM3@vN>RWriyC(u)lZ&ZVszf-maoZClS3qRzIu z;i)UxZjWjn6k*>=(wJQXMyZte+>cD6RJe>8Q+ z!M)|AX@{fry}11AF=H>Bir*#6x^_a+wLLuMtl^4p=H)|aPqWvasV&>c%^DGITCABk zp#_fNSy=@0Ok;dz@eZ}iA@hG$E9Zl``x{&r!wyW`l*dt3T8XnWk7`@R`3 dZwXc;pb}#7vMaYNm-La}w%M3t_TQn diff --git a/OsmAnd/res/drawable-hdpi/map_small_group.png b/OsmAnd/res/drawable-hdpi/map_small_group.png deleted file mode 100644 index 1ca12287f98913b616c4d25429ca91fcccf228e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1117 zcmbVLO=uHA6kaVYt+Wt-!0Kt;s#SEe|4DXj3~e^ipot+3ww~(j?xb1T-C1|1OKY+%AO>{ZnRNrLo@83Q8rg@(97DHU@Jy0fO=>bKN-|Z9J&ogP zwOX_$MUg+v3971cyvT_nOFYvwZc=mtWm@>k(!1ZRdNo*(-eE t&a5oGyjQUL80x_AkF)zuUB(*7FP6kkwAn^cp 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 Rz?tEQ*SXAy`E=myr9bu@Tao|( diff --git a/OsmAnd/res/drawable-hdpi/map_zoom_out_night.png b/OsmAnd/res/drawable-hdpi/map_zoom_out_night.png deleted file mode 100644 index 2528efec53a72d6fcd3d543d01c163ddb3fe8ff3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmbVLOK8+U7!Fva6!+vw@eorF6-+Y8CYy&{%Qo4z3*EJB7rMvJCX;SxlZnZ+o36Kl zhk|EY1@E4O-ozd}33^jdLGfVmQcw^<4}yY|eN+#n2M3awf9CuC_rJYRo6U_~7-JYF zSDCZxbibT^qi5*l>n}wI)d)z%@=5rVNPxMjV5VU z=S>F(0?aT%8bp-MFq2bh1f5kx*cMvx!y@-}|0&1%ZjoD3tDqWLsO`^nW3*+P=IlC4)wg(}rMXv8uv%0`qI7X~06nF%{OqGT9` z2xL)~d5YkZ&5*#950mks1{)<#>_^1MA)9H0Exb;O9QCvxLJ(D}M~cH_kSLlmF@=#R z2|x^jEUq3pA$9cEjbqVCV>3cx9VK`@c4$4k@gbS!?qow5ka}a@h<#cVxMpK#JwPF; z*hP-M2(Is%ve$A@%Y(clX^1x@MdNi~0N#^y-Sv>0*8mvmIgYPMc3CL{rK~BIB$XAz z0?LeKm2{~*t*N#?a#V$3{_g~)b<(Nxn zM@n}Npa0(Zc>mYWS$lN*-OE>VHQ~vv53euooF3^f^7zM8HG5e-9A9Q>iz_O9(+8_pBkJMR(>$#I5rvp-+&Dzsl|Ke&Uz zAdy4|f1-nn2}TnW7iNuv4mvP6Xq-$)j1Epl+!#pk>;0euVX#U2z3QtRX`DF=ECec7$Jzr zyj?1za$!t1pcB#P_f+<_3QN;inPrXH6;|-f~SD0om=$5 zN9rG9g7dK}<-AVKRnwhD|atmS!bch|6q@Y&{f?=9`vWRI{yESW8h=gglvHYPDLl z7LP)|!f=u#F>H*9#b|6n2MaFJ>a-gSwLPdHFnrrXHgw6*qo%_-l%jB^%@Q21P}p_s z2CYWnmN9kBW4I{GI8Ins!#Y4k@HdS;t%K5n2bdxV;GA#Zd00bjFz(&{fkH!^jeN(UN4wXc2HgFmxVRy4m)#7hV`u zg?OCjl3bSOxD206a!N9;C>)kDcr0yf-VKoE8lWB9#<5#ic3-Tl_&`I@FF`od-hzoL zL@=mAk5rV#)X7s*wrj##a5@}QvuYLi_B=4NK6J=NpJjWG9Drr%aVu%iamx^CLFeOi z(hv+<)CI!;tN;=guAzxH|F?e(PKpVa<)7tgU*U}m#a$|3WtU9A#SHQ>Rn9(m{1ek` zKCh0J>RB`)3HHsc7Cgz-(DTt?!DGE$Uc4Fk-Kqn9FOog-{^082?BvJl8ERwsNAAVV!QKPR=9T-)YfI{8 k|E-6=FDIX^_eY4%0pfGN_^Eq`cpEZ3pBY!zE?iyy18`Deg#Z8m diff --git a/OsmAnd/res/drawable-mdpi/map_directions.png b/OsmAnd/res/drawable-mdpi/map_directions.png deleted file mode 100644 index 4dd4a94c35fabde2cd5a34b54ce7b77b7a7fb87c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1210 zcmbVMU1%Id9AB`lHd?8aLaRP3TPU@4KW}dLcD+kYZ}043FO8R@Nd=4hF`HYG-C1`h zxl1IKqy#(*6|EKpsaRkJFirQ4zub0TWEq))`K)#J?<{nwL<6J-PMGmeSA*8x&WJ0>& z83V8c4SV#JuV9*@9vE@U{kXq)K(mm?88L>dc>!TlRC;eMFswm{X%h~(eulX-JIBzj zoniWtMWGmEVa44)7Q)`K?y@yDXsI@{x06oSG@`(R*r03PkRNHa4Aa!Bk$rs3GjtPz z2Q$oyQ~kvrI*UR`Cpnq51QF1R%85x?QI)4@iO9T=;w6C-ELRaJRG;w6bC2sRq^u~B3FXh&Ov4kIgc1MDK7jx`!4 z8pauhc)AjT7Zi)Div6gSD3UV1W(2&*3B2dUaW&BqF2R4@SQ8zUM+3;0V1$N4i`2u} z(I%7J-QQ3QB;IHTLzfiA7}Ak7>_HzF^bA98INP-~khE>nlx0?uWx%QeP+3*AC02$a zOj;&@j%l~`ti_jgMal^PD7jo#6muY@E4og^eF+KVWl?Bz3x0$R--2!1F0tL>Chp7C zvLQ4u3d;x$wY#9Ff-s6ID4?_1X4UCkeXeh#YV=fGrj@957`h|S&WFgOn|apUHGEKI zDWw>S$SMY~S;Yhnn{pD6m4Ridz;RM3kYZYV`~T*TCr-74r^<=U;qcg2oL@sX*&FFjG|Tb`Tze*VWdX3rn1%)j*0-3{h} zkIed~`mOQWf_~-Ajq{%@ZN9j3`KovByAQ?|4&NR+{pXdL-~F?v z7ki&wJbv>`{l(d7?T4vf$F+$Q<=dSjXI}X0?Tuj9<>>l5pLhP;IGg|YP)gc8v;M@R z&s@Abcr|&rG1GNz-Q=q`j=ul(eDLtX-8-G*z3Fw^sQPD9%pY5C9E<-Zg F{{WQ}prrr+ diff --git a/OsmAnd/res/drawable-mdpi/map_down.png b/OsmAnd/res/drawable-mdpi/map_down.png deleted file mode 100644 index e6007468ddff62cacb353671eb0dc83cffac5106..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1195 zcmaJ>TWB0r7@l>pmd27u+oakM4inH?JagNb*_|QNu-Vyd2D)k3E@a>I%$&2yn9RkQ zNq07gq^)ADTB`I(`sPaw*iu13iZ>`oUVIP)@x@X^=tC)aD^jdycC)b$p#w8#&YA!F z{_nrd2lI0$_V0UXAHy*Fty!}{*TdPpcMpBu=@<{`@?uhLC8vXS(m@en$~dqIuspO# z8U*3)TbpExVe;>~%~sN?pVXbe<4|V9rCvzU3^O&IhR9ha39!kc>l^HYTR*VC#Rj{e z)P;IjAxrM;T0~B-%{861Wkni>Xg7E2?D9N;>UVwusvR#zGufg3wkEWvcdL6 zwd(Vr5<~@VWt`u}Z0^1i$y+ydKH_Y0$FS;|> zr6dV;p6_%zT&KVV(IPKun#KzfFG-MEz_{xtD20AJIbbkJ>_l#uxPcEcMq~%8iNR8( z{SdscUf&`1$uqs3Ev=buo^kE9_`5inC9;3 zjxs~4Mn4s~v?yrB44hSu_=#m2Ed9b^7wfWuv2Cj=lvGuQnjmXX)35|pA`->1Wzx3s zfM-{{SeU5^m0GoAilSJR%ZgH|%C$mGDiqCHxir99ew-lRAp_rT=DUxrJ{7B1B7%}2 zY6ii|pbO@gf+UESf)G?Hy{dzw3$BlYPW);*P_4!y*%sgE*jb*E|rRH z1X0ORpoU}{B1e{BQC0*^#3I((61$DZPvo!Pr}Tuz5f0?&wkjdfDJc+Z1q4Nr(3EP5 z1lvfWOe!KpRAhN7kz-M?>~*ckq7{r49x z4Cii6jdr`&u1+@LX8GWr+qc$Rhu*xbe|lAKo;pAcvbG`G*uZ=&?FJ!+Dt2$?1pLyfle_6|a A@&Et; diff --git a/OsmAnd/res/drawable-mdpi/map_drawer.png b/OsmAnd/res/drawable-mdpi/map_drawer.png deleted file mode 100644 index 80409f36766d38aeb6e9a2745a1cdca4a93a8535..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1062 zcmaJ=&ui2`6i!(XsT2e+)r%p$C^-3@>`rJ}wwqnM;?}xdaF095%yz>znV3x7Z7+g) z5h{rPgf|a@9uyIe9{d9o4}##;g9nQsb+X;m9!dkr{K$LX``-87d%V7OeQx&BtRM(; z%~h|>*ZKTCdxn3%jof{{Tx9hw+n{|mLMaidnEFI)Mrf0?3Bo&fKaxd3C_M^0UDj>g zbOIX5D7TTvQNq0iVR3n!pkPRt=#$MbcBP+h-%DbMUFnY1Qd>!l48qmjlx*y-b%Nbt z0I{^ZBrc8}4iFKB#BsD0XU^D_Cb$mY=huoPPE6R)l@3XDTkB$trbM)48w9Fmie)Hk zmR*MBYogB2ids>06{yg$3`f<)=_B!IDegOMuQ83qPp&jzEO8WNG#bexL#FAbqCp51 zRabN!a0`&_#0-r=oGlax9?60u0~L5!vyO1FwGSRYVEvjI)ST5VEw@yeYr z#&ncj&C7I{wMWwM9>I;2M&d+gCp>{eSw)0k7y#8YAh7yo0FaM#p!v4NHRvO#Rivpu zKBnJcpYj`?M^eynkPZXGHZVXH+W?wIxTJkV0J2D+L5{AMHA&$VmArM1wNi1#`!nAj z4F*3PjTVXdJf(bap3VO)@u90Uy=rIt#s70~uv`M#h0>FmPoP)z51zmLyvKgee1E$4 s@bk8*q%+S#2#Z$ zSSJ!9JbDNm+C!yEz3{jdRh76^YNb#K@lcgJ;?(AbdY~1D_D~eYo87=6;!sQW%s=yg z|Ns3juTD*z+24D#m*cqo<#Dsh)`8^R)5E?Wz1l=<`H+_Cbec416NQ+|JH*1E?4em) z#mHH@@DvYoT-QanR;TsKS;Hoth!Pz!_5z0HxZ#mFK=wSQz{0bxpW|Qtyv769$?-F4 zMXm%zJm-!thj@BXj)_Bq0W>m=SClra@L0p_<9+*&(1XS&}tLkp)>d)RZABp#AX7Tj(^5syWv7#iSfR zM`>V4QnT3_&84$IvucPN}LUKuv>!DyN}f>2^lYG7fIYimuxZ z>e$%{4^s*(pG{E6 zM&;8py*JsI-7A~*UJnmBQ!~Zr|Xey+`)O=;Sy3kH6pLaQ#EOAFkc0 z_kU|Fd~v?pDg&|0Iy@*|yK(>bC=UnLUQZtR<;#2Be-@hu$2SffU%&jdYNxpCmsbA$ z;PCpb+hO1JKJJgt>U}?5s|cC(>iBn~@UMNVQt9l_v;2!=qdy#Y*fW*c^X%^F#;?}O wp@H4I{_go0PJ({UDpjX99?X7nl>-krcjMe||GfC>Qu22wmnO^~3+J!C0o0dn$^ZZW diff --git a/OsmAnd/res/drawable-mdpi/map_layer_dark.png b/OsmAnd/res/drawable-mdpi/map_layer_dark.png deleted file mode 100644 index 27ff0e31ea8ed3e1d6f2221e201c2f040c8807f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1478 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 diff --git a/OsmAnd/res/drawable-mdpi/map_overflow_menu_white.png b/OsmAnd/res/drawable-mdpi/map_overflow_menu_white.png deleted file mode 100644 index 280a7d376b6d45a34da24def97d28ca8ae3c1648..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1141 zcmbVMOK8+U7><^TEff_zSY7ClR@7*Lc*4@ok7fdbN6$^SWkJ)Z$^DvpZX%X>- zASehG(TnyZcoBLM6!g-I2dxJW;z4{=@F1ucDJaxQyIVb!9tuTP5Ar1t}f!G6BS3$uwO-WBZNfG_Du*%t}zPB(6A>@KZkt; z(Goe85j3J7Q7qq08;MRjb_0wih`#|X{&gek_)||sr zAsn6>tXNZHmTZS8t}U;{2h28i8pFH&NaT(+y=eR52bU|9u?spJZ&5q$_0{15^$ zouMq2mq1odv!X0@BpbN?99d_`;G()({F5ny%OD z={leG!%>=*WtnC;n&T*}K}C}uGGfY$x|7+IkcAjkJWV$m@D38a#k=}HK0pzEuK zy{M5WoH9B#0-8-TwCg5uEo(=p4FA$tQ#-0m29Pep$e#!;T#ssZ6O41WzN17Dvr&$Q z4lar@uKCu43q4fQR1)8$ZO2w@iLtXnRib1;$Wj6;^OVGyRSI&fY}lqPLe^^9Sqop# za(q6M;RiT@XW3#_)^f!{UdjnsshDRut%)sp5i&drHhnwTcLU3{)we1E*z z1w%C-`BBXeK%oHk>W1ZbiQJpiXeDF~hRzvi4}`u8mXoYFYY>p7EMFA`lj2QAqy)j_ zC_}bciV=BeOEM?g7E3np_Wvf2#-!+^Q~v3k<`HhkWV<>CSXiAT=;84R@to9qZr#E& zcDtnID)C$M_tH{-3$@|XjYsF(u77Kro1b|zy)Oh^;KS(Bw)dUl!tL*^UB?z)o&4B3 zH-BNV?WR7P`c&g~i+6Um{K)Uk+`p1~yyal~<(aSbgQ=qrQZJ@^AGc0lSX8$@YyDVy zePfq?zvskE``o#qpL@Vl{XuG~=hF5c`PnXU;mh44xp%)d&fPm7cZ&-H)4e%j>nUQk WW%1YNYiD03KY~(mP5|_1L@hxSbMBfCOYc2GFo7 zCO{O3^2okf(1alQ!%BCL-4ofxOSu}#y~>R{Mh2uG=?g& zAKSx5$cPaHNu@1gg58;pZYeV$aWdA@j5eits6Yj_h^Ey+&EnI3Y*jB0W#^c{&{c>% z;K$aS>WOrrLEQu>>-OLhMNz1ib5pFZk!BlEnxt5Q7inh8(3_wJIr4N}B ztVg^yM~1n(xgiG#z2Q4e1r|jd6m)4w1)3ce{207(%Zki1tSrZ39uH1?JPgi}42N@^ zOyeFv0al7JARd!*dN$>USd#RHLX3}QC@SRf(E&QZlC3lo2np;CCdUnHmMv-$$k|pL z+iP6mrd&Q~0@2pZZe1VDbwO8Bw{XyV4#N|7VAE;SI4)s^d7mBZRcI93771n{Jh*4VD?|QsSC;NW5(OaE;9l!Wl_Kz1+ z%j0jB&Sgu2-_(7cDL9fndD1768!;_QP@8v5q zbFV%$QDBrzUOPClcjD7J;(Dg?)TOJ;b3gK~=9fQ79Q(e0;x@Z%>1<)&T+7eJAB^dw z%iBNxZQG6gC13A+>9yMVDZyL*;OO@DU6%vG6`E-klw( o@IIQv#?PI;H~RMr=as*TNF+1eSUtJZ18L>(X=SqlNw z7ZJNa0ElwpI$yi-2S`+7?f(S50G#=?y4LNW07__F# zoqRxOShWRrZY*q?QJx@Tv6wApw`qD8L2(>MkTgNlI7Hw^LN&!Wt{RmY4FWJEU5T2C zrlOWcF{JgGZVY<55<(>E_pd2djnzcKlo4?;N>DbEh(xTomeGb80ROtNF4|~IL;(>1 zhSsM`upXV288Xb>{S8?_=ndbjE3hbHub@eN5ulnr!HvNio2 z0vX$iWqXCo-IvSP>p(O$y-m}4GhNUU)=bR^Yf-eme!1#sRlB0fTFiLLD$`2T0??Iy zAUEh*1YOQEudL?->jbi$cHvHkOyZ1#0l15!BpkRX63}*;WoQXo<;(v!e*|=ju$tvR z&67ET9chVcqX0K+!vs_~K{_0jLm%DRiXd5ge1fMfKDRi0>A7srU^WVX9w z?|aV($=c*=e;~)0l9F@SnU8N?esIw{b$NR_ujtI&6W6+r9z>Owis#=h>=KJRQ@h4a zWLKn)AK#HWdSb^=!QiJp{R>zA;VVU7cP}JH%HHr4RVO#c^S(Ugy}9vrUu8R4IOCe$ zR<)md_e%4r>wizpoqnt(r(&VFdhnrO=&$_#&y>x{3-s@Nc+i>7>DY9hn!Nhc7=1Qy z*wfxR3%>c*d4UeT(@}cYcJ9{G*INI4b%H!O#+C*Op-?x@#z%iHy*qxE7|+GK%a1VZ z)*s4$eSO%I+O{j2SGJf;bSEdDUn-fus$AT6tkEdXI(hw$eI|WmI)5V9yF01f**Nh) zWjZ@|A@}|ClhaGu{#4bFc`%Xs@$&=oJvA?e0$G=oj@z}{hev`pKKTCpy#rs#We?A2 sL%(e4xOhV->)Y)gU8>kO`_={$`EE~h&d8hXRn{-f=WP-`+_`t~AK91D9RL6T diff --git a/OsmAnd/res/drawable-mdpi/map_small_group.png b/OsmAnd/res/drawable-mdpi/map_small_group.png deleted file mode 100644 index 0e35fadf799656c7e3379248edcdfb54d795edeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1054 zcmbVLJ#5oJ6t+~Upo$J`&;d^FLM8m~i+@zN3UNXsky51*4H5%q`_fpgea5~tZl{6( z(UFA-2_b=mgv7|g0P4oT#0C=+h=m215apaEg`w(zCHwB3-}k+D@4atlY4PIZ#MA`G zag+50x5?HM#e005eXsPceP+vPT5Z#1(xH8nVy+wz4}*GyR&f)fVDrXXJj-!o8)2(W z+l@=MPa+W&K4Kmv49#(~^Lc{&HB5nrSHsxhzrA|RgD`OT71)p)Nd4XZ!Na` ztu@~Y`1v_7o7;>a!W4l#T8}e3clZIX&GyBy#DjqgU32*Tq}q)oP$4M>P%H_)tmwe7 zLlc1;dAD(bAw}H{IGW7PB0_OKD0!sK#9g?|Z z=EU6uwVOyWp%F_fK8RF&5EP|S^r2{>prJ*<3s@+q54tEmh?M#u1uOMTvKxH}eQ;pr zob#XW`|tm(OiqmTZr{Bf0MJ_)mrG=Qz<+!0Am1PBnHyy3$GHkVWLI%raS<5NZ52@k zQ<*{~r0DarpQAJYT@9mL!Ik2Zl4hGx#m7V&rbE~Oq=y@hqD>=Asc6cuGW4}iF4B~t zXXvLBMXu;%QOy`%aM7WKiL$mZt%*84JVd1%5>a3xtWXVe#`2^_hF;ezk-aZwX=)vU zr!(}1Q^ZiBXv3;t9By;yIXNxdh8484gOEAn}lDKQyuC>Q$*E z=i9c(DMQyVb|jXq*Xz-GENZ(`EEGkN<#?9o8G>NEc?&BI#_|R_8f4^YuHj(AwkTht zqS|vfLlaLoLNJ|TaZ|D7wG%~B#x@j(g;9<*O+T)6w1-RRUpKZyd*yitu_ff$bFN0} zQ61=zN$zfM$OjT{qyw%&ilWTOwl-%X3m4=JO>UyPp-Z~J>8W^CV8nPl#l)c)V+3BU zGKhzwqN{oWL9L@_EB+{-&x?7O%OyD;!ki!`6EPt#r=UD4z?7Kna0`})6-z@M+Xk`S z=E}F_N?8{v*mlddJ=5ue$(oIAuVy<`HtSbipdv*@Gb~>?=oe}uZW+18vq;aown?pL zS~9lqf=fW17op0KXay!7i|LHY36S9vh!;>?P@t;QZNC10GsqIBSifEV(>@&$=}CXP zISk~mIZntTGvtzC`Tm8-uK)z@F32P0#&_z?TepV0n83YVF9+V;RRQOs3=;{qBByY( z)g0e@=i0@^8+*e0!|%PaB47Owz*zWlY2R|NDRi$~3$0za@)6L5oqcbHmb>0Tfk?$Y zxBOD}#S?01sae@^;(Rc?@8D-kqiOfxtA~$ve|h9QhbCo9?w;Vx zV&%1mLVql;4xD_wr^EpCzTD@EU#(u2^-FZnsiq(6<9GGk>~0+se*W~Wg}V-i7a!H0 z2dyFMspB8x!SJz5r>_67GI;juzsH&nKJiBHTDo#&HZU6re-LQJCNJFg%)`l$we9*2 z>QA8N=`Wr;x%+YIOmOYDZ+__?JM#7c9`tbF^zpxb$3N{~^8Y}E+=P5~^ytz*ms*(0 diff --git a/OsmAnd/res/drawable-mdpi/map_up.png b/OsmAnd/res/drawable-mdpi/map_up.png deleted file mode 100644 index 013722c6b49062ace2789c83be748208835dc734..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1190 zcmaJ>O>Em#9Cs6KgJp%l#Q3=E;Yny99Dl?gc~-qPjT07Fx{yU$#sPTtdugrKAJ}f= z7Br2j66$v2vKvC$rJ!kINQg<3#(^9FY2va2;!vR>F~JZOHx3o!Icdrc)hyZ1@A?1x z{eS;2uQz928$bBML55+*>nF_?U7t(u$M)0bFFoTQx;!6OJMkI68~0F1m@@V)0_rZB zB`t#R@_XNt35Ln8Iqgo|X`Iq+-z}ijrjWP+MKjFAWD+2Ip2WZ+vyNx5TQ|R9frAb9 ztkMt~L50jYCs#spW@V;rugu#Jvy&&lM50pym&6Dp?t&NTiNOwdb^4wj^DG#c#PbF_ z6xC@oLB$UVPzow%3!)4(SP&IegW9V=qI+H_@shv^P*;k&Ac38WrQSl^)mvt5#~0lh z>|7iNI?wldy+W^8@WWYNgb?zA#7h!KEx2gei&4UP(XkPONg_LRg4pprkTN36UyKcw zDjkO4293rpu@~(mil&TDP{4}?fp^_Bu7PzFx5)o8_Oy=L%K_nAB=Q$So7SUyYy_sc zd$gm}kgCy7hYl?YS}=Wk(IsA7Hw~74DPRZdvVyT?sVXO_s?0$_h8%=g;#49M#kOS9 zweW~%PrO*1t_hXtYRMEuu_~7prBan^#hO&q%v!lL!q&YgMxISZzMa(f5L&_k;x*{%> zv@YUM$yPXsWQ#+#EODBw2vEc#hFyu>!Q+SWH|$e-LgNTVa&$|TkZ6|_4#OhiM3K;x zLPg@bNTN(CA{x?Io=W7?)_JIvMn|+i)7Ra>pqt&%A|9QmkPgo3=4bcm(A}t;<#zJ3 zwf*41WR@HIbz|R^BZpA#;-yR1AOE`Y`|I)g=H}a1fBPbTKMy|1^v^X<9L?Wj#PZf* zd#srM@xa{n9|e|>8E^3%DWE+qT%2Qq)Z0hT_xxV84yciH|^Q`@=AW2cfs z_cC{HH@`hPcHPLovu3@&(E;u8XW@~n8A}7V#`{ZC9~`d#^-}v!wSD`QaCPH}KfXK; w&VN|__r*IOljc`f;PRc-H*@=c$XsBu%;#GB)7jHEucd#EdUeLUHvR7Ee^t|hxc~qF diff --git a/OsmAnd/res/drawable-mdpi/map_zoom_in_night.png b/OsmAnd/res/drawable-mdpi/map_zoom_in_night.png deleted file mode 100644 index 1006512c2b278628e5f8c74ee0b63d30599ef8b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1069 zcmbVL&ui0A9M2pMnd~IU6w#Pn9Gc`MO`0Yw8(q@c!a7G+*!1K}^18+?d0FzdW@CZ~ z3c|d39?C8QK^UGy!HFmF>OnmD2MBr+55j!u+Ua5JU?6!v^7(wfpYN|nGt<|H2G0*N z3^P=%*mb%NXYZ*2`u*BAf6?U}Db15v+$3!nBc|wK2eH)vE}%Ms-rDj9G{!LftA1mi z%-5z27Y72&FhUwcl+7?>6KMq9MMPK!E%>3yeSiIyV|~x$=F}RfMHXuLmGv0Su1`1I z^+i|rxQTIgEH$Ws01?Qh!BUtQsmXQh8g!psiyYg5kVTU_5H(+$VJ#dZRu%HR3nYcr zbU{+{nyy`AWqKAtL6iXxbVJP>f)2Q3!t}l8rxfUUjA&TvGTWIG5950BH zuInO@MOo%4f=|{$0#iOrMtT-(l(?}U5g&(aW)V7gg_s;wdJsYo)oO=^!=#%inldqk zkthj341z4K4mu%q^jF4_=%le0A+e4Uyb`;#9?g*+nda_zM;VZ+F>b^@Eec$+vAYtW zkW_7xqkja?_YAq|xX5Wj-jy`O>yo1J1)u}IDHRG{6L~oefS#SB_*zL;ZL3@=X^JID zC1p|t#bQpj6g{6SlvTUOt%eDKp^JLHed@c*wU6Z*R*WFQaRcL}UKh-?Fu_R+N33Oa zs?J`S^Ft4}lhLe92T|K7_E(Wtj&Z-~R&(G*G?( diff --git a/OsmAnd/res/drawable-mdpi/map_zoom_out_night.png b/OsmAnd/res/drawable-mdpi/map_zoom_out_night.png deleted file mode 100644 index fcae67a6e3fff3de0121966e80bbf9df33086623..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1047 zcmbVLJ#W)M7D$vB$IZ5v z-7ed2mh0*i`+v*rUu?TYTYb7t0-B=~b4{NNFla|;6L&H4_nv*i4UU`K4SRjs@2prJ zi9}TDh((kzG{-d-iUfIEn1TV`3}c)B@$rZUp>OjWS_gI#2M@#L{S>e7ulBtCEzk7% zh5MjUSj<3#DFQ{b9cNZy^CPUY+FLsAShQ5QTYtH3ZtSnnpl#Q=ed~IM3QbwvT2$UR3t?a zn1+z;#S|4noXu4hT%37nn9z{KptOhvWQW>3i}W;wDCu<049D5HP^@H9ff7j;p%g`B zUL);{cJbdZ&ehI(dkL1hI3qi$$NCY>RbW=Tiyf7UEE?-!8nULKZI^gE5sqowwR!d; z`k`+r!N9|V012LKV8N7CL#RU&3V~d&`vLZA285NJ^YBJX(OefQEkku=xuq^@u-U9B zj%w<)`jX~W*mj&z6nnVx9Wviztb8HXa#D;aNqdBBS5vSyB$Q-Bk^sjUbsgN@2xFh* z*}bw&r&+r=4R^7>l#&RH>THGQ#GoV1)782sXgbscZJ;8SKQshWHCX0IL5dpiW4!;r z^^;goQaLRD3{Q2%CbB%9QGp3(WWq6HP|B!s{rJsWMl+-BHhaa_!S9okg-K!J`}-@0 zH(o!6@8;{zf6hOO6kQK4e_okUrw$JqPmjyjYZKh18Scfw@)zwWx>HiM-CA`&EIxVp E2eYq4X#fBK diff --git a/OsmAnd/res/drawable-xhdpi/map_dashboard.png b/OsmAnd/res/drawable-xhdpi/map_dashboard.png deleted file mode 100644 index c2bbe0b7b97bb9d8bdf396c4c6e7d4b81118b84f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1222 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 RZ1YX}TCo?c7p3dB{sA3^R)GKj diff --git a/OsmAnd/res/drawable-xhdpi/map_favorite.png b/OsmAnd/res/drawable-xhdpi/map_favorite.png deleted file mode 100644 index e2e02d791e27a2d44f04af2e8b473f777dba4442..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1368 zcmbVMYfKzf6doP|(okun)e0e#!N#^aI}dht9U9bq1w8M=?4 z))kueN5zPRHmxm2Yi)vp4QVuumKsAOk*1}_2gR0>s*Tx3V$dcv24{gqe~|ugl9_wY zz2`gUJFhudU$-SM_pw|60P?&w?gncGlW$Iz^)+I#Icr&OdYVkX8Z^VKE&?t=;RO+E$UmW-ejf}=1>Gejwa;^5K)S>ALZ z$TYaCmwZ{06AGE8#vn*I9JYl^ZK~daU^Go5D30JbY-zwoR595ItQaLJ3vSWibxAWN zRRNP0Sx#*?osh+JF$7uj`IZeU#!{lJlpzsTLogeP$Z|5S1#QD@5dWpIqP7u;Y9i7g z8fv@FTlEN*q`+40?(Zn6Xt80Q)g`MaY@1u<+htKPy>2ID-Pi<4U?>VjO9_I4F^a-q z0<~i>NAnJtatLA&#c7%s*p!`>@YU5MSxMtGNqT4u^AMG;O1zr%P=pJ^3EEYe!g>|M zWEEaa`Iao-OIYf@Sf)xBSyR;ms@j(7g8GnZszylFz^bZ+s)HLFB}Guf#-?PM7Nd5H zy0ljms&!Qc7xK(VD{u&6xE&{OJ4~`H0b`sUhiQ%t!W6;UIgWDBG=)J+c;Wx%53xug z$!7Ua^Q4Zfj!bTsN5K-7he=ed3DT`m*<=6m0{}>ic-^i*WHQnBS#5@^pzDbjABGDK zxmK<1%ui&>@$Dx^!fzC;yXV-{mifn;j;uo8VH>x`UAUqA!^4S~t?1%F;oZ96*=vce z?jNV7PWHTg^w@j(``;Ox2yPqgU8SuZ%Kmd#Zb1=w6COOhGiT$gg?)!w=(8#_xX+T&4uYuQJlSfWB-720;$_q|G=*9@$&=HaC#>miiWOp zF#lx5k?ip5@eSdd7mB^tHbSb)|EFsi5Yv=_U_UO{-sO# z>bswCSEkT&Gyai_kIt7whQ2;pQ{nvm`O#n3ANwX+Uh~yK@+akv7S5i|eT(C2JCNON zTl~#eJGwmA`rkh=h&`wG_RJ8cr*jhVt+S_II7@43ldpXKciH^rOY=u=r60f3ye|zX XHqI1h_`AMH{_DJ+I`>DFyW{@=v3cT5 diff --git a/OsmAnd/res/drawable-xhdpi/map_layer_dark.png b/OsmAnd/res/drawable-xhdpi/map_layer_dark.png deleted file mode 100644 index 2b89f03e66ce5813080603799bc976645031b780..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2105 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 HvXA}?zqUIt diff --git a/OsmAnd/res/drawable-xhdpi/map_overflow_menu_white.png b/OsmAnd/res/drawable-xhdpi/map_overflow_menu_white.png deleted file mode 100644 index e716e1f0988bd5e948a6d73e46bc2feb63f9a803..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1337 zcmbVMZEVzJ9Pc=`EL+YO0>*)8Q$**W*VkLGbq8*DH#y|SxLvXXG16 zf|^0b#)T0>bdK>7!WP2ROru0MFpMYxHPOh6aUn+cNf#KAhziCRe7fzX9~M5?q|FSL7Ljz?2LnV=20Z zI*ejMZ?XIsR6277H4}-<5o_jbpkT-dTg(uYha^ke!4r?H$b#%6WsXhyaGqs3oTYdM z_tA+Y4rq!O<%H}7l$7V043UPd}Iuxk!RkNHgR726hJT|PEmZ(V} z?^}VsXR*v(u|mKAqNN)#U2o1;L48WMbTg%A&_Dn!kBE|@IqN5!9L-!g2n?ka$hC&9 zqSHYZlz9a3K8{Ix*#yocNH5N^2^tr9nZijg17sghdu55jX7Td>4ITkS5l*H2r*iUJ zupFJ~Tpz&2TqgkywvPe(r1a9(KM%HFwN`ATou?Hu>X*p2t~WY-tb z_2L^6F=dYwa1%xL!5zhG_M}G9fmP>Hg-zRD|NH#sFDw$0=&`Ha6({#>|1{TV$2L8? zGf?>4TL*4;T>gO;jK{kMhjvv6$%!nz*!_!gwm*Dv#B)=X^X z;MQ~C4r6H7lTpB!J(-&?ghuDy9wDyki99X^`=b@7&0uMFh&mi29R zb?!UXKQwu@cl5OPtMM;4P8{B_?_A62o|BHy6CYmij3BNjiR-t{pUUm+x$yAFf~Zyw%PU9@-)By o(VlDDm$kUGGwx>Y<%JI-Ox*p!H%AUW;QY+Op}OF3&9)u?0AG65FaQ7m diff --git a/OsmAnd/res/drawable-xhdpi/map_search_dark.png b/OsmAnd/res/drawable-xhdpi/map_search_dark.png deleted file mode 100644 index 45170ec8cb82b46279006a6e3969a93cd0d9a330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1779 zcmbVNX;2eq7!IgZLcv0&UW|4pSb@T3k6dgd91@NIK?oTEwPKQ8AOp#U&Eh6hXF%F2 z)z(&^;7}1zup&|gN(EH3)~a|g9wSw(GPH4cil z;Oed>iWqQ&m(AqHqtI^D|Ih?>?t68hhBxpcKq#I0f{-gE|K48G* z{3NjoR++t2EizVq9BU^EjAOawSp##*R%x%VbN0t zGi@MEfZd{2N9NFSKCATQ6^v$;>Xl)WWhzi?$RMlM3?Tv-G8*monnYV@HSw>E*P<;N zo0)*rgoVtZ^lU!Tyr#))?B49i4rJBHR!{~uDcURrsn0PICR(YG^Vu%~+FaSgJAQ6DT1S-VE zB2>?x;^Y4}eh@1PvKPyLif8(Wtw{UwRV%QYSItD2*bbuDR$0K^{Dkd5o>CF2vEF>J z^TRE!+WBX?LRU9lKjS(UHMej>vFGwN^`56sW743;lpP!VecQ)ok3|h9=$InU1Mv;9 z#Xj%7uPk>tc5BQ}EzL7Qe5#wnj+9l!k9f%u6RF!rgL@s5xyS1);L(l*hs`&bk)@=1_>Zj~ zyGK0gojMi;DO)3BxnF)ps*gXf^y+Pr&41MV={w4ki6JX%qLl@u%a6ljOOGb`N;0EE zc72dKba~)dY+sMOg10lzR`(39zV-_yC#-FdXS(@W)i zk2x2ekh~YFEz6rz7r2b?Ae6UhaL2X#hdZ~-tXKD^*Ur3G-z4aL8oFX}x6d6g(a}Hd z(y+ue%h`9GU)g;hCf~bu=I^6J)XfxF+S|0`;kMyLjxD|pI`3=fp@p|x;L3r#@pT`c zVtBU@x##l>t?gHrQo0tN#`aSZ@&YTXY`fG#ff)@2S38p~7N$t&iCj(wR22QjH-9q# z4d;TfP9skbosa2A>F1Q@t2$H9W5@2;HhTL(%jT92uKsb6TaU(NuXQ9%0CmjTkaA_m z*4ATv&5N=wHY*)$?GCj~F|MQA2K&w&s6c|(G&uY7&tBJk;pexYxZJm{2iZ5+@1cJB zf{H7BB9q2r!t54(OwHwRMO`uC-hJ1!R#EkJ#z>Dx_QSY&yu-hK zx8=wW-Czj3?(C0c@)iI+s{OpkGaOc*VqTs&@ i^AsU`VCA^?3C?zhy-wAOb06A&L(1?tMZ@xSoBjbz?WoNF diff --git a/OsmAnd/res/drawable-xhdpi/map_search_night.png b/OsmAnd/res/drawable-xhdpi/map_search_night.png deleted file mode 100644 index d208cd96bfe846333754960391dbdf5b6bf4e416..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1780 zcmbVNdsI_(93L-{SIU53rga@ED%|bfyBAv^Oa?e%fQT`U3)yxrY{GWec4dPI5K#$5 z%|Ou9NRO#V2%!W~@kk0qe56M>po9_{DgvRQ9)#`?tUo;d(LMKff3NT7^L?NDX;eh0 zll?q<3Wee%UL}eqXUIHe&mzCEme0166O9O#5^M29!YJ2c6d{T$FhH!4Ct=Z;98LS^ zJmyECSf#3Cq=ZxwE>PkchTJT}FllronnLjlFzMvVWQ+h5Sdv=nPampppaW{upB~GR zKoVULrc$p;*JEqbBVv^4$x1#-4_E>CnFJ((1|#HvNt2>A2u%L;DP94&HXk$Tz?2A) z>`#AblvEN01mSuN;4rwL5{6-b$7jGCUlzjg0T2l0Fd;q@hCm1wz>olefa!-$YSW{M zf@o35v@UYzPgfCyPQYXujYfu%#lZDROqkE-Ga-bDARs9L8q&0c+yrV3o-+(0%%Ie( zb%Yw%0%k_J0^daV(@9HTx}ecXB(I3IhUq|&A!C~4Iws73m>P}QuPJE*5sm$8#%rYw zF=;xC8I2k6O?oAnk3`QIFd4fyD>4g`)(9f?YBDME6cMi6q`|a=SmaM9Zy2Z=6|gxd zs!(vbAj0LcK|aLhgM2=UfLsj5I7$T@OH`mUJg>vEe0^EuK-lC9!@*o3!s74|wusN; zAt5{#Zw4#Y8VI>oiOuL%le(v|@Efs$AU!50aD5Dpr_5AAlnN(sg9_IHK|xbl2bRXF zwJ2^hEHkI+rPm@%uTI6#5IwE|rs6D6zs3eOhlimo#24goQ3zyn*%;`{hm|1a3qu&f zLOEDvff#>!6D#}u2 z9g@Q8g4Km}EtU$4$@*-#&i=OnBI=R#9!qbb{|TGECg|zx^d_q-PTL6Y1K~?XUFJrO zY$>Jfe6sX(;{C?-D;9z#@t$R=?p@YBIW_Z(#*ptT+#IvpTd2L+hTeH49wYJB^|4K9 z69M(gz|LirmpvzTc|R#xpEx(%k|nfKSzZgi6c5ci<635OqWhtH)dtySey@k=g4LMU zT9UoBIZLIwpSfr}xW+o%Z6Z0ya#n6Y`@Zarx98BP!@*DcQtUkb zE-4BxxoX?z)w^Z*9*qj|O2cR_!>ga3an;zxY&#}AMy
B>T!R7hxi7$TmD$a3Z?as{N>^@oM zXQzvsRS~6!Iy(7W8 z!riek-7Vh?blzWCc8gM77gmsaaiFg_*7M%@aP5+B^OlD0p!LLEExmc+$nzpjJAf}d zIdr)%t`@3|i{FmGahmy+jJQ;YER=JR0N4#Di!wiWfZ?|1Nrx#ETj=YGTCcvWp%F2b;7rZ~DIPy?O6_D`O+a z+gc8_P!!dc9oF+?JrKToo5}ZGMf*XPgLtrr$59DafDfs(g$zh%9WV{^5Lk<+)?qJ2 zMHlQs5f^hOR1-Nd5cZNO>U)tHZW?lQD(Y0QM2<8xjHmhIss zAC51L6wIYrQ?Z!7V{~s-B?Jz{fUY`oZlG2*rpBw1eR#|sB&E8MY{elB${uP)Vw}ak3}qvDP!!Z99OAS zVwHFd`O}=BC<@1moG7xygAEp4463XfbT$}t7?{58VH>%0$OsHHk2Qv5x^)G|%jLF- z-Jo75QZlXzJWh!5oa2P|s(A-E5C5jIqjykP^dOgq0h;$s(vMPS159eSd!W#fWTTGy zHfai&(~&vvKo@6qjUj(xmTi#|S-g}=mRKnc6_$@n7MoH8nS~Z8DRDzGfgv||cES&) zL_v{+jIN7uK^T(I9spf%(phpyFGwRgxtN zNnj0G2CM)QyaB{yJY@lfQXs~*n4n7( zSrpq-eYpPQI?aEB(0ER$JNv4Hlt*;sVOGcfbwWyIl`jaLE8; zCS#i>i_W1qHlsr)M$9(Yz*!RK5I>lM=p>He*Jfn$AyZN3*cGYUAI3j+$=&E%5I5HRjfDlup^8}-#t?uGr>q2MvSTHL zg~0HtH_sAk0GQ(@bMx7J^IDaSvWqY;M&!2B92)@CYuq$uDCs+)0+shqJm0Kg6(W~P2Ua?pR z&Oq2Qjqtfs`Q|K8PcZ~26UiYPB85SPQiRB1sSHU1B`~58!!j`}hhRhnqbdmk&OSoU z8iNQE=aksnF8^sCpNQ*8@AkzoaEBM;L^!w^Vz^%w&5XI%4k0rKtLSt;63zplBBdzw?51H<0SOWaw*`|4V6cj*8yq@Id)XNTEP z=DN17exkSSOlSJhKv~pX-U?DX^618@q%v1$@~Zw(>*o6z?R&4@duy_Is7p~KXfVc} z7a%DP8SiPKM@d_L4;?5I91mJu(~kYAU9;G~#4`a0H(ydbu9lbctGhdHKZQ}jYrM&? zUHuO(91ps~?_V+6U%mYuokv4^Vs8AB^~`qYMnOx+E$xT5H(h250n^UVBY~rXDyltz z*0kib_@A#TO}i8?Fz}YpJ^IeAMZ!{kWcRY#hdJsder!$UU}f#YRxl!*7akRzu1?!x zlm_uzV$)XaZ2qOQaYf2VIdHW;UG$}SwpY5RMDG=q&x zoR}Xm{gKC&7u5k>t=d>Ne8gNI*aA%7Y8%SC%{u|z99wWc^i)*O)Sa&Ah9z72HXKxI zzgIPlxzaD*j5t0wb@?3a{*zhs7bWM2`p=qHcK3NQ#xGb-ulxqMyU=|Fqy3Z4xob|J zRCFzC7^}$}5AWigD*S0%f6@GXimqqd?j&{uR~r4Zk~SqwGOu6j>z+5h@y8sy`rG&e ze;s}h8wJMj#?Z+xm%cw5x#MBtc!ur?EhxCzXQ?ITtbI2)?q|W!q9`(QV&9>ju#z1G z0clB(+N*k>l`Z$w{xH1K9dbrHaIp1_yE?v_H&S%*aO=jWo9i2ErVBjLyZ~VBiRqxT S>qbs^{|P2zrr}shQQbe&muSBL diff --git a/OsmAnd/res/drawable-xhdpi/map_up.png b/OsmAnd/res/drawable-xhdpi/map_up.png deleted file mode 100644 index 8d15fd75b6fad5ff9a048f2c1c0a256ef01add69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1369 zcmaJ>eM}o=7(dEb07HgT*^r>O!wqD+-bZ_F@1%p$58ALIb}Td*eq8U~mJ8g+?vAx! z)WI~uGz(L`$Qfm66=594^CV3qo9#M?} zG$iv05COc{z3(efgCMytOD$0|8s5bTs%+&mHrAA^K{SHY)TT6E=l~`f0|`lSW4A9% zVW=d!u~sHbhBYr}mx4Vy*xl3ABJ^|!tcca_L~BwUbRYwhM^kdAVsI%pw&a(C@0nu) zLzhg<4mY+;DjIG^y{ZmS#_GTYlCq;t)=DuBC+pmS(r{0ZE`la;lI0j1N7CrZg~4dL z80R9sz)CE*b7SqMsc{66OeU>Kn^n~l1jVu}LDB?GGK0Yk-IV zL+#Q9SdVx`77Vq!cc6?RWWznFORy+>r%x5SWT2QKpBsZ;tfC}xc19FqF^2=E9S%Fr zl6DqnS&_yafC7vVvx9g{%=%diZ=*<`-{B4TT|SDU{C1DSW_NjM)g#fB8a zoBWs&;0(pt)T&RijS$G~q=;(Lcsx_4<*a=` zm-YiOpsO;vq%$Y2!68nGE|)XTg`qym*&>%Y6z@ zU>;hQ4i|IKJSDgoTx4xLPEi0#$}%(_=V|E4!2>7n#0W@{$h6K~t&}~2{h4`P9Spcx z9W9{1dD7wF+$?I0AxKU~$meNE&Hj2k+&I%*>@WNCyFE|s+frSKo!3tE=j3gw_joS$ zTPLd?GJo)IdU_}_S@qycN5+RD{R&xD zu+Fk^@W8sq(42xGIu#Ag&j0n|8-J9|_s)(Nd5Zr&Ro8d^T*#vWNe?4(g46Q;P_~I^LzJ`kH()L`>bJZaptwLnNs}9$hPwN mUlt~p6VGbUd*<^~NG|fe8cHA8KC&_MvkUo~d>_?6*Y_XXwAp+B diff --git a/OsmAnd/res/drawable-xhdpi/map_zoom_in_night.png b/OsmAnd/res/drawable-xhdpi/map_zoom_in_night.png deleted file mode 100644 index 768ff0ad9086b4a20691fb248c36aa2d5caf8d91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1110 zcmbVLNodqi7)}?Y4ir2IdU~WH3eDPNG6_u=Co}C7rTFG?@!%PiGH>A^tW_J7~M|F@?m$9fYd6AZ)j z=Eki8-NpFtIYQT&&b?c7J3%tDWEz)A4Tgvrb#MuRoChnYfS|K<^(`7?n65>)I7?>p z=M5WsJd81X-3ut2VFrim0kr230VPy%eUsf;f5igVG1(b4FXn?Zs=DLLA(~#EEZWO+ zw(hXQLtwCOPz4?$5Y)YSKQihj+t6#!bNno@paCIsCfjssHa`W@I7C3@lbkI|3ea?3 zQj?ml^#hsS1u-SaA}8vGI$(%0XnicT7CL34U}amj=*?uSgan2l)M_=pHo)VsB1pQf z3!*H@GDi_ywB!?5=lrOzt-(T(9l8N=u@7R6u!I+g$x=_7A$UPPzpvPjT8W}56Y4M! zBwiFeFOI8$jz|Ihb>l#ER9p&>P(Tr02yI%Aa$lQFb9cC*7)ZS_E`%;E3Y@pFz2G6A z`bQ5U(glu9{eW6ZTbci6qVG-l`b{9-lF~Lz42Oynp zR2`g|aeW8ZqO)G= Kr1kXN<&{5Gja|6_ diff --git a/OsmAnd/res/drawable-xhdpi/map_zoom_out_night.png b/OsmAnd/res/drawable-xhdpi/map_zoom_out_night.png deleted file mode 100644 index a573adee77529013c84a7fc93ba2cb982af7e09e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1084 zcmbVL&1=*^6ptT>F6~vQ2MH;nf=MQ6ve|^jwN0{i!EMWSrA0-YO(xyYCKHosH(f8< zi+EA+;D4atMeyvw9t0J=iXvXTYxN|05S;98s)y2pfy|rt=KbFHyE8v~ezbI~#4yZg zea3E53iAK(A$l(E|8<*^G2$$d1?-b9Ob|2W;WlFHAzVgH1ig*xuhAsK99R!pOJu2W z!EkXXz+6Yj!kD5NX0n>a&|N`#yo4`1hJ}6=3O8utfmW+ zTGn*!3@cM!1Qk&RJkSkw!T>Tm{5a|@@qD9c*M`0*XL21vVnYXaE#;cEgt?+mgz*<7kQ{Nsdxc z%8sMdB&nvUnl9A}Y&}W|j9gUs4yf-T*4`6qSP6mzCoPOuiz%4zV1m;Qj#*Vzbmivg-`S*f_ZS_UewwiQV82O6&{8qFNaP*!|y zi1+@tej*J@%!lQl;VDFPBJ=CcDo|!;nNUPGD50xTHBa27Yj&k>Pqng-Up_oNvIRz* zsW;yE*XpK!|Hk`UFMeKqynXK7z3t;CwU?jw^|!J(K9#Z`*2UkwN3Y&~pJv3P5A@EtFjt#Z2u+Gklf76rcQ{S4pGo8h(?h1j)Eo1S>U1)7}AU=_H*e& z4Aqnz5$8jVTB!fX5YT!=MaK!>{IP2>c1mMWFX1SVa zpq@ohGKbwL2AR%ZLAR301;d6@3lt0)Sr9EUKv1Nvd-tkpJ8la6OJh-OCtb7vnF5YE zY|Aho>iRku#_r~hJVnTc-(qVpDPm4AmcVY!=P`Irqv*R<27nX6YpU&eGzCu3S@ELP1r+O|zI6f^HU=%s1?)&j7#JwWNP zO&zVqnb#KK08~{9sSz0usWOW*5*@-LG9%-x#Kj3#|Y*3(W)!*g-aImDaUi+0-daH>dV}*F^4azKrkNf5*Dg2d!t5v1{*iBnG9q_V6UX#*f_MNB35T zQx^_ijIWton<}E$+h&UWJD$ns_CIpvXyu7r_x*lkDvnRCOrpo08biJxf3uR_@cFCK z)#t1oJ*kJvOlH-kKTDMf>G9cVeD73tb;h^#?@yME{xbK6)4H^2BjT%k|Im7PI``Ru)BY+E>7Kde=G}*+>QRl^g}+X=)MdNQ5jTS09`~<% z`sJ_R;6`Uw+(^b diff --git a/OsmAnd/res/drawable-xxhdpi/map_directions.png b/OsmAnd/res/drawable-xxhdpi/map_directions.png deleted file mode 100644 index 9897a755db2af73e6b00c0d10b2fa5e63ee7350f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1598 zcmbVMeQXnD7_VK2blsLo=8#eJXon!|de`>)apwx%+ODn8(v6aBXpGmp>sGe*ZoM1r zhC!IPwi4<_a4e)s`I-wNfsqM8jKdAb;v@(|<|1*7fCl+6V8CcFUdM|5LHxr@?%wx# z-{E~hmot1wF-5aifx=1P9GrQVq{`0wglN3HxahqF|3t7tD5!h@8cl%zcr zVE5y-R3(Lz&5grUi9nFC&gZV?svRpZg7z!$l#U|oXLz(gP_it{;6y#e0UoN>7cj`~ zeD;M5@R0^tmBs-(7!y_Jv$X`NRV_|8(Na&Kq-@zzpd^g(2K*F<17UwdfW^WF*_2(3 z-=~ft88D^7)f;4wNL4#rfQb%LfJUJO30R2$I#i+5XmzNr7*O#t1nVIc48ka;QDd+Q zn0{ouw;<`oD$V87zIe$XtK&EZgP>3-qzI`Mbg&juq9_W%DoCXQc@2_Gy|ASQ&k5R zRrvxW9b#WfmFZE`W-91gN0H@0+7C?S8S_1XgHEqfYc!+|L=Zv=Qd$HCQ3BS08bnL! z39ScF>0sG3p8UW0gLqO$^ehxWt*eA+M?`^OLtXbU7y{i?Q+3$A-UuZ%=NnLgw7l`Mb0m zcxT`6wdSo4`roRP+`2Y&dBG*=@ZFL-`xiqtk$BNl3zDMk8w)Pxv8~NRC-FF(A<6kV zJ8?bZEa zsjyZ*X`9Hi=8F@P(fOMQ=`%%4d>}5G*NWRg}CG4IMF`GG%2&*ZT?hAuAg&OZ9uypKG{ ztV-`>_s)I0_BVPqdfIz7ww%`=F>c=>=x+47yN)$iU4j~m z?9^^yZ=1QzBqlRs`H@1~+?X_yVUxr%Ba)w?^IL1B&g7i)(K)eaBXgs3WAm)SsKhR^ zWkhX+X4N!aZCGXV;NQc{Neoj+3_vc z>|?IRH77q@t1Di diff --git a/OsmAnd/res/drawable-xxhdpi/map_down.png b/OsmAnd/res/drawable-xxhdpi/map_down.png deleted file mode 100644 index 6bba29c99b78fa859d7c8a45d5531a04bfe5ef21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1621 zcmaJ>ZBP_t9AAM6JjDSrHC}36bTNLZFv3 zLu&~K>Im3)kGG&sZ@FpFYZP*18cLZ>J7OF&%NBd7tvQ5YqSgvN;C;KT(f)a2&(vbTF>d zX<-u8k}yefIIQC_o?sa*?`F6d&*Sj8L2J=dq#@5hVHlRDHDDHvfv{?qS#Z6c(x5S{ z-7m?spXFn=y^8G#tp15uqfO*#SrA=~)F+R94&S22HX_z*!1WeLe2Bujp4(qi9N@5(wk!~ECz;ln} zZ@f>H6D5v7%pD`6!)c5)5HLq-Xc)tIC8Z>R!)_W^m~=F+r}Yq`xQIks=aE*59Vz`8 zeVrT(WivTiykD6oQ5l@QuPna~0CDAZ%Hj&0zp>l5BEvFsOJDkjoe$=hQm1CSX1cbw zo_~2Kl(xh|ojM3H)bi9tAC#ne_cJ@MG(63i;Z>+!YQ`VnlhUaSry5B##>d@}) zLl<28e}MAD&r{>3q=A#N1(@1ADb~h>f=MYZSX_Lx%x}u<$g%ddR4laSw&(V)JMoEg zZ^FOHyBZ7I7G0Y??e^3`{cwv^_}ZrJ4zV3JJ@;y%+42HDvhb}^!w9#h@%Pp%|8?9< zl3VZyB!z#jI&0`(zd2qzoyZ*W4+7 z{oH}A8%L{V-J?TwZ4FbKnY(x9TpdXo9Qf#u)0q*Zx3hm}YiC<{YuAjf>Wr&3|4a$h ztB9taeTz5DIFFfbB}Lvo#*{j5pdBOm^0Z=Izv|t=y=d#@+7+n!*p9MG?ao<&LkX^J zE-2#M+;P1n^HSTEk1zjPmAmKbxX)VAnine!wZJ~xJ(bVQbk91&Jy^fAB{=h9R##8r zsBWld!Czneb}Y#^=YGa8b?}+yrUjn+;k(s$^A2V;H}ReW{h>E~NAu^ZvR_K?n!dk% z$v*q7rV~3>uN<%9+@*2zV-iVuSahZOb5q*NPago{f!jmntJ1z2O^N>K?RkY%r**^T F{{f<`MuGqU diff --git a/OsmAnd/res/drawable-xxhdpi/map_drawer.png b/OsmAnd/res/drawable-xxhdpi/map_drawer.png deleted file mode 100644 index b007054f4e79e6382fea505e4b5b0acb229ad901..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1157 zcmaJ>OK1~87+!6xMXU(6pdMu1dQf!Vk7SlcO_QdLG_}NNdk}GUXVNb1?yS30lh%V$ zMNkk04|)*sTtNg+>Y*wKdKEmV;H`pE@#4*c&ZbHAP+ZuZ`DecW``>$QY;>r5%kC{4 z$90#63l+8wCvR6L`=0#%WQZ-h=->oBL29%PBh2LxaWG%<;UunLi000{#r+)DamA}n z(24Sh?Gj&t2}Wx8A=Bo#{v(YLy3?5Q4xaRatnlOclE8Z?D~y|Er5xt*ls7yd;S=+t zRd;^c1xPq@nD1}cjKIef@(q6`i0wvJX!6=@pB&2q--OWVtg!0TM0t$QlL+&sWQne# z8hjc^s%fP``Vg-%SynQ#rico#P2E;BzV!&qT7+tLrBH0yVp3L^qBOK+xn8eJbzLIS zq^tq}WJQxTO=Ji$o(m{!h(X-fW+>p;jl7V0B;XT9=#W{O6_}^1A^2gryha?vtwgbu z$qg9Fs-(!ipTyNf$Fzd~y0I=guFi#6uHcx=MlP#It*@=ja`%5j36ObXACEj%6gX2L z?yQdkS}J4(b|WDV*@lUb<5-rcS(YIJ#Q-7zNE0orV$*dDTys#HXFYvoAgAa>OB>LE zqN;;N4w%KkqGcHQVouY|TwAvk#1sZDZrk>l?Ut_kUtK#NVMs|-C1j@E1!Gf$l6Z=Q zd_Lc-I=_G13lOQt2a+cOIi+M0~!PXWLuHhqMAQM!*#nLkFT+Gh7imP!mFO;pRmzi(BmsVaq z=-GK@();k{RQ2hz3tvAMxvuT}(M#Nhjr)#XzJHTk{I&VO4)mJIJwLDa?%9$0d!2w% z`=#+4w;x{Z?MQWvy*v125iTUBO;8KEyu5fWdjHsA@MH6@Pn#nx{#4g3uKU8Kom^(N V^WLY;*Y74jhSK0@;nBd^g+Gk^XA}Sc diff --git a/OsmAnd/res/drawable-xxhdpi/map_favorite.png b/OsmAnd/res/drawable-xxhdpi/map_favorite.png deleted file mode 100644 index 682fff7b51bb0e1a7d887350f3aea446a492955a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1547 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_layer_night.png b/OsmAnd/res/drawable-xxhdpi/map_layer_night.png deleted file mode 100644 index 9f8429d3d3bfc5646f14d3c0608949b9eed7b638..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2362 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 JpSkFjzX5!VO-TR% diff --git a/OsmAnd/res/drawable-xxhdpi/map_search_dark.png b/OsmAnd/res/drawable-xxhdpi/map_search_dark.png deleted file mode 100644 index afcada973cfc57cb9cae1a5135a100b1fef44880..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2164 zcmbVOc~ld39#15Iq8y7La;PEP)MPTbNCLrxBp4Jh4dGY;ZO9BHKr%52CQ^|UiWcgD zXH^sjL}XVy7A(>NOBd=cBCUW{k+;4=ap_UXCF7i(Md9 zAx6ZYLUcr-aK7rq&{VY+LQIA*TbW)*ErRvxoiG%uM>NFwJag4=;lN-QSNeg)B|IHtOkpgVZ@;}Y9c!YJNZTV&tu+5ucg09J8+{$byzI2_?voJb%y4^Ny)m&gUH|8}Ro>|yc&Qut2-`n9>TNf7v*XY4zfVYTSo zq<`<)r~bQ}d(h>}j@ze*6!lOCBz|5QyVcDzJJwZfq~FeLLq_+Fc9G`3ntI5izrWKI z{i3sPf3soFk9{*mIoStYu0F_9ja@zzi{jOMpGt>1n~;`l)rTI)pro>kBKdUwEP4w4 z1sy=~XrR=~y2cu01sm}9mcG3F^oP9M+(tY!7+ca(a^FI;pB$8YhTcT&P*-#_I!2&e zsUM>DgVIP_>wdB&#dr=Sq~Dszn0@1i_h~bzuLG)x^isa&(oVdaKqiAKdviTkse0O(6;v6 zd*m|^Sg!12z9?wOqXnGw=Bq;XfAJHo^@}~#e{a0p;_Sen7917i zkQ0ZlT{V<^GLYLZjKs%$8`8r$;mwO|3|qzH3_Z{brp|ZGoN{=+>Uyely0*=ye9LLc zCBhYAV%v8IE&buvsS1kQufZcp>+)(x!Pq;|#miL{XlBp>L3vqQ^XDh@D=(tkqmKWn zOdmRW|JQf=LvoJ_uDT96QmXz@X6}}acdRg_6#E>xQPXYzxMuy!dfbueWn{O&U5|#G z+=o-8{?@~1>rdX{TD$T*qsDVWM`lUd#&9Rx0^Qs3ymQ;z`U@5<;Z^v!i z<8zZKM_&oAPoH6I(_Oq3oh}#3iU!x-Ej@JIIOv_dE?TmwKD}{I1-e4EzW7oNLDpE@ zM_MC`+C3TIDQn;D667q4DguJ-W$i`M98R72)els;WS_gIG_>;C9yQ6%UC{OHGxScm zOQ>65lFl7pxuMRXS=aCPa&*iZBC#8^Fo@2th312aPMjT%eQM@ht1x}Y_8$-@P83~< Hd9UO@E#yVf diff --git a/OsmAnd/res/drawable-xxhdpi/map_search_night.png b/OsmAnd/res/drawable-xxhdpi/map_search_night.png deleted file mode 100644 index 2859244cb10fbcf39aa8c3809b0692c7ad28ee74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2163 zcmbVOdr%X19^ViIL_kqFfTl@w2oNUMND(knB}qhL z5s5rKxeEyf0DP)a9EZk5^I0;DiYT$@5Dh9Vh6aG(5QA1CJAj~|6iHO7*@T&vRsyJ$ zvk5zB(d1}tIHFMUj5xc>*hzyLHhPwqp|%D5_{6zN~|c7gItX)MTMx*NG_Xz z-4NwUIg3h@%cW8}9iq_bRESBYG9e~YPJ!qMjL>9KDv}_TFY&w&A3$buU=EE!Wl*Rv z96@JrC=rZ68kZ3UGa{JbTbHnrYCS4Z%aA48O3d~m7XCvlD_n<2P>oKk(Hvar0--{K zYV-F`2P!QPkq1y1P#|4S zhNyHZ0x_7d3_=(%8KDHoX;g}gu!xuczxg9!PLV9l@;}Y9bcA)JW%+Itu+6(+Le$s< z>9A3WCj^%PfOSbEH%x4}H)Yz*6Njz4b+VV5`9i_Zd*Y%)3zBvy!HBxT6mx{ zKl@nDuF#kKF)iJ*5&z6n9JX%{AJ}DO#ND%r(wVnR z#FH5IxJ%H8Q%%2hcZiT#W8ME<>1>Iqb=#l)@nY*;ehODkGdC2ko|fi4R5Ci+jNXbH zfPmal?_t+23cH?Xj#sZgoS!4Gd!i8ve_XZI!Lh$9_ASHQT}K^kA2Su+u^xW6AznrZ;3|s;1z3X_7$VK^|2=sADgp2$G7%D zS;751`%{a&P4!dD$2XM}=$pdSK&hkqt){1V`}~~M^IwmiG5X1_p1s{=oS7vHxO`ds|xhBz6qHft9O3F#U-CPyWPu7 z^1efGPJ61pn#;o{CH9Kea(FHeGmcZuFZlC@yex_}X=Zm7F8T1Re_qzdbX(22tfohw z{%((h_V-SX0ONIFyI==k`$l#Q{Ngyn%u4WVzwhb`G@53`A=b`UV?&!pwAo!9w6k5S zhs%-QCWV8DksOrObIhY{5YcA8^8EhdS64UHwvbBpZGPEz1#fq)^lm`9C^XU2>BmcT z4LM!oEVprE8>M%C1JXt=m3WRIU+D#7COYEFPO@Y z$F8oL_!m7}KGf1RC#_ibt^Wq)<0|MT%l+|BW#~11??uO1XjXTPo3&a-{sQtZMjZ>65W9RVftdwPB`*sgUr0WoHQ znh&eoTeSXn|NUU-*^P8Z9=Xt4YSL`Dd>b)5Y<{{b7o BOvV5J diff --git a/OsmAnd/res/drawable-xxhdpi/map_small_group.png b/OsmAnd/res/drawable-xxhdpi/map_small_group.png deleted file mode 100644 index 7c4b45d02e79044ec63597095e64069b32c799f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1148 zcmbVMTWHfz7>+2zJLpinyu^4x(OjFfO<0{>(`nJptt)H~iaSkC*SIAoCTD9m#fOPF z@xcp??!h{W zn%-+=+i`n(n`R)J1Az`#vR#6vsJi-+3ydy^=^X5|oES5HYlNXKGsd(jX(8< z6)wygf+*7wl@pb4M2&2qB_i`el$QinP&Fl_2@+j-7-G#c^IAr4tk@z_j45F3YCK;o z7P(@GLtZB@s;bHh5-&+C(O~^P2ZIvp_$#XnI`j?Ca`&`IpppSYygVZCxvI-`-`?sM$k$9tR z_bgHr(5)k*$A%70=`n`faHeIF6q$k?jpSK51XWfD$tD|BMTLbX$g828Y=E3n<(Uef z6htMeCz84@g+wtaHz;a@E=S`DDH7I`;dm9Ba(oON16FNY#C8R%{}ZbvJP0uIvIuoo zyP&y%F!Bq?r4xyA)## z>z9);JD1Yq+0u)#=Xd6B5|$i%BYmmaadk95eB(ce(K=n@{iC f|BSHjZJbs^y?uCbSN-q@5d05P$tL}JL&v~xIS_et diff --git a/OsmAnd/res/drawable-xxhdpi/map_start_navigation.png b/OsmAnd/res/drawable-xxhdpi/map_start_navigation.png deleted file mode 100644 index ee62bbac208662342b13bcbf0c3cf6e49328edad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1936 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 diff --git a/OsmAnd/res/drawable-xxhdpi/map_zoom_out_night.png b/OsmAnd/res/drawable-xxhdpi/map_zoom_out_night.png deleted file mode 100644 index 7e14714a9c77288b407bcff9116b610fca9473a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1129 zcmbVL&ui0A9FN-=wJ@08^z_IC6_%e(nkKByw&~V_-AdQ#Zu*+MtYJ-Fmb|UmK#<*r ze}Omu0lf?a5vF((5j^>0CyzTQ9(NJ+rER8%v4erU_rC9aKcDaK{pQl*RQ76?VVJ3U z&1})Vmi(DXx~~2>Sftw(Qe7h}*dcuwBBo^H4gz%#uA>%$_Ri)zG{-RG+irV}tTpZ! z7WR0U=HV^?FwC?&v_UEhDEO6~2drxhMji7?MZf!S2E4xc=Yj?xa zZFc?^n2QZc;2{D*?DhP}h>Pri*P!R*T42FIg=`erp;K#(CaB;L0hP~lmMAGe(|JkF zYq~ZIWGV|{L6AjG)D1Ofh%y*`EVUNej?pp~Mz*L_WV?g}h9LC&eZHULakwr>x~>bN zEXXoPHMnTUCotyxXeMPaQDlW~KwRvDgb{Y|7AdmS(_si+&}f_z`_U*-G-W~z13}_N z!Sj;12HFv6p}%gNsU5X<0wlChgttPA*29@e!8CX08%h+ZH^y@4(xSkgiLEUU`J`?Z zS^C1;u5HLp$3h(ka+ahaPL~voD~P(tIZ~luJIKyyqL}iWg;xtoPAyl(s-{#Vsj8H< zvRo>aOJ!NgtFoe|*t#DP=vyeY?NZxAthsP5)~JLC5*)TM?xkJO>|%nWE)GDYGN?MZ zanJQ_+>dT1Wg13pqR`z&_Ckm~Fvzpvp5a3ts#abpSe%*{RZi_Fkj5`+oUUjzawtPt zao7>w{@?rw)F~lpmVcTjy`mkN98X7q3a7(_d^$lP9Tn!8xJSoqziyV=@zM9A(j^9D zn9^p?{GGAiPE0mW4u5TbTO=nRU+y#0;PxZt!q`M@ux6+@Hj%7UygYh3{`$#nuHJum z7dcR diff --git a/OsmAnd/res/drawable/ic_actions_menu.xml b/OsmAnd/res/drawable/ic_actions_menu.xml new file mode 100644 index 0000000000..4658db069c --- /dev/null +++ b/OsmAnd/res/drawable/ic_actions_menu.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + diff --git a/OsmAnd/res/drawable/ic_compass.xml b/OsmAnd/res/drawable/ic_compass.xml new file mode 100644 index 0000000000..03cf8d94db --- /dev/null +++ b/OsmAnd/res/drawable/ic_compass.xml @@ -0,0 +1,13 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_compass_bearing.xml b/OsmAnd/res/drawable/ic_compass_bearing.xml new file mode 100644 index 0000000000..46be57b5d8 --- /dev/null +++ b/OsmAnd/res/drawable/ic_compass_bearing.xml @@ -0,0 +1,12 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_compass_bearing_white.xml b/OsmAnd/res/drawable/ic_compass_bearing_white.xml new file mode 100644 index 0000000000..46be57b5d8 --- /dev/null +++ b/OsmAnd/res/drawable/ic_compass_bearing_white.xml @@ -0,0 +1,12 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_compass_niu.xml b/OsmAnd/res/drawable/ic_compass_niu.xml new file mode 100644 index 0000000000..90bb87a71b --- /dev/null +++ b/OsmAnd/res/drawable/ic_compass_niu.xml @@ -0,0 +1,12 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_compass_niu_white.xml b/OsmAnd/res/drawable/ic_compass_niu_white.xml new file mode 100644 index 0000000000..4e75ed5fa0 --- /dev/null +++ b/OsmAnd/res/drawable/ic_compass_niu_white.xml @@ -0,0 +1,12 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_compass_white.xml b/OsmAnd/res/drawable/ic_compass_white.xml new file mode 100644 index 0000000000..db5bdd12d6 --- /dev/null +++ b/OsmAnd/res/drawable/ic_compass_white.xml @@ -0,0 +1,13 @@ + + + + diff --git a/OsmAnd/res/drawable/ic_dashboard_dark.xml b/OsmAnd/res/drawable/ic_dashboard.xml similarity index 93% rename from OsmAnd/res/drawable/ic_dashboard_dark.xml rename to OsmAnd/res/drawable/ic_dashboard.xml index 7b95603a20..3c225990ad 100644 --- a/OsmAnd/res/drawable/ic_dashboard_dark.xml +++ b/OsmAnd/res/drawable/ic_dashboard.xml @@ -5,6 +5,6 @@ android:viewportHeight="24"> diff --git a/OsmAnd/res/drawable/map_my_location.xml b/OsmAnd/res/drawable/ic_my_location.xml similarity index 100% rename from OsmAnd/res/drawable/map_my_location.xml rename to OsmAnd/res/drawable/ic_my_location.xml diff --git a/OsmAnd/res/drawable/map_quick_action.xml b/OsmAnd/res/drawable/ic_quick_action.xml similarity index 100% rename from OsmAnd/res/drawable/map_quick_action.xml rename to OsmAnd/res/drawable/ic_quick_action.xml diff --git a/OsmAnd/res/drawable/map_zoom_in.xml b/OsmAnd/res/drawable/ic_zoom_in.xml similarity index 88% rename from OsmAnd/res/drawable/map_zoom_in.xml rename to OsmAnd/res/drawable/ic_zoom_in.xml index 6b6cbf883d..2d130aad07 100644 --- a/OsmAnd/res/drawable/map_zoom_in.xml +++ b/OsmAnd/res/drawable/ic_zoom_in.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:fillColor="#ffffff"/> diff --git a/OsmAnd/res/drawable/map_zoom_out.xml b/OsmAnd/res/drawable/ic_zoom_out.xml similarity index 87% rename from OsmAnd/res/drawable/map_zoom_out.xml rename to OsmAnd/res/drawable/ic_zoom_out.xml index 89851264ff..530679803b 100644 --- a/OsmAnd/res/drawable/map_zoom_out.xml +++ b/OsmAnd/res/drawable/ic_zoom_out.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:fillColor="#ffffff"/> diff --git a/OsmAnd/res/layout/dashboard_toolbar.xml b/OsmAnd/res/layout/dashboard_toolbar.xml index 361dfc190f..c32dc2b2a8 100644 --- a/OsmAnd/res/layout/dashboard_toolbar.xml +++ b/OsmAnd/res/layout/dashboard_toolbar.xml @@ -7,6 +7,7 @@ android:layout_width="fill_parent" android:layout_height="@dimen/dashboard_map_toolbar" android:background="@color/app_bar_color_light" + android:padding="0dp" app:contentInsetLeft="0dp" app:contentInsetStart="0dp" app:contentInsetRight="0dp" diff --git a/OsmAnd/res/layout/favourite_list_item.xml b/OsmAnd/res/layout/favourite_list_item.xml index 2ac6957e86..d043a34629 100644 --- a/OsmAnd/res/layout/favourite_list_item.xml +++ b/OsmAnd/res/layout/favourite_list_item.xml @@ -20,7 +20,7 @@ android:layout_gravity="center_vertical" android:layout_marginEnd="@dimen/list_content_padding" android:layout_marginRight="@dimen/list_content_padding" - osmand:srcCompat="@drawable/map_favorite" /> + osmand:srcCompat="@drawable/ic_action_favorite" /> + tools:src="@drawable/ic_action_gdirections_dark"/> diff --git a/OsmAnd/res/layout/maps_in_category_fragment.xml b/OsmAnd/res/layout/maps_in_category_fragment.xml index 624e3a917e..072dd0902c 100644 --- a/OsmAnd/res/layout/maps_in_category_fragment.xml +++ b/OsmAnd/res/layout/maps_in_category_fragment.xml @@ -11,11 +11,12 @@ diff --git a/OsmAnd/res/layout/mode_view_route_preparation.xml b/OsmAnd/res/layout/mode_view_route_preparation.xml index 9b5883b264..c8e171984c 100644 --- a/OsmAnd/res/layout/mode_view_route_preparation.xml +++ b/OsmAnd/res/layout/mode_view_route_preparation.xml @@ -9,7 +9,7 @@ android:layout_width="@dimen/standard_icon_size" android:layout_height="@dimen/standard_icon_size" android:layout_gravity="center" - tools:src="@drawable/ic_dashboard_dark" /> + tools:src="@drawable/ic_dashboard" /> diff --git a/OsmAnd/res/values/colors.xml b/OsmAnd/res/values/colors.xml index 59415b1a6a..6a8b9adbbf 100644 --- a/OsmAnd/res/values/colors.xml +++ b/OsmAnd/res/values/colors.xml @@ -128,6 +128,8 @@ #e5e5e5 #536dfe #485dd9 + #727272 + #cccccc #f0f0f0 #1b1d1f diff --git a/OsmAnd/src/net/osmand/AndroidUtils.java b/OsmAnd/src/net/osmand/AndroidUtils.java index 914b44be07..f3b7030d08 100644 --- a/OsmAnd/src/net/osmand/AndroidUtils.java +++ b/OsmAnd/src/net/osmand/AndroidUtils.java @@ -375,18 +375,20 @@ public class AndroidUtils { } } - public static void updateImageButton(Context ctx, ImageButton button, int iconLightId, int iconDarkId, int bgLightId, int bgDarkId, boolean night) { + public static void updateImageButton(OsmandApplication ctx, ImageButton button, + @DrawableRes int iconLightId, @DrawableRes int iconDarkId, + @DrawableRes int bgLightId, @DrawableRes int bgDarkId, boolean night) { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { button.setBackground(AppCompatResources.getDrawable(ctx, night ? bgDarkId : bgLightId)); } else { button.setBackgroundDrawable(AppCompatResources.getDrawable(ctx, night ? bgDarkId : bgLightId)); } int btnSizePx = button.getLayoutParams().height; - int iconSizePx = (int) button.getContext().getResources().getDimension(R.dimen.map_widget_icon); + int iconSizePx = button.getContext().getResources().getDimensionPixelSize(R.dimen.map_widget_icon); int iconPadding = (btnSizePx - iconSizePx) / 2; button.setPadding(iconPadding, iconPadding, iconPadding, iconPadding); button.setScaleType(ImageView.ScaleType.FIT_CENTER); - button.setImageDrawable(AppCompatResources.getDrawable(ctx, night ? iconDarkId : iconLightId)); + button.setImageDrawable(ctx.getUIUtilities().getMapIcon(night ? iconDarkId : iconLightId, !night)); } public static void setDashButtonBackground(Context ctx, View view, boolean night) { diff --git a/OsmAnd/src/net/osmand/plus/UiUtilities.java b/OsmAnd/src/net/osmand/plus/UiUtilities.java index 9f16bbc9a0..0a168ffec9 100644 --- a/OsmAnd/src/net/osmand/plus/UiUtilities.java +++ b/OsmAnd/src/net/osmand/plus/UiUtilities.java @@ -144,7 +144,7 @@ public class UiUtilities { } public Drawable getMapIcon(@DrawableRes int id, boolean light) { - return getDrawable(id, light ? R.color.icon_color_default_light : 0); + return getDrawable(id, light ? R.color.map_button_icon_color_light : R.color.map_button_icon_color_dark); } public static Drawable getSelectableDrawable(Context ctx) { diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java index c5ad4ec536..a23815a903 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java @@ -368,7 +368,7 @@ public class MapActivityActions implements DialogProvider { adapter.addItem(itemBuilder .setTitleId(R.string.shared_string_actions, mapActivity) .setId(MAP_CONTEXT_MENU_MORE_ID) - .setIcon(R.drawable.map_overflow_menu_white) + .setIcon(R.drawable.ic_actions_menu) .setOrder(40) .createItem()); @@ -776,7 +776,7 @@ public class MapActivityActions implements DialogProvider { optionsMenuHelper.addItem(new ItemBuilder().setTitleId(R.string.home, mapActivity) .setId(DRAWER_DASHBOARD_ID) - .setIcon(R.drawable.map_dashboard) + .setIcon(R.drawable.ic_dashboard) .setListener(new ItemClickListener() { @Override public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int pos, boolean isChecked, int[] viewCoordinates) { diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java index 9a4f3cf0d5..b52e495dd3 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java @@ -415,7 +415,7 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo DashboardActionButton myLocationButton = new DashboardActionButton(); - myLocationButton.icon = AppCompatResources.getDrawable(mapActivity, R.drawable.map_my_location); + myLocationButton.icon = AppCompatResources.getDrawable(mapActivity, R.drawable.ic_my_location); myLocationButton.text = mapActivity.getString(R.string.map_widget_back_to_loc); myLocationButton.onClickListener = new View.OnClickListener() { @Override @@ -430,7 +430,7 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo }; DashboardActionButton navigateButton = new DashboardActionButton(); - navigateButton.icon = AppCompatResources.getDrawable(mapActivity, R.drawable.map_start_navigation); + navigateButton.icon = AppCompatResources.getDrawable(mapActivity, R.drawable.ic_action_start_navigation); navigateButton.text = mapActivity.getString(R.string.follow); navigateButton.onClickListener = new View.OnClickListener() { @Override @@ -441,7 +441,7 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo }; DashboardActionButton routeButton = new DashboardActionButton(); - routeButton.icon = AppCompatResources.getDrawable(mapActivity, R.drawable.map_directions); + routeButton.icon = AppCompatResources.getDrawable(mapActivity, R.drawable.ic_action_gdirections_dark); routeButton.text = mapActivity.getString(R.string.layer_route); routeButton.onClickListener = new View.OnClickListener() { @Override diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java index 64f18db5e5..e28559d055 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java @@ -914,7 +914,7 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL } public int getFabIconId() { - int res = R.drawable.map_directions; + int res = R.drawable.ic_action_gdirections_dark; MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { RoutingHelper routingHelper = mapActivity.getMyApplication().getRoutingHelper(); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index 8559982176..2fda1e16fb 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -513,9 +513,9 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo zoomInButtonView = (ImageButton) view.findViewById(R.id.context_menu_zoom_in_button); zoomOutButtonView = (ImageButton) view.findViewById(R.id.context_menu_zoom_out_button); if (menu.zoomButtonsVisible()) { - AndroidUtils.updateImageButton(mapActivity, zoomInButtonView, R.drawable.map_zoom_in, R.drawable.map_zoom_in_night, + AndroidUtils.updateImageButton(app, zoomInButtonView, R.drawable.ic_zoom_in, R.drawable.ic_zoom_in, R.drawable.btn_circle_trans, R.drawable.btn_circle_night, nightMode); - AndroidUtils.updateImageButton(mapActivity, zoomOutButtonView, R.drawable.map_zoom_out, R.drawable.map_zoom_out_night, + AndroidUtils.updateImageButton(app, zoomOutButtonView, R.drawable.ic_zoom_out, R.drawable.ic_zoom_out, R.drawable.btn_circle_trans, R.drawable.btn_circle_night, nightMode); zoomInButtonView.setOnClickListener(new View.OnClickListener() { @Override @@ -622,7 +622,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo } }); TextView directionsButton = (TextView) view.findViewById(R.id.context_menu_directions_button); - int iconResId = R.drawable.map_directions; + int iconResId = R.drawable.ic_action_gdirections_dark; if (menu.navigateInPedestrianMode()) { iconResId = R.drawable.ic_action_pedestrian_dark; } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/SelectCategoryDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/SelectCategoryDialogFragment.java index 4158b39fdb..8875949d3f 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/SelectCategoryDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/SelectCategoryDialogFragment.java @@ -2,7 +2,6 @@ package net.osmand.plus.mapcontextmenu.editors; import android.app.Activity; import android.app.Dialog; -import android.graphics.Color; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.os.Bundle; @@ -99,7 +98,7 @@ public class SelectCategoryDialogFragment extends DialogFragment { } View itemView = UiUtilities.getInflater(activity, nightMode).inflate(R.layout.favorite_category_dialog_item, null); Button button = (Button)itemView.findViewById(R.id.button); - button.setCompoundDrawablesWithIntrinsicBounds(getIcon(activity, R.drawable.map_zoom_in), null, null, null); + button.setCompoundDrawablesWithIntrinsicBounds(getIcon(activity, R.drawable.ic_zoom_in), null, null, null); button.setCompoundDrawablePadding(AndroidUtils.dpToPx(activity,15f)); button.setText(activity.getResources().getText(R.string.favorite_category_add_new)); button.setOnClickListener(new View.OnClickListener() { diff --git a/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java index 237eb3fc7a..7793c85e29 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java @@ -784,7 +784,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement i++; } menuAdapter.addItem(itemBuilder.setTitleId(R.string.add_new_folder, app) - .setIcon(R.drawable.map_zoom_in).setTag(-1).createItem()); + .setIcon(R.drawable.ic_zoom_in).setTag(-1).createItem()); final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); final ArrayAdapter listAdapter = menuAdapter.createListAdapter(getActivity(), app.getSettings().isLightContent()); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/ChooseRouteFragment.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/ChooseRouteFragment.java index 692ffa5991..1d925023bb 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/ChooseRouteFragment.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/ChooseRouteFragment.java @@ -352,9 +352,9 @@ public class ChooseRouteFragment extends BaseOsmAndFragment implements ContextMe ImageButton zoomOutButtonView = (ImageButton) view.findViewById(R.id.map_zoom_out_button); ImageButton myLocButtonView = (ImageButton) view.findViewById(R.id.map_my_location_button); this.myLocButtonView = myLocButtonView; - AndroidUtils.updateImageButton(app, zoomInButtonView, R.drawable.map_zoom_in, R.drawable.map_zoom_in_night, + AndroidUtils.updateImageButton(app, zoomInButtonView, R.drawable.ic_zoom_in, R.drawable.ic_zoom_in, R.drawable.btn_circle_trans, R.drawable.btn_circle_night, nightMode); - AndroidUtils.updateImageButton(app, zoomOutButtonView, R.drawable.map_zoom_out, R.drawable.map_zoom_out_night, + AndroidUtils.updateImageButton(app, zoomOutButtonView, R.drawable.ic_zoom_out, R.drawable.ic_zoom_out, R.drawable.btn_circle_trans, R.drawable.btn_circle_night, nightMode); zoomInButtonView.setOnClickListener(new OnClickListener() { @Override @@ -402,14 +402,14 @@ public class ChooseRouteFragment extends BaseOsmAndFragment implements ContextMe ImageButton myLocButtonView = this.myLocButtonView; if (myLocButtonView != null) { if (!enabled) { - myLocButtonView.setImageDrawable(getIcon(R.drawable.map_my_location, R.color.icon_color_default_light)); + myLocButtonView.setImageDrawable(getIcon(R.drawable.ic_my_location, R.color.icon_color_default_light)); AndroidUtils.setBackground(app, myLocButtonView, nightMode, R.drawable.btn_circle, R.drawable.btn_circle_night); myLocButtonView.setContentDescription(mapActivity.getString(R.string.unknown_location)); } else if (tracked) { - myLocButtonView.setImageDrawable(getIcon(R.drawable.map_my_location, R.color.color_myloc_distance)); + myLocButtonView.setImageDrawable(getIcon(R.drawable.ic_my_location, R.color.color_myloc_distance)); AndroidUtils.setBackground(app, myLocButtonView, nightMode, R.drawable.btn_circle, R.drawable.btn_circle_night); } else { - myLocButtonView.setImageResource(R.drawable.map_my_location); + myLocButtonView.setImageResource(R.drawable.ic_my_location); AndroidUtils.setBackground(app, myLocButtonView, nightMode, R.drawable.btn_circle_blue, R.drawable.btn_circle_blue); myLocButtonView.setContentDescription(mapActivity.getString(R.string.map_widget_back_to_loc)); } diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java index 12c3a5b5d2..73d1573858 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/MapRouteInfoMenu.java @@ -2299,7 +2299,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener case ROUTE_INFO: return 0; case ROUTE_DETAILS: - return app != null ? app.getRoutingHelper().getAppMode().getIconRes() : R.drawable.map_directions; + return app != null ? app.getRoutingHelper().getAppMode().getIconRes() : R.drawable.ic_action_gdirections_dark; default: return 0; } diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ImportedSettingsItemsAdapter.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ImportedSettingsItemsAdapter.java index 996716c4af..270391c619 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ImportedSettingsItemsAdapter.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ImportedSettingsItemsAdapter.java @@ -83,7 +83,7 @@ public class ImportedSettingsItemsAdapter extends holder.title.setText(R.string.shared_string_settings); break; case QUICK_ACTIONS: - holder.icon.setImageDrawable(uiUtils.getIcon(R.drawable.map_quick_action, activeColorRes)); + holder.icon.setImageDrawable(uiUtils.getIcon(R.drawable.ic_quick_action, activeColorRes)); holder.title.setText(R.string.configure_screen_quick_action); break; case POI_TYPES: diff --git a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java index b79f36ab57..c308dce187 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java @@ -273,7 +273,7 @@ public class MapControlsLayer extends OsmandMapLayer { }); View compass = mapActivity.findViewById(R.id.map_compass_button); - compassHud = createHudButton(compass, R.drawable.map_compass, COMPASS_HUD_ID).setIconColorId(0). + compassHud = createHudButton(compass, R.drawable.ic_compass, COMPASS_HUD_ID).setIconColorId(0). setBg(R.drawable.btn_inset_circle_trans, R.drawable.btn_inset_circle_night); compassHud.compass = true; controls.add(compassHud); @@ -299,6 +299,7 @@ public class MapControlsLayer extends OsmandMapLayer { View search = mapActivity.findViewById(R.id.map_search_button); quickSearchHud = createHudButton(search, R.drawable.ic_action_search_dark, QUICK_SEARCH_HUD_ID) + .setIconColorId(R.color.map_button_icon_color_light, R.color.map_button_icon_color_dark) .setBg(R.drawable.btn_inset_circle_trans, R.drawable.btn_inset_circle_night); controls.add(quickSearchHud); search.setOnClickListener(new View.OnClickListener() { @@ -353,7 +354,8 @@ public class MapControlsLayer extends OsmandMapLayer { private void initControls() { View backToLocation = mapActivity.findViewById(R.id.map_my_location_button); - backToLocationControl = createHudButton(backToLocation, R.drawable.map_my_location, BACK_TO_LOC_HUD_ID) + backToLocationControl = createHudButton(backToLocation, R.drawable.ic_my_location, BACK_TO_LOC_HUD_ID) + .setIconColorId(R.color.map_button_icon_color_light, R.color.map_button_icon_color_dark) .setBg(R.drawable.btn_circle_blue); controls.add(backToLocationControl); @@ -373,8 +375,9 @@ public class MapControlsLayer extends OsmandMapLayer { final boolean dash = settings.SHOW_DASHBOARD_ON_MAP_SCREEN.get(); menuControl = createHudButton(backToMenuButton, - !dash ? R.drawable.ic_navigation_drawer : R.drawable.ic_dashboard_dark, MENU_HUD_ID).setBg( - R.drawable.btn_round, R.drawable.btn_round_night); + !dash ? R.drawable.ic_navigation_drawer : R.drawable.ic_dashboard, MENU_HUD_ID) + .setIconColorId(R.color.map_button_icon_color_light, R.color.map_button_icon_color_dark) + .setBg(R.drawable.btn_round, R.drawable.btn_round_night); controls.add(menuControl); backToMenuButton.setOnClickListener(new View.OnClickListener() { @Override @@ -390,8 +393,9 @@ public class MapControlsLayer extends OsmandMapLayer { zoomText = (TextView) mapActivity.findViewById(R.id.map_app_mode_text); View routePlanButton = mapActivity.findViewById(R.id.map_route_info_button); - routePlanningBtn = createHudButton(routePlanButton, R.drawable.ic_action_gdirections_dark, ROUTE_PLANNING_HUD_ID).setBg( - R.drawable.btn_round, R.drawable.btn_round_night); + routePlanningBtn = createHudButton(routePlanButton, R.drawable.ic_action_gdirections_dark, ROUTE_PLANNING_HUD_ID) + .setIconColorId(R.color.map_button_icon_color_light, R.color.map_button_icon_color_dark) + .setBg(R.drawable.btn_round, R.drawable.btn_round_night); controls.add(routePlanningBtn); routePlanButton.setOnClickListener(new View.OnClickListener() { @Override @@ -584,7 +588,7 @@ public class MapControlsLayer extends OsmandMapLayer { private void initZooms() { final OsmandMapTileView view = mapActivity.getMapView(); View zoomInButton = mapActivity.findViewById(R.id.map_zoom_in_button); - mapZoomIn = createHudButton(zoomInButton, R.drawable.map_zoom_in, ZOOM_IN_HUD_ID).setRoundTransparent(); + mapZoomIn = createHudButton(zoomInButton, R.drawable.ic_zoom_in, ZOOM_IN_HUD_ID).setRoundTransparent(); controls.add(mapZoomIn); zoomInButton.setOnClickListener(new View.OnClickListener() { @Override @@ -603,7 +607,7 @@ public class MapControlsLayer extends OsmandMapLayer { final View.OnLongClickListener listener = MapControlsLayer.getOnClickMagnifierListener(view); zoomInButton.setOnLongClickListener(listener); View zoomOutButton = mapActivity.findViewById(R.id.map_zoom_out_button); - mapZoomOut = createHudButton(zoomOutButton, R.drawable.map_zoom_out, ZOOM_OUT_HUD_ID).setRoundTransparent(); + mapZoomOut = createHudButton(zoomOutButton, R.drawable.ic_zoom_out, ZOOM_OUT_HUD_ID).setRoundTransparent(); controls.add(mapZoomOut); zoomOutButton.setOnClickListener(new View.OnClickListener() { @Override @@ -787,19 +791,19 @@ public class MapControlsLayer extends OsmandMapLayer { updateMyLocation(rh, routeDialogOpened || trackDialogOpened || contextMenuOpened); boolean showButtons = (showRouteCalculationControls || !routeFollowingMode) && !isInMovingMarkerMode() && !isInGpxDetailsMode() && !isInMeasurementToolMode() && !isInPlanRouteMode() && !contextMenuOpened && !isInChoosingRoutesMode() && !isInWaypointsChoosingMode(); - //routePlanningBtn.setIconResId(routeFollowingMode ? R.drawable.ic_action_info_dark : R.drawable.map_directions); + //routePlanningBtn.setIconResId(routeFollowingMode ? R.drawable.ic_action_info_dark : R.drawable.ic_action_gdirections_dark); int routePlanningBtnImage = mapRouteInfoMenu.getRoutePlanningBtnImage(); if (routePlanningBtnImage != 0) { routePlanningBtn.setIconResId(routePlanningBtnImage); routePlanningBtn.setIconColorId(R.color.color_myloc_distance); } else if (rh.isFollowingMode()) { - routePlanningBtn.setIconResId(R.drawable.map_start_navigation); + routePlanningBtn.setIconResId(R.drawable.ic_action_start_navigation); routePlanningBtn.setIconColorId(R.color.color_myloc_distance); } else if (routePlanningMode) { - routePlanningBtn.setIconResId(R.drawable.map_directions); + routePlanningBtn.setIconResId(R.drawable.ic_action_gdirections_dark); routePlanningBtn.setIconColorId(R.color.color_myloc_distance); } else { - routePlanningBtn.setIconResId(R.drawable.map_directions); + routePlanningBtn.setIconResId(R.drawable.ic_action_gdirections_dark); routePlanningBtn.resetIconColors(); } routePlanningBtn.updateVisibility(showButtons); @@ -854,15 +858,15 @@ public class MapControlsLayer extends OsmandMapLayer { compassHud.updateVisibility(showCompass); } if (settings.ROTATE_MAP.get() == OsmandSettings.ROTATE_MAP_NONE) { - compassHud.setIconResId(isNight ? R.drawable.map_compass_niu_white : R.drawable.map_compass_niu); + compassHud.setIconResId(isNight ? R.drawable.ic_compass_niu_white : R.drawable.ic_compass_niu); compassHud.iv.setContentDescription(mapActivity.getString(R.string.rotate_map_none_opt)); compassHud.updateVisibility(showCompass); } else if (settings.ROTATE_MAP.get() == OsmandSettings.ROTATE_MAP_BEARING) { - compassHud.setIconResId(isNight ? R.drawable.map_compass_bearing_white : R.drawable.map_compass_bearing); + compassHud.setIconResId(isNight ? R.drawable.ic_compass_bearing_white : R.drawable.ic_compass_bearing); compassHud.iv.setContentDescription(mapActivity.getString(R.string.rotate_map_bearing_opt)); compassHud.updateVisibility(true); } else { - compassHud.setIconResId(isNight ? R.drawable.map_compass_white : R.drawable.map_compass); + compassHud.setIconResId(isNight ? R.drawable.ic_compass_white : R.drawable.ic_compass); compassHud.iv.setContentDescription(mapActivity.getString(R.string.rotate_map_compass_opt)); compassHud.updateVisibility(true); } @@ -887,7 +891,7 @@ public class MapControlsLayer extends OsmandMapLayer { if (!enabled) { backToLocationControl.setBg(R.drawable.btn_circle, R.drawable.btn_circle_night); - backToLocationControl.setIconColorId(R.color.icon_color_default_light, 0); + backToLocationControl.setIconColorId(R.color.map_button_icon_color_light, R.color.map_button_icon_color_dark); backToLocationControl.iv.setContentDescription(mapActivity.getString(R.string.unknown_location)); } else if (tracked) { backToLocationControl.setBg(R.drawable.btn_circle, R.drawable.btn_circle_night); @@ -983,8 +987,8 @@ public class MapControlsLayer extends OsmandMapLayer { int resId; int resLightId; int resDarkId; - int resClrLight = R.color.icon_color_default_light; - int resClrDark = 0; + int resClrLight = R.color.map_button_icon_color_light; + int resClrDark = R.color.map_button_icon_color_dark; String id; boolean nightMode = false; @@ -1093,11 +1097,11 @@ public class MapControlsLayer extends OsmandMapLayer { } public boolean resetIconColors() { - if (resClrLight == R.color.icon_color_default_light && resClrDark == 0) { + if (resClrLight == R.color.map_button_icon_color_light && resClrDark == R.color.map_button_icon_color_dark) { return false; } - resClrLight = R.color.icon_color_default_light; - resClrDark = 0; + resClrLight = R.color.map_button_icon_color_light; + resClrDark = R.color.map_button_icon_color_dark; f = true; return true; } @@ -1157,14 +1161,9 @@ public class MapControlsLayer extends OsmandMapLayer { } if (iv instanceof ImageView) { if (compass) { - ((ImageView) iv).setImageDrawable(new CompassDrawable(d)); + setMapButtonIcon((ImageView) iv, new CompassDrawable(d)); } else { - int btnSizePx = (iv).getLayoutParams().height; - int iconSizePx = (int) ctx.getResources().getDimension(R.dimen.map_widget_icon); - int iconPadding = (btnSizePx - iconSizePx) / 2; - iv.setPadding(iconPadding, iconPadding, iconPadding, iconPadding); - ((ImageView) iv).setScaleType(ImageView.ScaleType.FIT_CENTER); - ((ImageView) iv).setImageDrawable(d); + setMapButtonIcon((ImageView) iv, d); } } else if (iv instanceof TextView) { ((TextView) iv).setCompoundDrawablesWithIntrinsicBounds( diff --git a/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java b/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java index aa1c4506af..a961ea1611 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java @@ -2,6 +2,7 @@ package net.osmand.plus.views; import android.graphics.Canvas; +import android.graphics.drawable.Drawable; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageButton; @@ -237,8 +238,9 @@ public class MapInfoLayer extends OsmandMapLayer { expand.setVisibility(mapInfoControls.hasCollapsibles(settings.getApplicationMode())? View.VISIBLE : View.GONE); - this.expand.setImageResource(expanded ? R.drawable.map_up : - R.drawable.map_down); + Drawable expandIcon = map.getMyApplication().getUIUtilities().getMapIcon(expanded ? R.drawable.ic_action_arrow_up : + R.drawable.ic_action_arrow_down, true); + setMapButtonIcon(expand, expandIcon); expand.setContentDescription(map.getString(expanded ? R.string.shared_string_collapse : R.string.access_widget_expand)); expand.setOnClickListener(new OnClickListener() { @@ -289,7 +291,9 @@ public class MapInfoLayer extends OsmandMapLayer { updateTopToolbar(nightMode); lanesControl.updateTextSize(nightMode, ts.textColor, ts.textShadowColor, ts.textBold, ts.textShadowRadius / 2); rulerControl.updateTextSize(nightMode, ts.textColor, ts.textShadowColor, (int) (2 * view.getDensity())); + int padding = this.expand.getPaddingLeft(); this.expand.setBackgroundResource(ts.expand); + this.expand.setPadding(padding, padding, padding, padding); rightStack.invalidate(); leftStack.invalidate(); } diff --git a/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java b/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java index 33344bcf3a..30c1348235 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java @@ -283,15 +283,9 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe } private void updateQuickActionButton(boolean widgetVisible) { - quickActionButton.setBackgroundResource( - nightMode ? R.drawable.btn_circle_night : R.drawable.btn_circle_trans); - int btnSizePx = quickActionButton.getLayoutParams().height; - int iconSizePx = (int) quickActionButton.getContext().getResources().getDimension(R.dimen.map_widget_icon); - int iconPadding = (btnSizePx - iconSizePx) / 2; - quickActionButton.setPadding(iconPadding, iconPadding, iconPadding, iconPadding); - quickActionButton.setScaleType(ImageView.ScaleType.FIT_CENTER); - quickActionButton.setImageDrawable(app.getUIUtilities().getMapIcon( - !widgetVisible ? R.drawable.map_quick_action : R.drawable.ic_action_close, !nightMode)); + quickActionButton.setBackgroundResource(nightMode ? R.drawable.btn_circle_night : R.drawable.btn_circle_trans); + setMapButtonIcon(quickActionButton, app.getUIUtilities().getMapIcon( + !widgetVisible ? R.drawable.ic_quick_action : R.drawable.ic_action_close, !nightMode)); quickActionButton.setContentDescription(mapActivity.getString(!widgetVisible ? R.string.configure_screen_quick_action : R.string.shared_string_cancel)); } diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java index 0e154d098f..45f5541d29 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java @@ -20,6 +20,7 @@ import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.util.Pair; import android.view.MotionEvent; +import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.core.graphics.ColorUtils; @@ -645,6 +646,15 @@ public abstract class OsmandMapLayer { return (int) textScale * radiusPoi; } + public void setMapButtonIcon(ImageView imageView, Drawable icon) { + int btnSizePx = imageView.getLayoutParams().height; + int iconSizePx = imageView.getContext().getResources().getDimensionPixelSize(R.dimen.map_widget_icon); + int iconPadding = (btnSizePx - iconSizePx) / 2; + imageView.setPadding(iconPadding, iconPadding, iconPadding, iconPadding); + imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); + imageView.setImageDrawable(icon); + } + public abstract class MapLayerData { public int ZOOM_THRESHOLD = 1; public RotatedTileBox queriedBox; diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapWidgetRegistry.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapWidgetRegistry.java index 2124c17b75..b1b18862d4 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapWidgetRegistry.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapWidgetRegistry.java @@ -455,7 +455,7 @@ public class MapWidgetRegistry { boolean selected = app.getQuickActionRegistry().isQuickActionOn(); contextMenuAdapter.addItem(new ContextMenuItem.ItemBuilder() .setTitleId(R.string.configure_screen_quick_action, mapActivity) - .setIcon(R.drawable.map_quick_action) + .setIcon(R.drawable.ic_quick_action) .setSelected(selected) .setColor(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setSecondaryIcon( R.drawable.ic_action_additional_option) From 4fff6ac766b4048babf3aecd7fb169cedeeb0cdd Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Mon, 25 May 2020 19:50:18 +0300 Subject: [PATCH 08/12] Fix formatting --- OsmAnd/res/layout/fragment_map_markers_dialog.xml | 4 ++-- OsmAnd/res/layout/search_dialog_fragment.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd/res/layout/fragment_map_markers_dialog.xml b/OsmAnd/res/layout/fragment_map_markers_dialog.xml index b0c1c100dc..c95935198c 100644 --- a/OsmAnd/res/layout/fragment_map_markers_dialog.xml +++ b/OsmAnd/res/layout/fragment_map_markers_dialog.xml @@ -27,7 +27,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:minHeight="@dimen/dashboard_map_toolbar" - android:padding="0dp" + android:padding="0dp" app:contentInsetLeft="54dp" app:contentInsetStart="54dp" app:contentInsetRight="0dp" @@ -94,7 +94,7 @@ android:layout_height="wrap_content" android:background="?attr/bg_color" app:itemBackground="?attr/bg_color" - app:labelVisibilityMode="labeled" + app:labelVisibilityMode="labeled" app:itemIconTint="@color/bottom_navigation_color_selector_light" app:itemTextColor="@color/bottom_navigation_color_selector_light" app:menu="@menu/map_markers_bottom_navigation"/> diff --git a/OsmAnd/res/layout/search_dialog_fragment.xml b/OsmAnd/res/layout/search_dialog_fragment.xml index 0af6069c79..964a025182 100644 --- a/OsmAnd/res/layout/search_dialog_fragment.xml +++ b/OsmAnd/res/layout/search_dialog_fragment.xml @@ -39,7 +39,7 @@ android:layout_height="@dimen/dashboard_map_toolbar" android:background="@color/osmand_orange" android:minHeight="@dimen/dashboard_map_toolbar" - android:padding="0dp" + android:padding="0dp" android:theme="?attr/toolbar_theme" android:visibility="gone" app:contentInsetLeft="54dp" From 917270784dc5b72cd326d1b294cb1753cdbc56e0 Mon Sep 17 00:00:00 2001 From: Dima-1 Date: Tue, 26 May 2020 11:44:08 +0300 Subject: [PATCH 09/12] Fix review --- OsmAnd/src/net/osmand/AndroidUtils.java | 6 ++-- .../plus/dashboard/DashFavoritesFragment.java | 29 ++++++++++--------- .../net/osmand/plus/views/MapInfoLayer.java | 6 ++-- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/OsmAnd/src/net/osmand/AndroidUtils.java b/OsmAnd/src/net/osmand/AndroidUtils.java index f3b7030d08..3c8eed9206 100644 --- a/OsmAnd/src/net/osmand/AndroidUtils.java +++ b/OsmAnd/src/net/osmand/AndroidUtils.java @@ -379,12 +379,12 @@ public class AndroidUtils { @DrawableRes int iconLightId, @DrawableRes int iconDarkId, @DrawableRes int bgLightId, @DrawableRes int bgDarkId, boolean night) { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { - button.setBackground(AppCompatResources.getDrawable(ctx, night ? bgDarkId : bgLightId)); + button.setBackground(ctx.getUIUtilities().getIcon(night ? bgDarkId : bgLightId)); } else { - button.setBackgroundDrawable(AppCompatResources.getDrawable(ctx, night ? bgDarkId : bgLightId)); + button.setBackgroundDrawable(ctx.getUIUtilities().getIcon(night ? bgDarkId : bgLightId)); } int btnSizePx = button.getLayoutParams().height; - int iconSizePx = button.getContext().getResources().getDimensionPixelSize(R.dimen.map_widget_icon); + int iconSizePx = ctx.getResources().getDimensionPixelSize(R.dimen.map_widget_icon); int iconPadding = (btnSizePx - iconSizePx) / 2; button.setPadding(iconPadding, iconPadding, iconPadding, iconPadding); button.setScaleType(ImageView.ScaleType.FIT_CENTER); diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java index 8ca1c92810..65eeffd8bd 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashFavoritesFragment.java @@ -1,6 +1,7 @@ package net.osmand.plus.dashboard; import android.graphics.Typeface; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -96,7 +97,7 @@ public class DashFavoritesFragment extends DashLocationFragment { public void setupFavorites() { View mainView = getView(); - OsmandApplication app = getMyApplication(); + final OsmandApplication app = getMyApplication(); if (mainView == null || app == null) { return; } @@ -112,7 +113,7 @@ public class DashFavoritesFragment extends DashLocationFragment { Collections.sort(points, new Comparator() { @Override public int compare(FavouritePoint point, FavouritePoint point2) { - // LatLon lastKnownMapLocation = getMyApplication().getSettings().getLastKnownMapLocation(); + // LatLon lastKnownMapLocation = app.getSettings().getLastKnownMapLocation(); int dist = (int) (MapUtils.getDistance(point.getLatitude(), point.getLongitude(), loc.getLatitude(), loc.getLongitude())); int dist2 = (int) (MapUtils.getDistance(point2.getLatitude(), point2.getLongitude(), @@ -123,7 +124,7 @@ public class DashFavoritesFragment extends DashLocationFragment { } LinearLayout favorites = (LinearLayout) mainView.findViewById(R.id.items); favorites.removeAllViews(); - DashboardOnMap.handleNumberOfRows(points, getMyApplication().getSettings(), ROW_NUMBER_TAG); + DashboardOnMap.handleNumberOfRows(points, app.getSettings(), ROW_NUMBER_TAG); List distances = new ArrayList(); for (final FavouritePoint point : points) { LayoutInflater inflater = getActivity().getLayoutInflater(); @@ -136,38 +137,40 @@ public class DashFavoritesFragment extends DashLocationFragment { view.findViewById(R.id.divider).setVisibility(View.VISIBLE); ImageView groupImage = (ImageView)view.findViewById(R.id.group_image); if (point.getCategory().length() > 0) { - ((TextView) view.findViewById(R.id.group_name)).setText(point.getCategoryDisplayName(getMyApplication())); - groupImage.setImageDrawable(getMyApplication().getUIUtilities().getThemedIcon(R.drawable.ic_action_group_name_16)); + ((TextView) view.findViewById(R.id.group_name)).setText(point.getCategoryDisplayName(app)); + groupImage.setImageDrawable(app.getUIUtilities().getThemedIcon(R.drawable.ic_action_group_name_16)); } else { groupImage.setVisibility(View.GONE); } - ((ImageView) view.findViewById(R.id.favourite_icon)).setImageDrawable(FavoriteImageDrawable.getOrCreate( - getActivity(), app.getFavorites().getColorWithCategory(point, getResources().getColor(R.color.color_favorite)), false, point)); + int iconColor = app.getFavorites().getColorWithCategory(point, getResources().getColor(R.color.color_favorite)); + Drawable favoriteIcon = FavoriteImageDrawable.getOrCreate(app, iconColor, false, point); + ((ImageView) view.findViewById(R.id.favourite_icon)).setImageDrawable(favoriteIcon); DashLocationView dv = new DashLocationView(direction, label, new LatLon(point.getLatitude(), point.getLongitude())); distances.add(dv); - name.setText(point.getDisplayName(getMyApplication())); + name.setText(point.getDisplayName(app)); name.setTypeface(Typeface.DEFAULT, point.isVisible() ? Typeface.NORMAL : Typeface.ITALIC); view.findViewById(R.id.navigate_to).setVisibility(View.VISIBLE); - ((ImageView) view.findViewById(R.id.navigate_to)).setImageDrawable(getMyApplication().getUIUtilities().getThemedIcon(R.drawable.ic_action_gdirections_dark)); + Drawable directionIcon = app.getUIUtilities().getThemedIcon(R.drawable.ic_action_gdirections_dark); + ((ImageView) view.findViewById(R.id.navigate_to)).setImageDrawable(directionIcon); view.findViewById(R.id.navigate_to).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { DirectionsDialogs.directionsToDialogAndLaunchMap(getActivity(), point.getLatitude(), point.getLongitude(), - new PointDescription(PointDescription.POINT_TYPE_FAVORITE, point.getDisplayName(getMyApplication()))); + new PointDescription(PointDescription.POINT_TYPE_FAVORITE, point.getDisplayName(app))); } }); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - getMyApplication().getSettings().setMapLocationToShow(point.getLatitude(), point.getLongitude(), - 15, new PointDescription(PointDescription.POINT_TYPE_FAVORITE, point.getDisplayName(getMyApplication())), true, - point); //$NON-NLS-1$ + app.getSettings().setMapLocationToShow(point.getLatitude(), point.getLongitude(), + 15, new PointDescription(PointDescription.POINT_TYPE_FAVORITE, point.getDisplayName(app)), + true, point); MapActivity.launchMapActivityMoveToTop(getActivity()); } }); diff --git a/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java b/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java index a961ea1611..f77a57e550 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapInfoLayer.java @@ -291,9 +291,9 @@ public class MapInfoLayer extends OsmandMapLayer { updateTopToolbar(nightMode); lanesControl.updateTextSize(nightMode, ts.textColor, ts.textShadowColor, ts.textBold, ts.textShadowRadius / 2); rulerControl.updateTextSize(nightMode, ts.textColor, ts.textShadowColor, (int) (2 * view.getDensity())); - int padding = this.expand.getPaddingLeft(); - this.expand.setBackgroundResource(ts.expand); - this.expand.setPadding(padding, padding, padding, padding); + int padding = expand.getPaddingLeft(); + expand.setBackgroundResource(ts.expand); + expand.setPadding(padding, padding, padding, padding); rightStack.invalidate(); leftStack.invalidate(); } From d1e479e9be77f7d4d968d055ebb4ca6c6da3a978 Mon Sep 17 00:00:00 2001 From: vshcherb Date: Tue, 26 May 2020 11:25:08 +0200 Subject: [PATCH 10/12] Update RouteProvider.java --- OsmAnd/src/net/osmand/plus/routing/RouteProvider.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java index 34fd072c85..febfa7aa0b 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java +++ b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java @@ -177,9 +177,9 @@ public class RouteProvider { GPXRouteParams res = new GPXRouteParams(); try { res.prepareGPXFile(this); - } catch (Exception e) { - log.error(e); - app.showShortToastMessage(app.getString(R.string.gpx_parse_error)); + } catch (RuntimeException e) { + log.error(e.getMessage(), e); + app.showShortToastMessage(app.getString(R.string.gpx_parse_error) + " " + e.getMessage()); } return res; } From 6f5a4d5bba7e627d7978a3f9baac19300479beaa Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Tue, 26 May 2020 12:27:27 +0300 Subject: [PATCH 11/12] Fix possible npe --- OsmAnd/src/net/osmand/plus/AppInitializer.java | 2 +- .../src/net/osmand/plus/views/MapQuickActionLayer.java | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java index f09785122e..c39fe3a9d5 100644 --- a/OsmAnd/src/net/osmand/plus/AppInitializer.java +++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java @@ -554,7 +554,7 @@ public class AppInitializer implements IProgress { customConfigs.put(fileName, builder); } catch (XmlPullParserException | IOException e) { Algorithms.removeAllFiles(f); - LOG.error(e); + LOG.error(e.getMessage(), e); } } } diff --git a/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java b/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java index 33344bcf3a..c425e1774d 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapQuickActionLayer.java @@ -394,9 +394,13 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe contextMarker.draw(canvas); } if (this.nightMode != nightMode) { - this.nightMode = nightMode; - updateQuickActionButton(currentWidgetState != null && currentWidgetState); - } + this.nightMode = nightMode; + boolean widgetVisible = false; + if (currentWidgetState != null) { + widgetVisible = currentWidgetState; + } + updateQuickActionButton(widgetVisible); + } setupQuickActionBtnVisibility(); } From fd9f87ba1df693477f08e7cac2fbd69c3aadf488 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Tue, 26 May 2020 15:15:53 +0200 Subject: [PATCH 12/12] Fix security exception --- .../net/osmand/plus/helpers/ImportHelper.java | 98 +++++++++---------- .../plus/myplaces/FavoritesActivity.java | 2 +- 2 files changed, 49 insertions(+), 51 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java index 96914f4e13..ba8e105ad0 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java @@ -9,7 +9,6 @@ import android.net.Uri; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; -import android.os.ParcelFileDescriptor; import android.provider.OpenableColumns; import android.provider.Settings; import android.widget.Toast; @@ -60,7 +59,6 @@ import org.xmlpull.v1.XmlPullParserException; import java.io.ByteArrayInputStream; import java.io.File; -import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; @@ -165,7 +163,7 @@ public class ImportHelper { return false; } - public void handleFavouritesImport(@NonNull Uri uri) { + public void handleGpxOrFavouritesImport(@NonNull Uri uri) { String scheme = uri.getScheme(); boolean isFileIntent = "file".equals(scheme); boolean isContentIntent = "content".equals(scheme); @@ -177,7 +175,7 @@ public class ImportHelper { } else if (isContentIntent) { fileName = getNameFromContentUri(app, uri); } - handleFavouritesImport(uri, fileName, saveFile, false, true); + handleGpxOrFavouritesImport(uri, fileName, saveFile, false, true); } public void handleFileImport(Uri intentUri, String fileName, Bundle extras, boolean useImportDir) { @@ -186,40 +184,48 @@ public class ImportHelper { final boolean saveFile = !isFileIntent || !isOsmandSubdir; - if (fileName != null && fileName.endsWith(KML_SUFFIX)) { + if (fileName == null) { + handleGpxOrFavouritesImport(intentUri, fileName, saveFile, useImportDir, false); + } else if (fileName.endsWith(KML_SUFFIX)) { handleKmlImport(intentUri, fileName, saveFile, useImportDir); - } else if (fileName != null && fileName.endsWith(KMZ_SUFFIX)) { + } else if (fileName.endsWith(KMZ_SUFFIX)) { handleKmzImport(intentUri, fileName, saveFile, useImportDir); - } else if (fileName != null && fileName.endsWith(IndexConstants.BINARY_MAP_INDEX_EXT)) { + } else if (fileName.endsWith(IndexConstants.BINARY_MAP_INDEX_EXT)) { handleObfImport(intentUri, fileName); - } else if (fileName != null && fileName.endsWith(IndexConstants.SQLITE_EXT)) { + } else if (fileName.endsWith(IndexConstants.SQLITE_EXT)) { handleSqliteTileImport(intentUri, fileName); - } else if (fileName != null && fileName.endsWith(OSMAND_SETTINGS_FILE_EXT)) { + } else if (fileName.endsWith(OSMAND_SETTINGS_FILE_EXT)) { handleOsmAndSettingsImport(intentUri, fileName, extras, null); - } else if (fileName != null && fileName.endsWith(ROUTING_FILE_EXT)) { + } else if (fileName.endsWith(ROUTING_FILE_EXT)) { handleXmlFileImport(intentUri, fileName, null); } else { - handleFavouritesImport(intentUri, fileName, saveFile, useImportDir, false); + handleGpxOrFavouritesImport(intentUri, fileName, saveFile, useImportDir, false); } } public static String getNameFromContentUri(OsmandApplication app, Uri contentUri) { - final String name; - final Cursor returnCursor = app.getContentResolver().query(contentUri, new String[] {OpenableColumns.DISPLAY_NAME}, null, null, null); - if (returnCursor != null && returnCursor.moveToFirst()) { - int columnIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); - if (columnIndex != -1) { - name = returnCursor.getString(columnIndex); + try { + final String name; + final Cursor returnCursor = app.getContentResolver().query(contentUri, new String[]{OpenableColumns.DISPLAY_NAME}, null, null, null); + if (returnCursor != null && returnCursor.moveToFirst()) { + int columnIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME); + if (columnIndex != -1) { + name = returnCursor.getString(columnIndex); + } else { + name = contentUri.getLastPathSegment(); + } } else { - name = contentUri.getLastPathSegment(); + name = null; } - } else { - name = null; + if (returnCursor != null && !returnCursor.isClosed()) { + returnCursor.close(); + } + return name; + } catch (RuntimeException e) { + log.error(e.getMessage(), e); + return null; } - if (returnCursor != null && !returnCursor.isClosed()) { - returnCursor.close(); - } - return name; + } @SuppressLint("StaticFieldLeak") @@ -236,10 +242,8 @@ public class ImportHelper { protected GPXFile doInBackground(Void... nothing) { InputStream is = null; try { - final ParcelFileDescriptor pFD = app.getContentResolver().openFileDescriptor(gpxFile, "r"); - - if (pFD != null) { - is = new FileInputStream(pFD.getFileDescriptor()); + is = app.getContentResolver().openInputStream(gpxFile); + if (is != null) { return GPXUtilities.loadGPXFile(is); } } catch (FileNotFoundException e) { @@ -264,7 +268,7 @@ public class ImportHelper { } @SuppressLint("StaticFieldLeak") - private void handleFavouritesImport(final Uri fileUri, final String fileName, final boolean save, final boolean useImportDir, final boolean forceImportFavourites) { + private void handleGpxOrFavouritesImport(final Uri fileUri, final String fileName, final boolean save, final boolean useImportDir, final boolean forceImportFavourites) { new AsyncTask() { ProgressDialog progress = null; @@ -278,10 +282,8 @@ public class ImportHelper { InputStream is = null; ZipInputStream zis = null; try { - final ParcelFileDescriptor pFD = app.getContentResolver().openFileDescriptor(fileUri, "r"); - if (pFD != null) { - is = new FileInputStream(pFD.getFileDescriptor()); - + is = app.getContentResolver().openInputStream(fileUri); + if (is != null) { if (fileName != null && fileName.endsWith(KML_SUFFIX)) { final String result = Kml2Gpx.toGpx(is); if (result != null) { @@ -331,7 +333,7 @@ public class ImportHelper { progress.dismiss(); } - importFavourites(result, fileName, save, useImportDir, forceImportFavourites); + importGpxOrFavourites(result, fileName, save, useImportDir, forceImportFavourites); } }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } @@ -394,9 +396,8 @@ public class ImportHelper { InputStream is = null; ZipInputStream zis = null; try { - final ParcelFileDescriptor pFD = app.getContentResolver().openFileDescriptor(kmzFile, "r"); - if (pFD != null) { - is = new FileInputStream(pFD.getFileDescriptor()); + is = app.getContentResolver().openInputStream(kmzFile); + if (is != null) { zis = new ZipInputStream(is); zis.getNextEntry(); final String result = Kml2Gpx.toGpx(zis); @@ -449,9 +450,8 @@ public class ImportHelper { protected GPXFile doInBackground(Void... nothing) { InputStream is = null; try { - final ParcelFileDescriptor pFD = app.getContentResolver().openFileDescriptor(kmlFile, "r"); - if (pFD != null) { - is = new FileInputStream(pFD.getFileDescriptor()); + is = app.getContentResolver().openInputStream(kmlFile); + if (is != null) { final String result = Kml2Gpx.toGpx(is); if (result != null) { try { @@ -533,13 +533,12 @@ public class ImportHelper { InputStream in = null; OutputStream out = null; try { - final ParcelFileDescriptor pFD = app.getContentResolver().openFileDescriptor(uri, "r"); - if (pFD != null) { - in = new FileInputStream(pFD.getFileDescriptor()); + in = app.getContentResolver().openInputStream(uri); + if (in != null) { out = new FileOutputStream(dest); Algorithms.streamCopy(in, out); try { - pFD.close(); + in.close(); } catch (IOException e) { e.printStackTrace(); } @@ -893,9 +892,8 @@ public class ImportHelper { private void checkImportType() { InputStream is = null; try { - final ParcelFileDescriptor pFD = app.getContentResolver().openFileDescriptor(intentUri, "r"); - if (pFD != null) { - is = new FileInputStream(pFD.getFileDescriptor()); + is = app.getContentResolver().openInputStream(intentUri); + if (is != null) { XmlPullParser parser = PlatformUtil.newXMLPullParser(); parser.setInput(is, "UTF-8"); int tok; @@ -911,7 +909,7 @@ public class ImportHelper { } } try { - pFD.close(); + is.close(); } catch (IOException e) { log.error(e); } @@ -1101,8 +1099,8 @@ public class ImportHelper { } } - private void importFavourites(final GPXFile gpxFile, final String fileName, final boolean save, - final boolean useImportDir, final boolean forceImportFavourites) { + private void importGpxOrFavourites(final GPXFile gpxFile, final String fileName, final boolean save, + final boolean useImportDir, final boolean forceImportFavourites) { if (gpxFile == null || gpxFile.isPointsEmpty()) { if (forceImportFavourites) { final DialogInterface.OnClickListener importAsTrackListener = new DialogInterface.OnClickListener() { diff --git a/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java b/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java index e56916bff0..5022942bf8 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/FavoritesActivity.java @@ -155,7 +155,7 @@ public class FavoritesActivity extends TabActivity { } } else if (requestCode == IMPORT_FAVOURITES_REQUEST && resultCode == Activity.RESULT_OK) { if (data != null && data.getData() != null) { - importHelper.handleFavouritesImport(data.getData()); + importHelper.handleGpxOrFavouritesImport(data.getData()); } } else { super.onActivityResult(requestCode, resultCode, data);