Route preparation menu in progress
This commit is contained in:
parent
c2bd5f184b
commit
e6eb1b0ecd
19 changed files with 539 additions and 187 deletions
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:id="@+id/map_route_land_left_margin"
|
android:id="@+id/map_route_land_left_margin"
|
||||||
android:layout_width="@dimen/map_route_planning_land_width"
|
android:layout_width="@dimen/map_route_planning_land_width_minus_shadow"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_gravity="top|left"
|
android:layout_gravity="top|left"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"/>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
android:layout_width="@dimen/map_route_planning_land_width"
|
android:layout_width="@dimen/map_route_planning_land_width"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="bottom"
|
android:layout_gravity="bottom"
|
||||||
android:background="?attr/left_menu_view_bg"
|
android:background="@drawable/bg_left_menu_dark"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
@ -26,10 +26,11 @@
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
android:id="@+id/dividerModesLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
android:layout_gravity="bottom"
|
android:layout_gravity="bottom"
|
||||||
android:background="?attr/dashboard_divider"
|
android:background="@color/dashboard_divider_dark"
|
||||||
android:focusable="false"/>
|
android:focusable="false"/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -85,7 +86,7 @@
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/fromIcon"
|
android:id="@+id/fromIcon"
|
||||||
android:layout_width="24dp"
|
android:layout_width="@dimen/standard_icon_size"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
@ -98,6 +99,7 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
android:id="@+id/fromTitle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="3dp"
|
android:layout_marginBottom="3dp"
|
||||||
|
@ -127,9 +129,10 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
android:id="@+id/dividerFromDropDown"
|
||||||
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="@color/dashboard_divider_dark"
|
||||||
android:focusable="false"/>
|
android:focusable="false"/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -140,7 +143,7 @@
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/viaIcon"
|
android:id="@+id/viaIcon"
|
||||||
android:layout_width="24dp"
|
android:layout_width="@dimen/standard_icon_size"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
@ -180,7 +183,7 @@
|
||||||
android:id="@+id/viaLayoutDivider"
|
android:id="@+id/viaLayoutDivider"
|
||||||
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="@color/dashboard_divider_dark"
|
||||||
android:focusable="false"/>
|
android:focusable="false"/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -191,7 +194,7 @@
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/toIcon"
|
android:id="@+id/toIcon"
|
||||||
android:layout_width="24dp"
|
android:layout_width="@dimen/standard_icon_size"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
@ -204,6 +207,7 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
android:id="@+id/toTitle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="3dp"
|
android:layout_marginBottom="3dp"
|
||||||
|
@ -232,9 +236,10 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
android:id="@+id/dividerToDropDown"
|
||||||
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="@color/dashboard_divider_dark"
|
||||||
android:focusable="false"/>
|
android:focusable="false"/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -246,7 +251,8 @@
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/Info"
|
android:id="@+id/Info"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="wrap_content"
|
||||||
|
android:minHeight="@dimen/list_item_height"
|
||||||
android:background="?attr/dashboard_button"
|
android:background="?attr/dashboard_button"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
@ -261,13 +267,84 @@
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/InfoIcon"
|
android:id="@+id/InfoIcon"
|
||||||
android:layout_width="@dimen/list_item_height"
|
android:layout_width="@dimen/standard_icon_size"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:contentDescription="@string/info_button"
|
android:contentDescription="@string/info_button"
|
||||||
android:scaleType="center"
|
android:scaleType="center"
|
||||||
android:src="@drawable/ic_action_info_dark"/>
|
android:src="@drawable/ic_action_info_dark"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/InfoDistance"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/DistanceTitle"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="3dp"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:gravity="left"
|
||||||
|
android:text="@string/route_distance"
|
||||||
|
android:textSize="@dimen/default_sub_text_size"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/DistanceText"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:gravity="left"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:textSize="@dimen/default_list_text_size"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/DurationIcon"
|
||||||
|
android:layout_width="@dimen/standard_icon_size"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:contentDescription="@string/info_button"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/ic_action_time"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/InfoDuration"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/DurationTitle"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="3dp"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:gravity="left"
|
||||||
|
android:text="@string/route_duration"
|
||||||
|
android:textSize="@dimen/default_sub_text_size"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/DurationText"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:gravity="left"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:textSize="@dimen/default_list_text_size"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/InfoTextView"
|
android:id="@+id/InfoTextView"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
@ -293,10 +370,11 @@
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
android:id="@+id/dividerButtons"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
android:layout_gravity="bottom"
|
android:layout_gravity="bottom"
|
||||||
android:background="?attr/dashboard_divider"
|
android:background="@color/dashboard_divider_dark"
|
||||||
android:focusable="false"/>
|
android:focusable="false"/>
|
||||||
|
|
||||||
<include layout="@layout/map_route_prepare_bottom"/>
|
<include layout="@layout/map_route_prepare_bottom"/>
|
||||||
|
|
|
@ -15,9 +15,10 @@
|
||||||
android:src="@drawable/ic_action_test_light" />
|
android:src="@drawable/ic_action_test_light" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
android:id="@+id/dividerBtn1"
|
||||||
android:layout_width="1dp"
|
android:layout_width="1dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/dashboard_divider"/>
|
android:background="@color/dashboard_divider_dark"/>
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/map_waypoints_route_button"
|
android:id="@+id/map_waypoints_route_button"
|
||||||
|
@ -28,9 +29,10 @@
|
||||||
android:src="@drawable/ic_action_test_light" />
|
android:src="@drawable/ic_action_test_light" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
android:id="@+id/dividerBtn2"
|
||||||
android:layout_width="1dp"
|
android:layout_width="1dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/dashboard_divider"/>
|
android:background="@color/dashboard_divider_dark"/>
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/map_options_route_button"
|
android:id="@+id/map_options_route_button"
|
||||||
|
@ -41,9 +43,10 @@
|
||||||
android:src="@drawable/ic_action_test_light" />
|
android:src="@drawable/ic_action_test_light" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
android:id="@+id/dividerBtn3"
|
||||||
android:layout_width="1dp"
|
android:layout_width="1dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/dashboard_divider"/>
|
android:background="@color/dashboard_divider_dark"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/map_go_route_button"
|
android:id="@+id/map_go_route_button"
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="bottom"
|
android:layout_gravity="bottom"
|
||||||
android:background="?attr/bottom_menu_view_bg"
|
android:background="@drawable/bg_bottom_menu_dark"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
@ -26,10 +26,11 @@
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
android:id="@+id/dividerModesLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
android:layout_gravity="bottom"
|
android:layout_gravity="bottom"
|
||||||
android:background="?attr/dashboard_divider"
|
android:background="@color/dashboard_divider_dark"
|
||||||
android:focusable="false"/>
|
android:focusable="false"/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -85,7 +86,7 @@
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/fromIcon"
|
android:id="@+id/fromIcon"
|
||||||
android:layout_width="24dp"
|
android:layout_width="@dimen/standard_icon_size"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
@ -98,6 +99,7 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
android:id="@+id/fromTitle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="3dp"
|
android:layout_marginBottom="3dp"
|
||||||
|
@ -127,9 +129,10 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
android:id="@+id/dividerFromDropDown"
|
||||||
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="@color/dashboard_divider_dark"
|
||||||
android:focusable="false"/>
|
android:focusable="false"/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -140,7 +143,7 @@
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/viaIcon"
|
android:id="@+id/viaIcon"
|
||||||
android:layout_width="24dp"
|
android:layout_width="@dimen/standard_icon_size"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
@ -180,7 +183,7 @@
|
||||||
android:id="@+id/viaLayoutDivider"
|
android:id="@+id/viaLayoutDivider"
|
||||||
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="@color/dashboard_divider_dark"
|
||||||
android:focusable="false"/>
|
android:focusable="false"/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -191,7 +194,7 @@
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/toIcon"
|
android:id="@+id/toIcon"
|
||||||
android:layout_width="24dp"
|
android:layout_width="@dimen/standard_icon_size"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
@ -204,6 +207,7 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
android:id="@+id/toTitle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="3dp"
|
android:layout_marginBottom="3dp"
|
||||||
|
@ -232,9 +236,10 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
android:id="@+id/dividerToDropDown"
|
||||||
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="@color/dashboard_divider_dark"
|
||||||
android:focusable="false"/>
|
android:focusable="false"/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -246,7 +251,8 @@
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/Info"
|
android:id="@+id/Info"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="wrap_content"
|
||||||
|
android:minHeight="@dimen/list_item_height"
|
||||||
android:background="?attr/dashboard_button"
|
android:background="?attr/dashboard_button"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
@ -261,13 +267,84 @@
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/InfoIcon"
|
android:id="@+id/InfoIcon"
|
||||||
android:layout_width="@dimen/list_item_height"
|
android:layout_width="@dimen/standard_icon_size"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:contentDescription="@string/info_button"
|
android:contentDescription="@string/info_button"
|
||||||
android:scaleType="center"
|
android:scaleType="center"
|
||||||
android:src="@drawable/ic_action_info_dark"/>
|
android:src="@drawable/ic_action_info_dark"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/InfoDistance"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/DistanceTitle"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="3dp"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:gravity="left"
|
||||||
|
android:text="@string/route_distance"
|
||||||
|
android:textSize="@dimen/default_sub_text_size"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/DistanceText"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:gravity="left"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:textSize="@dimen/default_list_text_size"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/DurationIcon"
|
||||||
|
android:layout_width="@dimen/standard_icon_size"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:contentDescription="@string/info_button"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/ic_action_time"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/InfoDuration"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/DurationTitle"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="3dp"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:gravity="left"
|
||||||
|
android:text="@string/route_duration"
|
||||||
|
android:textSize="@dimen/default_sub_text_size"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/DurationText"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:gravity="left"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:textSize="@dimen/default_list_text_size"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/InfoTextView"
|
android:id="@+id/InfoTextView"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
@ -293,10 +370,11 @@
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
|
android:id="@+id/dividerButtons"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
android:layout_gravity="bottom"
|
android:layout_gravity="bottom"
|
||||||
android:background="?attr/dashboard_divider"
|
android:background="@color/dashboard_divider_dark"
|
||||||
android:focusable="false"/>
|
android:focusable="false"/>
|
||||||
|
|
||||||
<include layout="@layout/map_route_prepare_bottom"/>
|
<include layout="@layout/map_route_prepare_bottom"/>
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
<dimen name="map_route_planning_max_height">450dp</dimen>
|
<dimen name="map_route_planning_max_height">450dp</dimen>
|
||||||
<dimen name="map_minwidth_widget">160dp</dimen>
|
<dimen name="map_minwidth_widget">160dp</dimen>
|
||||||
<dimen name="map_route_planning_land_width">510dp</dimen>
|
<dimen name="map_route_planning_land_width">510dp</dimen>
|
||||||
|
<dimen name="map_route_planning_land_width_minus_shadow">496dp</dimen>
|
||||||
|
|
||||||
<dimen name="map_address_height">60dp</dimen>
|
<dimen name="map_address_height">60dp</dimen>
|
||||||
<dimen name="map_button_size">78dp</dimen>
|
<dimen name="map_button_size">78dp</dimen>
|
||||||
|
|
|
@ -86,6 +86,7 @@
|
||||||
<dimen name="map_button_stroke">1dp</dimen>
|
<dimen name="map_button_stroke">1dp</dimen>
|
||||||
<dimen name="map_button_stroke_dark">1dp</dimen>
|
<dimen name="map_button_stroke_dark">1dp</dimen>
|
||||||
<dimen name="map_route_planning_land_width">320dp</dimen>
|
<dimen name="map_route_planning_land_width">320dp</dimen>
|
||||||
|
<dimen name="map_route_planning_land_width_minus_shadow">306dp</dimen>
|
||||||
<dimen name="map_route_planning_max_height">330dp</dimen>
|
<dimen name="map_route_planning_max_height">330dp</dimen>
|
||||||
<dimen name="map_minwidth_widget">100dp</dimen>
|
<dimen name="map_minwidth_widget">100dp</dimen>
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
||||||
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
||||||
-->
|
-->
|
||||||
|
<string name="route_distance">Distance:</string>
|
||||||
|
<string name="route_duration">Travelling time:</string>
|
||||||
<string-array name="update_frequencies_array">
|
<string-array name="update_frequencies_array">
|
||||||
<item>Every Hour</item>
|
<item>Every Hour</item>
|
||||||
<item>Once a day</item>
|
<item>Once a day</item>
|
||||||
|
|
|
@ -3,8 +3,10 @@ package net.osmand;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
|
import android.os.Build;
|
||||||
import android.text.format.DateFormat;
|
import android.text.format.DateFormat;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewParent;
|
import android.view.ViewParent;
|
||||||
|
@ -64,4 +66,15 @@ public class AndroidUtils {
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("NewApi")
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public static void setBackground(Context ctx, View view, boolean night, int lightResId, int darkResId) {
|
||||||
|
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
|
||||||
|
view.setBackground(ctx.getResources().getDrawable(night ? darkResId : lightResId,
|
||||||
|
ctx.getTheme()));
|
||||||
|
} else {
|
||||||
|
view.setBackgroundDrawable(ctx.getResources().getDrawable(night ? darkResId : lightResId));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -330,7 +330,7 @@ public class ContextMenuAdapter {
|
||||||
Integer lid = getLayoutId(position);
|
Integer lid = getLayoutId(position);
|
||||||
if (lid == R.layout.mode_toggles) {
|
if (lid == R.layout.mode_toggles) {
|
||||||
final Set<ApplicationMode> selected = new LinkedHashSet<ApplicationMode>();
|
final Set<ApplicationMode> selected = new LinkedHashSet<ApplicationMode>();
|
||||||
return AppModeDialog.prepareAppModeDrawerView(activity, visibleModes, selected, allModes, new View.OnClickListener() {
|
return AppModeDialog.prepareAppModeDrawerView(activity, visibleModes, selected, allModes, false, new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (selected.size() > 0) {
|
if (selected.size() > 0) {
|
||||||
|
|
|
@ -82,6 +82,10 @@ public class IconsCache {
|
||||||
return getDrawable(id, app.getSettings().isLightContent() ? R.color.icon_color : 0);
|
return getDrawable(id, app.getSettings().isLightContent() ? R.color.icon_color : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Drawable getContentIcon(@DrawableRes int id, boolean isLightContent) {
|
||||||
|
return getDrawable(id, isLightContent ? R.color.icon_color : 0);
|
||||||
|
}
|
||||||
|
|
||||||
public Drawable getIcon(@DrawableRes int id) {
|
public Drawable getIcon(@DrawableRes int id) {
|
||||||
return getDrawable(id, 0);
|
return getDrawable(id, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -555,8 +555,13 @@ public class MapActivity extends AccessibleActivity implements DownloadEvents,
|
||||||
if (mapLabelToShow != null && !mapLabelToShow.contextMenuDisabled()) {
|
if (mapLabelToShow != null && !mapLabelToShow.contextMenuDisabled()) {
|
||||||
mapContextMenu.setMapCenter(latLonToShow);
|
mapContextMenu.setMapCenter(latLonToShow);
|
||||||
mapContextMenu.setMapPosition(mapView.getMapPosition());
|
mapContextMenu.setMapPosition(mapView.getMapPosition());
|
||||||
|
if (mapLayers.getMapControlsLayer().getMapRouteInfoMenu().isVisible()) {
|
||||||
|
mapContextMenu.showMinimized(latLonToShow, mapLabelToShow, toShow);
|
||||||
|
mapLayers.getMapControlsLayer().getMapRouteInfoMenu().updateMenu();
|
||||||
|
} else {
|
||||||
mapContextMenu.show(latLonToShow, mapLabelToShow, toShow);
|
mapContextMenu.show(latLonToShow, mapLabelToShow, toShow);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!latLonToShow.equals(cur)) {
|
if (!latLonToShow.equals(cur)) {
|
||||||
mapView.getAnimatedDraggingThread().startMoving(latLonToShow.getLatitude(),
|
mapView.getAnimatedDraggingThread().startMoving(latLonToShow.getLatitude(),
|
||||||
latLonToShow.getLongitude(), settings.getMapZoomToShow(), true);
|
latLonToShow.getLongitude(), settings.getMapZoomToShow(), true);
|
||||||
|
|
|
@ -400,7 +400,7 @@ public abstract class SettingsBaseActivity extends ActionBarPreferenceActivity
|
||||||
protected void profileDialog() {
|
protected void profileDialog() {
|
||||||
AlertDialog.Builder b = new AlertDialog.Builder(this);
|
AlertDialog.Builder b = new AlertDialog.Builder(this);
|
||||||
final Set<ApplicationMode> selected = new LinkedHashSet<ApplicationMode>();
|
final Set<ApplicationMode> selected = new LinkedHashSet<ApplicationMode>();
|
||||||
View v = AppModeDialog.prepareAppModeView(this, selected, false, null, true,
|
View v = AppModeDialog.prepareAppModeView(this, selected, false, null, true, false,
|
||||||
new View.OnClickListener() {
|
new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
|
|
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import net.osmand.AndroidUtils;
|
||||||
import net.osmand.plus.ApplicationMode;
|
import net.osmand.plus.ApplicationMode;
|
||||||
import net.osmand.plus.ContextMenuAdapter;
|
import net.osmand.plus.ContextMenuAdapter;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
|
@ -20,7 +21,7 @@ import android.widget.LinearLayout.LayoutParams;
|
||||||
public class AppModeDialog {
|
public class AppModeDialog {
|
||||||
|
|
||||||
public static View prepareAppModeView(Activity a, final Set<ApplicationMode> selected, boolean showDefault,
|
public static View prepareAppModeView(Activity a, final Set<ApplicationMode> selected, boolean showDefault,
|
||||||
ViewGroup parent, final boolean singleSelection, final View.OnClickListener onClickListener) {
|
ViewGroup parent, final boolean singleSelection, boolean useMapTheme, final View.OnClickListener onClickListener) {
|
||||||
OsmandSettings settings = ((OsmandApplication) a.getApplication()).getSettings();
|
OsmandSettings settings = ((OsmandApplication) a.getApplication()).getSettings();
|
||||||
final List<ApplicationMode> values = new ArrayList<ApplicationMode>(ApplicationMode.values(settings));
|
final List<ApplicationMode> values = new ArrayList<ApplicationMode>(ApplicationMode.values(settings));
|
||||||
if(!showDefault) {
|
if(!showDefault) {
|
||||||
|
@ -29,21 +30,21 @@ public class AppModeDialog {
|
||||||
if (showDefault || settings.getApplicationMode() != ApplicationMode.DEFAULT) {
|
if (showDefault || settings.getApplicationMode() != ApplicationMode.DEFAULT) {
|
||||||
selected.add(settings.getApplicationMode());
|
selected.add(settings.getApplicationMode());
|
||||||
}
|
}
|
||||||
return prepareAppModeView(a, values, selected, parent, singleSelection, false, onClickListener);
|
return prepareAppModeView(a, values, selected, parent, singleSelection, false, useMapTheme, onClickListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
//special method for drawer menu
|
//special method for drawer menu
|
||||||
//needed because if there's more than 4 items - the don't fit in drawer
|
//needed because if there's more than 4 items - the don't fit in drawer
|
||||||
public static View prepareAppModeDrawerView(Activity a, List<ApplicationMode> visible, final Set<ApplicationMode> selected, ContextMenuAdapter.BooleanResult allModes,
|
public static View prepareAppModeDrawerView(Activity a, List<ApplicationMode> visible, final Set<ApplicationMode> selected, ContextMenuAdapter.BooleanResult allModes,
|
||||||
final View.OnClickListener onClickListener) {
|
boolean useMapTheme, final View.OnClickListener onClickListener) {
|
||||||
OsmandSettings settings = ((OsmandApplication) a.getApplication()).getSettings();
|
OsmandSettings settings = ((OsmandApplication) a.getApplication()).getSettings();
|
||||||
final List<ApplicationMode> values = new ArrayList<ApplicationMode>(ApplicationMode.values(settings));
|
final List<ApplicationMode> values = new ArrayList<ApplicationMode>(ApplicationMode.values(settings));
|
||||||
selected.add(settings.getApplicationMode());
|
selected.add(settings.getApplicationMode());
|
||||||
return prepareAppModeView(a, values, selected, null, true, true, onClickListener);
|
return prepareAppModeView(a, values, selected, null, true, true, useMapTheme, onClickListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static View prepareAppModeView(Activity a, final List<ApplicationMode> values , final Set<ApplicationMode> selected,
|
public static View prepareAppModeView(Activity a, final List<ApplicationMode> values , final Set<ApplicationMode> selected,
|
||||||
ViewGroup parent, final boolean singleSelection, boolean drawer, final View.OnClickListener onClickListener) {
|
ViewGroup parent, final boolean singleSelection, boolean drawer, boolean useMapTheme, final View.OnClickListener onClickListener) {
|
||||||
View ll = a.getLayoutInflater().inflate(R.layout.mode_toggles, parent);
|
View ll = a.getLayoutInflater().inflate(R.layout.mode_toggles, parent);
|
||||||
final View[] buttons = new View[values.size()];
|
final View[] buttons = new View[values.size()];
|
||||||
int k = 0;
|
int k = 0;
|
||||||
|
@ -52,7 +53,7 @@ public class AppModeDialog {
|
||||||
}
|
}
|
||||||
for (int i = 0; i < buttons.length; i++) {
|
for (int i = 0; i < buttons.length; i++) {
|
||||||
updateButtonState((OsmandApplication) a.getApplication(), values, selected, onClickListener, buttons, i,
|
updateButtonState((OsmandApplication) a.getApplication(), values, selected, onClickListener, buttons, i,
|
||||||
singleSelection);
|
singleSelection, useMapTheme);
|
||||||
}
|
}
|
||||||
return ll;
|
return ll;
|
||||||
}
|
}
|
||||||
|
@ -60,7 +61,7 @@ public class AppModeDialog {
|
||||||
|
|
||||||
private static void updateButtonState(final OsmandApplication ctx, final List<ApplicationMode> visible,
|
private static void updateButtonState(final OsmandApplication ctx, final List<ApplicationMode> visible,
|
||||||
final Set<ApplicationMode> selected, final View.OnClickListener onClickListener, final View[] buttons,
|
final Set<ApplicationMode> selected, final View.OnClickListener onClickListener, final View[] buttons,
|
||||||
int i, final boolean singleChoice) {
|
int i, final boolean singleChoice, final boolean useMapTheme) {
|
||||||
if (buttons[i] != null) {
|
if (buttons[i] != null) {
|
||||||
View tb = buttons[i];
|
View tb = buttons[i];
|
||||||
final ApplicationMode mode = visible.get(i);
|
final ApplicationMode mode = visible.get(i);
|
||||||
|
@ -69,8 +70,14 @@ public class AppModeDialog {
|
||||||
if (checked) {
|
if (checked) {
|
||||||
iv.setImageDrawable(ctx.getIconsCache().getIcon(mode.getSmallIconDark(), R.color.osmand_orange));
|
iv.setImageDrawable(ctx.getIconsCache().getIcon(mode.getSmallIconDark(), R.color.osmand_orange));
|
||||||
tb.findViewById(R.id.selection).setVisibility(View.VISIBLE);
|
tb.findViewById(R.id.selection).setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
if (useMapTheme) {
|
||||||
|
boolean nightMode = ctx.getDaynightHelper().isNightMode();
|
||||||
|
iv.setImageDrawable(ctx.getIconsCache().getContentIcon(mode.getSmallIconDark(), !nightMode));
|
||||||
|
AndroidUtils.setBackground(ctx, iv, nightMode, R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark);
|
||||||
} else {
|
} else {
|
||||||
iv.setImageDrawable(ctx.getIconsCache().getContentIcon(mode.getSmallIconDark()));
|
iv.setImageDrawable(ctx.getIconsCache().getContentIcon(mode.getSmallIconDark()));
|
||||||
|
}
|
||||||
tb.findViewById(R.id.selection).setVisibility(View.INVISIBLE);
|
tb.findViewById(R.id.selection).setVisibility(View.INVISIBLE);
|
||||||
}
|
}
|
||||||
iv.setOnClickListener(new View.OnClickListener() {
|
iv.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@ -94,7 +101,7 @@ public class AppModeDialog {
|
||||||
onClickListener.onClick(null);
|
onClickListener.onClick(null);
|
||||||
}
|
}
|
||||||
for(int i = 0; i < visible.size(); i++) {
|
for(int i = 0; i < visible.size(); i++) {
|
||||||
updateButtonState(ctx, visible, selected, onClickListener, buttons, i, singleChoice);
|
updateButtonState(ctx, visible, selected, onClickListener, buttons, i, singleChoice, useMapTheme);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -211,7 +211,7 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity {
|
||||||
modes.remove(ApplicationMode.DEFAULT);
|
modes.remove(ApplicationMode.DEFAULT);
|
||||||
final Set<ApplicationMode> selected = new LinkedHashSet<ApplicationMode>(ApplicationMode.values(settings));
|
final Set<ApplicationMode> selected = new LinkedHashSet<ApplicationMode>(ApplicationMode.values(settings));
|
||||||
selected.remove(ApplicationMode.DEFAULT);
|
selected.remove(ApplicationMode.DEFAULT);
|
||||||
View v = AppModeDialog.prepareAppModeView(this, modes, selected, null, false, false,
|
View v = AppModeDialog.prepareAppModeView(this, modes, selected, null, false, false, false,
|
||||||
new View.OnClickListener() {
|
new View.OnClickListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,12 +1,16 @@
|
||||||
package net.osmand.plus.mapcontextmenu.other;
|
package net.osmand.plus.mapcontextmenu.other;
|
||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.DialogInterface.OnDismissListener;
|
import android.content.DialogInterface.OnDismissListener;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.graphics.PointF;
|
import android.graphics.PointF;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
|
import android.support.v4.content.ContextCompat;
|
||||||
|
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;
|
||||||
|
@ -35,6 +39,7 @@ import net.osmand.plus.activities.ShowRouteInfoActivity;
|
||||||
import net.osmand.plus.activities.actions.AppModeDialog;
|
import net.osmand.plus.activities.actions.AppModeDialog;
|
||||||
import net.osmand.plus.activities.search.SearchAddressActivity;
|
import net.osmand.plus.activities.search.SearchAddressActivity;
|
||||||
import net.osmand.plus.dialogs.FavoriteDialogs;
|
import net.osmand.plus.dialogs.FavoriteDialogs;
|
||||||
|
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||||
import net.osmand.plus.mapcontextmenu.MapContextMenu;
|
import net.osmand.plus.mapcontextmenu.MapContextMenu;
|
||||||
import net.osmand.plus.routing.RouteDirectionInfo;
|
import net.osmand.plus.routing.RouteDirectionInfo;
|
||||||
import net.osmand.plus.routing.RoutingHelper;
|
import net.osmand.plus.routing.RoutingHelper;
|
||||||
|
@ -48,6 +53,8 @@ import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
|
||||||
|
|
||||||
public class MapRouteInfoMenu implements IRouteInformationListener {
|
public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
public static int directionInfo = -1;
|
public static int directionInfo = -1;
|
||||||
public static boolean controlVisible = false;
|
public static boolean controlVisible = false;
|
||||||
|
@ -61,6 +68,8 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
private MapActivity mapActivity;
|
private MapActivity mapActivity;
|
||||||
private MapControlsLayer mapControlsLayer;
|
private MapControlsLayer mapControlsLayer;
|
||||||
public static final String TARGET_SELECT = "TARGET_SELECT";
|
public static final String TARGET_SELECT = "TARGET_SELECT";
|
||||||
|
private boolean nightMode;
|
||||||
|
private boolean switched;
|
||||||
|
|
||||||
public MapRouteInfoMenu(MapActivity mapActivity, MapControlsLayer mapControlsLayer) {
|
public MapRouteInfoMenu(MapActivity mapActivity, MapControlsLayer mapControlsLayer) {
|
||||||
this.mapActivity = mapActivity;
|
this.mapActivity = mapActivity;
|
||||||
|
@ -116,6 +125,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateInfo(final View main) {
|
public void updateInfo(final View main) {
|
||||||
|
nightMode = mapActivity.getMyApplication().getDaynightHelper().isNightMode();
|
||||||
updateViaView(main);
|
updateViaView(main);
|
||||||
updateFromSpinner(main);
|
updateFromSpinner(main);
|
||||||
updateToSpinner(main);
|
updateToSpinner(main);
|
||||||
|
@ -132,6 +142,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
private void updateRouteCalcProgress(final View main) {
|
private void updateRouteCalcProgress(final View main) {
|
||||||
TargetPointsHelper targets = getTargets();
|
TargetPointsHelper targets = getTargets();
|
||||||
if (targets.hasTooLongDistanceToNavigate()) {
|
if (targets.hasTooLongDistanceToNavigate()) {
|
||||||
|
main.findViewById(R.id.dividerToDropDown).setVisibility(View.VISIBLE);
|
||||||
main.findViewById(R.id.RouteInfoControls).setVisibility(View.VISIBLE);
|
main.findViewById(R.id.RouteInfoControls).setVisibility(View.VISIBLE);
|
||||||
TextView textView = (TextView) main.findViewById(R.id.InfoTextView);
|
TextView textView = (TextView) main.findViewById(R.id.InfoTextView);
|
||||||
ImageView iconView = (ImageView) main.findViewById(R.id.InfoIcon);
|
ImageView iconView = (ImageView) main.findViewById(R.id.InfoIcon);
|
||||||
|
@ -139,8 +150,9 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
main.findViewById(R.id.Next).setVisibility(View.GONE);
|
main.findViewById(R.id.Next).setVisibility(View.GONE);
|
||||||
textView.setText(R.string.route_is_too_long);
|
textView.setText(R.string.route_is_too_long);
|
||||||
textView.setVisibility(View.VISIBLE);
|
textView.setVisibility(View.VISIBLE);
|
||||||
iconView.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_warning));
|
iconView.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_warning, isLight()));
|
||||||
} else {
|
} else {
|
||||||
|
main.findViewById(R.id.dividerToDropDown).setVisibility(View.GONE);
|
||||||
main.findViewById(R.id.RouteInfoControls).setVisibility(View.GONE);
|
main.findViewById(R.id.RouteInfoControls).setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -153,7 +165,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
ViewGroup vg = (ViewGroup) parentView.findViewById(R.id.app_modes);
|
ViewGroup vg = (ViewGroup) parentView.findViewById(R.id.app_modes);
|
||||||
vg.removeAllViews();
|
vg.removeAllViews();
|
||||||
AppModeDialog.prepareAppModeView(mapActivity, selected, false,
|
AppModeDialog.prepareAppModeView(mapActivity, selected, false,
|
||||||
vg, true, new View.OnClickListener() {
|
vg, true, true, new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (selected.size() > 0) {
|
if (selected.size() > 0) {
|
||||||
|
@ -167,15 +179,25 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
|
|
||||||
private void updateViaView(final View parentView) {
|
private void updateViaView(final View parentView) {
|
||||||
String via = generateViaDescription();
|
String via = generateViaDescription();
|
||||||
|
View viaLayout = parentView.findViewById(R.id.ViaLayout);
|
||||||
if (via.length() == 0) {
|
if (via.length() == 0) {
|
||||||
parentView.findViewById(R.id.ViaLayout).setVisibility(View.GONE);
|
viaLayout.setVisibility(View.GONE);
|
||||||
parentView.findViewById(R.id.viaLayoutDivider).setVisibility(View.GONE);
|
parentView.findViewById(R.id.viaLayoutDivider).setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
parentView.findViewById(R.id.ViaLayout).setVisibility(View.VISIBLE);
|
viaLayout.setVisibility(View.VISIBLE);
|
||||||
parentView.findViewById(R.id.viaLayoutDivider).setVisibility(View.VISIBLE);
|
parentView.findViewById(R.id.viaLayoutDivider).setVisibility(View.VISIBLE);
|
||||||
((TextView) parentView.findViewById(R.id.ViaView)).setText(via);
|
((TextView) parentView.findViewById(R.id.ViaView)).setText(via);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
viaLayout.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
if (getTargets().checkPointToNavigateShort()) {
|
||||||
|
mapActivity.getMapActions().openIntermediatePointsDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
ImageView viaIcon = (ImageView) parentView.findViewById(R.id.viaIcon);
|
ImageView viaIcon = (ImageView) parentView.findViewById(R.id.viaIcon);
|
||||||
if (isLight()) {
|
if (isLight()) {
|
||||||
viaIcon.setImageDrawable(getIconOrig(R.drawable.widget_intermediate_day));
|
viaIcon.setImageDrawable(getIconOrig(R.drawable.widget_intermediate_day));
|
||||||
|
@ -186,6 +208,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
|
|
||||||
private void updateToSpinner(final View parentView) {
|
private void updateToSpinner(final View parentView) {
|
||||||
final Spinner toSpinner = setupToSpinner(parentView);
|
final Spinner toSpinner = setupToSpinner(parentView);
|
||||||
|
toSpinner.setClickable(false);
|
||||||
toSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
toSpinner.setOnItemSelectedListener(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) {
|
||||||
|
@ -206,6 +229,13 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
parentView.findViewById(R.id.ToLayout).setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
toSpinner.performClick();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
ImageView toIcon = (ImageView) parentView.findViewById(R.id.toIcon);
|
ImageView toIcon = (ImageView) parentView.findViewById(R.id.toIcon);
|
||||||
if (isLight()) {
|
if (isLight()) {
|
||||||
toIcon.setImageDrawable(getIconOrig(R.drawable.widget_target_day));
|
toIcon.setImageDrawable(getIconOrig(R.drawable.widget_target_day));
|
||||||
|
@ -214,19 +244,14 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageView toDropDownIcon = (ImageView) parentView.findViewById(R.id.toDropDownIcon);
|
ImageView toDropDownIcon = (ImageView) parentView.findViewById(R.id.toDropDownIcon);
|
||||||
toDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down));
|
toDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down, isLight()));
|
||||||
toDropDownIcon.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
toSpinner.performClick();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
private void updateFromSpinner(final View parentView) {
|
private void updateFromSpinner(final View parentView) {
|
||||||
final TargetPointsHelper targets = getTargets();
|
final TargetPointsHelper targets = getTargets();
|
||||||
final Spinner fromSpinner = setupFromSpinner(parentView);
|
final Spinner fromSpinner = setupFromSpinner(parentView);
|
||||||
|
fromSpinner.setClickable(false);
|
||||||
fromSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
fromSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -252,18 +277,19 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
ImageView fromIcon = (ImageView) parentView.findViewById(R.id.fromIcon);
|
parentView.findViewById(R.id.FromLayout).setOnClickListener(new View.OnClickListener() {
|
||||||
ApplicationMode appMode = mapActivity.getMyApplication().getSettings().getApplicationMode();
|
|
||||||
fromIcon.setImageDrawable(mapActivity.getResources().getDrawable(appMode.getResourceLocationDay()));
|
|
||||||
|
|
||||||
ImageView fromDropDownIcon = (ImageView) parentView.findViewById(R.id.fromDropDownIcon);
|
|
||||||
fromDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down));
|
|
||||||
fromDropDownIcon.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
fromSpinner.performClick();
|
fromSpinner.performClick();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ImageView fromIcon = (ImageView) parentView.findViewById(R.id.fromIcon);
|
||||||
|
ApplicationMode appMode = mapActivity.getMyApplication().getSettings().getApplicationMode();
|
||||||
|
fromIcon.setImageDrawable(mapActivity.getResources().getDrawable(appMode.getResourceLocationDay()));
|
||||||
|
|
||||||
|
ImageView fromDropDownIcon = (ImageView) parentView.findViewById(R.id.fromDropDownIcon);
|
||||||
|
fromDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down, isLight()));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void selectOnScreen(boolean target) {
|
protected void selectOnScreen(boolean target) {
|
||||||
|
@ -304,7 +330,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isLight() {
|
private boolean isLight() {
|
||||||
return mapActivity.getMyApplication().getSettings().isLightContent();
|
return !nightMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Drawable getIconOrig(int iconId) {
|
private Drawable getIconOrig(int iconId) {
|
||||||
|
@ -357,10 +383,11 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateRouteButtons(final View mainView) {
|
private void updateRouteButtons(final View mainView) {
|
||||||
|
mainView.findViewById(R.id.dividerToDropDown).setVisibility(View.VISIBLE);
|
||||||
mainView.findViewById(R.id.RouteInfoControls).setVisibility(View.VISIBLE);
|
mainView.findViewById(R.id.RouteInfoControls).setVisibility(View.VISIBLE);
|
||||||
final OsmandApplication ctx = mapActivity.getMyApplication();
|
final OsmandApplication ctx = mapActivity.getMyApplication();
|
||||||
ImageView prev = (ImageView) mainView.findViewById(R.id.Prev);
|
ImageView prev = (ImageView) mainView.findViewById(R.id.Prev);
|
||||||
prev.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_prev));
|
prev.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_prev, isLight()));
|
||||||
if (directionInfo >= 0) {
|
if (directionInfo >= 0) {
|
||||||
prev.setVisibility(View.VISIBLE);
|
prev.setVisibility(View.VISIBLE);
|
||||||
prev.setOnClickListener(new View.OnClickListener() {
|
prev.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@ -389,7 +416,7 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
}
|
}
|
||||||
ImageView next = (ImageView) mainView.findViewById(R.id.Next);
|
ImageView next = (ImageView) mainView.findViewById(R.id.Next);
|
||||||
next.setVisibility(View.VISIBLE);
|
next.setVisibility(View.VISIBLE);
|
||||||
next.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_next));
|
next.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_next, isLight()));
|
||||||
next.setOnClickListener(new View.OnClickListener() {
|
next.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
@ -416,19 +443,45 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
});
|
});
|
||||||
|
|
||||||
TextView textView = (TextView) mainView.findViewById(R.id.InfoTextView);
|
TextView textView = (TextView) mainView.findViewById(R.id.InfoTextView);
|
||||||
ImageView iconView = (ImageView) mainView.findViewById(R.id.InfoIcon);
|
ImageView infoIcon = (ImageView) mainView.findViewById(R.id.InfoIcon);
|
||||||
|
ImageView durationIcon = (ImageView) mainView.findViewById(R.id.DurationIcon);
|
||||||
|
View infoDistanceView = mainView.findViewById(R.id.InfoDistance);
|
||||||
|
View infoDurationView = mainView.findViewById(R.id.InfoDuration);
|
||||||
if (directionInfo >= 0) {
|
if (directionInfo >= 0) {
|
||||||
iconView.setVisibility(View.GONE);
|
infoIcon.setVisibility(View.GONE);
|
||||||
|
durationIcon.setVisibility(View.GONE);
|
||||||
|
infoDistanceView.setVisibility(View.GONE);
|
||||||
|
infoDurationView.setVisibility(View.GONE);
|
||||||
|
textView.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
iconView.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_action_info_dark));
|
infoIcon.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_action_polygom_dark, isLight()));
|
||||||
iconView.setVisibility(View.VISIBLE);
|
infoIcon.setVisibility(View.VISIBLE);
|
||||||
|
durationIcon.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_action_time, isLight()));
|
||||||
|
durationIcon.setVisibility(View.VISIBLE);
|
||||||
|
infoDistanceView.setVisibility(View.VISIBLE);
|
||||||
|
infoDurationView.setVisibility(View.VISIBLE);
|
||||||
|
textView.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
if (directionInfo >= 0 && routingHelper.getRouteDirections() != null
|
if (directionInfo >= 0 && routingHelper.getRouteDirections() != null
|
||||||
&& directionInfo < routingHelper.getRouteDirections().size()) {
|
&& directionInfo < routingHelper.getRouteDirections().size()) {
|
||||||
RouteDirectionInfo ri = routingHelper.getRouteDirections().get(directionInfo);
|
RouteDirectionInfo ri = routingHelper.getRouteDirections().get(directionInfo);
|
||||||
textView.setText((directionInfo + 1) + ". " + ri.getDescriptionRoutePart() + " " + OsmAndFormatter.getFormattedDistance(ri.distance, ctx));
|
textView.setText((directionInfo + 1) + ". " + ri.getDescriptionRoutePart() + " " + OsmAndFormatter.getFormattedDistance(ri.distance, ctx));
|
||||||
} else {
|
} else {
|
||||||
textView.setText(ctx.getRoutingHelper().getGeneralRouteInformation().replace(",", ",\n"));
|
TextView distanceText = (TextView) mainView.findViewById(R.id.DistanceText);
|
||||||
|
TextView durationText = (TextView) mainView.findViewById(R.id.DurationText);
|
||||||
|
distanceText.setText(OsmAndFormatter.getFormattedDistance(ctx.getRoutingHelper().getLeftDistance(), ctx));
|
||||||
|
int leftTime = ctx.getRoutingHelper().getLeftTime();
|
||||||
|
int hours = leftTime / (60 * 60);
|
||||||
|
int minutes = (leftTime / 60) % 60;
|
||||||
|
if (hours > 0) {
|
||||||
|
durationText.setText(hours + " "
|
||||||
|
+ ctx.getString(R.string.osmand_parking_hour)
|
||||||
|
+ (minutes > 0 ? " " + minutes + " "
|
||||||
|
+ ctx.getString(R.string.osmand_parking_minute) : ""));
|
||||||
|
} else {
|
||||||
|
durationText.setText(minutes + " "
|
||||||
|
+ ctx.getString(R.string.osmand_parking_minute));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -472,24 +525,25 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
private Spinner setupFromSpinner(View view) {
|
private Spinner setupFromSpinner(View view) {
|
||||||
ArrayList<String> fromActions = new ArrayList<>();
|
ArrayList<RouteSpinnerRow> fromActions = new ArrayList<>();
|
||||||
fromActions.add(mapActivity.getString(R.string.route_descr_current_location));
|
fromActions.add(new RouteSpinnerRow(R.drawable.ic_action_get_my_location,
|
||||||
fromActions.add(mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis));
|
mapActivity.getString(R.string.route_descr_current_location)));
|
||||||
fromActions.add(mapActivity.getString(R.string.shared_string_select_on_map));
|
fromActions.add(new RouteSpinnerRow(R.drawable.ic_action_fav_dark,
|
||||||
fromActions.add(mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis));
|
mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis)));
|
||||||
|
fromActions.add(new RouteSpinnerRow(R.drawable.ic_action_marker_dark,
|
||||||
|
mapActivity.getString(R.string.shared_string_select_on_map)));
|
||||||
|
fromActions.add(new RouteSpinnerRow(R.drawable.ic_action_home_dark,
|
||||||
|
mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis)));
|
||||||
|
|
||||||
TargetPoint start = getTargets().getPointToStart();
|
TargetPoint start = getTargets().getPointToStart();
|
||||||
if (start != null) {
|
if (start != null) {
|
||||||
String oname = start.getOnlyName().length() > 0 ? start.getOnlyName()
|
String oname = start.getOnlyName().length() > 0 ? start.getOnlyName()
|
||||||
: (mapActivity.getString(R.string.route_descr_map_location) + " " + getRoutePointDescription(start.getLatitude(), start.getLongitude()));
|
: (mapActivity.getString(R.string.route_descr_map_location) + " " + getRoutePointDescription(start.getLatitude(), start.getLongitude()));
|
||||||
fromActions.add(oname);
|
fromActions.add(new RouteSpinnerRow(R.drawable.ic_action_get_my_location, oname));
|
||||||
}
|
}
|
||||||
final Spinner fromSpinner = ((Spinner) view.findViewById(R.id.FromSpinner));
|
final Spinner fromSpinner = ((Spinner) view.findViewById(R.id.FromSpinner));
|
||||||
ArrayAdapter<String> fromAdapter = new ArrayAdapter<>(view.getContext(),
|
RouteSpinnerArrayAdapter fromAdapter = new RouteSpinnerArrayAdapter(view.getContext());
|
||||||
android.R.layout.simple_spinner_item,
|
fromAdapter.addAll(fromActions);
|
||||||
fromActions
|
|
||||||
);
|
|
||||||
fromAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
fromSpinner.setAdapter(fromAdapter);
|
fromSpinner.setAdapter(fromAdapter);
|
||||||
if (start != null) {
|
if (start != null) {
|
||||||
fromSpinner.setSelection(fromActions.size() - 1);
|
fromSpinner.setSelection(fromActions.size() - 1);
|
||||||
|
@ -505,24 +559,25 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
private Spinner setupToSpinner(View view) {
|
private Spinner setupToSpinner(View view) {
|
||||||
final Spinner toSpinner = ((Spinner) view.findViewById(R.id.ToSpinner));
|
final Spinner toSpinner = ((Spinner) view.findViewById(R.id.ToSpinner));
|
||||||
final TargetPointsHelper targets = getTargets();
|
final TargetPointsHelper targets = getTargets();
|
||||||
ArrayList<String> toActions = new ArrayList<>();
|
ArrayList<RouteSpinnerRow> toActions = new ArrayList<>();
|
||||||
if (targets.getPointToNavigate() != null) {
|
if (targets.getPointToNavigate() != null) {
|
||||||
toActions.add(mapActivity.getString(R.string.route_descr_destination) + " "
|
toActions.add(new RouteSpinnerRow(R.drawable.ic_action_get_my_location,
|
||||||
+ getRoutePointDescription(targets.getPointToNavigate().point,
|
getRoutePointDescription(targets.getPointToNavigate().point,
|
||||||
targets.getPointToNavigate().getOnlyName()));
|
targets.getPointToNavigate().getOnlyName())));
|
||||||
} else {
|
} else {
|
||||||
toSpinner.setPromptId(R.string.route_descr_select_destination);
|
toSpinner.setPromptId(R.string.route_descr_select_destination);
|
||||||
toActions.add(mapActivity.getString(R.string.route_descr_select_destination));
|
toActions.add(new RouteSpinnerRow(R.drawable.ic_action_get_my_location,
|
||||||
|
mapActivity.getString(R.string.route_descr_select_destination)));
|
||||||
}
|
}
|
||||||
toActions.add(mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis));
|
toActions.add(new RouteSpinnerRow(R.drawable.ic_action_fav_dark,
|
||||||
toActions.add(mapActivity.getString(R.string.shared_string_select_on_map));
|
mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis)));
|
||||||
toActions.add(mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis));
|
toActions.add(new RouteSpinnerRow(R.drawable.ic_action_marker_dark,
|
||||||
|
mapActivity.getString(R.string.shared_string_select_on_map)));
|
||||||
|
toActions.add(new RouteSpinnerRow(R.drawable.ic_action_home_dark,
|
||||||
|
mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis)));
|
||||||
|
|
||||||
ArrayAdapter<String> toAdapter = new ArrayAdapter<>(view.getContext(),
|
RouteSpinnerArrayAdapter toAdapter = new RouteSpinnerArrayAdapter(view.getContext());
|
||||||
android.R.layout.simple_spinner_item,
|
toAdapter.addAll(toActions);
|
||||||
toActions
|
|
||||||
);
|
|
||||||
toAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
||||||
toSpinner.setAdapter(toAdapter);
|
toSpinner.setAdapter(toAdapter);
|
||||||
return toSpinner;
|
return toSpinner;
|
||||||
}
|
}
|
||||||
|
@ -537,9 +592,34 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
// do not hide fragment (needed for use case entering Planning mode without destination)
|
// do not hide fragment (needed for use case entering Planning mode without destination)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onDismiss() {
|
||||||
|
mapActivity.getMapView().setMapPositionX(0);
|
||||||
|
mapActivity.getMapView().refreshMap();
|
||||||
|
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_route_land_left_margin), false);
|
||||||
|
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_right_widgets_panel), true);
|
||||||
|
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_left_widgets_panel), true);
|
||||||
|
if (switched) {
|
||||||
|
mapControlsLayer.switchToRouteFollowingLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void show() {
|
public void show() {
|
||||||
|
switched = mapControlsLayer.switchToRoutePlanningLayout();
|
||||||
|
boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
|
||||||
|
if (!portrait) {
|
||||||
|
mapActivity.getMapView().setMapPositionX(1);
|
||||||
|
mapActivity.getMapView().refreshMap();
|
||||||
|
}
|
||||||
|
|
||||||
MapRouteInfoMenuFragment.showInstance(mapActivity);
|
MapRouteInfoMenuFragment.showInstance(mapActivity);
|
||||||
|
|
||||||
|
if (!AndroidUiHelper.isXLargeDevice(mapActivity)) {
|
||||||
|
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_right_widgets_panel), false);
|
||||||
|
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_left_widgets_panel), false);
|
||||||
|
}
|
||||||
|
if (!portrait) {
|
||||||
|
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_route_land_left_margin), true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hide() {
|
public void hide() {
|
||||||
|
@ -552,4 +632,54 @@ public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
public void setShowMenu() {
|
public void setShowMenu() {
|
||||||
showMenu = true;
|
showMenu = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class RouteSpinnerRow {
|
||||||
|
int iconId;
|
||||||
|
String text;
|
||||||
|
|
||||||
|
public RouteSpinnerRow(int iconId, String text) {
|
||||||
|
this.iconId = iconId;
|
||||||
|
this.text = text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class RouteSpinnerArrayAdapter extends ArrayAdapter<RouteSpinnerRow> {
|
||||||
|
|
||||||
|
public RouteSpinnerArrayAdapter(Context context) {
|
||||||
|
super(context, android.R.layout.simple_spinner_item);
|
||||||
|
setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View getView(int position, View convertView, ViewGroup parent) {
|
||||||
|
TextView label = (TextView) super.getView(position, convertView, parent);
|
||||||
|
RouteSpinnerRow row = getItem(position);
|
||||||
|
label.setText(row.text);
|
||||||
|
label.setTextColor(!isLight() ?
|
||||||
|
ContextCompat.getColorStateList(mapActivity, android.R.color.primary_text_dark) : ContextCompat.getColorStateList(mapActivity, android.R.color.primary_text_light));
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View getDropDownView(int position, View convertView, ViewGroup parent) {
|
||||||
|
TextView label = (TextView) super.getDropDownView(position, convertView, parent);
|
||||||
|
|
||||||
|
RouteSpinnerRow row = getItem(position);
|
||||||
|
label.setText(row.text);
|
||||||
|
Drawable icon = mapActivity.getMyApplication().getIconsCache().getContentIcon(row.iconId);
|
||||||
|
label.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null);
|
||||||
|
label.setCompoundDrawablePadding(dpToPx(12f));
|
||||||
|
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int dpToPx(float dp) {
|
||||||
|
Resources r = mapActivity.getResources();
|
||||||
|
return (int) TypedValue.applyDimension(
|
||||||
|
COMPLEX_UNIT_DIP,
|
||||||
|
dp,
|
||||||
|
r.getDisplayMetrics()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,13 @@ import android.os.Bundle;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import android.support.v4.app.FragmentActivity;
|
||||||
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentManager;
|
||||||
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import net.osmand.AndroidUtils;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.helpers.AndroidUiHelper;
|
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||||
|
@ -54,8 +57,17 @@ public class MapRouteInfoMenuFragment extends Fragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroyView() {
|
||||||
|
super.onDestroyView();
|
||||||
|
if (menu != null) {
|
||||||
|
menu.onDismiss();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void updateInfo() {
|
public void updateInfo() {
|
||||||
menu.updateInfo(mainView);
|
menu.updateInfo(mainView);
|
||||||
|
applyDayNightMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void show(MapActivity mapActivity) {
|
public void show(MapActivity mapActivity) {
|
||||||
|
@ -81,6 +93,81 @@ public class MapRouteInfoMenuFragment extends Fragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void applyDayNightMode() {
|
||||||
|
MapActivity ctx = getMapActivity();
|
||||||
|
boolean portrait = AndroidUiHelper.isOrientationPortrait(ctx);
|
||||||
|
boolean nightMode = ctx.getMyApplication().getDaynightHelper().isNightMode();
|
||||||
|
if (portrait) {
|
||||||
|
AndroidUtils.setBackground(ctx, mainView, nightMode, R.drawable.bg_bottom_menu_light, R.drawable.bg_bottom_menu_dark);
|
||||||
|
} else {
|
||||||
|
AndroidUtils.setBackground(ctx, mainView, nightMode, R.drawable.bg_left_menu_light, R.drawable.bg_left_menu_dark);
|
||||||
|
}
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerModesLayout), nightMode,
|
||||||
|
R.color.dashboard_divider_light, R.color.dashboard_divider_dark);
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerFromDropDown), nightMode,
|
||||||
|
R.color.dashboard_divider_light, R.color.dashboard_divider_dark);
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.viaLayoutDivider), nightMode,
|
||||||
|
R.color.dashboard_divider_light, R.color.dashboard_divider_dark);
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerToDropDown), nightMode,
|
||||||
|
R.color.dashboard_divider_light, R.color.dashboard_divider_dark);
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerButtons), nightMode,
|
||||||
|
R.color.dashboard_divider_light, R.color.dashboard_divider_dark);
|
||||||
|
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerBtn1), nightMode,
|
||||||
|
R.color.dashboard_divider_light, R.color.dashboard_divider_dark);
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerBtn2), nightMode,
|
||||||
|
R.color.dashboard_divider_light, R.color.dashboard_divider_dark);
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.dividerBtn3), nightMode,
|
||||||
|
R.color.dashboard_divider_light, R.color.dashboard_divider_dark);
|
||||||
|
|
||||||
|
((TextView) mainView.findViewById(R.id.ViaView)).setTextColor(nightMode ?
|
||||||
|
ContextCompat.getColorStateList(ctx, android.R.color.primary_text_dark)
|
||||||
|
: ContextCompat.getColorStateList(ctx, android.R.color.primary_text_light));
|
||||||
|
((TextView) mainView.findViewById(R.id.ViaSubView)).setTextColor(nightMode ?
|
||||||
|
ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_dark)
|
||||||
|
: ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_light));
|
||||||
|
|
||||||
|
((TextView) mainView.findViewById(R.id.toTitle)).setTextColor(nightMode ?
|
||||||
|
ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_dark)
|
||||||
|
: ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_light));
|
||||||
|
|
||||||
|
((TextView) mainView.findViewById(R.id.fromTitle)).setTextColor(nightMode ?
|
||||||
|
ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_dark)
|
||||||
|
: ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_light));
|
||||||
|
|
||||||
|
((TextView) mainView.findViewById(R.id.InfoTextView)).setTextColor(nightMode ?
|
||||||
|
ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_dark)
|
||||||
|
: ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_light));
|
||||||
|
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.FromLayout), nightMode,
|
||||||
|
R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark);
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.ViaLayout), nightMode,
|
||||||
|
R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark);
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.ToLayout), nightMode,
|
||||||
|
R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark);
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.Info), nightMode,
|
||||||
|
R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark);
|
||||||
|
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.Next), nightMode,
|
||||||
|
R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark);
|
||||||
|
AndroidUtils.setBackground(ctx, mainView.findViewById(R.id.Prev), nightMode,
|
||||||
|
R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark);
|
||||||
|
|
||||||
|
((TextView) mainView.findViewById(R.id.DistanceText)).setTextColor(nightMode ?
|
||||||
|
ContextCompat.getColorStateList(ctx, android.R.color.primary_text_dark)
|
||||||
|
: ContextCompat.getColorStateList(ctx, android.R.color.primary_text_light));
|
||||||
|
((TextView) mainView.findViewById(R.id.DistanceTitle)).setTextColor(nightMode ?
|
||||||
|
ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_dark)
|
||||||
|
: ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_light));
|
||||||
|
((TextView) mainView.findViewById(R.id.DurationText)).setTextColor(nightMode ?
|
||||||
|
ContextCompat.getColorStateList(ctx, android.R.color.primary_text_dark)
|
||||||
|
: ContextCompat.getColorStateList(ctx, android.R.color.primary_text_light));
|
||||||
|
((TextView) mainView.findViewById(R.id.DurationTitle)).setTextColor(nightMode ?
|
||||||
|
ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_dark)
|
||||||
|
: ContextCompat.getColorStateList(ctx, android.R.color.secondary_text_light));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean showInstance(final MapActivity mapActivity) {
|
public static boolean showInstance(final MapActivity mapActivity) {
|
||||||
try {
|
try {
|
||||||
boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
|
boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
|
||||||
|
|
|
@ -461,7 +461,7 @@ public class MapRoutePreferencesControl {
|
||||||
final Set<ApplicationMode> selected = new HashSet<ApplicationMode>();
|
final Set<ApplicationMode> selected = new HashSet<ApplicationMode>();
|
||||||
selected.add(settings.APPLICATION_MODE.get());
|
selected.add(settings.APPLICATION_MODE.get());
|
||||||
AppModeDialog.prepareAppModeView(mapActivity, selected, false,
|
AppModeDialog.prepareAppModeView(mapActivity, selected, false,
|
||||||
(ViewGroup) settingsDlg.findViewById(R.id.app_modes), true, new View.OnClickListener() {
|
(ViewGroup) settingsDlg.findViewById(R.id.app_modes), true, false, new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (selected.size() > 0) {
|
if (selected.size() > 0) {
|
||||||
|
|
|
@ -102,6 +102,9 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer.
|
||||||
final QuadRect latLonBounds = tileBox.getLatLonBounds();
|
final QuadRect latLonBounds = tileBox.getLatLonBounds();
|
||||||
List<LocationPoint> fullObjects = new ArrayList<>();
|
List<LocationPoint> fullObjects = new ArrayList<>();
|
||||||
for (LocationPoint o : getPoints()) {
|
for (LocationPoint o : getPoints()) {
|
||||||
|
if (!o.isVisible()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
float x = tileBox.getPixXFromLatLon(o.getLatitude(), o.getLongitude());
|
float x = tileBox.getPixXFromLatLon(o.getLatitude(), o.getLongitude());
|
||||||
float y = tileBox.getPixYFromLatLon(o.getLatitude(), o.getLongitude());
|
float y = tileBox.getPixYFromLatLon(o.getLatitude(), o.getLongitude());
|
||||||
|
|
||||||
|
|
|
@ -11,9 +11,9 @@ import android.graphics.ColorFilter;
|
||||||
import android.graphics.PointF;
|
import android.graphics.PointF;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.support.v7.app.AlertDialog;
|
import android.support.v7.app.AlertDialog;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -26,6 +26,7 @@ import android.widget.TextView;
|
||||||
|
|
||||||
import net.londatiga.android.ActionItem;
|
import net.londatiga.android.ActionItem;
|
||||||
import net.londatiga.android.QuickAction;
|
import net.londatiga.android.QuickAction;
|
||||||
|
import net.osmand.AndroidUtils;
|
||||||
import net.osmand.core.android.MapRendererContext;
|
import net.osmand.core.android.MapRendererContext;
|
||||||
import net.osmand.data.LatLon;
|
import net.osmand.data.LatLon;
|
||||||
import net.osmand.data.RotatedTileBox;
|
import net.osmand.data.RotatedTileBox;
|
||||||
|
@ -40,7 +41,6 @@ import net.osmand.plus.TargetPointsHelper;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.activities.search.SearchAddressFragment;
|
import net.osmand.plus.activities.search.SearchAddressFragment;
|
||||||
import net.osmand.plus.dashboard.DashboardOnMap.DashboardType;
|
import net.osmand.plus.dashboard.DashboardOnMap.DashboardType;
|
||||||
import net.osmand.plus.helpers.AndroidUiHelper;
|
|
||||||
import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu;
|
import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu;
|
||||||
import net.osmand.plus.mapcontextmenu.other.MapRoutePreferencesControl;
|
import net.osmand.plus.mapcontextmenu.other.MapRoutePreferencesControl;
|
||||||
import net.osmand.plus.routing.RoutingHelper;
|
import net.osmand.plus.routing.RoutingHelper;
|
||||||
|
@ -81,9 +81,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
private MapHudButton menuControl;
|
private MapHudButton menuControl;
|
||||||
private MapHudButton compassHud;
|
private MapHudButton compassHud;
|
||||||
private float cachedRotate = 0;
|
private float cachedRotate = 0;
|
||||||
private static long startCounter;
|
|
||||||
private Runnable delayStart;
|
|
||||||
private Handler showUIHandler;
|
|
||||||
private ImageView appModeIcon;
|
private ImageView appModeIcon;
|
||||||
private TextView zoomText;
|
private TextView zoomText;
|
||||||
private OsmandMapTileView mapView;
|
private OsmandMapTileView mapView;
|
||||||
|
@ -114,7 +111,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initLayer(final OsmandMapTileView view) {
|
public void initLayer(final OsmandMapTileView view) {
|
||||||
showUIHandler = new Handler();
|
|
||||||
initTopControls();
|
initTopControls();
|
||||||
initTransparencyBar();
|
initTransparencyBar();
|
||||||
initZooms();
|
initZooms();
|
||||||
|
@ -200,7 +196,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
configureMap.setOnClickListener(new View.OnClickListener() {
|
configureMap.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
notifyClicked();
|
|
||||||
mapActivity.getDashboard().setDashboardVisibility(true, DashboardType.CONFIGURE_MAP);
|
mapActivity.getDashboard().setDashboardVisibility(true, DashboardType.CONFIGURE_MAP);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -213,7 +208,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
compass.setOnClickListener(new View.OnClickListener() {
|
compass.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
notifyClicked();
|
|
||||||
mapActivity.getMapViewTrackingUtilities().switchRotateMapMode();
|
mapActivity.getMapViewTrackingUtilities().switchRotateMapMode();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -226,8 +220,10 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateRouteButtons(View main, boolean routeInfo) {
|
public void updateRouteButtons(View main, boolean routeInfo) {
|
||||||
|
boolean nightMode = mapActivity.getMyApplication().getDaynightHelper().isNightMode();
|
||||||
ImageView cancelRouteButton = (ImageView) main.findViewById(R.id.map_cancel_route_button);
|
ImageView cancelRouteButton = (ImageView) main.findViewById(R.id.map_cancel_route_button);
|
||||||
cancelRouteButton.setImageDrawable(app.getIconsCache().getContentIcon(R.drawable.map_action_cancel));
|
cancelRouteButton.setImageDrawable(app.getIconsCache().getContentIcon(R.drawable.map_action_cancel, !nightMode));
|
||||||
|
AndroidUtils.setBackground(mapActivity, cancelRouteButton, nightMode, R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark);
|
||||||
cancelRouteButton.setOnClickListener(new View.OnClickListener() {
|
cancelRouteButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
@ -236,7 +232,8 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
});
|
});
|
||||||
|
|
||||||
ImageView waypointsButton = (ImageView) main.findViewById(R.id.map_waypoints_route_button);
|
ImageView waypointsButton = (ImageView) main.findViewById(R.id.map_waypoints_route_button);
|
||||||
waypointsButton.setImageDrawable(app.getIconsCache().getContentIcon(R.drawable.map_action_waypoints));
|
waypointsButton.setImageDrawable(app.getIconsCache().getContentIcon(R.drawable.map_action_waypoints, !nightMode));
|
||||||
|
AndroidUtils.setBackground(mapActivity, waypointsButton, nightMode, R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark);
|
||||||
waypointsButton.setOnClickListener(new View.OnClickListener() {
|
waypointsButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
@ -246,7 +243,8 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
|
|
||||||
ImageView options = (ImageView) main.findViewById(R.id.map_options_route_button);
|
ImageView options = (ImageView) main.findViewById(R.id.map_options_route_button);
|
||||||
options.setImageDrawable(!routeInfo ? app.getIconsCache().getIcon(R.drawable.map_action_settings,
|
options.setImageDrawable(!routeInfo ? app.getIconsCache().getIcon(R.drawable.map_action_settings,
|
||||||
R.color.osmand_orange) : app.getIconsCache().getContentIcon(R.drawable.map_action_settings));
|
R.color.osmand_orange) : app.getIconsCache().getContentIcon(R.drawable.map_action_settings, !nightMode));
|
||||||
|
AndroidUtils.setBackground(mapActivity, options, nightMode, R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark);
|
||||||
options.setOnClickListener(new View.OnClickListener() {
|
options.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
@ -256,8 +254,10 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
|
|
||||||
TextView routeGoButton = (TextView) main.findViewById(R.id.map_go_route_button);
|
TextView routeGoButton = (TextView) main.findViewById(R.id.map_go_route_button);
|
||||||
routeGoButton.setCompoundDrawablesWithIntrinsicBounds(app.getIconsCache().getIcon(R.drawable.map_start_navigation, R.color.color_myloc_distance), null, null, null);
|
routeGoButton.setCompoundDrawablesWithIntrinsicBounds(app.getIconsCache().getIcon(R.drawable.map_start_navigation, R.color.color_myloc_distance), null, null, null);
|
||||||
routeGoButton.setText(/*AndroidUiHelper.isOrientationPortrait(mapActivity) ?*/
|
routeGoButton.setText(mapActivity.getString(R.string.shared_string_go));
|
||||||
mapActivity.getString(R.string.shared_string_go) /*: ""*/);
|
routeGoButton.setTextColor(nightMode ?
|
||||||
|
ContextCompat.getColorStateList(mapActivity, android.R.color.secondary_text_dark) : ContextCompat.getColorStateList(mapActivity, android.R.color.secondary_text_light));
|
||||||
|
AndroidUtils.setBackground(mapActivity, routeGoButton, nightMode, R.drawable.dashboard_button_light, R.drawable.dashboard_button_dark);
|
||||||
routeGoButton.setOnClickListener(new View.OnClickListener() {
|
routeGoButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
@ -277,7 +277,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void clickRouteParams() {
|
protected void clickRouteParams() {
|
||||||
notifyClicked();
|
|
||||||
if (optionsRouteControlDialog.isDialogVisible()) {
|
if (optionsRouteControlDialog.isDialogVisible()) {
|
||||||
optionsRouteControlDialog.hideDialog();
|
optionsRouteControlDialog.hideDialog();
|
||||||
mapRouteInfoMenu.showHideMenu();
|
mapRouteInfoMenu.showHideMenu();
|
||||||
|
@ -289,13 +288,11 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
|
|
||||||
protected void clickRouteWaypoints() {
|
protected void clickRouteWaypoints() {
|
||||||
if (getTargets().checkPointToNavigateShort()) {
|
if (getTargets().checkPointToNavigateShort()) {
|
||||||
notifyClicked();
|
|
||||||
mapActivity.getMapActions().openIntermediatePointsDialog();
|
mapActivity.getMapActions().openIntermediatePointsDialog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void clickRouteCancel() {
|
protected void clickRouteCancel() {
|
||||||
notifyClicked();
|
|
||||||
mapRouteInfoMenu.hide();
|
mapRouteInfoMenu.hide();
|
||||||
optionsRouteControlDialog.hideDialog();
|
optionsRouteControlDialog.hideDialog();
|
||||||
if (mapActivity.getRoutingHelper().isFollowingMode()) {
|
if (mapActivity.getRoutingHelper().isFollowingMode()) {
|
||||||
|
@ -306,16 +303,9 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void clickRouteGo() {
|
protected void clickRouteGo() {
|
||||||
notifyClicked();
|
|
||||||
mapRouteInfoMenu.hide();
|
mapRouteInfoMenu.hide();
|
||||||
optionsRouteControlDialog.hideDialog();
|
optionsRouteControlDialog.hideDialog();
|
||||||
// RoutingHelper routingHelper = mapActivity.getMyApplication().getRoutingHelper();
|
|
||||||
// if (!routingHelper.isFollowingMode() && !routingHelper.isRoutePlanningMode()) {
|
|
||||||
// never possible
|
|
||||||
// mapActivity.getMapActions().enterRoutePlanningMode(null, null, false);
|
|
||||||
// } else {
|
|
||||||
startNavigation();
|
startNavigation();
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showRouteInfoControlDialog() {
|
public void showRouteInfoControlDialog() {
|
||||||
|
@ -356,10 +346,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
backToMenuButton.setOnClickListener(new View.OnClickListener() {
|
backToMenuButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
// double lat = activity.getMapView().getLatitude();
|
|
||||||
// double lon = activity.getMapView().getLongitude();
|
|
||||||
// MainMenuActivity.backToMainMenuDialog(activity, new LatLon(lat, lon));
|
|
||||||
notifyClicked();
|
|
||||||
if (dash) {
|
if (dash) {
|
||||||
mapActivity.getDashboard().setDashboardVisibility(true, DashboardType.DASHBOARD);
|
mapActivity.getDashboard().setDashboardVisibility(true, DashboardType.DASHBOARD);
|
||||||
} else {
|
} else {
|
||||||
|
@ -397,7 +383,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onNavigationClick() {
|
private void onNavigationClick() {
|
||||||
notifyClicked();
|
|
||||||
RoutingHelper routingHelper = mapActivity.getRoutingHelper();
|
RoutingHelper routingHelper = mapActivity.getRoutingHelper();
|
||||||
if (!routingHelper.isFollowingMode() && !routingHelper.isRoutePlanningMode()) {
|
if (!routingHelper.isFollowingMode() && !routingHelper.isRoutePlanningMode()) {
|
||||||
mapActivity.getMapActions().enterRoutePlanningMode(null, null);
|
mapActivity.getMapActions().enterRoutePlanningMode(null, null);
|
||||||
|
@ -433,7 +418,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
zoomInButton.setOnClickListener(new View.OnClickListener() {
|
zoomInButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
notifyClicked();
|
|
||||||
if (view.isZooming()) {
|
if (view.isZooming()) {
|
||||||
mapActivity.changeZoom(2, System.currentTimeMillis());
|
mapActivity.changeZoom(2, System.currentTimeMillis());
|
||||||
} else {
|
} else {
|
||||||
|
@ -451,7 +435,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
zoomOutButton.setOnClickListener(new View.OnClickListener() {
|
zoomOutButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
notifyClicked();
|
|
||||||
mapActivity.changeZoom(-1, System.currentTimeMillis());
|
mapActivity.changeZoom(-1, System.currentTimeMillis());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -459,7 +442,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startNavigation() {
|
public void startNavigation() {
|
||||||
stopCounter();
|
|
||||||
OsmandApplication app = mapActivity.getMyApplication();
|
OsmandApplication app = mapActivity.getMyApplication();
|
||||||
RoutingHelper routingHelper = app.getRoutingHelper();
|
RoutingHelper routingHelper = app.getRoutingHelper();
|
||||||
if (routingHelper.isFollowingMode()) {
|
if (routingHelper.isFollowingMode()) {
|
||||||
|
@ -480,44 +462,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void stopCounter() {
|
|
||||||
startCounter = 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public void startCounter() {
|
|
||||||
//OsmandSettings settings = mapActivity.getMyApplication().getSettings();
|
|
||||||
int del = 0; // settings.DELAY_TO_START_NAVIGATION.get();
|
|
||||||
if (del <= 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (startCounter <= 0) {
|
|
||||||
startCounter = System.currentTimeMillis() + del * 1000;
|
|
||||||
delayStart = new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
if (startCounter > 0) {
|
|
||||||
if (System.currentTimeMillis() > startCounter) {
|
|
||||||
startCounter = 0;
|
|
||||||
startNavigation();
|
|
||||||
} else {
|
|
||||||
mapActivity.refreshMap();
|
|
||||||
showUIHandler.postDelayed(delayStart, 1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
delayStart.run();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void notifyClicked() {
|
|
||||||
stopCounter();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void destroyLayer() {
|
public void destroyLayer() {
|
||||||
controls.clear();
|
controls.clear();
|
||||||
|
@ -528,7 +472,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
updateControls(tileBox, nightMode);
|
updateControls(tileBox, nightMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
private void updateControls(@NonNull RotatedTileBox tileBox, DrawSettings nightMode) {
|
private void updateControls(@NonNull RotatedTileBox tileBox, DrawSettings nightMode) {
|
||||||
boolean isNight = nightMode != null && nightMode.isNightMode();
|
boolean isNight = nightMode != null && nightMode.isNightMode();
|
||||||
int shadw = isNight ? Color.TRANSPARENT : Color.WHITE;
|
int shadw = isNight ? Color.TRANSPARENT : Color.WHITE;
|
||||||
|
@ -538,7 +482,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
// TODOnightMode
|
// TODOnightMode
|
||||||
// updatextColor(textColor, shadw, rulerControl, zoomControls, mapMenuControls);
|
// updatextColor(textColor, shadw, rulerControl, zoomControls, mapMenuControls);
|
||||||
}
|
}
|
||||||
boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
|
|
||||||
// default buttons
|
// default buttons
|
||||||
boolean routePlanningMode = false;
|
boolean routePlanningMode = false;
|
||||||
RoutingHelper rh = mapActivity.getRoutingHelper();
|
RoutingHelper rh = mapActivity.getRoutingHelper();
|
||||||
|
@ -552,12 +495,18 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
boolean showRouteCalculationControls = routePlanningMode ||
|
boolean showRouteCalculationControls = routePlanningMode ||
|
||||||
((System.currentTimeMillis() - touchEvent < TIMEOUT_TO_SHOW_BUTTONS) && routeFollowingMode);
|
((System.currentTimeMillis() - touchEvent < TIMEOUT_TO_SHOW_BUTTONS) && routeFollowingMode);
|
||||||
updateMyLocation(rh, dialogOpened);
|
updateMyLocation(rh, dialogOpened);
|
||||||
// routePlanningBtn.setIconResId(routeFollowingMode ? R.drawable.ic_action_gabout_dark : R.drawable.map_directions );
|
boolean showButtons = (showRouteCalculationControls || !routeFollowingMode);
|
||||||
// routePlanningBtn.updateVisibility(showButtons && !routePlanningMode);
|
routePlanningBtn.setIconResId(routeFollowingMode ? R.drawable.ic_action_gabout_dark : R.drawable.map_directions);
|
||||||
|
if (routePlanningMode || routeFollowingMode) {
|
||||||
|
routePlanningBtn.setIconResId(R.drawable.map_start_navigation);
|
||||||
|
routePlanningBtn.setIconColorId(R.color.color_myloc_distance);
|
||||||
|
} else {
|
||||||
routePlanningBtn.setIconResId(R.drawable.map_directions);
|
routePlanningBtn.setIconResId(R.drawable.map_directions);
|
||||||
routePlanningBtn.updateVisibility(!dialogOpened);
|
routePlanningBtn.resetIconColors();
|
||||||
|
}
|
||||||
|
routePlanningBtn.updateVisibility(showButtons);
|
||||||
|
menuControl.updateVisibility(showButtons);
|
||||||
|
|
||||||
menuControl.updateVisibility(!dialogOpened);
|
|
||||||
mapZoomIn.updateVisibility(!dialogOpened);
|
mapZoomIn.updateVisibility(!dialogOpened);
|
||||||
mapZoomOut.updateVisibility(!dialogOpened);
|
mapZoomOut.updateVisibility(!dialogOpened);
|
||||||
compassHud.updateVisibility(!dialogOpened);
|
compassHud.updateVisibility(!dialogOpened);
|
||||||
|
@ -586,15 +535,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
mapRouteInfoMenu.setVisible(showRouteCalculationControls);
|
mapRouteInfoMenu.setVisible(showRouteCalculationControls);
|
||||||
if (showRouteCalculationControls) {
|
|
||||||
if (!mapActivity.getRoutingHelper().isFollowingMode()
|
|
||||||
&& !mapActivity.getRoutingHelper().isPauseNavigation()) {
|
|
||||||
startCounter();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
stopCounter();
|
|
||||||
}
|
|
||||||
|
|
||||||
updateCompass(isNight);
|
updateCompass(isNight);
|
||||||
|
|
||||||
for (MapHudButton mc : controls) {
|
for (MapHudButton mc : controls) {
|
||||||
|
@ -638,16 +578,11 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
|
|
||||||
|
|
||||||
public boolean onSingleTap(PointF point, RotatedTileBox tileBox) {
|
public boolean onSingleTap(PointF point, RotatedTileBox tileBox) {
|
||||||
if (mapRouteInfoMenu.onSingleTap(point, tileBox)) {
|
return mapRouteInfoMenu.onSingleTap(point, tileBox);
|
||||||
return true;
|
|
||||||
}
|
|
||||||
stopCounter();
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onTouchEvent(MotionEvent event, RotatedTileBox tileBox) {
|
public boolean onTouchEvent(MotionEvent event, RotatedTileBox tileBox) {
|
||||||
stopCounter();
|
|
||||||
touchEvent = System.currentTimeMillis();
|
touchEvent = System.currentTimeMillis();
|
||||||
RoutingHelper rh = mapActivity.getRoutingHelper();
|
RoutingHelper rh = mapActivity.getRoutingHelper();
|
||||||
if (rh.isFollowingMode()) {
|
if (rh.isFollowingMode()) {
|
||||||
|
@ -771,6 +706,11 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void resetIconColors() {
|
||||||
|
resClrLight = R.color.icon_color;
|
||||||
|
resClrDark = 0;
|
||||||
|
}
|
||||||
|
|
||||||
public MapHudButton setIconColorId(int clr) {
|
public MapHudButton setIconColorId(int clr) {
|
||||||
if (resClrLight == clr && resClrDark == clr) {
|
if (resClrLight == clr && resClrDark == clr) {
|
||||||
return this;
|
return this;
|
||||||
|
@ -802,6 +742,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NewApi")
|
@SuppressLint("NewApi")
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
public void update(OsmandApplication ctx, boolean night) {
|
public void update(OsmandApplication ctx, boolean night) {
|
||||||
if (nightMode == night && !f) {
|
if (nightMode == night && !f) {
|
||||||
return;
|
return;
|
||||||
|
@ -883,7 +824,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static View.OnLongClickListener getOnClickMagnifierListener(final OsmandMapTileView view) {
|
public static View.OnLongClickListener getOnClickMagnifierListener(final OsmandMapTileView view) {
|
||||||
final View.OnLongClickListener listener = new View.OnLongClickListener() {
|
return new View.OnLongClickListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onLongClick(View notUseCouldBeNull) {
|
public boolean onLongClick(View notUseCouldBeNull) {
|
||||||
|
@ -891,7 +832,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
final AlertDialog.Builder bld = new AlertDialog.Builder(view.getContext());
|
final AlertDialog.Builder bld = new AlertDialog.Builder(view.getContext());
|
||||||
int p = (int) (mapDensity.get() * 100);
|
int p = (int) (mapDensity.get() * 100);
|
||||||
final TIntArrayList tlist = new TIntArrayList(new int[]{20, 25, 33, 50, 75, 100, 150, 200, 300, 400});
|
final TIntArrayList tlist = new TIntArrayList(new int[]{20, 25, 33, 50, 75, 100, 150, 200, 300, 400});
|
||||||
final List<String> values = new ArrayList<String>();
|
final List<String> values = new ArrayList<>();
|
||||||
int i = -1;
|
int i = -1;
|
||||||
for (int k = 0; k <= tlist.size(); k++) {
|
for (int k = 0; k <= tlist.size(); k++) {
|
||||||
final boolean end = k == tlist.size();
|
final boolean end = k == tlist.size();
|
||||||
|
@ -931,7 +872,6 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return listener;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
|
Loading…
Reference in a new issue