Merge branch 'master' of https://github.com/osmandapp/Osmand into custom_downloads
# Conflicts: # OsmAnd/res/values/strings.xml # OsmAnd/src/net/osmand/plus/settings/ConfigureMenuItemsFragment.java
This commit is contained in:
commit
2967b8f140
62 changed files with 363 additions and 272 deletions
|
@ -119,7 +119,7 @@ public class BinaryRoutePlanner {
|
||||||
printMemoryConsumption("Memory occupied before exception : ");
|
printMemoryConsumption("Memory occupied before exception : ");
|
||||||
}
|
}
|
||||||
if (ctx.memoryOverhead > ctx.config.memoryLimitation * 0.95) {
|
if (ctx.memoryOverhead > ctx.config.memoryLimitation * 0.95) {
|
||||||
throw new IllegalStateException("There is no enough memory " + ctx.config.memoryLimitation / (1 << 20) + " Mb");
|
throw new IllegalStateException("There is not enough memory " + ctx.config.memoryLimitation / (1 << 20) + " Mb");
|
||||||
}
|
}
|
||||||
ctx.visitedSegments ++;
|
ctx.visitedSegments ++;
|
||||||
if (forwardSearch) {
|
if (forwardSearch) {
|
||||||
|
|
|
@ -29,7 +29,7 @@ public class RoutingConfiguration {
|
||||||
|
|
||||||
// 1.1 tile load parameters (should not affect routing)
|
// 1.1 tile load parameters (should not affect routing)
|
||||||
public int ZOOM_TO_LOAD_TILES = 16;
|
public int ZOOM_TO_LOAD_TILES = 16;
|
||||||
public int memoryLimitation;
|
public long memoryLimitation;
|
||||||
|
|
||||||
// 1.2 Build A* graph in backward/forward direction (can affect results)
|
// 1.2 Build A* graph in backward/forward direction (can affect results)
|
||||||
// 0 - 2 ways, 1 - direct way, -1 - reverse way
|
// 0 - 2 ways, 1 - direct way, -1 - reverse way
|
||||||
|
@ -98,12 +98,12 @@ public class RoutingConfiguration {
|
||||||
i.ZOOM_TO_LOAD_TILES = parseSilentInt(getAttribute(i.router, "zoomToLoadTiles"), i.ZOOM_TO_LOAD_TILES);
|
i.ZOOM_TO_LOAD_TILES = parseSilentInt(getAttribute(i.router, "zoomToLoadTiles"), i.ZOOM_TO_LOAD_TILES);
|
||||||
int desirable = parseSilentInt(getAttribute(i.router, "memoryLimitInMB"), 0);
|
int desirable = parseSilentInt(getAttribute(i.router, "memoryLimitInMB"), 0);
|
||||||
if(desirable != 0) {
|
if(desirable != 0) {
|
||||||
i.memoryLimitation = desirable * (1 << 20);
|
i.memoryLimitation = desirable * (1l << 20);
|
||||||
} else {
|
} else {
|
||||||
if(memoryLimitMB == 0) {
|
if(memoryLimitMB == 0) {
|
||||||
memoryLimitMB = DEFAULT_MEMORY_LIMIT;
|
memoryLimitMB = DEFAULT_MEMORY_LIMIT;
|
||||||
}
|
}
|
||||||
i.memoryLimitation = memoryLimitMB * (1 << 20);
|
i.memoryLimitation = memoryLimitMB * (1l << 20);
|
||||||
}
|
}
|
||||||
i.planRoadDirection = parseSilentInt(getAttribute(i.router, "planRoadDirection"), i.planRoadDirection);
|
i.planRoadDirection = parseSilentInt(getAttribute(i.router, "planRoadDirection"), i.planRoadDirection);
|
||||||
// i.planRoadDirection = 1;
|
// i.planRoadDirection = 1;
|
||||||
|
|
|
@ -265,7 +265,7 @@ public class RoutingContext {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public RouteSegment loadRouteSegment(int x31, int y31, int memoryLimit) {
|
public RouteSegment loadRouteSegment(int x31, int y31, long memoryLimit) {
|
||||||
long tileId = getRoutingTile(x31, y31, memoryLimit);
|
long tileId = getRoutingTile(x31, y31, memoryLimit);
|
||||||
TLongObjectHashMap<RouteDataObject> excludeDuplications = new TLongObjectHashMap<RouteDataObject>();
|
TLongObjectHashMap<RouteDataObject> excludeDuplications = new TLongObjectHashMap<RouteDataObject>();
|
||||||
RouteSegment original = null;
|
RouteSegment original = null;
|
||||||
|
@ -443,7 +443,7 @@ public class RoutingContext {
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private long getRoutingTile(int x31, int y31, int memoryLimit) {
|
private long getRoutingTile(int x31, int y31, long memoryLimit) {
|
||||||
// long now = System.nanoTime();
|
// long now = System.nanoTime();
|
||||||
long xloc = x31 >> (31 - config.ZOOM_TO_LOAD_TILES);
|
long xloc = x31 >> (31 - config.ZOOM_TO_LOAD_TILES);
|
||||||
long yloc = y31 >> (31 - config.ZOOM_TO_LOAD_TILES);
|
long yloc = y31 >> (31 - config.ZOOM_TO_LOAD_TILES);
|
||||||
|
@ -515,11 +515,11 @@ public class RoutingContext {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public boolean checkIfMemoryLimitCritical(int memoryLimit) {
|
public boolean checkIfMemoryLimitCritical(long memoryLimit) {
|
||||||
return getCurrentEstimatedSize() > 0.9 * memoryLimit;
|
return getCurrentEstimatedSize() > 0.9 * memoryLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void unloadUnusedTiles(int memoryLimit) {
|
public void unloadUnusedTiles(long memoryLimit) {
|
||||||
float desirableSize = memoryLimit * 0.7f;
|
float desirableSize = memoryLimit * 0.7f;
|
||||||
List<RoutingSubregionTile> list = new ArrayList<RoutingSubregionTile>(subregionTiles.size() / 2);
|
List<RoutingSubregionTile> list = new ArrayList<RoutingSubregionTile>(subregionTiles.size() / 2);
|
||||||
int loaded = 0;
|
int loaded = 0;
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
android:paddingStart="@dimen/list_content_padding"
|
android:paddingStart="@dimen/list_content_padding"
|
||||||
android:paddingRight="0dp"
|
android:paddingRight="0dp"
|
||||||
android:paddingEnd="0dp"
|
android:paddingEnd="0dp"
|
||||||
android:minHeight="@dimen/list_item_height"
|
android:minHeight="@dimen/bottom_sheet_list_item_height"
|
||||||
android:background="?attr/expandable_list_item_background">
|
android:background="?attr/expandable_list_item_background">
|
||||||
|
|
||||||
<CheckBox
|
<CheckBox
|
||||||
|
@ -46,13 +46,13 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
android:layout_marginLeft="@dimen/list_content_padding_large"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
android:textSize="@dimen/default_list_text_size"
|
android:textSize="@dimen/default_list_text_size"
|
||||||
osmand:typeface="@string/font_roboto_medium"
|
osmand:typeface="@string/font_roboto_medium"
|
||||||
tools:text="Category name"
|
tools:text="Category name"
|
||||||
android:layout_marginStart="@dimen/list_content_padding" />
|
android:layout_marginStart="@dimen/list_content_padding_large" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/options"
|
android:id="@+id/options"
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="?attr/expandable_list_item_background"
|
android:background="?attr/expandable_list_item_background"
|
||||||
android:minHeight="@dimen/list_item_height"
|
android:minHeight="@dimen/favorites_list_item_height"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
@ -20,41 +20,45 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
android:background="?attr/dashboard_divider"
|
android:background="?attr/dashboard_divider"
|
||||||
android:layout_marginLeft="54dp"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:layout_marginStart="54dp" />
|
android:layout_marginLeft="@dimen/settings_divider_margin_start"
|
||||||
|
android:layout_marginStart="@dimen/settings_divider_margin_start" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:minHeight="@dimen/favorites_list_item_height"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
|
android:paddingStart="@dimen/list_header_padding"
|
||||||
android:paddingLeft="@dimen/list_header_padding"
|
android:paddingLeft="@dimen/list_header_padding"
|
||||||
android:paddingStart="@dimen/list_header_padding">
|
android:paddingEnd="@dimen/list_header_padding"
|
||||||
|
android:paddingRight="@dimen/list_header_padding">
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="@dimen/favorites_icon_size"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="center_vertical">
|
||||||
|
|
||||||
<CheckBox
|
<CheckBox
|
||||||
android:id="@+id/toggle_item"
|
android:id="@+id/toggle_item"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
android:layout_marginStart="@dimen/list_header_padding"
|
||||||
|
android:layout_marginLeft="@dimen/list_header_padding"
|
||||||
android:focusable="false"
|
android:focusable="false"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
tools:visibility="visible"
|
tools:visibility="visible" />
|
||||||
android:layout_marginEnd="@dimen/list_content_padding" />
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/favourite_icon"
|
android:id="@+id/favourite_icon"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center"
|
||||||
|
android:contentDescription="@string/favorite"
|
||||||
android:scaleType="center"
|
android:scaleType="center"
|
||||||
android:layout_marginRight="@dimen/list_header_settings_top_margin"
|
tools:src="@drawable/bg_point_circle"/>
|
||||||
android:layout_marginEnd="@dimen/list_header_settings_top_margin" />
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -63,16 +67,21 @@
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:paddingTop="6dp"
|
android:layout_marginStart="@dimen/favorites_icon_right_margin"
|
||||||
android:paddingRight="@dimen/list_content_padding"
|
android:layout_marginLeft="@dimen/favorites_icon_right_margin"
|
||||||
android:paddingBottom="6dp"
|
android:layout_marginEnd="@dimen/favorites_icon_right_margin"
|
||||||
android:paddingEnd="@dimen/list_content_padding">
|
android:layout_marginRight="@dimen/favorites_icon_right_margin"
|
||||||
|
android:paddingTop="@dimen/context_menu_padding_margin_small"
|
||||||
|
android:paddingBottom="@dimen/context_menu_padding_margin_small">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/favourite_label"
|
android:id="@+id/favourite_label"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:scrollbars="none"
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:layout_marginBottom="@dimen/subHeaderPadding"
|
||||||
android:textSize="@dimen/default_list_text_size"
|
android:textSize="@dimen/default_list_text_size"
|
||||||
tools:text="@string/lorem_ipsum" />
|
tools:text="@string/lorem_ipsum" />
|
||||||
|
|
||||||
|
@ -85,60 +94,63 @@
|
||||||
android:id="@+id/direction"
|
android:id="@+id/direction"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="top"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginTop="2dp"
|
android:contentDescription="@string/show_view_angle"
|
||||||
android:src="@drawable/ic_direction_arrow" />
|
android:src="@drawable/ic_direction_arrow" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/distance"
|
android:id="@+id/distance"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="2dp"
|
android:layout_marginStart="@dimen/gpx_small_icon_margin"
|
||||||
|
android:layout_marginLeft="@dimen/gpx_small_icon_margin"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
android:textColor="?android:textColorSecondary"
|
android:textColor="?android:textColorSecondary"
|
||||||
android:textSize="@dimen/default_sub_text_size"
|
android:textSize="@dimen/default_desc_text_size"
|
||||||
tools:text="100500 km"
|
tools:text="100500 km" />
|
||||||
android:layout_marginStart="2dp" />
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/group_image"
|
android:id="@+id/group_image"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginLeft="4dp"
|
android:layout_marginStart="@dimen/list_item_button_padding"
|
||||||
android:src="@drawable/ic_small_group"
|
android:layout_marginLeft="@dimen/list_item_button_padding"
|
||||||
android:layout_marginStart="4dp" />
|
android:contentDescription="@string/favorite_category_name"
|
||||||
|
android:src="@drawable/ic_small_group" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/group_name"
|
android:id="@+id/group_name"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginLeft="2dp"
|
android:layout_marginStart="@dimen/gpx_small_icon_margin"
|
||||||
|
android:layout_marginLeft="@dimen/gpx_small_icon_margin"
|
||||||
android:textColor="?android:textColorSecondary"
|
android:textColor="?android:textColorSecondary"
|
||||||
android:textSize="@dimen/default_sub_text_size"
|
android:textSize="@dimen/default_desc_text_size" />
|
||||||
android:layout_marginStart="2dp" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/navigate_to"
|
android:id="@+id/navigate_to"
|
||||||
android:contentDescription="@string/context_menu_item_directions_to"
|
|
||||||
android:layout_width="@dimen/list_item_height"
|
android:layout_width="@dimen/list_item_height"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="@dimen/list_item_height"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_marginStart="@dimen/dashFavIconMargin"
|
||||||
android:layout_marginLeft="@dimen/dashFavIconMargin"
|
android:layout_marginLeft="@dimen/dashFavIconMargin"
|
||||||
android:background="?attr/dashboard_button"
|
android:background="?attr/dashboard_button"
|
||||||
|
android:contentDescription="@string/context_menu_item_directions_to"
|
||||||
android:src="@drawable/ic_action_test_light"
|
android:src="@drawable/ic_action_test_light"
|
||||||
android:visibility="gone"
|
android:visibility="gone" />
|
||||||
android:layout_marginStart="@dimen/dashFavIconMargin" />
|
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/options"
|
android:id="@+id/options"
|
||||||
android:contentDescription="@string/shared_string_more"
|
|
||||||
android:layout_width="@dimen/list_item_height"
|
android:layout_width="@dimen/list_item_height"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="@dimen/list_item_height"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:background="?attr/dashboard_button"
|
android:background="?attr/dashboard_button"
|
||||||
|
android:contentDescription="@string/shared_string_more"
|
||||||
android:src="@drawable/ic_overflow_menu_white"
|
android:src="@drawable/ic_overflow_menu_white"
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
@ -139,7 +139,6 @@
|
||||||
android:paddingStart="12dp"
|
android:paddingStart="12dp"
|
||||||
android:paddingLeft="12dp"
|
android:paddingLeft="12dp"
|
||||||
android:paddingRight="12dp"
|
android:paddingRight="12dp"
|
||||||
android:scrollHorizontally="false"
|
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
tools:text="@string/lorem_ipsum" />
|
tools:text="@string/lorem_ipsum" />
|
||||||
|
|
||||||
|
|
|
@ -3363,7 +3363,7 @@
|
||||||
<string name="simulate_your_location_gpx_descr">محاكاة موقعك باستخدام مسار GPX مسجل.</string>
|
<string name="simulate_your_location_gpx_descr">محاكاة موقعك باستخدام مسار GPX مسجل.</string>
|
||||||
<string name="quick_action_directions_from_desc">زر لجعل مركز الشاشة نقطة الانطلاق. سيطلب بعد ذلك تعيين الوجهة أو تشغيل حساب المسار.</string>
|
<string name="quick_action_directions_from_desc">زر لجعل مركز الشاشة نقطة الانطلاق. سيطلب بعد ذلك تعيين الوجهة أو تشغيل حساب المسار.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">شخصي</string>
|
<string name="personal_category_name">شخصي</string>
|
||||||
<string name="shared_string_downloading_formatted">تنزيل %s</string>
|
<string name="shared_string_downloading_formatted">تنزيل %s</string>
|
||||||
<string name="rendering_value_thick_name">سميك</string>
|
<string name="rendering_value_thick_name">سميك</string>
|
||||||
|
|
|
@ -3368,7 +3368,7 @@
|
||||||
<string name="save_heading">Захоўваць кірунак</string>
|
<string name="save_heading">Захоўваць кірунак</string>
|
||||||
<string name="save_heading_descr">Падчас запісу захоўваць кірунак для кожнага пункта маршруту.</string>
|
<string name="save_heading_descr">Падчас запісу захоўваць кірунак для кожнага пункта маршруту.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Асабісты</string>
|
<string name="personal_category_name">Асабісты</string>
|
||||||
<string name="shared_string_downloading_formatted">Спампоўванне %s</string>
|
<string name="shared_string_downloading_formatted">Спампоўванне %s</string>
|
||||||
<string name="rendering_value_thick_name">Тоўста</string>
|
<string name="rendering_value_thick_name">Тоўста</string>
|
||||||
|
|
|
@ -3404,7 +3404,7 @@ Abasta l\'àrea: %1$s x %2$s</string>
|
||||||
<string name="join_segments">Uneix segments</string>
|
<string name="join_segments">Uneix segments</string>
|
||||||
<string name="add_new_profile_q">Voleu afegir el nou perfil \'%1$s\'\?</string>
|
<string name="add_new_profile_q">Voleu afegir el nou perfil \'%1$s\'\?</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Personal</string>
|
<string name="personal_category_name">Personal</string>
|
||||||
<string name="shared_string_downloading_formatted">S\'està baixant %s</string>
|
<string name="shared_string_downloading_formatted">S\'està baixant %s</string>
|
||||||
<string name="rendering_attr_showCycleNodeNetworkRoutes_name">Mostra les vies ciclistes de xarxa de nodes</string>
|
<string name="rendering_attr_showCycleNodeNetworkRoutes_name">Mostra les vies ciclistes de xarxa de nodes</string>
|
||||||
|
|
|
@ -3406,7 +3406,7 @@ Repræsenterer område: %1$s x %2$s</string>
|
||||||
<string name="save_heading">Medtag retning</string>
|
<string name="save_heading">Medtag retning</string>
|
||||||
<string name="save_heading_descr">Gem retning for hvert sporpunkt under optagelse.</string>
|
<string name="save_heading_descr">Gem retning for hvert sporpunkt under optagelse.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Personlig</string>
|
<string name="personal_category_name">Personlig</string>
|
||||||
<string name="shared_string_downloading_formatted">Henter %s</string>
|
<string name="shared_string_downloading_formatted">Henter %s</string>
|
||||||
<string name="rendering_value_thick_name">Tyk</string>
|
<string name="rendering_value_thick_name">Tyk</string>
|
||||||
|
|
|
@ -3410,7 +3410,7 @@ Lon %2$s</string>
|
||||||
<string name="save_heading">Richtung einbeziehen</string>
|
<string name="save_heading">Richtung einbeziehen</string>
|
||||||
<string name="save_heading_descr">Richtung zu jedem Trackpunkt während der Aufnahme speichern.</string>
|
<string name="save_heading_descr">Richtung zu jedem Trackpunkt während der Aufnahme speichern.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Persönlich</string>
|
<string name="personal_category_name">Persönlich</string>
|
||||||
<string name="shared_string_downloading_formatted">%s herunterladen</string>
|
<string name="shared_string_downloading_formatted">%s herunterladen</string>
|
||||||
<string name="rendering_value_thick_name">Fett</string>
|
<string name="rendering_value_thick_name">Fett</string>
|
||||||
|
|
|
@ -3403,7 +3403,7 @@
|
||||||
<string name="save_heading">Συμπερίληψη κατεύθυνσης</string>
|
<string name="save_heading">Συμπερίληψη κατεύθυνσης</string>
|
||||||
<string name="save_heading_descr">Αποθήκευση κατεύθυνσης για κάθε σημείο ίχνους κατά την εγγραφή.</string>
|
<string name="save_heading_descr">Αποθήκευση κατεύθυνσης για κάθε σημείο ίχνους κατά την εγγραφή.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Προσωπικό</string>
|
<string name="personal_category_name">Προσωπικό</string>
|
||||||
<string name="shared_string_downloading_formatted">Λήψη %s</string>
|
<string name="shared_string_downloading_formatted">Λήψη %s</string>
|
||||||
<string name="rendering_value_thick_name">Πυκνός</string>
|
<string name="rendering_value_thick_name">Πυκνός</string>
|
||||||
|
|
|
@ -3386,7 +3386,7 @@ Indikas lokon: %1$s x %2$s"</string>
|
||||||
<string name="save_heading">Inkluzivi direkton</string>
|
<string name="save_heading">Inkluzivi direkton</string>
|
||||||
<string name="save_heading_descr">Konservi direkton al ĉiu punkto de kurso dum registri.</string>
|
<string name="save_heading_descr">Konservi direkton al ĉiu punkto de kurso dum registri.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Personaj</string>
|
<string name="personal_category_name">Personaj</string>
|
||||||
<string name="shared_string_downloading_formatted">Elŝutado de %s</string>
|
<string name="shared_string_downloading_formatted">Elŝutado de %s</string>
|
||||||
<string name="rendering_value_thick_name">Dika</string>
|
<string name="rendering_value_thick_name">Dika</string>
|
||||||
|
|
|
@ -3405,7 +3405,7 @@ Lon %2$s</string>
|
||||||
<string name="save_heading">Incluir rumbo</string>
|
<string name="save_heading">Incluir rumbo</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="save_heading_descr">Guarda el rumbo para cada punto de la traza durante la grabación.</string>
|
<string name="save_heading_descr">Guarda el rumbo para cada punto de la traza durante la grabación.</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Personal</string>
|
<string name="personal_category_name">Personal</string>
|
||||||
<string name="shared_string_downloading_formatted">Descargando %s</string>
|
<string name="shared_string_downloading_formatted">Descargando %s</string>
|
||||||
<string name="rendering_value_thick_name">Espesor</string>
|
<string name="rendering_value_thick_name">Espesor</string>
|
||||||
|
|
|
@ -3405,7 +3405,7 @@ Lon %2$s</string>
|
||||||
<string name="save_heading">Incluir rumbo</string>
|
<string name="save_heading">Incluir rumbo</string>
|
||||||
<string name="save_heading_descr">Guarda el rumbo para cada punto de la traza durante la grabación.</string>
|
<string name="save_heading_descr">Guarda el rumbo para cada punto de la traza durante la grabación.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Personal</string>
|
<string name="personal_category_name">Personal</string>
|
||||||
<string name="shared_string_downloading_formatted">Descargando %s</string>
|
<string name="shared_string_downloading_formatted">Descargando %s</string>
|
||||||
<string name="rendering_value_thick_name">Espesor</string>
|
<string name="rendering_value_thick_name">Espesor</string>
|
||||||
|
|
|
@ -3395,7 +3395,7 @@
|
||||||
<string name="save_heading">Incluir rumbo</string>
|
<string name="save_heading">Incluir rumbo</string>
|
||||||
<string name="save_heading_descr">Guarda el rumbo para cada punto de la traza durante la grabación.</string>
|
<string name="save_heading_descr">Guarda el rumbo para cada punto de la traza durante la grabación.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Personal</string>
|
<string name="personal_category_name">Personal</string>
|
||||||
<string name="shared_string_downloading_formatted">Descargando %s</string>
|
<string name="shared_string_downloading_formatted">Descargando %s</string>
|
||||||
<string name="rendering_value_thick_name">Grueso</string>
|
<string name="rendering_value_thick_name">Grueso</string>
|
||||||
|
|
|
@ -1033,7 +1033,7 @@
|
||||||
<string name="save_heading">Kaasa pealkiri</string>
|
<string name="save_heading">Kaasa pealkiri</string>
|
||||||
<string name="save_heading_descr">Salvestamise ajal salvesta kurss igasse teekonnapunkti.</string>
|
<string name="save_heading_descr">Salvestamise ajal salvesta kurss igasse teekonnapunkti.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Isiklik</string>
|
<string name="personal_category_name">Isiklik</string>
|
||||||
<string name="shared_string_downloading_formatted">Allalaadimine %s</string>
|
<string name="shared_string_downloading_formatted">Allalaadimine %s</string>
|
||||||
<string name="rendering_value_thick_name">Jäme</string>
|
<string name="rendering_value_thick_name">Jäme</string>
|
||||||
|
|
|
@ -3409,7 +3409,7 @@ Area honi dagokio: %1$s x %2$s</string>
|
||||||
<string name="save_heading">Sartu norabidea</string>
|
<string name="save_heading">Sartu norabidea</string>
|
||||||
<string name="save_heading_descr">Gorde lorratzeko puntu bakoitzerako norabidea grabatzean.</string>
|
<string name="save_heading_descr">Gorde lorratzeko puntu bakoitzerako norabidea grabatzean.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Pertsonala</string>
|
<string name="personal_category_name">Pertsonala</string>
|
||||||
<string name="shared_string_downloading_formatted">%s deskargatzen</string>
|
<string name="shared_string_downloading_formatted">%s deskargatzen</string>
|
||||||
<string name="rendering_value_thick_name">Lodia</string>
|
<string name="rendering_value_thick_name">Lodia</string>
|
||||||
|
|
|
@ -3431,7 +3431,7 @@
|
||||||
<string name="save_heading">ثبت جهت</string>
|
<string name="save_heading">ثبت جهت</string>
|
||||||
<string name="save_heading_descr">هنگام ضبط، جهت (heading) را برای هر یک از نقطههای رد ثبت میکند.</string>
|
<string name="save_heading_descr">هنگام ضبط، جهت (heading) را برای هر یک از نقطههای رد ثبت میکند.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s، %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s، %2$s</string>
|
||||||
<string name="personal_category_name">شخصی</string>
|
<string name="personal_category_name">شخصی</string>
|
||||||
<string name="shared_string_downloading_formatted">در حال بارگیری %s</string>
|
<string name="shared_string_downloading_formatted">در حال بارگیری %s</string>
|
||||||
<string name="rendering_value_thick_name">ضخیم</string>
|
<string name="rendering_value_thick_name">ضخیم</string>
|
||||||
|
|
|
@ -3376,7 +3376,7 @@ représentant la zone : %1$s x %2$s</string>
|
||||||
<string name="rendering_value_walkingRoutesOSMCNodes_name">Réseaux</string>
|
<string name="rendering_value_walkingRoutesOSMCNodes_name">Réseaux</string>
|
||||||
<string name="personal_category_name">Personnel</string>
|
<string name="personal_category_name">Personnel</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="shared_string_downloading_formatted">Téléchargement %s</string>
|
<string name="shared_string_downloading_formatted">Téléchargement %s</string>
|
||||||
<string name="rendering_value_thick_name">Épais</string>
|
<string name="rendering_value_thick_name">Épais</string>
|
||||||
<string name="desert_render_descr">Pour les déserts et autres zones faiblement peuplées, affiche plus de détails.</string>
|
<string name="desert_render_descr">Pour les déserts et autres zones faiblement peuplées, affiche plus de détails.</string>
|
||||||
|
|
|
@ -3476,7 +3476,7 @@ Lon %2$s</string>
|
||||||
<string name="save_heading">Incluír encabezamento</string>
|
<string name="save_heading">Incluír encabezamento</string>
|
||||||
<string name="save_heading_descr">Gardar encabezamento en cada punto da pista (trackpoint) mentres se grava.</string>
|
<string name="save_heading_descr">Gardar encabezamento en cada punto da pista (trackpoint) mentres se grava.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Persoal</string>
|
<string name="personal_category_name">Persoal</string>
|
||||||
<string name="shared_string_downloading_formatted">Baixando %s</string>
|
<string name="shared_string_downloading_formatted">Baixando %s</string>
|
||||||
<string name="rendering_value_thick_name">Groso</string>
|
<string name="rendering_value_thick_name">Groso</string>
|
||||||
|
|
|
@ -3395,7 +3395,7 @@
|
||||||
<string name="save_heading">כולל הכותרת</string>
|
<string name="save_heading">כולל הכותרת</string>
|
||||||
<string name="save_heading_descr">לשמור את הכותרת של כל נקודת דרך בזמן ההקלטה.</string>
|
<string name="save_heading_descr">לשמור את הכותרת של כל נקודת דרך בזמן ההקלטה.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">אישי</string>
|
<string name="personal_category_name">אישי</string>
|
||||||
<string name="shared_string_downloading_formatted">%s בהורדה</string>
|
<string name="shared_string_downloading_formatted">%s בהורדה</string>
|
||||||
<string name="routing_attr_allow_classic_only_description">מסלולים שעבור גרומינג לסגנון קלסי רק ללא מסלולי ההחלקה. לרבות מסלולים שעברו גרומינג על ידי אופנוע שלג עם תוואי רופף ומסלולים שנסללו ידנית על ידי גולשי סקי.</string>
|
<string name="routing_attr_allow_classic_only_description">מסלולים שעבור גרומינג לסגנון קלסי רק ללא מסלולי ההחלקה. לרבות מסלולים שעברו גרומינג על ידי אופנוע שלג עם תוואי רופף ומסלולים שנסללו ידנית על ידי גולשי סקי.</string>
|
||||||
|
|
|
@ -3233,7 +3233,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük
|
||||||
<string name="suggested_maps">Javasolt térképek</string>
|
<string name="suggested_maps">Javasolt térképek</string>
|
||||||
<string name="add_new_profile_q">Hozzáadja az új „%1$s” profilt\?</string>
|
<string name="add_new_profile_q">Hozzáadja az új „%1$s” profilt\?</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Személyes</string>
|
<string name="personal_category_name">Személyes</string>
|
||||||
<string name="shared_string_downloading_formatted">%s letöltése</string>
|
<string name="shared_string_downloading_formatted">%s letöltése</string>
|
||||||
<string name="new_route_calculated_dist_dbg">Útvonal: távolság %s, menetidő %s
|
<string name="new_route_calculated_dist_dbg">Útvonal: távolság %s, menetidő %s
|
||||||
|
|
|
@ -3413,7 +3413,7 @@ Stendur fyrir svæði: %1$s x %2$s</string>
|
||||||
<string name="save_heading">Hafa með stefnu</string>
|
<string name="save_heading">Hafa með stefnu</string>
|
||||||
<string name="save_heading_descr">Vista stefnu í hvern ferilpunkt á meðan upptöku stendur.</string>
|
<string name="save_heading_descr">Vista stefnu í hvern ferilpunkt á meðan upptöku stendur.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Persónulegt</string>
|
<string name="personal_category_name">Persónulegt</string>
|
||||||
<string name="shared_string_downloading_formatted">Sæki %s</string>
|
<string name="shared_string_downloading_formatted">Sæki %s</string>
|
||||||
<string name="rendering_value_thick_name">Svert</string>
|
<string name="rendering_value_thick_name">Svert</string>
|
||||||
|
|
|
@ -3397,7 +3397,7 @@ Rappresenta l\'area: %1$s x %2$s</string>
|
||||||
<string name="save_heading">Salva orientamento</string>
|
<string name="save_heading">Salva orientamento</string>
|
||||||
<string name="save_heading_descr">Durante la registrazione salva l\'orientamento per ogni punto della traccia</string>
|
<string name="save_heading_descr">Durante la registrazione salva l\'orientamento per ogni punto della traccia</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Personale</string>
|
<string name="personal_category_name">Personale</string>
|
||||||
<string name="shared_string_downloading_formatted">Scaricamento %s</string>
|
<string name="shared_string_downloading_formatted">Scaricamento %s</string>
|
||||||
<string name="rendering_attr_piste_type_snow_park_name">Parco innevato</string>
|
<string name="rendering_attr_piste_type_snow_park_name">Parco innevato</string>
|
||||||
|
|
|
@ -3409,7 +3409,7 @@ POIの更新は利用できません</string>
|
||||||
<string name="rendering_value_thick_name">濃い</string>
|
<string name="rendering_value_thick_name">濃い</string>
|
||||||
<string name="desert_render_descr">砂漠などの過疎地に向いたマップスタイルです。各情報の詳細も表示されます。</string>
|
<string name="desert_render_descr">砂漠などの過疎地に向いたマップスタイルです。各情報の詳細も表示されます。</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="select_navigation_icon">移動中の位置アイコン</string>
|
<string name="select_navigation_icon">移動中の位置アイコン</string>
|
||||||
<string name="select_map_icon">静止中の位置アイコン</string>
|
<string name="select_map_icon">静止中の位置アイコン</string>
|
||||||
<string name="delete_profiles_descr">[決定]をタップすると、プロファイルが完全に削除されます。</string>
|
<string name="delete_profiles_descr">[決定]をタップすると、プロファイルが完全に削除されます。</string>
|
||||||
|
|
|
@ -362,7 +362,7 @@
|
||||||
<string name="save_heading">ಶೀರ್ಷಿಕೆಯನ್ನು ಸೇರಿಸಿ</string>
|
<string name="save_heading">ಶೀರ್ಷಿಕೆಯನ್ನು ಸೇರಿಸಿ</string>
|
||||||
<string name="save_heading_descr">ರೆಕಾರ್ಡಿಂಗ್ ಮಾಡುವಾಗ ಪ್ರತಿ ಟ್ರ್ಯಾಕ್ ಪಾಯಿಂಟ್ಗೆ ಶೀರ್ಷಿಕೆ ಉಳಿಸಿ.</string>
|
<string name="save_heading_descr">ರೆಕಾರ್ಡಿಂಗ್ ಮಾಡುವಾಗ ಪ್ರತಿ ಟ್ರ್ಯಾಕ್ ಪಾಯಿಂಟ್ಗೆ ಶೀರ್ಷಿಕೆ ಉಳಿಸಿ.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">ವೈಯಕ್ತಿಕ</string>
|
<string name="personal_category_name">ವೈಯಕ್ತಿಕ</string>
|
||||||
<string name="shared_string_downloading_formatted">ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ%s</string>
|
<string name="shared_string_downloading_formatted">ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ%s</string>
|
||||||
<string name="rendering_value_thick_name">ದಪ್ಪ</string>
|
<string name="rendering_value_thick_name">ದಪ್ಪ</string>
|
||||||
|
|
|
@ -3406,7 +3406,7 @@
|
||||||
<string name="shared_string_turn_off">Skru av</string>
|
<string name="shared_string_turn_off">Skru av</string>
|
||||||
<string name="new_plugin_added">Nytt programtillegg lagt til</string>
|
<string name="new_plugin_added">Nytt programtillegg lagt til</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Personlig</string>
|
<string name="personal_category_name">Personlig</string>
|
||||||
<string name="shared_string_downloading_formatted">Laster ned %s</string>
|
<string name="shared_string_downloading_formatted">Laster ned %s</string>
|
||||||
<string name="rendering_value_thick_name">Tykk</string>
|
<string name="rendering_value_thick_name">Tykk</string>
|
||||||
|
|
|
@ -3281,7 +3281,7 @@ voor Gebied: %1$s x %2$s</string>
|
||||||
<string name="save_heading">Richting toevoegen</string>
|
<string name="save_heading">Richting toevoegen</string>
|
||||||
<string name="personal_category_name">Persoonlijk</string>
|
<string name="personal_category_name">Persoonlijk</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="shared_string_downloading_formatted">Downloaden %s</string>
|
<string name="shared_string_downloading_formatted">Downloaden %s</string>
|
||||||
<string name="desert_render_descr">Voor woestijnen en andere dunbevolkte gebieden. Meer gedetailleerd.</string>
|
<string name="desert_render_descr">Voor woestijnen en andere dunbevolkte gebieden. Meer gedetailleerd.</string>
|
||||||
<string name="rendering_value_thick_name">Dik</string>
|
<string name="rendering_value_thick_name">Dik</string>
|
||||||
|
|
|
@ -3403,7 +3403,7 @@ Reprezentuje obszar: %1$s x %2$s</string>
|
||||||
<string name="save_heading">Dołączenie kierunku</string>
|
<string name="save_heading">Dołączenie kierunku</string>
|
||||||
<string name="save_heading_descr">Zapisuje podczas rejestrowania kierunek do każdego punktu trasy.</string>
|
<string name="save_heading_descr">Zapisuje podczas rejestrowania kierunek do każdego punktu trasy.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Osobiste</string>
|
<string name="personal_category_name">Osobiste</string>
|
||||||
<string name="shared_string_downloading_formatted">Pobieranie %s</string>
|
<string name="shared_string_downloading_formatted">Pobieranie %s</string>
|
||||||
<string name="desert_render_descr">Dla pustyń i innych słabo zaludnionych obszarów. Bardziej szczegółowa.</string>
|
<string name="desert_render_descr">Dla pustyń i innych słabo zaludnionych obszarów. Bardziej szczegółowa.</string>
|
||||||
|
|
|
@ -3392,7 +3392,7 @@ Pôr do Sol: %2$s</string>
|
||||||
<string name="save_heading">Incluir direção</string>
|
<string name="save_heading">Incluir direção</string>
|
||||||
<string name="save_heading_descr">Salve o cabeçalho em cada ponto da trilha durante a gravação.</string>
|
<string name="save_heading_descr">Salve o cabeçalho em cada ponto da trilha durante a gravação.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Pessoal</string>
|
<string name="personal_category_name">Pessoal</string>
|
||||||
<string name="shared_string_downloading_formatted">Baixando %s</string>
|
<string name="shared_string_downloading_formatted">Baixando %s</string>
|
||||||
<string name="rendering_value_thick_name">Grosso</string>
|
<string name="rendering_value_thick_name">Grosso</string>
|
||||||
|
|
|
@ -3377,7 +3377,7 @@
|
||||||
<string name="save_heading">Incluir a direção</string>
|
<string name="save_heading">Incluir a direção</string>
|
||||||
<string name="save_heading_descr">Gravar direção para cada ponto de pista durante a gravação.</string>
|
<string name="save_heading_descr">Gravar direção para cada ponto de pista durante a gravação.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Pessoal</string>
|
<string name="personal_category_name">Pessoal</string>
|
||||||
<string name="shared_string_downloading_formatted">Descarregando %s</string>
|
<string name="shared_string_downloading_formatted">Descarregando %s</string>
|
||||||
<string name="rendering_value_thick_name">Grosso</string>
|
<string name="rendering_value_thick_name">Grosso</string>
|
||||||
|
|
|
@ -2654,7 +2654,7 @@
|
||||||
<string name="save_heading">Includeți titlu</string>
|
<string name="save_heading">Includeți titlu</string>
|
||||||
<string name="save_heading_descr">Salvați poziția fiecarui punct al traseului în timpul înregistrării.</string>
|
<string name="save_heading_descr">Salvați poziția fiecarui punct al traseului în timpul înregistrării.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Personal</string>
|
<string name="personal_category_name">Personal</string>
|
||||||
<string name="shared_string_downloading_formatted">Descarcarea %s</string>
|
<string name="shared_string_downloading_formatted">Descarcarea %s</string>
|
||||||
<string name="rendering_value_thick_name">Gros</string>
|
<string name="rendering_value_thick_name">Gros</string>
|
||||||
|
|
|
@ -3354,7 +3354,7 @@
|
||||||
<string name="suggested_maps">Предлагаемые карты</string>
|
<string name="suggested_maps">Предлагаемые карты</string>
|
||||||
<string name="join_segments">Объединить сегменты</string>
|
<string name="join_segments">Объединить сегменты</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="desert_render_descr">Для пустынь и других малонаселенных районов. Более детально.</string>
|
<string name="desert_render_descr">Для пустынь и других малонаселенных районов. Более детально.</string>
|
||||||
<string name="select_navigation_icon">Положение значка при движении</string>
|
<string name="select_navigation_icon">Положение значка при движении</string>
|
||||||
<string name="select_map_icon">Положение значка в состоянии покоя</string>
|
<string name="select_map_icon">Положение значка в состоянии покоя</string>
|
||||||
|
|
|
@ -3404,7 +3404,7 @@ Pro praghere iscrie su còdighe intreu</string>
|
||||||
<string name="save_heading">Inclue sa diretzione</string>
|
<string name="save_heading">Inclue sa diretzione</string>
|
||||||
<string name="save_heading_descr">Sarva sa diretzione pro cada puntu cando ses registrende.</string>
|
<string name="save_heading_descr">Sarva sa diretzione pro cada puntu cando ses registrende.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Personale</string>
|
<string name="personal_category_name">Personale</string>
|
||||||
<string name="shared_string_downloading_formatted">Iscarrighende %s</string>
|
<string name="shared_string_downloading_formatted">Iscarrighende %s</string>
|
||||||
<string name="rendering_value_thick_name">Grussa</string>
|
<string name="rendering_value_thick_name">Grussa</string>
|
||||||
|
|
|
@ -3392,7 +3392,7 @@ Zodpovedá oblasti: %1$s x %2$s</string>
|
||||||
<string name="save_heading">Pridať nadpis</string>
|
<string name="save_heading">Pridať nadpis</string>
|
||||||
<string name="save_heading_descr">Pridať nadpis ku každému bodu trasy pri zázname.</string>
|
<string name="save_heading_descr">Pridať nadpis ku každému bodu trasy pri zázname.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Osobné</string>
|
<string name="personal_category_name">Osobné</string>
|
||||||
<string name="shared_string_downloading_formatted">Sťahujem %s</string>
|
<string name="shared_string_downloading_formatted">Sťahujem %s</string>
|
||||||
<string name="rendering_value_thick_name">Hrubé</string>
|
<string name="rendering_value_thick_name">Hrubé</string>
|
||||||
|
|
|
@ -3275,7 +3275,7 @@ Koda predstavlja območje: %1$s x %2$s</string>
|
||||||
<string name="save_heading">Vključi glavo</string>
|
<string name="save_heading">Vključi glavo</string>
|
||||||
<string name="save_heading_descr">Shrani glavo k vsaki točki sledi med beleženjem.</string>
|
<string name="save_heading_descr">Shrani glavo k vsaki točki sledi med beleženjem.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Osebno</string>
|
<string name="personal_category_name">Osebno</string>
|
||||||
<string name="shared_string_downloading_formatted">Poteka prejemanje %s</string>
|
<string name="shared_string_downloading_formatted">Poteka prejemanje %s</string>
|
||||||
<string name="rendering_value_thick_name">Debelo</string>
|
<string name="rendering_value_thick_name">Debelo</string>
|
||||||
|
|
|
@ -3402,7 +3402,7 @@
|
||||||
<string name="save_heading">Укључи заглавље</string>
|
<string name="save_heading">Укључи заглавље</string>
|
||||||
<string name="save_heading_descr">Сачувај заглавље свакој тачки праћења приликом снимања.</string>
|
<string name="save_heading_descr">Сачувај заглавље свакој тачки праћења приликом снимања.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Лични</string>
|
<string name="personal_category_name">Лични</string>
|
||||||
<string name="shared_string_downloading_formatted">Преузимам %s</string>
|
<string name="shared_string_downloading_formatted">Преузимам %s</string>
|
||||||
<string name="rendering_value_thick_name">Дебело</string>
|
<string name="rendering_value_thick_name">Дебело</string>
|
||||||
|
|
|
@ -3360,7 +3360,7 @@
|
||||||
<string name="save_heading">Başlığı dahil et</string>
|
<string name="save_heading">Başlığı dahil et</string>
|
||||||
<string name="save_heading_descr">Kayıt sırasında her izleme noktasına başlığı kaydet.</string>
|
<string name="save_heading_descr">Kayıt sırasında her izleme noktasına başlığı kaydet.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Kişisel</string>
|
<string name="personal_category_name">Kişisel</string>
|
||||||
<string name="shared_string_downloading_formatted">%s indiriliyor</string>
|
<string name="shared_string_downloading_formatted">%s indiriliyor</string>
|
||||||
<string name="rendering_value_thick_name">Kalın</string>
|
<string name="rendering_value_thick_name">Kalın</string>
|
||||||
|
|
|
@ -3395,7 +3395,7 @@
|
||||||
<string name="save_heading">Зберегти заголовок</string>
|
<string name="save_heading">Зберегти заголовок</string>
|
||||||
<string name="save_heading_descr">Зберегти заголовок для кожної точки треку під час запису.</string>
|
<string name="save_heading_descr">Зберегти заголовок для кожної точки треку під час запису.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Особистий</string>
|
<string name="personal_category_name">Особистий</string>
|
||||||
<string name="shared_string_downloading_formatted">Завантаження %s</string>
|
<string name="shared_string_downloading_formatted">Завантаження %s</string>
|
||||||
<string name="rendering_value_thick_name">Товсто</string>
|
<string name="rendering_value_thick_name">Товсто</string>
|
||||||
|
|
|
@ -3395,7 +3395,7 @@
|
||||||
<string name="save_heading">包含標題</string>
|
<string name="save_heading">包含標題</string>
|
||||||
<string name="save_heading_descr">在記錄時將標題儲存到每個追蹤點。</string>
|
<string name="save_heading_descr">在記錄時將標題儲存到每個追蹤點。</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">個人</string>
|
<string name="personal_category_name">個人</string>
|
||||||
<string name="shared_string_downloading_formatted">正在下載 %s</string>
|
<string name="shared_string_downloading_formatted">正在下載 %s</string>
|
||||||
<string name="rendering_value_thick_name">密集</string>
|
<string name="rendering_value_thick_name">密集</string>
|
||||||
|
|
|
@ -71,6 +71,7 @@
|
||||||
|
|
||||||
<dimen name="favorites_icon_right_margin">24dp</dimen>
|
<dimen name="favorites_icon_right_margin">24dp</dimen>
|
||||||
<dimen name="favorites_icon_size">40dp</dimen>
|
<dimen name="favorites_icon_size">40dp</dimen>
|
||||||
|
<dimen name="favorites_list_item_height">66dp</dimen>
|
||||||
<dimen name="local_index_check_right_margin">10dp</dimen>
|
<dimen name="local_index_check_right_margin">10dp</dimen>
|
||||||
<dimen name="favorites_icon_top_margin">13dp</dimen>
|
<dimen name="favorites_icon_top_margin">13dp</dimen>
|
||||||
<dimen name="dialog_elements_vertical_margin">16dp</dimen>
|
<dimen name="dialog_elements_vertical_margin">16dp</dimen>
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<string name="extra_maps_menu_group">Extra maps</string>
|
<string name="extra_maps_menu_group">Extra maps</string>
|
||||||
|
<string name="custom_color">Custom color</string>
|
||||||
<string name="lang_lmo">Lombard</string>
|
<string name="lang_lmo">Lombard</string>
|
||||||
<string name="lang_an">Aragonese</string>
|
<string name="lang_an">Aragonese</string>
|
||||||
<string name="lang_ba">Bashkir</string>
|
<string name="lang_ba">Bashkir</string>
|
||||||
|
@ -57,11 +58,11 @@
|
||||||
<string name="replace_point_descr">Replace another point with this</string>
|
<string name="replace_point_descr">Replace another point with this</string>
|
||||||
<string name="developer_plugin">Developer Plugin</string>
|
<string name="developer_plugin">Developer Plugin</string>
|
||||||
<string name="move_inside_category">You can move items only inside this category.</string>
|
<string name="move_inside_category">You can move items only inside this category.</string>
|
||||||
<string name="additional_actions_descr">You can acsess this actions by taping “Actions” button.</string>
|
<string name="additional_actions_descr">You can access these actions by tapping the “Actions” button.</string>
|
||||||
<string name="main_actions">Main actions</string>
|
<string name="main_actions">Main actions</string>
|
||||||
<string name="main_actions_descr">Main actions containt only 4 buttons.</string>
|
<string name="main_actions_descr">Main actions containt only 4 buttons.</string>
|
||||||
<string name="reset_items_descr">Settings will be reset to the original state after hiding.</string>
|
<string name="reset_items_descr">Settings will be reset to the original state after hiding.</string>
|
||||||
<string name="hidden_items_descr">These items are hidden from the menu, but the represented options or plugins still be working.</string>
|
<string name="hidden_items_descr">These items are hidden from the menu, but the represented options or plugins will remain working.</string>
|
||||||
<string name="shared_string_hidden">Hidden</string>
|
<string name="shared_string_hidden">Hidden</string>
|
||||||
<string name="divider_descr">Elements below this point separated by a divider.</string>
|
<string name="divider_descr">Elements below this point separated by a divider.</string>
|
||||||
<string name="shared_string_divider">Divider</string>
|
<string name="shared_string_divider">Divider</string>
|
||||||
|
@ -245,7 +246,7 @@
|
||||||
<string name="edit_profiles">Edit profiles</string>
|
<string name="edit_profiles">Edit profiles</string>
|
||||||
<string name="select_nav_profile_dialog_message">The \'Navigation type\' governs how routes are calculated.</string>
|
<string name="select_nav_profile_dialog_message">The \'Navigation type\' governs how routes are calculated.</string>
|
||||||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||||
<string name="street_city">%1$s, %2$s</string>
|
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||||
<string name="personal_category_name">Personal</string>
|
<string name="personal_category_name">Personal</string>
|
||||||
<string name="add_new_profile_q">Add the new profile \'%1$s\'?</string>
|
<string name="add_new_profile_q">Add the new profile \'%1$s\'?</string>
|
||||||
<string name="save_heading">Include heading</string>
|
<string name="save_heading">Include heading</string>
|
||||||
|
|
|
@ -77,7 +77,11 @@ public class FavouritePoint implements Serializable, LocationPoint {
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getColor() {
|
public int getColor() {
|
||||||
|
if ((color & 0xFF000000) != 0) {
|
||||||
return color;
|
return color;
|
||||||
|
} else {
|
||||||
|
return color | 0xFF000000;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAddress() {
|
public String getAddress() {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package net.osmand.plus;
|
package net.osmand.plus;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
@ -101,7 +102,11 @@ public class FavouritesDbHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getColor() {
|
public int getColor() {
|
||||||
|
if ((color & 0xFF000000) != 0) {
|
||||||
return color;
|
return color;
|
||||||
|
} else {
|
||||||
|
return color | 0xFF000000;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isVisible() {
|
public boolean isVisible() {
|
||||||
|
@ -354,7 +359,7 @@ public class FavouritesDbHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AlertDialog.Builder checkDuplicates(FavouritePoint p, FavouritesDbHelper fdb, Context uiContext) {
|
public static AlertDialog.Builder checkDuplicates(FavouritePoint p, FavouritesDbHelper fdb, Activity activity) {
|
||||||
boolean emoticons = false;
|
boolean emoticons = false;
|
||||||
String index = "";
|
String index = "";
|
||||||
int number = 0;
|
int number = 0;
|
||||||
|
@ -383,12 +388,15 @@ public class FavouritesDbHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((index.length() > 0 || emoticons)) {
|
if ((index.length() > 0 || emoticons)) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(uiContext);
|
OsmandApplication app = (OsmandApplication) activity.getApplication();
|
||||||
|
boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
|
||||||
|
Context themedContext = UiUtilities.getThemedContext(activity, nightMode);
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(themedContext);
|
||||||
builder.setTitle(R.string.fav_point_dublicate);
|
builder.setTitle(R.string.fav_point_dublicate);
|
||||||
if (emoticons) {
|
if (emoticons) {
|
||||||
builder.setMessage(uiContext.getString(R.string.fav_point_emoticons_message, name));
|
builder.setMessage(activity.getString(R.string.fav_point_emoticons_message, name));
|
||||||
} else {
|
} else {
|
||||||
builder.setMessage(uiContext.getString(R.string.fav_point_dublicate_message, name));
|
builder.setMessage(activity.getString(R.string.fav_point_dublicate_message, name));
|
||||||
}
|
}
|
||||||
p.setName(name);
|
p.setName(name);
|
||||||
return builder;
|
return builder;
|
||||||
|
|
|
@ -5,7 +5,6 @@ package net.osmand.plus.activities;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -29,6 +28,7 @@ import net.osmand.plus.OsmAndLocationProvider.OsmAndCompassListener;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.OsmandSettings;
|
import net.osmand.plus.OsmandSettings;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.UiUtilities;
|
||||||
import net.osmand.plus.UiUtilities.UpdateLocationViewCache;
|
import net.osmand.plus.UiUtilities.UpdateLocationViewCache;
|
||||||
import net.osmand.plus.activities.search.SearchActivity;
|
import net.osmand.plus.activities.search.SearchActivity;
|
||||||
import net.osmand.plus.activities.search.SearchActivity.SearchActivityChild;
|
import net.osmand.plus.activities.search.SearchActivity.SearchActivityChild;
|
||||||
|
@ -200,8 +200,8 @@ public class FavoritesListFragment extends OsmAndListFragment implements SearchA
|
||||||
public View getView(int position, View convertView, ViewGroup parent) {
|
public View getView(int position, View convertView, ViewGroup parent) {
|
||||||
View row = convertView;
|
View row = convertView;
|
||||||
if (row == null) {
|
if (row == null) {
|
||||||
LayoutInflater inflater = activity.getLayoutInflater();
|
boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
|
||||||
row = inflater.inflate(R.layout.favorites_list_item, parent, false);
|
row = UiUtilities.getInflater(activity, nightMode).inflate(R.layout.favorites_list_item, parent, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
TextView name = (TextView) row.findViewById(R.id.favourite_label);
|
TextView name = (TextView) row.findViewById(R.id.favourite_label);
|
||||||
|
|
|
@ -840,7 +840,7 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment implemen
|
||||||
int color = model.getColor() == 0 || model.getColor() == Color.BLACK ? getResources().getColor(R.color.color_favorite) : model.getColor();
|
int color = model.getColor() == 0 || model.getColor() == Color.BLACK ? getResources().getColor(R.color.color_favorite) : model.getColor();
|
||||||
if (!model.isPersonal()) {
|
if (!model.isPersonal()) {
|
||||||
setCategoryIcon(app, app.getUIUtilities().getPaintedIcon(
|
setCategoryIcon(app, app.getUIUtilities().getPaintedIcon(
|
||||||
R.drawable.ic_action_fav_dark, visible ? (color | 0xff000000) : getResources().getColor(disabledColor)),
|
R.drawable.ic_action_folder, visible ? color : getResources().getColor(disabledColor)),
|
||||||
groupPosition, isExpanded, row, light);
|
groupPosition, isExpanded, row, light);
|
||||||
}
|
}
|
||||||
adjustIndicator(app, groupPosition, isExpanded, row, light);
|
adjustIndicator(app, groupPosition, isExpanded, row, light);
|
||||||
|
@ -955,7 +955,7 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment implemen
|
||||||
name.setTextColor(getResources().getColor(visible ? enabledColor : disabledColor));
|
name.setTextColor(getResources().getColor(visible ? enabledColor : disabledColor));
|
||||||
distanceText.setText(distance);
|
distanceText.setText(distance);
|
||||||
if (model.isAddressSpecified()) {
|
if (model.isAddressSpecified()) {
|
||||||
distanceText.setText(String.format(getString(R.string.ltr_or_rtl_combine_via_bold_point), distance.trim(), model.getAddress()));
|
distanceText.setText(String.format(getString(R.string.ltr_or_rtl_combine_via_comma), distance.trim(), model.getAddress()));
|
||||||
}
|
}
|
||||||
icon.setImageDrawable(FavoriteImageDrawable.getOrCreate(getActivity(),
|
icon.setImageDrawable(FavoriteImageDrawable.getOrCreate(getActivity(),
|
||||||
visible ? model.getColor() : getResources().getColor(disabledIconColor), false, model));
|
visible ? model.getColor() : getResources().getColor(disabledIconColor), false, model));
|
||||||
|
|
|
@ -29,6 +29,7 @@ import net.osmand.plus.FavouritesDbHelper;
|
||||||
import net.osmand.plus.FavouritesDbHelper.FavoriteGroup;
|
import net.osmand.plus.FavouritesDbHelper.FavoriteGroup;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.UiUtilities;
|
||||||
import net.osmand.plus.activities.FavoritesListFragment.FavouritesAdapter;
|
import net.osmand.plus.activities.FavoritesListFragment.FavouritesAdapter;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
|
|
||||||
|
@ -41,6 +42,8 @@ public class FavoriteDialogs {
|
||||||
|
|
||||||
public static Dialog createReplaceFavouriteDialog(final Activity activity, final Bundle args) {
|
public static Dialog createReplaceFavouriteDialog(final Activity activity, final Bundle args) {
|
||||||
OsmandApplication app = (OsmandApplication) activity.getApplication();
|
OsmandApplication app = (OsmandApplication) activity.getApplication();
|
||||||
|
boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
|
||||||
|
Context themedContext = UiUtilities.getThemedContext(activity, nightMode);
|
||||||
final FavouritesDbHelper helper = app.getFavorites();
|
final FavouritesDbHelper helper = app.getFavorites();
|
||||||
final List<FavouritePoint> points = new ArrayList<FavouritePoint>(helper.getFavouritePoints());
|
final List<FavouritePoint> points = new ArrayList<FavouritePoint>(helper.getFavouritePoints());
|
||||||
final FavouritesAdapter favouritesAdapter = new FavouritesAdapter(activity, points,false);
|
final FavouritesAdapter favouritesAdapter = new FavouritesAdapter(activity, points,false);
|
||||||
|
@ -56,15 +59,18 @@ public class FavoriteDialogs {
|
||||||
favouritesAdapter.sortByDefault(true);
|
favouritesAdapter.sortByDefault(true);
|
||||||
|
|
||||||
if(points.size() == 0){
|
if(points.size() == 0){
|
||||||
Toast.makeText(activity, activity.getString(R.string.fav_points_not_exist), Toast.LENGTH_SHORT).show();
|
Toast.makeText(themedContext, activity.getString(R.string.fav_points_not_exist), Toast.LENGTH_SHORT).show();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return showFavoritesDialog(activity, favouritesAdapter, click, null, dlgHolder, true);
|
return showFavoritesDialog(themedContext, favouritesAdapter, click, null, dlgHolder, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void confirmReplace(final Activity activity, final Bundle args, final FavouritesDbHelper helper,
|
private static void confirmReplace(final Activity activity, final Bundle args, final FavouritesDbHelper helper,
|
||||||
final FavouritesAdapter favouritesAdapter, final Dialog[] dlgHolder, int position) {
|
final FavouritesAdapter favouritesAdapter, final Dialog[] dlgHolder, int position) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
OsmandApplication app = (OsmandApplication) activity.getApplication();
|
||||||
|
boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
|
||||||
|
Context themedContext = UiUtilities.getThemedContext(activity, nightMode);
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(themedContext);
|
||||||
builder.setTitle(R.string.update_existing);
|
builder.setTitle(R.string.update_existing);
|
||||||
final FavouritePoint fp = favouritesAdapter.getItem(position);
|
final FavouritePoint fp = favouritesAdapter.getItem(position);
|
||||||
builder.setMessage(activity.getString(R.string.replace_favorite_confirmation, fp.getName()));
|
builder.setMessage(activity.getString(R.string.replace_favorite_confirmation, fp.getName()));
|
||||||
|
@ -111,10 +117,13 @@ public class FavoriteDialogs {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Dialog createAddFavouriteDialog(final Activity activity, final Bundle args) {
|
public static Dialog createAddFavouriteDialog(final Activity activity, final Bundle args) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
final OsmandApplication app = (OsmandApplication) activity.getApplication();
|
||||||
|
boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
|
||||||
|
final Context themedContext = UiUtilities.getThemedContext(activity, nightMode);
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(themedContext);
|
||||||
builder.setTitle(R.string.favourites_context_menu_edit);
|
builder.setTitle(R.string.favourites_context_menu_edit);
|
||||||
final View v = activity.getLayoutInflater().inflate(R.layout.favorite_edit_dialog, null, false);
|
final View v = UiUtilities.getInflater(activity, nightMode).inflate(R.layout.favorite_edit_dialog, null, false);
|
||||||
final FavouritesDbHelper helper = ((OsmandApplication) activity.getApplication()).getFavorites();
|
final FavouritesDbHelper helper = app.getFavorites();
|
||||||
builder.setView(v);
|
builder.setView(v);
|
||||||
final EditText editText = (EditText) v.findViewById(R.id.Name);
|
final EditText editText = (EditText) v.findViewById(R.id.Name);
|
||||||
final EditText description = (EditText) v.findViewById(R.id.description);
|
final EditText description = (EditText) v.findViewById(R.id.description);
|
||||||
|
@ -125,15 +134,14 @@ public class FavoriteDialogs {
|
||||||
list[i] = gs.get(i).getName();
|
list[i] = gs.get(i).getName();
|
||||||
}
|
}
|
||||||
cat.setAdapter(new ArrayAdapter<String>(activity, R.layout.list_textview, list));
|
cat.setAdapter(new ArrayAdapter<String>(activity, R.layout.list_textview, list));
|
||||||
|
if (app.accessibilityEnabled()) {
|
||||||
if (((OsmandApplication)activity.getApplication()).accessibilityEnabled()) {
|
|
||||||
final TextView textButton = (TextView)v.findViewById(R.id.TextButton);
|
final TextView textButton = (TextView)v.findViewById(R.id.TextButton);
|
||||||
textButton.setClickable(true);
|
textButton.setClickable(true);
|
||||||
textButton.setFocusable(true);
|
textButton.setFocusable(true);
|
||||||
textButton.setOnClickListener(new View.OnClickListener() {
|
textButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
AlertDialog.Builder b = new AlertDialog.Builder(activity);
|
AlertDialog.Builder b = new AlertDialog.Builder(themedContext);
|
||||||
b.setTitle(R.string.access_category_choice);
|
b.setTitle(R.string.access_category_choice);
|
||||||
b.setItems(list, new DialogInterface.OnClickListener() {
|
b.setItems(list, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -165,7 +173,6 @@ public class FavoriteDialogs {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
final FavouritePoint point = (FavouritePoint) args.getSerializable(KEY_FAVORITE);
|
final FavouritePoint point = (FavouritePoint) args.getSerializable(KEY_FAVORITE);
|
||||||
OsmandApplication app = (OsmandApplication) activity.getApplication();
|
|
||||||
String categoryStr = cat.getText().toString().trim();
|
String categoryStr = cat.getText().toString().trim();
|
||||||
final FavouritesDbHelper helper = app.getFavorites();
|
final FavouritesDbHelper helper = app.getFavorites();
|
||||||
app.getSettings().LAST_FAV_CATEGORY_ENTERED.set(categoryStr);
|
app.getSettings().LAST_FAV_CATEGORY_ENTERED.set(categoryStr);
|
||||||
|
|
|
@ -1,12 +1,9 @@
|
||||||
package net.osmand.plus.helpers;
|
package net.osmand.plus.helpers;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.PorterDuff;
|
import android.graphics.PorterDuff;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.util.TypedValue;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
|
@ -15,7 +12,7 @@ import android.widget.ArrayAdapter;
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.ColorRes;
|
import androidx.annotation.ColorInt;
|
||||||
|
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
@ -26,7 +23,7 @@ import java.util.Random;
|
||||||
|
|
||||||
import gnu.trove.list.array.TIntArrayList;
|
import gnu.trove.list.array.TIntArrayList;
|
||||||
|
|
||||||
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
|
import static net.osmand.AndroidUtils.dpToPx;
|
||||||
|
|
||||||
public class ColorDialogs {
|
public class ColorDialogs {
|
||||||
public static int[] paletteColors = new int[] {
|
public static int[] paletteColors = new int[] {
|
||||||
|
@ -45,17 +42,17 @@ public class ColorDialogs {
|
||||||
};
|
};
|
||||||
|
|
||||||
public static int[] pallette = new int[] {
|
public static int[] pallette = new int[] {
|
||||||
0xb4eecc22,
|
0xffeecc22,
|
||||||
0xb4d00d0d,
|
0xffd00d0d,
|
||||||
0xb4ff5020,
|
0xffff5020,
|
||||||
0xb4eeee10,
|
0xffeeee10,
|
||||||
0xb488e030,
|
0xff88e030,
|
||||||
0xb400842b,
|
0xff00842b,
|
||||||
0xb410c0f0,
|
0xff10c0f0,
|
||||||
0xb41010a0,
|
0xff1010a0,
|
||||||
0xb4a71de1,
|
0xffa71de1,
|
||||||
0xb4e044bb,
|
0xffe044bb,
|
||||||
0xb48e2512,
|
0xff8e2512,
|
||||||
0xff000001
|
0xff000001
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -171,7 +168,7 @@ public class ColorDialogs {
|
||||||
colorSpinner.setSelection(selection);
|
colorSpinner.setSelection(selection);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setupColorSpinnerEx(final Activity ctx, int selectedColor, final Spinner colorSpinner,
|
public static void setupColorSpinnerEx(final Context ctx, int selectedColor, final Spinner colorSpinner,
|
||||||
final TIntArrayList colors, OnItemSelectedListener listener) {
|
final TIntArrayList colors, OnItemSelectedListener listener) {
|
||||||
colors.add(pallette);
|
colors.add(pallette);
|
||||||
List<String> colorNames = new ArrayList<String>();
|
List<String> colorNames = new ArrayList<String>();
|
||||||
|
@ -237,16 +234,15 @@ public class ColorDialogs {
|
||||||
return "#" + c; //$NON-NLS-1$
|
return "#" + c; //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Drawable getIcon(final Activity activity, int resId, int color) {
|
private static Drawable getIcon(final Context ctx, int resId, int color) {
|
||||||
OsmandApplication app = (OsmandApplication)activity.getApplication();
|
Drawable d = ctx.getResources().getDrawable(resId).mutate();
|
||||||
Drawable d = app.getResources().getDrawable(resId).mutate();
|
|
||||||
d.clearColorFilter();
|
d.clearColorFilter();
|
||||||
d.setColorFilter(color, PorterDuff.Mode.SRC_IN);
|
d.setColorFilter(color, PorterDuff.Mode.SRC_IN);
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getColorName(@ColorRes int color) {
|
public static int getColorName(@ColorInt int color) {
|
||||||
int colorName = R.string.rendering_value_darkyellow_name;
|
int colorName = R.string.custom_color;
|
||||||
for (int i = 0; i < ColorDialogs.pallette.length; i++) {
|
for (int i = 0; i < ColorDialogs.pallette.length; i++) {
|
||||||
if (ColorDialogs.pallette[i] == color) {
|
if (ColorDialogs.pallette[i] == color) {
|
||||||
colorName = ColorDialogs.paletteColors[i];
|
colorName = ColorDialogs.paletteColors[i];
|
||||||
|
@ -256,12 +252,14 @@ public class ColorDialogs {
|
||||||
return colorName;
|
return colorName;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int dpToPx(final Activity activity, float dp) {
|
public static boolean isPaletteColor(@ColorInt int color) {
|
||||||
Resources r = activity.getResources();
|
boolean isPaletteColor = false;
|
||||||
return (int) TypedValue.applyDimension(
|
for (int i = 0; i < ColorDialogs.pallette.length; i++) {
|
||||||
COMPLEX_UNIT_DIP,
|
if (ColorDialogs.pallette[i] == color) {
|
||||||
dp,
|
isPaletteColor = true;
|
||||||
r.getDisplayMetrics()
|
break;
|
||||||
);
|
}
|
||||||
|
}
|
||||||
|
return isPaletteColor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ import net.osmand.IProgress;
|
||||||
import net.osmand.IndexConstants;
|
import net.osmand.IndexConstants;
|
||||||
import net.osmand.PlatformUtil;
|
import net.osmand.PlatformUtil;
|
||||||
import net.osmand.data.FavouritePoint;
|
import net.osmand.data.FavouritePoint;
|
||||||
|
import net.osmand.data.FavouritePoint.BackgroundType;
|
||||||
import net.osmand.plus.AppInitializer;
|
import net.osmand.plus.AppInitializer;
|
||||||
import net.osmand.plus.AppInitializer.AppInitializeListener;
|
import net.osmand.plus.AppInitializer.AppInitializeListener;
|
||||||
import net.osmand.plus.AppInitializer.InitEvents;
|
import net.osmand.plus.AppInitializer.InitEvents;
|
||||||
|
@ -1181,6 +1182,7 @@ public class ImportHelper {
|
||||||
}
|
}
|
||||||
fp.setColor(p.getColor(0));
|
fp.setColor(p.getColor(0));
|
||||||
fp.setIconIdFromName(app, p.getIconName());
|
fp.setIconIdFromName(app, p.getIconName());
|
||||||
|
fp.setBackgroundType(BackgroundType.getByTypeName(p.getBackgroundType(), BackgroundType.CIRCLE));
|
||||||
favourites.add(fp);
|
favourites.add(fp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,6 +88,7 @@ import java.util.List;
|
||||||
|
|
||||||
import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_MORE_ID;
|
import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_MORE_ID;
|
||||||
import static net.osmand.plus.mapcontextmenu.MenuBuilder.SHADOW_HEIGHT_TOP_DP;
|
import static net.osmand.plus.mapcontextmenu.MenuBuilder.SHADOW_HEIGHT_TOP_DP;
|
||||||
|
import static net.osmand.plus.settings.ConfigureMenuItemsFragment.MAIN_BUTTONS_QUANTITY;
|
||||||
|
|
||||||
|
|
||||||
public class MapContextMenuFragment extends BaseOsmAndFragment implements DownloadEvents {
|
public class MapContextMenuFragment extends BaseOsmAndFragment implements DownloadEvents {
|
||||||
|
@ -566,11 +567,16 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo
|
||||||
// Action buttons
|
// Action buttons
|
||||||
// TODO refactor section
|
// TODO refactor section
|
||||||
ContextMenuAdapter adapter = menu.getActionsContextMenuAdapter(false);
|
ContextMenuAdapter adapter = menu.getActionsContextMenuAdapter(false);
|
||||||
List<ContextMenuItem> items = adapter.getItems();
|
List<ContextMenuItem> items = new ArrayList<>();
|
||||||
|
for (ContextMenuItem item : adapter.getItems()) {
|
||||||
|
if (!item.isHidden()) {
|
||||||
|
items.add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
ContextMenuAdapter mainAdapter = new ContextMenuAdapter(requireMyApplication());
|
ContextMenuAdapter mainAdapter = new ContextMenuAdapter(requireMyApplication());
|
||||||
ContextMenuAdapter additionalAdapter = new ContextMenuAdapter(requireMyApplication());
|
ContextMenuAdapter additionalAdapter = new ContextMenuAdapter(requireMyApplication());
|
||||||
for (int i = 0; i < items.size(); i++) {
|
for (int i = 0; i < items.size(); i++) {
|
||||||
if (i < 4) {
|
if (i < MAIN_BUTTONS_QUANTITY) {
|
||||||
mainAdapter.addItem(items.get(i));
|
mainAdapter.addItem(items.get(i));
|
||||||
} else {
|
} else {
|
||||||
additionalAdapter.addItem(items.get(i));
|
additionalAdapter.addItem(items.get(i));
|
||||||
|
@ -585,7 +591,8 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo
|
||||||
ContextMenuItemClickListener mainListener = menu.getContextMenuItemClickListener(mainAdapter);
|
ContextMenuItemClickListener mainListener = menu.getContextMenuItemClickListener(mainAdapter);
|
||||||
ContextMenuItemClickListener additionalListener = menu.getContextMenuItemClickListener(additionalAdapter);
|
ContextMenuItemClickListener additionalListener = menu.getContextMenuItemClickListener(additionalAdapter);
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
int mainButtonsQuantity = Math.min(MAIN_BUTTONS_QUANTITY, items.size());
|
||||||
|
for (int i = 0; i < mainButtonsQuantity; i++) {
|
||||||
buttons.addView(getActionView(items.get(i), i, mainAdapter, additionalAdapter, mainListener, additionalListener), params);
|
buttons.addView(getActionView(items.get(i), i, mainAdapter, additionalAdapter, mainListener, additionalListener), params);
|
||||||
}
|
}
|
||||||
buttons.setGravity(Gravity.CENTER);
|
buttons.setGravity(Gravity.CENTER);
|
||||||
|
|
|
@ -20,6 +20,7 @@ import net.osmand.plus.FavouritesDbHelper;
|
||||||
import net.osmand.plus.FavouritesDbHelper.FavoriteGroup;
|
import net.osmand.plus.FavouritesDbHelper.FavoriteGroup;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.UiUtilities;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.helpers.ColorDialogs;
|
import net.osmand.plus.helpers.ColorDialogs;
|
||||||
import net.osmand.util.Algorithms;
|
import net.osmand.util.Algorithms;
|
||||||
|
@ -69,10 +70,10 @@ public class EditCategoryDialogFragment extends DialogFragment {
|
||||||
} else if (getArguments() != null) {
|
} else if (getArguments() != null) {
|
||||||
restoreState(getArguments());
|
restoreState(getArguments());
|
||||||
}
|
}
|
||||||
|
boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
AlertDialog.Builder builder = new AlertDialog.Builder(UiUtilities.getThemedContext(activity, nightMode));
|
||||||
builder.setTitle(R.string.favorite_category_add_new_title);
|
builder.setTitle(R.string.favorite_category_add_new_title);
|
||||||
final View v = activity.getLayoutInflater().inflate(R.layout.favorite_category_edit_dialog, null, false);
|
final View v = UiUtilities.getInflater(activity, nightMode).inflate(R.layout.favorite_category_edit_dialog, null, false);
|
||||||
|
|
||||||
nameEdit = (EditText)v.findViewById(R.id.edit_name);
|
nameEdit = (EditText)v.findViewById(R.id.edit_name);
|
||||||
nameEdit.setText(name);
|
nameEdit.setText(name);
|
||||||
|
@ -81,7 +82,7 @@ public class EditCategoryDialogFragment extends DialogFragment {
|
||||||
colorSpinner = (Spinner)v.findViewById(R.id.edit_color);
|
colorSpinner = (Spinner)v.findViewById(R.id.edit_color);
|
||||||
final TIntArrayList colors = new TIntArrayList();
|
final TIntArrayList colors = new TIntArrayList();
|
||||||
final int intColor = color;
|
final int intColor = color;
|
||||||
ColorDialogs.setupColorSpinnerEx(activity, intColor, colorSpinner, colors, new AdapterView.OnItemSelectedListener() {
|
ColorDialogs.setupColorSpinnerEx(v.getContext(), intColor, colorSpinner, colors, new AdapterView.OnItemSelectedListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||||
color = colors.get(position);
|
color = colors.get(position);
|
||||||
|
|
|
@ -24,6 +24,7 @@ import net.osmand.plus.FavouritesDbHelper;
|
||||||
import net.osmand.plus.FavouritesDbHelper.FavoriteGroup;
|
import net.osmand.plus.FavouritesDbHelper.FavoriteGroup;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.UiUtilities;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.base.FavoriteImageDrawable;
|
import net.osmand.plus.base.FavoriteImageDrawable;
|
||||||
import net.osmand.plus.dialogs.FavoriteDialogs;
|
import net.osmand.plus.dialogs.FavoriteDialogs;
|
||||||
|
@ -351,7 +352,9 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew {
|
||||||
FragmentActivity activity = getActivity();
|
FragmentActivity activity = getActivity();
|
||||||
final FavouritePoint favorite = getFavorite();
|
final FavouritePoint favorite = getFavorite();
|
||||||
if (activity != null && favorite != null) {
|
if (activity != null && favorite != null) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
final OsmandApplication app = (OsmandApplication) activity.getApplication();
|
||||||
|
boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(UiUtilities.getThemedContext(activity, nightMode));
|
||||||
builder.setMessage(getString(R.string.favourites_remove_dialog_msg, favorite.getName()));
|
builder.setMessage(getString(R.string.favourites_remove_dialog_msg, favorite.getName()));
|
||||||
builder.setNegativeButton(R.string.shared_string_no, null);
|
builder.setNegativeButton(R.string.shared_string_no, null);
|
||||||
builder.setPositiveButton(R.string.shared_string_yes, new DialogInterface.OnClickListener() {
|
builder.setPositiveButton(R.string.shared_string_yes, new DialogInterface.OnClickListener() {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package net.osmand.plus.mapcontextmenu.editors;
|
package net.osmand.plus.mapcontextmenu.editors;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
|
@ -10,6 +11,7 @@ import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.ViewTreeObserver;
|
import android.view.ViewTreeObserver;
|
||||||
|
@ -22,7 +24,6 @@ import android.widget.ScrollView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.ColorInt;
|
import androidx.annotation.ColorInt;
|
||||||
import androidx.annotation.ColorRes;
|
|
||||||
import androidx.annotation.DrawableRes;
|
import androidx.annotation.DrawableRes;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
|
@ -65,7 +66,7 @@ import static net.osmand.util.Algorithms.capitalizeFirstLetter;
|
||||||
|
|
||||||
public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
|
public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
|
||||||
|
|
||||||
public static final String TAG = "PointEditorFragmentNew";
|
public static final String TAG = PointEditorFragmentNew.class.getSimpleName();
|
||||||
|
|
||||||
private View view;
|
private View view;
|
||||||
private EditText nameEdit;
|
private EditText nameEdit;
|
||||||
|
@ -87,6 +88,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
|
||||||
private View descriptionCaption;
|
private View descriptionCaption;
|
||||||
private EditText descriptionEdit;
|
private EditText descriptionEdit;
|
||||||
|
|
||||||
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
|
@ -95,6 +97,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
|
||||||
nightMode = app.getDaynightHelper().isNightModeForMapControls();
|
nightMode = app.getDaynightHelper().isNightModeForMapControls();
|
||||||
view = UiUtilities.getMaterialInflater(getContext(), nightMode)
|
view = UiUtilities.getMaterialInflater(getContext(), nightMode)
|
||||||
.inflate(R.layout.point_editor_fragment_new, container, false);
|
.inflate(R.layout.point_editor_fragment_new, container, false);
|
||||||
|
AndroidUtils.addStatusBarPadding21v(getActivity(), view);
|
||||||
|
|
||||||
final PointEditor editor = getEditor();
|
final PointEditor editor = getEditor();
|
||||||
if (editor == null) {
|
if (editor == null) {
|
||||||
|
@ -131,6 +134,8 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
|
||||||
if (scrollViewY != scrollView.getScrollY()) {
|
if (scrollViewY != scrollView.getScrollY()) {
|
||||||
scrollViewY = scrollView.getScrollY();
|
scrollViewY = scrollView.getScrollY();
|
||||||
hideKeyboard();
|
hideKeyboard();
|
||||||
|
descriptionEdit.clearFocus();
|
||||||
|
nameEdit.clearFocus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -259,6 +264,23 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
|
||||||
createShapeSelector();
|
createShapeSelector();
|
||||||
updateColorSelector(selectedColor, view);
|
updateColorSelector(selectedColor, view);
|
||||||
updateShapeSelector(selectedShape, view);
|
updateShapeSelector(selectedShape, view);
|
||||||
|
scrollView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
descriptionEdit.getParent().requestDisallowInterceptTouchEvent(false);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
descriptionEdit.setOnTouchListener(new View.OnTouchListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
descriptionEdit.getParent().requestDisallowInterceptTouchEvent(true);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
@ -289,9 +311,13 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
|
||||||
for (int color : ColorDialogs.pallette) {
|
for (int color : ColorDialogs.pallette) {
|
||||||
selectColor.addView(createColorItemView(color, selectColor), new FlowLayout.LayoutParams(0, 0));
|
selectColor.addView(createColorItemView(color, selectColor), new FlowLayout.LayoutParams(0, 0));
|
||||||
}
|
}
|
||||||
|
int customColor = getPointColor();
|
||||||
|
if (!ColorDialogs.isPaletteColor(customColor)) {
|
||||||
|
selectColor.addView(createColorItemView(customColor, selectColor), new FlowLayout.LayoutParams(0, 0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private View createColorItemView(@ColorRes final int color, final FlowLayout rootView) {
|
private View createColorItemView(@ColorInt final int color, final FlowLayout rootView) {
|
||||||
FrameLayout colorItemView = (FrameLayout) UiUtilities.getInflater(getContext(), nightMode)
|
FrameLayout colorItemView = (FrameLayout) UiUtilities.getInflater(getContext(), nightMode)
|
||||||
.inflate(R.layout.point_editor_button, rootView, false);
|
.inflate(R.layout.point_editor_button, rootView, false);
|
||||||
ImageView outline = colorItemView.findViewById(R.id.outline);
|
ImageView outline = colorItemView.findViewById(R.id.outline);
|
||||||
|
@ -442,10 +468,11 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
|
||||||
}
|
}
|
||||||
IconCategoriesAdapter iconCategoriesAdapter = new IconCategoriesAdapter();
|
IconCategoriesAdapter iconCategoriesAdapter = new IconCategoriesAdapter();
|
||||||
iconCategoriesAdapter.setItems(new ArrayList<>(iconCategories.keySet()));
|
iconCategoriesAdapter.setItems(new ArrayList<>(iconCategories.keySet()));
|
||||||
RecyclerView groupNameRecyclerView = view.findViewById(R.id.group_name_recycler_view);
|
RecyclerView iconCategoriesRecyclerView = view.findViewById(R.id.group_name_recycler_view);
|
||||||
groupNameRecyclerView.setAdapter(iconCategoriesAdapter);
|
iconCategoriesRecyclerView.setAdapter(iconCategoriesAdapter);
|
||||||
groupNameRecyclerView.setLayoutManager(new LinearLayoutManager(app, RecyclerView.HORIZONTAL, false));
|
iconCategoriesRecyclerView.setLayoutManager(new LinearLayoutManager(app, RecyclerView.HORIZONTAL, false));
|
||||||
iconCategoriesAdapter.notifyDataSetChanged();
|
iconCategoriesAdapter.notifyDataSetChanged();
|
||||||
|
iconCategoriesRecyclerView.scrollToPosition(iconCategoriesAdapter.getItemPosition(selectedIconCategory));
|
||||||
for (String name : iconNameList) {
|
for (String name : iconNameList) {
|
||||||
selectIcon.addView(createIconItemView(name, selectIcon), new FlowLayout.LayoutParams(0, 0));
|
selectIcon.addView(createIconItemView(name, selectIcon), new FlowLayout.LayoutParams(0, 0));
|
||||||
}
|
}
|
||||||
|
@ -562,7 +589,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean isFullScreenAllowed() {
|
protected boolean isFullScreenAllowed() {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void hideKeyboard() {
|
private void hideKeyboard() {
|
||||||
|
@ -921,6 +948,10 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
|
||||||
public int getItemCount() {
|
public int getItemCount() {
|
||||||
return items.size();
|
return items.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getItemPosition(String name) {
|
||||||
|
return items.indexOf(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static class NameViewHolder extends RecyclerView.ViewHolder {
|
static class NameViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
|
@ -70,26 +70,29 @@ public class SelectCategoryDialogFragment extends DialogFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
final FragmentActivity activity = requireActivity();
|
final FragmentActivity activity = requireActivity();
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
final OsmandApplication app = (OsmandApplication) activity.getApplication();
|
||||||
|
boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(UiUtilities.getThemedContext(activity, nightMode));
|
||||||
builder.setTitle(R.string.favorite_category_select);
|
builder.setTitle(R.string.favorite_category_select);
|
||||||
final View v = activity.getLayoutInflater().inflate(R.layout.favorite_categories_dialog, null, false);
|
final View v = UiUtilities.getInflater(activity, nightMode).inflate(R.layout.favorite_categories_dialog, null, false);
|
||||||
LinearLayout ll = (LinearLayout) v.findViewById(R.id.list_container);
|
LinearLayout ll = (LinearLayout) v.findViewById(R.id.list_container);
|
||||||
|
|
||||||
final FavouritesDbHelper helper = ((OsmandApplication) activity.getApplication()).getFavorites();
|
final FavouritesDbHelper helper = app.getFavorites();
|
||||||
if (gpxFile != null) {
|
if (gpxFile != null) {
|
||||||
if (gpxCategories != null) {
|
if (gpxCategories != null) {
|
||||||
for (Map.Entry<String, Integer> e : gpxCategories.entrySet()) {
|
for (Map.Entry<String, Integer> e : gpxCategories.entrySet()) {
|
||||||
String categoryName = e.getKey();
|
String categoryName = e.getKey();
|
||||||
addCategory(activity, ll, categoryName, e.getValue());
|
ll.addView(createCategoryItem(activity, nightMode, categoryName, e.getValue()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
List<FavouritesDbHelper.FavoriteGroup> gs = helper.getFavoriteGroups();
|
List<FavouritesDbHelper.FavoriteGroup> gs = helper.getFavoriteGroups();
|
||||||
for (final FavouritesDbHelper.FavoriteGroup category : gs) {
|
for (final FavouritesDbHelper.FavoriteGroup category : gs) {
|
||||||
addCategory(activity, ll, category.getDisplayName(getContext()), category.getColor());
|
ll.addView(createCategoryItem(activity, nightMode, category.getDisplayName(getContext()),
|
||||||
|
category.getColor()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
View itemView = activity.getLayoutInflater().inflate(R.layout.favorite_category_dialog_item, null);
|
View itemView = UiUtilities.getInflater(activity, nightMode).inflate(R.layout.favorite_category_dialog_item, null);
|
||||||
Button button = (Button)itemView.findViewById(R.id.button);
|
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.map_zoom_in), null, null, null);
|
||||||
button.setCompoundDrawablePadding(AndroidUtils.dpToPx(activity,15f));
|
button.setCompoundDrawablePadding(AndroidUtils.dpToPx(activity,15f));
|
||||||
|
@ -113,8 +116,8 @@ public class SelectCategoryDialogFragment extends DialogFragment {
|
||||||
return builder.create();
|
return builder.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addCategory(@NonNull final Activity activity, @NonNull LinearLayout ll, final String categoryName, final int categoryColor) {
|
private View createCategoryItem(@NonNull final Activity activity, boolean nightMode, final String categoryName, final int categoryColor) {
|
||||||
View itemView = activity.getLayoutInflater().inflate(R.layout.favorite_category_dialog_item, null);
|
View itemView = UiUtilities.getInflater(activity, nightMode).inflate(R.layout.favorite_category_dialog_item, null);
|
||||||
Button button = (Button)itemView.findViewById(R.id.button);
|
Button button = (Button)itemView.findViewById(R.id.button);
|
||||||
if (categoryColor != 0) {
|
if (categoryColor != 0) {
|
||||||
button.setCompoundDrawablesWithIntrinsicBounds(
|
button.setCompoundDrawablesWithIntrinsicBounds(
|
||||||
|
@ -143,7 +146,7 @@ public class SelectCategoryDialogFragment extends DialogFragment {
|
||||||
dismiss();
|
dismiss();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
ll.addView(itemView);
|
return itemView;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SelectCategoryDialogFragment createInstance(String editorTag) {
|
public static SelectCategoryDialogFragment createInstance(String editorTag) {
|
||||||
|
|
|
@ -11,6 +11,7 @@ import android.view.View;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.fragment.app.DialogFragment;
|
import androidx.fragment.app.DialogFragment;
|
||||||
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
|
||||||
import net.osmand.GPXUtilities;
|
import net.osmand.GPXUtilities;
|
||||||
import net.osmand.GPXUtilities.GPXFile;
|
import net.osmand.GPXUtilities.GPXFile;
|
||||||
|
@ -23,6 +24,7 @@ import net.osmand.plus.MapMarkersHelper;
|
||||||
import net.osmand.plus.MapMarkersHelper.MapMarkersGroup;
|
import net.osmand.plus.MapMarkersHelper.MapMarkersGroup;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.UiUtilities;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.activities.SavingTrackHelper;
|
import net.osmand.plus.activities.SavingTrackHelper;
|
||||||
import net.osmand.plus.base.FavoriteImageDrawable;
|
import net.osmand.plus.base.FavoriteImageDrawable;
|
||||||
|
@ -306,7 +308,11 @@ public class WptPtEditorFragmentNew extends PointEditorFragmentNew {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void delete(final boolean needDismiss) {
|
protected void delete(final boolean needDismiss) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
FragmentActivity activity = getActivity();
|
||||||
|
if (activity != null) {
|
||||||
|
final OsmandApplication app = (OsmandApplication) activity.getApplication();
|
||||||
|
boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(UiUtilities.getThemedContext(activity, nightMode));
|
||||||
builder.setMessage(getString(R.string.context_menu_item_delete_waypoint));
|
builder.setMessage(getString(R.string.context_menu_item_delete_waypoint));
|
||||||
builder.setNegativeButton(R.string.shared_string_no, null);
|
builder.setNegativeButton(R.string.shared_string_no, null);
|
||||||
builder.setPositiveButton(R.string.shared_string_yes, new DialogInterface.OnClickListener() {
|
builder.setPositiveButton(R.string.shared_string_yes, new DialogInterface.OnClickListener() {
|
||||||
|
@ -341,6 +347,7 @@ public class WptPtEditorFragmentNew extends PointEditorFragmentNew {
|
||||||
});
|
});
|
||||||
builder.create().show();
|
builder.create().show();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCategory(String name, int color) {
|
public void setCategory(String name, int color) {
|
||||||
|
|
|
@ -68,6 +68,7 @@ import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.OsmandPlugin;
|
import net.osmand.plus.OsmandPlugin;
|
||||||
import net.osmand.plus.OsmandSettings;
|
import net.osmand.plus.OsmandSettings;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.UiUtilities;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.base.BaseOsmAndDialogFragment;
|
import net.osmand.plus.base.BaseOsmAndDialogFragment;
|
||||||
import net.osmand.plus.osmedit.OsmPoint.Action;
|
import net.osmand.plus.osmedit.OsmPoint.Action;
|
||||||
|
@ -88,7 +89,7 @@ import java.util.Map.Entry;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
||||||
public static final String TAG = "EditPoiDialogFragment";
|
public static final String TAG = EditPoiDialogFragment.class.getSimpleName();
|
||||||
private static final Log LOG = PlatformUtil.getLog(EditPoiDialogFragment.class);
|
private static final Log LOG = PlatformUtil.getLog(EditPoiDialogFragment.class);
|
||||||
|
|
||||||
private static final String KEY_AMENITY_ENTITY = "key_amenity_entity";
|
private static final String KEY_AMENITY_ENTITY = "key_amenity_entity";
|
||||||
|
@ -159,7 +160,7 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
||||||
viewPager = (EditPoiViewPager) view.findViewById(R.id.viewpager);
|
viewPager = (EditPoiViewPager) view.findViewById(R.id.viewpager);
|
||||||
String basicTitle = getResources().getString(R.string.tab_title_basic);
|
String basicTitle = getResources().getString(R.string.tab_title_basic);
|
||||||
String extendedTitle = getResources().getString(R.string.tab_title_advanced);
|
String extendedTitle = getResources().getString(R.string.tab_title_advanced);
|
||||||
final MyAdapter pagerAdapter = new MyAdapter(getChildFragmentManager(), basicTitle, extendedTitle);
|
final PoiInfoPagerAdapter pagerAdapter = new PoiInfoPagerAdapter(getChildFragmentManager(), basicTitle, extendedTitle);
|
||||||
viewPager.setAdapter(pagerAdapter);
|
viewPager.setAdapter(pagerAdapter);
|
||||||
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -743,12 +744,12 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
||||||
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class MyAdapter extends FragmentPagerAdapter {
|
public static class PoiInfoPagerAdapter extends FragmentPagerAdapter {
|
||||||
private final Fragment[] fragments = new Fragment[]{new BasicEditPoiFragment(),
|
private final Fragment[] fragments = new Fragment[]{new BasicEditPoiFragment(),
|
||||||
new AdvancedEditPoiFragment()};
|
new AdvancedEditPoiFragment()};
|
||||||
private final String[] titles;
|
private final String[] titles;
|
||||||
|
|
||||||
public MyAdapter(FragmentManager fm, String basicTitle, String extendedTitle) {
|
PoiInfoPagerAdapter(FragmentManager fm, String basicTitle, String extendedTitle) {
|
||||||
super(fm);
|
super(fm);
|
||||||
titles = new String[]{basicTitle, extendedTitle};
|
titles = new String[]{basicTitle, extendedTitle};
|
||||||
}
|
}
|
||||||
|
@ -778,7 +779,7 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
||||||
this.callback = callback;
|
this.callback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DeletePoiHelper(AppCompatActivity activity) {
|
DeletePoiHelper(AppCompatActivity activity) {
|
||||||
this.activity = activity;
|
this.activity = activity;
|
||||||
OsmandSettings settings = ((OsmandApplication) activity.getApplication()).getSettings();
|
OsmandSettings settings = ((OsmandApplication) activity.getApplication()).getSettings();
|
||||||
OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
|
OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
|
||||||
|
@ -804,12 +805,14 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
||||||
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, amenity);
|
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, amenity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deletePoiWithDialog(final Entity entity) {
|
void deletePoiWithDialog(final Entity entity) {
|
||||||
|
boolean nightMode = ((OsmandApplication) activity.getApplication()).getDaynightHelper().isNightModeForMapControls();
|
||||||
|
Context themedContext = UiUtilities.getThemedContext(activity, nightMode);
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
Toast.makeText(activity, activity.getResources().getString(R.string.poi_cannot_be_found), Toast.LENGTH_LONG).show();
|
Toast.makeText(themedContext, activity.getResources().getString(R.string.poi_cannot_be_found), Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
AlertDialog.Builder builder = new AlertDialog.Builder(themedContext);
|
||||||
builder.setTitle(R.string.poi_remove_title);
|
builder.setTitle(R.string.poi_remove_title);
|
||||||
final EditText comment;
|
final EditText comment;
|
||||||
final CheckBox closeChangesetCheckBox;
|
final CheckBox closeChangesetCheckBox;
|
||||||
|
@ -818,13 +821,13 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
||||||
closeChangesetCheckBox = null;
|
closeChangesetCheckBox = null;
|
||||||
comment = null;
|
comment = null;
|
||||||
} else {
|
} else {
|
||||||
LinearLayout ll = new LinearLayout(activity);
|
LinearLayout ll = new LinearLayout(themedContext);
|
||||||
ll.setPadding(16, 2, 16, 0);
|
ll.setPadding(16, 2, 16, 0);
|
||||||
ll.setOrientation(LinearLayout.VERTICAL);
|
ll.setOrientation(LinearLayout.VERTICAL);
|
||||||
closeChangesetCheckBox = new CheckBox(activity);
|
closeChangesetCheckBox = new CheckBox(themedContext);
|
||||||
closeChangesetCheckBox.setText(R.string.close_changeset);
|
closeChangesetCheckBox.setText(R.string.close_changeset);
|
||||||
ll.addView(closeChangesetCheckBox);
|
ll.addView(closeChangesetCheckBox);
|
||||||
comment = new EditText(activity);
|
comment = new EditText(themedContext);
|
||||||
comment.setText(R.string.poi_remove_title);
|
comment.setText(R.string.poi_remove_title);
|
||||||
ll.addView(comment);
|
ll.addView(comment);
|
||||||
builder.setView(ll);
|
builder.setView(ll);
|
||||||
|
@ -852,12 +855,16 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
||||||
@Override
|
@Override
|
||||||
public boolean processResult(Entity result) {
|
public boolean processResult(Entity result) {
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
if (callback != null) {
|
OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
|
||||||
callback.poiDeleted();
|
if (plugin != null && isLocalEdit) {
|
||||||
|
List<OpenstreetmapPoint> points = plugin.getDBPOI().getOpenstreetmapPoints();
|
||||||
|
if (activity instanceof MapActivity && points.size() > 0) {
|
||||||
|
OsmPoint point = points.get(points.size() - 1);
|
||||||
|
MapActivity mapActivity = (MapActivity) activity;
|
||||||
|
mapActivity.getContextMenu().showOrUpdate(
|
||||||
|
new LatLon(point.getLatitude(), point.getLongitude()),
|
||||||
|
plugin.getOsmEditsLayer(mapActivity).getObjectName(point), point);
|
||||||
}
|
}
|
||||||
if (isLocalEdit) {
|
|
||||||
Toast.makeText(activity, R.string.osm_changes_added_to_local_edits,
|
|
||||||
Toast.LENGTH_LONG).show();
|
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(activity, R.string.poi_remove_success, Toast.LENGTH_LONG)
|
Toast.makeText(activity, R.string.poi_remove_success, Toast.LENGTH_LONG)
|
||||||
.show();
|
.show();
|
||||||
|
@ -865,6 +872,9 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
||||||
if (activity instanceof MapActivity) {
|
if (activity instanceof MapActivity) {
|
||||||
((MapActivity) activity).getMapView().refreshMap(true);
|
((MapActivity) activity).getMapView().refreshMap(true);
|
||||||
}
|
}
|
||||||
|
if (callback != null) {
|
||||||
|
callback.poiDeleted();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -880,7 +890,12 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
Context themedContext = getActivity();
|
||||||
|
if (getParentFragment() instanceof EditPoiDialogFragment) {
|
||||||
|
themedContext = UiUtilities.getThemedContext(getActivity(),
|
||||||
|
((EditPoiDialogFragment) getParentFragment()).isNightMode(true));
|
||||||
|
}
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(themedContext);
|
||||||
String msg = getString(R.string.save_poi_without_poi_type_message);
|
String msg = getString(R.string.save_poi_without_poi_type_message);
|
||||||
int i = getArguments().getInt("message", 0);
|
int i = getArguments().getInt("message", 0);
|
||||||
if(i != 0) {
|
if(i != 0) {
|
||||||
|
@ -903,7 +918,12 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
Context themedContext = getActivity();
|
||||||
|
if (getParentFragment() instanceof EditPoiDialogFragment) {
|
||||||
|
themedContext = UiUtilities.getThemedContext(getActivity(),
|
||||||
|
((EditPoiDialogFragment) getParentFragment()).isNightMode(true));
|
||||||
|
}
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(themedContext);
|
||||||
builder.setTitle(getResources().getString(R.string.are_you_sure))
|
builder.setTitle(getResources().getString(R.string.are_you_sure))
|
||||||
.setMessage(getString(R.string.unsaved_changes_will_be_lost))
|
.setMessage(getString(R.string.unsaved_changes_will_be_lost))
|
||||||
.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() {
|
.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() {
|
||||||
|
@ -921,7 +941,12 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
Context themedContext = getActivity();
|
||||||
|
if (getParentFragment() instanceof EditPoiDialogFragment) {
|
||||||
|
themedContext = UiUtilities.getThemedContext(getActivity(),
|
||||||
|
((EditPoiDialogFragment) getParentFragment()).isNightMode(true));
|
||||||
|
}
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(themedContext);
|
||||||
String msg = getString(R.string.save_poi_value_exceed_length);
|
String msg = getString(R.string.save_poi_value_exceed_length);
|
||||||
String fieldTag = getArguments().getString("tag", "");
|
String fieldTag = getArguments().getString("tag", "");
|
||||||
if(!Algorithms.isEmpty(fieldTag)) {
|
if(!Algorithms.isEmpty(fieldTag)) {
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
package net.osmand.plus.quickaction;
|
package net.osmand.plus.quickaction;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.TypedValue;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -41,7 +40,7 @@ import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
|
import static net.osmand.AndroidUtils.dpToPx;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by okorsun on 20.12.16.
|
* Created by okorsun on 20.12.16.
|
||||||
|
@ -224,11 +223,10 @@ public class QuickActionListFragment extends BaseOsmAndFragment implements Quick
|
||||||
|
|
||||||
if (viewType == SCREEN_ITEM_TYPE) {
|
if (viewType == SCREEN_ITEM_TYPE) {
|
||||||
final QuickActionItemVH itemVH = (QuickActionItemVH) holder;
|
final QuickActionItemVH itemVH = (QuickActionItemVH) holder;
|
||||||
|
Context ctx = getContext();
|
||||||
itemVH.title.setText(item.getName(getContext()));
|
itemVH.title.setText(item.getName(ctx));
|
||||||
itemVH.subTitle.setText(getResources().getString(R.string.quick_action_item_action, getActionPosition(position)));
|
itemVH.subTitle.setText(getResources().getString(R.string.quick_action_item_action, getActionPosition(position)));
|
||||||
|
itemVH.icon.setImageDrawable(getMyApplication().getUIUtilities().getThemedIcon(item.getIconRes(ctx)));
|
||||||
itemVH.icon.setImageDrawable(getMyApplication().getUIUtilities().getThemedIcon(item.getIconRes(getContext())));
|
|
||||||
itemVH.handleView.setOnTouchListener(new View.OnTouchListener() {
|
itemVH.handleView.setOnTouchListener(new View.OnTouchListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onTouch(View v, MotionEvent event) {
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
@ -256,7 +254,7 @@ public class QuickActionListFragment extends BaseOsmAndFragment implements Quick
|
||||||
|
|
||||||
LinearLayout.LayoutParams dividerParams = (LinearLayout.LayoutParams) itemVH.divider.getLayoutParams();
|
LinearLayout.LayoutParams dividerParams = (LinearLayout.LayoutParams) itemVH.divider.getLayoutParams();
|
||||||
//noinspection ResourceType
|
//noinspection ResourceType
|
||||||
dividerParams.setMargins(!isLongDivider(position) ? dpToPx(56f) : 0, 0, 0, 0);
|
dividerParams.setMargins(!isLongDivider(position) ? dpToPx(ctx, 56f) : 0, 0, 0, 0);
|
||||||
itemVH.divider.setLayoutParams(dividerParams);
|
itemVH.divider.setLayoutParams(dividerParams);
|
||||||
} else {
|
} else {
|
||||||
QuickActionHeaderVH headerVH = (QuickActionHeaderVH) holder;
|
QuickActionHeaderVH headerVH = (QuickActionHeaderVH) holder;
|
||||||
|
@ -361,15 +359,6 @@ public class QuickActionListFragment extends BaseOsmAndFragment implements Quick
|
||||||
return getActionPosition(globalPosition) == ITEMS_IN_GROUP || globalPosition == getItemCount() - 1;
|
return getActionPosition(globalPosition) == ITEMS_IN_GROUP || globalPosition == getItemCount() - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int dpToPx(float dp) {
|
|
||||||
Resources r = getActivity().getResources();
|
|
||||||
return (int) TypedValue.applyDimension(
|
|
||||||
COMPLEX_UNIT_DIP,
|
|
||||||
dp,
|
|
||||||
r.getDisplayMetrics()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onItemMove(int selectedPosition, int targetPosition) {
|
public boolean onItemMove(int selectedPosition, int targetPosition) {
|
||||||
Log.v(TAG, "selected: " + selectedPosition + ", target: " + targetPosition);
|
Log.v(TAG, "selected: " + selectedPosition + ", target: " + targetPosition);
|
||||||
|
|
|
@ -275,7 +275,7 @@ public abstract class QuickSearchListFragment extends OsmAndListFragment {
|
||||||
if (pointDescription != null) {
|
if (pointDescription != null) {
|
||||||
String typeName = pointDescription.getTypeName();
|
String typeName = pointDescription.getTypeName();
|
||||||
if (!Algorithms.isEmpty(typeName)) {
|
if (!Algorithms.isEmpty(typeName)) {
|
||||||
name = mapActivity.getString(R.string.street_city, pointDescription.getName(), typeName);
|
name = mapActivity.getString(R.string.ltr_or_rtl_combine_via_comma, pointDescription.getName(), typeName);
|
||||||
} else {
|
} else {
|
||||||
name = pointDescription.getName();
|
name = pointDescription.getName();
|
||||||
}
|
}
|
||||||
|
|
|
@ -374,14 +374,16 @@ public class QuickSearchPoiFilterFragment extends DialogFragment {
|
||||||
builder.setPositiveButton(R.string.shared_string_save, new DialogInterface.OnClickListener() {
|
builder.setPositiveButton(R.string.shared_string_save, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
PoiUIFilter nFilter = new PoiUIFilter(editText.getText().toString(), null, filter.getAcceptedTypes(), app);
|
String filterName = editText.getText().toString();
|
||||||
|
PoiUIFilter nFilter = new PoiUIFilter(filterName, null, filter.getAcceptedTypes(), app);
|
||||||
applyFilterFields();
|
applyFilterFields();
|
||||||
if (!Algorithms.isEmpty(filter.getFilterByName())) {
|
if (!Algorithms.isEmpty(filter.getFilterByName())) {
|
||||||
nFilter.setSavedFilterByName(filter.getFilterByName());
|
nFilter.setSavedFilterByName(filter.getFilterByName());
|
||||||
}
|
}
|
||||||
if (app.getPoiFilters().createPoiFilter(nFilter, false)) {
|
if (app.getPoiFilters().createPoiFilter(nFilter, false)) {
|
||||||
Toast.makeText(getContext(), MessageFormat.format(getContext().getText(R.string.edit_filter_create_message).toString(),
|
Toast.makeText(getContext(),
|
||||||
editText.getText().toString()), Toast.LENGTH_SHORT).show();
|
getContext().getString(R.string.edit_filter_create_message, filterName),
|
||||||
|
Toast.LENGTH_SHORT).show();
|
||||||
app.getSearchUICore().refreshCustomPoiFilters();
|
app.getSearchUICore().refreshCustomPoiFilters();
|
||||||
((QuickSearchDialogFragment) getParentFragment()).replaceQueryWithUiFilter(nFilter, "");
|
((QuickSearchDialogFragment) getParentFragment()).replaceQueryWithUiFilter(nFilter, "");
|
||||||
((QuickSearchDialogFragment) getParentFragment()).reloadCategories();
|
((QuickSearchDialogFragment) getParentFragment()).reloadCategories();
|
||||||
|
|
|
@ -38,10 +38,10 @@ import net.osmand.plus.dialogs.ConfigureMapMenu;
|
||||||
import net.osmand.plus.mapcontextmenu.MapContextMenu;
|
import net.osmand.plus.mapcontextmenu.MapContextMenu;
|
||||||
import net.osmand.plus.profiles.SelectCopyAppModeBottomSheet;
|
import net.osmand.plus.profiles.SelectCopyAppModeBottomSheet;
|
||||||
import net.osmand.plus.settings.ConfigureMenuRootFragment.ScreenType;
|
import net.osmand.plus.settings.ConfigureMenuRootFragment.ScreenType;
|
||||||
import net.osmand.plus.settings.RearrangeMenuItemsAdapter.MenuItemsAdapterListener;
|
|
||||||
import net.osmand.plus.settings.RearrangeMenuItemsAdapter.RearrangeMenuAdapterItem;
|
|
||||||
import net.osmand.plus.settings.bottomsheets.ChangeGeneralProfilesPrefBottomSheet;
|
import net.osmand.plus.settings.bottomsheets.ChangeGeneralProfilesPrefBottomSheet;
|
||||||
import net.osmand.plus.views.controls.ReorderItemTouchHelperCallback;
|
import net.osmand.plus.views.controls.ReorderItemTouchHelperCallback;
|
||||||
|
import net.osmand.plus.settings.RearrangeMenuItemsAdapter.RearrangeMenuAdapterItem;
|
||||||
|
import net.osmand.plus.settings.RearrangeMenuItemsAdapter.MenuItemsAdapterListener;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
|
@ -69,6 +69,7 @@ public class ConfigureMenuItemsFragment extends BaseOsmAndFragment
|
||||||
private static final String ITEMS_ORDER_KEY = "items_order_key";
|
private static final String ITEMS_ORDER_KEY = "items_order_key";
|
||||||
private static final String HIDDEN_ITEMS_KEY = "hidden_items_key";
|
private static final String HIDDEN_ITEMS_KEY = "hidden_items_key";
|
||||||
private static final String CONFIGURE_MENU_ITEMS_TAG = "configure_menu_items_tag";
|
private static final String CONFIGURE_MENU_ITEMS_TAG = "configure_menu_items_tag";
|
||||||
|
private static final String IS_CHANGED_KEY = "is_changed_key";
|
||||||
private RearrangeMenuItemsAdapter rearrangeAdapter;
|
private RearrangeMenuItemsAdapter rearrangeAdapter;
|
||||||
private HashMap<String, Integer> menuItemsOrder;
|
private HashMap<String, Integer> menuItemsOrder;
|
||||||
private ContextMenuAdapter contextMenuAdapter;
|
private ContextMenuAdapter contextMenuAdapter;
|
||||||
|
@ -88,6 +89,7 @@ public class ConfigureMenuItemsFragment extends BaseOsmAndFragment
|
||||||
outState.putSerializable(ITEMS_ORDER_KEY, menuItemsOrder);
|
outState.putSerializable(ITEMS_ORDER_KEY, menuItemsOrder);
|
||||||
outState.putSerializable(ITEM_TYPE_KEY, screenType);
|
outState.putSerializable(ITEM_TYPE_KEY, screenType);
|
||||||
outState.putString(APP_MODE_KEY, appMode.getStringKey());
|
outState.putString(APP_MODE_KEY, appMode.getStringKey());
|
||||||
|
outState.putBoolean(IS_CHANGED_KEY, isChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ConfigureMenuItemsFragment showInstance(
|
public static ConfigureMenuItemsFragment showInstance(
|
||||||
|
@ -127,15 +129,12 @@ public class ConfigureMenuItemsFragment extends BaseOsmAndFragment
|
||||||
app = requireMyApplication();
|
app = requireMyApplication();
|
||||||
nightMode = !app.getSettings().isLightContent();
|
nightMode = !app.getSettings().isLightContent();
|
||||||
mInflater = UiUtilities.getInflater(app, nightMode);
|
mInflater = UiUtilities.getInflater(app, nightMode);
|
||||||
instantiateContextMenuAdapter();
|
if (savedInstanceState != null) {
|
||||||
if (savedInstanceState != null
|
|
||||||
&& savedInstanceState.containsKey(ITEM_TYPE_KEY)
|
|
||||||
&& savedInstanceState.containsKey(HIDDEN_ITEMS_KEY)
|
|
||||||
&& savedInstanceState.containsKey(ITEMS_ORDER_KEY)) {
|
|
||||||
appMode = ApplicationMode.valueOfStringKey(savedInstanceState.getString(APP_MODE_KEY), null);
|
appMode = ApplicationMode.valueOfStringKey(savedInstanceState.getString(APP_MODE_KEY), null);
|
||||||
screenType = (ScreenType) savedInstanceState.getSerializable(ITEM_TYPE_KEY);
|
screenType = (ScreenType) savedInstanceState.getSerializable(ITEM_TYPE_KEY);
|
||||||
hiddenMenuItems = savedInstanceState.getStringArrayList(HIDDEN_ITEMS_KEY);
|
hiddenMenuItems = savedInstanceState.getStringArrayList(HIDDEN_ITEMS_KEY);
|
||||||
menuItemsOrder = (HashMap<String, Integer>) savedInstanceState.getSerializable(ITEMS_ORDER_KEY);
|
menuItemsOrder = (HashMap<String, Integer>) savedInstanceState.getSerializable(ITEMS_ORDER_KEY);
|
||||||
|
isChanged = savedInstanceState.getBoolean(IS_CHANGED_KEY);
|
||||||
} else {
|
} else {
|
||||||
hiddenMenuItems = new ArrayList<>(getSettingForScreen(app, screenType).getModeValue(appMode).getHiddenIds());
|
hiddenMenuItems = new ArrayList<>(getSettingForScreen(app, screenType).getModeValue(appMode).getHiddenIds());
|
||||||
menuItemsOrder = new HashMap<>();
|
menuItemsOrder = new HashMap<>();
|
||||||
|
@ -144,6 +143,14 @@ public class ConfigureMenuItemsFragment extends BaseOsmAndFragment
|
||||||
menuItemsOrder.put(orderIds.get(i), i);
|
menuItemsOrder.put(orderIds.get(i), i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
instantiateContextMenuAdapter();
|
||||||
|
if (menuItemsOrder.isEmpty()) {
|
||||||
|
List<ContextMenuItem> defItems = contextMenuAdapter.getDefaultItems();
|
||||||
|
initDefaultOrders(defItems);
|
||||||
|
for (int i = 0; i < defItems.size(); i++) {
|
||||||
|
menuItemsOrder.put(defItems.get(i).getId(), i);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void instantiateContextMenuAdapter() {
|
private void instantiateContextMenuAdapter() {
|
||||||
|
@ -170,15 +177,10 @@ public class ConfigureMenuItemsFragment extends BaseOsmAndFragment
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
View root = mInflater.inflate(R.layout.edit_arrangement_list_fragment, container, false);
|
View root = mInflater.inflate(R.layout.edit_arrangement_list_fragment, container, false);
|
||||||
|
|
||||||
AppBarLayout appbar = root.findViewById(R.id.appbar);
|
AppBarLayout appbar = root.findViewById(R.id.appbar);
|
||||||
View toolbar = mInflater.inflate(R.layout.global_preference_toolbar, container, false);
|
View toolbar = mInflater.inflate(R.layout.global_preference_toolbar, container, false);
|
||||||
appbar.addView(toolbar);
|
TextView toolbarTitle = toolbar.findViewById(R.id.toolbar_title);
|
||||||
|
ImageButton toolbarButton = toolbar.findViewById(R.id.close_button);
|
||||||
TextView toolbarTitle = root.findViewById(R.id.toolbar_title);
|
|
||||||
ImageButton toolbarButton = root.findViewById(R.id.close_button);
|
|
||||||
RecyclerView recyclerView = root.findViewById(R.id.profiles_list);
|
|
||||||
recyclerView.setPadding(0, 0, 0, (int) app.getResources().getDimension(R.dimen.dialog_button_ex_min_width));
|
|
||||||
toolbar.setBackgroundColor(nightMode
|
toolbar.setBackgroundColor(nightMode
|
||||||
? getResources().getColor(R.color.list_background_color_dark)
|
? getResources().getColor(R.color.list_background_color_dark)
|
||||||
: getResources().getColor(R.color.list_background_color_light));
|
: getResources().getColor(R.color.list_background_color_light));
|
||||||
|
@ -193,8 +195,9 @@ public class ConfigureMenuItemsFragment extends BaseOsmAndFragment
|
||||||
exitFragment();
|
exitFragment();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
appbar.addView(toolbar);
|
||||||
|
RecyclerView recyclerView = root.findViewById(R.id.profiles_list);
|
||||||
|
recyclerView.setPadding(0, 0, 0, (int) app.getResources().getDimension(R.dimen.dialog_button_ex_min_width));
|
||||||
rearrangeAdapter = new RearrangeMenuItemsAdapter(app, getAdapterItems());
|
rearrangeAdapter = new RearrangeMenuItemsAdapter(app, getAdapterItems());
|
||||||
recyclerView.setLayoutManager(new LinearLayoutManager(app));
|
recyclerView.setLayoutManager(new LinearLayoutManager(app));
|
||||||
final ItemTouchHelper touchHelper = new ItemTouchHelper(new ReorderItemTouchHelperCallback(rearrangeAdapter));
|
final ItemTouchHelper touchHelper = new ItemTouchHelper(new ReorderItemTouchHelperCallback(rearrangeAdapter));
|
||||||
|
@ -305,16 +308,16 @@ public class ConfigureMenuItemsFragment extends BaseOsmAndFragment
|
||||||
List<RearrangeMenuAdapterItem> visible = getItemsForRearrangeAdapter(hiddenMenuItems, wasReset ? null : menuItemsOrder, false);
|
List<RearrangeMenuAdapterItem> visible = getItemsForRearrangeAdapter(hiddenMenuItems, wasReset ? null : menuItemsOrder, false);
|
||||||
List<RearrangeMenuAdapterItem> hiddenItems = getItemsForRearrangeAdapter(hiddenMenuItems, wasReset ? null : menuItemsOrder, true);
|
List<RearrangeMenuAdapterItem> hiddenItems = getItemsForRearrangeAdapter(hiddenMenuItems, wasReset ? null : menuItemsOrder, true);
|
||||||
if (screenType == ScreenType.CONTEXT_MENU_ACTIONS) {
|
if (screenType == ScreenType.CONTEXT_MENU_ACTIONS) {
|
||||||
|
int buttonMoreIndex = MAIN_BUTTONS_QUANTITY - 1;
|
||||||
for (int i = 0; i < visible.size(); i++) {
|
for (int i = 0; i < visible.size(); i++) {
|
||||||
ContextMenuItem value = (ContextMenuItem) visible.get(i).getValue();
|
ContextMenuItem value = (ContextMenuItem) visible.get(i).getValue();
|
||||||
if (value.getId() != null && value.getId().equals(MAP_CONTEXT_MENU_MORE_ID)) {
|
if (value.getId() != null && value.getId().equals(MAP_CONTEXT_MENU_MORE_ID) && i > buttonMoreIndex) {
|
||||||
int buttonMoreIndex = MAIN_BUTTONS_QUANTITY - 1;
|
|
||||||
if (i > buttonMoreIndex) {
|
|
||||||
RearrangeMenuAdapterItem third = visible.get(buttonMoreIndex);
|
RearrangeMenuAdapterItem third = visible.get(buttonMoreIndex);
|
||||||
visible.set(buttonMoreIndex, visible.get(i));
|
visible.set(buttonMoreIndex, visible.get(i));
|
||||||
menuItemsOrder.put(((ContextMenuItem) third.getValue()).getId(), i);
|
visible.set(i, third);
|
||||||
menuItemsOrder.put(((ContextMenuItem) visible.get(i).getValue()).getId(), buttonMoreIndex);
|
value.setOrder(buttonMoreIndex);
|
||||||
}
|
((ContextMenuItem) third.getValue()).setOrder(i);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ package net.osmand.plus.views;
|
||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
|
@ -53,7 +52,7 @@ import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
|
import static net.osmand.AndroidUtils.dpToPx;
|
||||||
|
|
||||||
public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.IContextMenuProvider,
|
public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.IContextMenuProvider,
|
||||||
MapTextProvider<Amenity>, IRouteInformationListener {
|
MapTextProvider<Amenity>, IRouteInformationListener {
|
||||||
|
@ -446,15 +445,4 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
|
||||||
@Override
|
@Override
|
||||||
public void routeWasFinished() {
|
public void routeWasFinished() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int dpToPx(Context ctx, float dp) {
|
|
||||||
Resources r = ctx.getResources();
|
|
||||||
return (int) TypedValue.applyDimension(
|
|
||||||
COMPLEX_UNIT_DIP,
|
|
||||||
dp,
|
|
||||||
r.getDisplayMetrics()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue