Merge pull request #1072 from Bars107/master
Styles for list view, popup menus and downloads.
This commit is contained in:
commit
1b1fe77f53
51 changed files with 801 additions and 508 deletions
30
OsmAnd/res/drawable/size_progressbar_dark.xml
Normal file
30
OsmAnd/res/drawable/size_progressbar_dark.xml
Normal file
|
@ -0,0 +1,30 @@
|
|||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<!-- Define the background properties like color etc -->
|
||||
<item android:id="@android:id/background">
|
||||
<shape>
|
||||
<gradient
|
||||
android:startColor="#475259"
|
||||
android:centerColor="#475259"
|
||||
android:centerY="1.0"
|
||||
android:endColor="#475259"
|
||||
android:angle="270"
|
||||
/>
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
<!-- Define the progress properties like start color, end color etc -->
|
||||
<item android:id="@android:id/progress">
|
||||
<clip>
|
||||
<shape>
|
||||
<gradient
|
||||
android:startColor="@color/color_distance"
|
||||
android:centerColor="@color/color_distance"
|
||||
android:centerY="1.0"
|
||||
android:endColor="@color/color_distance"
|
||||
android:angle="270"
|
||||
/>
|
||||
</shape>
|
||||
</clip>
|
||||
</item>
|
||||
</layer-list>
|
30
OsmAnd/res/drawable/size_progressbar_light.xml
Normal file
30
OsmAnd/res/drawable/size_progressbar_light.xml
Normal file
|
@ -0,0 +1,30 @@
|
|||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<!-- Define the background properties like color etc -->
|
||||
<item android:id="@android:id/background">
|
||||
<shape>
|
||||
<gradient
|
||||
android:startColor="#475259"
|
||||
android:centerColor="#475259"
|
||||
android:centerY="1.0"
|
||||
android:endColor="#475259"
|
||||
android:angle="270"
|
||||
/>
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
<!-- Define the progress properties like start color, end color etc -->
|
||||
<item android:id="@android:id/progress">
|
||||
<clip>
|
||||
<shape>
|
||||
<gradient
|
||||
android:startColor="@color/color_distance"
|
||||
android:centerColor="@color/color_distance"
|
||||
android:centerY="1.0"
|
||||
android:endColor="@color/color_distance"
|
||||
android:angle="270"
|
||||
/>
|
||||
</shape>
|
||||
</clip>
|
||||
</item>
|
||||
</layer-list>
|
|
@ -74,7 +74,7 @@
|
|||
android:orientation="horizontal">
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/DeterminateProgressBar"
|
||||
android:id="@+id/memory_progress"
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -98,7 +98,7 @@
|
|||
<Button
|
||||
android:id="@+id/DownloadButton"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="@dimen/bottom_tool_bar_size"
|
||||
android:background="?attr/downloadButtonBackground"
|
||||
android:gravity="center"
|
||||
android:text="@string/download_files"
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:background="?attr/expandable_list_item_background"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/expandable_list_item_background"
|
||||
android:minHeight="@dimen/list_item_height"
|
||||
android:paddingBottom="1dp"
|
||||
android:paddingLeft="@dimen/list_content_padding"
|
||||
|
@ -14,25 +14,49 @@
|
|||
android:id="@+id/check_download_item"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:focusable="false"
|
||||
android:layout_gravity="center_vertical"/>
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginRight="@dimen/favorites_icon_right_margin"
|
||||
android:focusable="false"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/download_item"
|
||||
android:id="@+id/name"
|
||||
style="@style/ListText.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:maxLines="1"
|
||||
tools:text="@string/lorem_ipsum"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
<TextView
|
||||
android:id="@+id/download_descr"
|
||||
style="@style/ListText.Small"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_gravity="center_vertical"
|
||||
tools:text="@string/lorem_ipsum"
|
||||
android:maxLines="7"/>
|
||||
android:maxLines="1"
|
||||
android:textSize="12sp"
|
||||
tools:text="@string/lorem_ipsum"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/download_descr"
|
||||
android:id="@+id/update_descr"
|
||||
style="@style/ListText.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="3dp"
|
||||
android:gravity="right"/>
|
||||
android:textColor="@color/color_distance"
|
||||
android:textSize="12sp"
|
||||
tools:text="@string/lorem_ipsum"
|
||||
android:maxLines="1"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/DescriptionText"
|
||||
android:id="@+id/memory_size"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="5dp"
|
||||
|
@ -18,8 +18,10 @@
|
|||
<ExpandableListView
|
||||
android:id="@android:id/list"
|
||||
style="@style/OsmandListView"
|
||||
android:divider="@drawable/divider"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_height="0dp"
|
||||
android:background="?attr/expandable_list_background"
|
||||
android:layout_marginLeft="0dp"
|
||||
android:layout_marginRight="0dp"
|
||||
android:layout_marginTop="0dp"
|
||||
|
|
|
@ -1,43 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/expandable_category_color"
|
||||
android:paddingBottom="5dp"
|
||||
android:paddingLeft="@dimen/list_header_padding"
|
||||
android:paddingRight="@dimen/list_header_padding"
|
||||
android:paddingTop="5dp">
|
||||
android:layout_height="@dimen/list_header_height"
|
||||
android:paddingLeft="@dimen/list_header_padding">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/explist_indicator"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginTop="@dimen/list_header_top_margin"
|
||||
android:src="@drawable/expandable_category_unpushed"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/category_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginTop="0dp"
|
||||
android:autoLink="web"
|
||||
android:gravity="center_vertical"
|
||||
android:textSize="18sp"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="right">
|
||||
android:layout_marginLeft="@dimen/list_header_text_left_margin"
|
||||
android:layout_marginTop="@dimen/list_header_top_margin"
|
||||
android:maxLines="1"
|
||||
android:textSize="@dimen/list_header_text_size"
|
||||
tools:text="@string/lorem_ipsum"/>
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/check_item"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/list_header_settings_top_margin"
|
||||
android:focusable="false"
|
||||
android:gravity="center_vertical"
|
||||
android:visibility="gone"/>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
|
@ -1,45 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/expandable_category_color"
|
||||
android:paddingBottom="5dp"
|
||||
android:paddingLeft="4dp"
|
||||
android:paddingRight="4dp"
|
||||
android:paddingTop="5dp">
|
||||
android:layout_height="@dimen/list_header_height"
|
||||
android:paddingLeft="@dimen/list_header_padding">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/explist_indicator"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:paddingLeft="6dp"
|
||||
android:layout_marginTop="@dimen/list_header_top_margin"
|
||||
android:src="@drawable/expandable_category_unpushed"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/category_name"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/list_header_bottom_margin"
|
||||
android:layout_marginLeft="@dimen/list_header_text_left_margin"
|
||||
android:layout_marginTop="@dimen/list_header_top_margin"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginTop="0dp"
|
||||
android:gravity="center_vertical"
|
||||
android:textSize="18sp"></TextView>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="right">
|
||||
android:maxLines="1"
|
||||
android:textSize="@dimen/list_header_text_size"
|
||||
tools:text="@string/lorem_ipsum"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/check_item"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_action_settings_enabled_dark"
|
||||
android:layout_marginTop="@dimen/list_header_settings_top_margin"
|
||||
android:focusable="false"
|
||||
android:gravity="center_vertical" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
android:src="?attr/list_settings_icon"/>
|
||||
</LinearLayout>
|
|
@ -1,48 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="3dp"
|
||||
android:paddingRight="3dp"
|
||||
android:stretchColumns="1">
|
||||
android:orientation="vertical">
|
||||
|
||||
<TableRow>
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="@dimen/dialog_content_bottom_margin"
|
||||
android:paddingLeft="@dimen/dialog_content_margin"
|
||||
android:paddingRight="@dimen/dialog_content_margin"
|
||||
android:paddingTop="@dimen/dialog_content_bottom_margin">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dialog_elements_vertical_margin"
|
||||
android:text="@string/favourites_edit_dialog_name"/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/Name"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="3dp"
|
||||
android:selectAllOnFocus="true"/>
|
||||
</TableRow>
|
||||
|
||||
<TableRow>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/osmo_group_description" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/descr"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:completionThreshold="1"
|
||||
android:inputType="textCapWords"
|
||||
android:paddingLeft="3dp"
|
||||
android:selectAllOnFocus="true" />
|
||||
</TableRow>
|
||||
|
||||
<TableRow>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dialog_elements_vertical_margin"
|
||||
android:text="@string/favourites_edit_dialog_category"/>
|
||||
|
||||
<AutoCompleteTextView
|
||||
|
@ -51,7 +38,21 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:completionThreshold="1"
|
||||
android:inputType="textCapWords"
|
||||
android:paddingLeft="3dp"
|
||||
android:selectAllOnFocus="true"/>
|
||||
</TableRow>
|
||||
</TableLayout>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dialog_elements_vertical_margin"
|
||||
android:text="@string/osmo_group_description"/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/descr"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:completionThreshold="1"
|
||||
android:inputType="textCapWords"
|
||||
android:selectAllOnFocus="true"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
|
|
@ -3,40 +3,92 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/expandable_list_item_background"
|
||||
android:minHeight="@dimen/list_item_height"
|
||||
android:orientation="horizontal"
|
||||
android:paddingBottom="5dp"
|
||||
android:paddingLeft="@dimen/list_content_padding"
|
||||
android:paddingRight="@dimen/list_content_padding"
|
||||
android:background="?attr/expandable_list_item_background"
|
||||
android:paddingTop="5dp">
|
||||
android:paddingRight="@dimen/list_content_padding">
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/check_item"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/favorites_icon_top_margin"
|
||||
android:layout_marginRight="@dimen/favorites_icon_right_margin"
|
||||
android:focusable="false"
|
||||
android:gravity="center_vertical"
|
||||
android:visibility="gone"/>
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/favourite_icon"
|
||||
android:layout_width="25dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="fill_parent"
|
||||
android:paddingRight="2dp"
|
||||
android:paddingTop="2dp"/>
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginRight="@dimen/favorites_icon_right_margin"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/favourite_label"
|
||||
style="@style/ListText"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textSize="@dimen/dashFavNameTextSize"
|
||||
tools:text="@string/lorem_ipsum"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/direction"
|
||||
android:layout_width="@dimen/dashFavDirectionSize"
|
||||
android:layout_height="@dimen/dashFavDirectionSize"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/distance"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="2dp"
|
||||
android:textColor="?android:textColorSecondary"
|
||||
android:textSize="@dimen/showAllButtonTextSize"
|
||||
tools:text="100500 km"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/group_image"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginLeft="4dp"
|
||||
android:src="@drawable/ic_small_group"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/group_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginLeft="4dp"
|
||||
android:textColor="@color/dashboard_descr_colol"
|
||||
android:textSize="@dimen/showAllButtonTextSize"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
|
@ -1,25 +1,56 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/DescriptionText"
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="3dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:text="@string/download_link_and_local_description" />
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="@dimen/dialog_content_bottom_margin"
|
||||
android:paddingRight="@dimen/dialog_content_bottom_margin"
|
||||
android:layout_marginBottom="@dimen/dialog_content_bottom_margin"
|
||||
android:paddingTop="10dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="@dimen/local_size_height"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/device_memory"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/memory_size"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/free"/>
|
||||
</LinearLayout>
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/memory_progress"
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:progressDrawable="?attr/size_progress_bar"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="20dp" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<ExpandableListView
|
||||
android:id="@android:id/list"
|
||||
style="@style/OsmandListView"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:groupIndicator="@android:color/transparent"
|
||||
style="@style/OsmandListView"/>
|
||||
android:groupIndicator="@android:color/transparent"/>
|
||||
|
||||
</LinearLayout>
|
29
OsmAnd/res/layout/local_index_list_category.xml
Normal file
29
OsmAnd/res/layout/local_index_list_category.xml
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/list_header_height"
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="@dimen/list_header_padding"
|
||||
android:paddingRight="@dimen/list_header_padding">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/category_name"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginTop="@dimen/list_header_top_margin"
|
||||
android:maxLines="1"
|
||||
android:textSize="@dimen/list_header_text_size"
|
||||
tools:text="@string/app_version"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/category_size"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/list_header_top_margin"
|
||||
android:maxLines="1"
|
||||
android:textSize="@dimen/list_header_text_size"
|
||||
tools:text="@string/app_version"/>
|
||||
|
||||
</LinearLayout>
|
|
@ -46,6 +46,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:layout_gravity="start"
|
||||
android:choiceMode="singleChoice"
|
||||
android:background="?attr/expandable_list_background"
|
||||
android:divider="@drawable/divider"
|
||||
android:dividerHeight="1dp" />
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/DescriptionText"
|
||||
android:id="@+id/memory_size"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="5dp"
|
||||
|
|
|
@ -16,5 +16,5 @@
|
|||
android:orientation="horizontal"
|
||||
android:id="@+id/bottomControls"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
android:layout_height="@dimen/bottom_tool_bar_size"/>
|
||||
</LinearLayout>
|
|
@ -7,7 +7,8 @@
|
|||
<ListView
|
||||
android:id="@android:id/list"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
style="@style/OsmandListView"/>
|
||||
|
||||
<Button
|
||||
|
|
|
@ -42,6 +42,6 @@
|
|||
android:background="?attr/bottomToolBarColor"
|
||||
android:id="@+id/bottomControls"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
android:layout_height="@dimen/bottom_tool_bar_size"/>
|
||||
|
||||
</LinearLayout>
|
|
@ -1,44 +1,58 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/list_item_height"
|
||||
android:paddingBottom="5dp"
|
||||
android:paddingTop="5dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:paddingLeft="6dp"
|
||||
android:paddingRight="3dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/poi_direction"
|
||||
android:layout_width="26dp"
|
||||
android:layout_height="26dp" />
|
||||
android:paddingLeft="@dimen/list_content_padding"
|
||||
android:paddingRight="@dimen/list_content_padding">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/poi_icon"
|
||||
android:layout_width="26dp"
|
||||
android:layout_height="26dp"
|
||||
android:layout_marginLeft="3dp" />
|
||||
|
||||
</LinearLayout>
|
||||
android:layout_marginRight="@dimen/favorites_icon_right_margin"
|
||||
tools:visiblity="visible"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:orientation="vertical"
|
||||
android:paddingRight="3dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/poi_label"
|
||||
style="@style/ListText.Small"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:gravity="center_vertical" />
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:maxLines="1"
|
||||
tools:text="@string/lorem_ipsum"/>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/poi_direction"
|
||||
android:layout_width="@dimen/dashFavDirectionSize"
|
||||
android:layout_height="@dimen/dashFavDirectionSize"
|
||||
android:layout_gravity="center_vertical"
|
||||
tools:visiblity="visible"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/distance"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/color_distance"
|
||||
android:maxLines="1"
|
||||
tools:text="@string/lorem_ipsum"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
android:text="@string/gpx_description_txt" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/DescriptionText"
|
||||
android:id="@+id/memory_size"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="5dp"
|
||||
|
|
|
@ -20,6 +20,6 @@
|
|||
android:id="@+id/bottomControls"
|
||||
android:background="?attr/bottomToolBarColor"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
android:layout_height="@dimen/bottom_tool_bar_size"/>
|
||||
|
||||
</LinearLayout>
|
|
@ -4,6 +4,7 @@
|
|||
<attr name="maxVisibleWidth" format="dimension"/>
|
||||
</declare-styleable>
|
||||
<declare-styleable name="OsmAndTheme">
|
||||
<attr name="list_divider" format="color"/>
|
||||
<attr name="expandable_category_color" format="reference"/>
|
||||
<attr name="reset_image" format="reference"/>
|
||||
<attr name="bottomToolBarColor" format="color" />
|
||||
|
@ -31,6 +32,9 @@
|
|||
<attr name="ic_world_globe" format="reference" />
|
||||
<attr name="plugin_description_header_text_color" format="color|reference" />
|
||||
<attr name="expandable_list_item_background" format="color"/>
|
||||
<attr name="expandable_list_background" format="color"/>
|
||||
<attr name="list_settings_icon" format="reference"/>
|
||||
<attr name="size_progress_bar" format="reference"/>
|
||||
</declare-styleable>
|
||||
|
||||
<declare-styleable name="PagerSlidingTabStrip">
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="expandable_list_item_dark">#292f33</color>
|
||||
|
||||
<color name="list_divider_dark">#1f2326</color>
|
||||
<color name="list_divider_light">@color/color_white</color>
|
||||
<color name="list_background_dark">#292f33</color>
|
||||
<color name="list_sub_menu_background_dark">#475259</color>
|
||||
<color name="expandable_list_item_light">@color/color_white</color>
|
||||
<color name="list_item_background_dark">#333b40</color>
|
||||
|
||||
|
||||
<color name="actionbar_dark_color">#39464d</color>
|
||||
<color name="tool_bar_color_dark">#CC080B0D</color>
|
||||
|
@ -108,7 +114,7 @@
|
|||
<color name="get_button_text">#ffffff</color>
|
||||
|
||||
<color name="plugin_details_header_bg_light">#ffffff</color>
|
||||
<color name="plugin_details_header_bg_dark">#333b40</color>
|
||||
|
||||
|
||||
<color name="plugin_details_install_header_bg_light">#dbdbdb</color>
|
||||
<color name="plugin_details_install_header_bg_dark">#2d3438</color>
|
||||
|
|
|
@ -26,8 +26,21 @@
|
|||
<dimen name="list_header_padding">8dp</dimen>
|
||||
<dimen name="tab_height">48dp</dimen>
|
||||
<dimen name="list_item_height">50dp</dimen>
|
||||
<dimen name="list_header_height">40dp</dimen>
|
||||
<dimen name="list_header_top_margin">16dp</dimen>
|
||||
<dimen name="list_header_settings_top_margin">10dp</dimen>
|
||||
<dimen name="list_header_text_left_margin">12dp</dimen>
|
||||
<dimen name="list_header_bottom_margin">8dp</dimen>
|
||||
<dimen name="bottom_tool_bar_size">48dp</dimen>
|
||||
<dimen name="favorites_icon_right_margin">18dp</dimen>
|
||||
<dimen name="favorites_icon_top_margin">13dp</dimen>
|
||||
<dimen name="dialog_elements_vertical_margin">16dp</dimen>
|
||||
<dimen name="dialog_content_margin">24dp</dimen>
|
||||
<dimen name="dialog_content_bottom_margin">16dp</dimen>
|
||||
<dimen name="local_size_height">34dp</dimen>
|
||||
|
||||
<!-- TextSizes -->
|
||||
<dimen name="list_header_text_size">14sp</dimen>
|
||||
<dimen name="showAllButtonTextSize">12sp</dimen>
|
||||
<dimen name="subHeaderTextSize">14sp</dimen>
|
||||
<dimen name="dashFavNameTextSize">16sp</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).
|
||||
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="free">Free %1$s </string>
|
||||
<string name="device_memory">Device memory</string>
|
||||
<string name="rendering_attr_pisteGrooming_name">Piste grooming</string>
|
||||
<string name="plugin_ski_name">Ski Maps</string>
|
||||
<string name="plugin_nautical_name">Nautical Maps</string>
|
||||
|
|
|
@ -119,6 +119,7 @@
|
|||
</style>
|
||||
|
||||
<style name="OsmandLightTheme" parent="Theme.AppCompat.Light">
|
||||
<item name="list_divider">@color/list_divider_dark</item>
|
||||
<item name="reset_image">@drawable/ic_action_delete_light</item> <!-- @drawable/a_1_navigation_cancel_light -->
|
||||
<item name="expandable_category_color">?android:attr/colorBackground</item>
|
||||
<item name="bottomToolBarColor">@color/tool_bar_color_light</item>
|
||||
|
@ -161,9 +162,13 @@
|
|||
<item name="ic_world_globe">@drawable/ic_world_globe_light</item>
|
||||
<item name="plugin_description_header_text_color">#727272</item>
|
||||
<item name="expandable_list_item_background">@color/expandable_list_item_light</item>
|
||||
<item name="expandable_list_background">@color/color_white</item>
|
||||
<item name="list_settings_icon">@drawable/ic_overflow_menu_light</item>
|
||||
<item name="size_progress_bar">@drawable/size_progressbar_dark</item>
|
||||
</style>
|
||||
|
||||
<style name="OsmandDarkTheme" parent="Theme.AppCompat">
|
||||
<item name="list_divider">@color/list_divider_light</item>
|
||||
<item name="reset_image">@drawable/ic_action_delete_dark</item> <!-- @drawable/a_1_navigation_cancel_dark -->
|
||||
<item name="expandable_category_color">?android:attr/colorBackground</item>
|
||||
<item name="bottomToolBarColor">@color/tool_bar_color_dark</item>
|
||||
|
@ -194,11 +199,14 @@
|
|||
<item name="switch_ex_background">@drawable/switch_ex_background_dark</item>
|
||||
<item name="switch_ex_text_color">@color/switch_ex_button_text_dark</item>
|
||||
<item name="bg_plugin_logo_disabled">@drawable/bg_plugin_logo_disabled_dark</item>
|
||||
<item name="plugin_details_header_bg">@color/plugin_details_header_bg_dark</item>
|
||||
<item name="plugin_details_header_bg">@color/list_item_background_dark</item>
|
||||
<item name="plugin_details_install_header_bg">@color/plugin_details_install_header_bg_dark</item>
|
||||
<item name="ic_world_globe">@drawable/ic_world_globe_dark</item>
|
||||
<item name="plugin_description_header_text_color">#70818c</item>
|
||||
<item name="expandable_list_item_background">@color/expandable_list_item_dark</item>
|
||||
<item name="expandable_list_item_background">@color/list_item_background_dark</item>
|
||||
<item name="expandable_list_background">@color/list_background_dark</item>
|
||||
<item name="list_settings_icon">@drawable/ic_overflow_menu_dark</item>
|
||||
<item name="size_progress_bar">@drawable/size_progressbar_light</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.Styled.ActionBarDark" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
|
||||
|
|
|
@ -137,7 +137,7 @@ public class ContextMenuAdapter {
|
|||
if (holoLight) {
|
||||
return ctx.getResources().getColor(R.color.color_white);
|
||||
} else {
|
||||
return ctx.getResources().getColor(R.color.dark_drawer_bg_color);
|
||||
return ctx.getResources().getColor(R.color.list_background_dark);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -804,19 +804,6 @@ public class OsmandApplication extends Application {
|
|||
}
|
||||
setLanguage(c);
|
||||
c.setTheme(t);
|
||||
if (osmandSettings.OSMAND_THEME.get() == OsmandSettings.OSMAND_LIGHT_DARK_ACTIONBAR_THEME
|
||||
&& Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
|
||||
ActionBar ab = null;
|
||||
if (c instanceof ActionBarActivity) {
|
||||
ab = ((ActionBarActivity) c).getSupportActionBar();
|
||||
}
|
||||
|
||||
if (ab != null) {
|
||||
BitmapDrawable bg = (BitmapDrawable) getResources().getDrawable(R.drawable.bg_striped);
|
||||
bg.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT);
|
||||
ab.setBackgroundDrawable(bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IBRouterService getBRouterService() {
|
||||
|
|
|
@ -1756,7 +1756,7 @@ public class OsmandSettings {
|
|||
|
||||
public static final int OSMAND_DARK_THEME = 0;
|
||||
public static final int OSMAND_LIGHT_THEME = 1;
|
||||
public static final int OSMAND_LIGHT_DARK_ACTIONBAR_THEME = 2;
|
||||
|
||||
|
||||
public final CommonPreference<Integer> SEARCH_TAB =
|
||||
new IntPreference("SEARCH_TAB", 0).makeGlobal().cache();
|
||||
|
@ -1771,19 +1771,12 @@ public class OsmandSettings {
|
|||
return OSMAND_THEME.get() == OSMAND_LIGHT_THEME;
|
||||
}
|
||||
|
||||
public boolean isLightContentMenu(){
|
||||
return OSMAND_THEME.get() != OSMAND_DARK_THEME || Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB;
|
||||
}
|
||||
|
||||
public boolean isLightContent(){
|
||||
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){
|
||||
return false;
|
||||
}
|
||||
return OSMAND_THEME.get() != OSMAND_DARK_THEME ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public final CommonPreference<Boolean> FLUORESCENT_OVERLAYS =
|
||||
new BooleanPreference("fluorescent_overlays", false).makeGlobal().cache();
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ import java.util.Locale;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.os.Handler;
|
||||
import android.support.v4.view.MenuItemCompat;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
|
@ -322,7 +321,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
@Override
|
||||
public void onDestroyActionMode(ActionMode mode) {
|
||||
enableSelectionMode(false);
|
||||
getView().findViewById(R.id.DescriptionText).setVisibility(View.GONE);
|
||||
getView().findViewById(R.id.memory_size).setVisibility(View.GONE);
|
||||
runSelection(false);
|
||||
listAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
@ -384,15 +383,15 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
@Override
|
||||
public void onDestroyActionMode(ActionMode mode) {
|
||||
enableSelectionMode(false);
|
||||
getView().findViewById(R.id.DescriptionText).setVisibility(View.GONE);
|
||||
getView().findViewById(R.id.memory_size).setVisibility(View.GONE);
|
||||
listAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
if (R.string.local_index_mi_upload_gpx == actionResId) {
|
||||
((TextView) getView().findViewById(R.id.DescriptionText)).setText(R.string.local_index_upload_gpx_description);
|
||||
((TextView) getView().findViewById(R.id.DescriptionText)).setVisibility(View.VISIBLE);
|
||||
((TextView) getView().findViewById(R.id.memory_size)).setText(R.string.local_index_upload_gpx_description);
|
||||
((TextView) getView().findViewById(R.id.memory_size)).setVisibility(View.VISIBLE);
|
||||
}
|
||||
listAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
|
|
@ -18,7 +18,10 @@ import android.text.Spannable;
|
|||
import android.text.SpannableStringBuilder;
|
||||
import android.text.style.ImageSpan;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import net.osmand.Location;
|
||||
import net.osmand.plus.GpxSelectionHelper;
|
||||
import net.osmand.plus.OsmAndLocationProvider;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
import net.osmand.plus.R;
|
||||
|
@ -35,12 +38,14 @@ import android.widget.TabHost;
|
|||
import android.widget.TabHost.TabSpec;
|
||||
import android.widget.TabWidget;
|
||||
import android.widget.TextView;
|
||||
|
||||
import net.osmand.plus.dashboard.DashLocationFragment;
|
||||
import net.osmand.plus.views.controls.PagerSlidingTabStrip;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class FavoritesActivity extends TabActivity {
|
||||
public class FavoritesActivity extends TabActivity implements OsmAndLocationProvider.OsmAndCompassListener, OsmAndLocationProvider.OsmAndLocationListener {
|
||||
|
||||
private static final String FAVOURITES_INFO = "FAVOURITES_INFO";
|
||||
private static final String TRACKS = "TRACKS";
|
||||
|
@ -119,12 +124,28 @@ public class FavoritesActivity extends TabActivity {
|
|||
updateSelectedTracks();
|
||||
}
|
||||
});
|
||||
|
||||
if (getMyApplication().getFavorites().getFavouritePoints().size() > 0) {
|
||||
getLocationProvider().addCompassListener(this);
|
||||
getLocationProvider().registerOrUnregisterCompassListener(true);
|
||||
}
|
||||
}
|
||||
|
||||
public OsmandApplication getMyApplication() {
|
||||
return (OsmandApplication) getApplication();
|
||||
}
|
||||
|
||||
private OsmAndLocationProvider getLocationProvider() {
|
||||
return getMyApplication().getLocationProvider();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
((OsmandApplication) getApplication()).getSelectedGpxHelper().setUiListener(FavoritesActivity.class, null);
|
||||
getLocationProvider().pauseAllUpdates();
|
||||
getLocationProvider().removeLocationListener(this);
|
||||
getLocationProvider().removeCompassListener(this);
|
||||
}
|
||||
|
||||
public void updateSelectedTracks() {
|
||||
|
@ -196,5 +217,25 @@ public class FavoritesActivity extends TabActivity {
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCompassValue(float value) {
|
||||
for (WeakReference<Fragment> ref : fragList) {
|
||||
Fragment f = ref.get();
|
||||
if (f instanceof FavoritesTreeFragment && !f.isDetached()) {
|
||||
((FavoritesTreeFragment) f).updateCompassValue(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLocation(Location location) {
|
||||
for (WeakReference<Fragment> ref : fragList) {
|
||||
Fragment f = ref.get();
|
||||
if (f instanceof FavoritesTreeFragment && !f.isDetached()) {
|
||||
((FavoritesTreeFragment) f).updateLocation(location);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import java.util.Comparator;
|
|||
import java.util.List;
|
||||
|
||||
import android.support.v4.app.ListFragment;
|
||||
import android.support.v7.widget.PopupMenu;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.*;
|
||||
import net.osmand.data.FavouritePoint;
|
||||
|
@ -115,18 +116,10 @@ public class FavoritesListFragment extends ListFragment implements SearchActivit
|
|||
FavouritePoint point = favouritesAdapter.getItem(position);
|
||||
String name = getString(R.string.favorite) + ": " + point.getName();
|
||||
LatLon location = new LatLon(point.getLatitude(), point.getLongitude());
|
||||
View.OnClickListener onshow = new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
settings.SHOW_FAVORITES.set(true);
|
||||
}
|
||||
};
|
||||
ContextMenuAdapter qa = new ContextMenuAdapter(v.getContext());
|
||||
qa.setAnchor(v);
|
||||
DirectionsDialogs.createDirectionsActions(qa, location, point, name, settings.getLastKnownMapZoom(), getActivity(),
|
||||
true, false);
|
||||
MapActivityActions.showObjectContextMenu(qa, getActivity(), onshow);
|
||||
final PopupMenu optionsMenu = new PopupMenu(getActivity(), v);
|
||||
DirectionsDialogs.createDirectionActionsPopUpMenu(optionsMenu, location, point, name, settings.getLastKnownMapZoom(),
|
||||
getActivity(), true, false);
|
||||
optionsMenu.show();
|
||||
} else {
|
||||
Intent intent = getActivity().getIntent();
|
||||
intent.putExtra(SELECT_FAVORITE_POINT_INTENT_KEY, favouritesAdapter.getItem(position));
|
||||
|
|
|
@ -1,14 +1,19 @@
|
|||
package net.osmand.plus.activities;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.support.v4.view.MenuItemCompat;
|
||||
import android.support.v7.view.ActionMode;
|
||||
import android.support.v7.widget.PopupMenu;
|
||||
import android.support.v7.widget.SearchView;
|
||||
import android.view.*;
|
||||
import gnu.trove.list.array.TIntArrayList;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
|
@ -18,6 +23,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import net.osmand.Location;
|
||||
import net.osmand.access.AccessibleToast;
|
||||
import net.osmand.data.FavouritePoint;
|
||||
import net.osmand.data.LatLon;
|
||||
|
@ -29,11 +35,14 @@ import net.osmand.plus.FavouritesDbHelper.FavoriteGroup;
|
|||
import net.osmand.plus.GPXUtilities;
|
||||
import net.osmand.plus.GPXUtilities.GPXFile;
|
||||
import net.osmand.plus.OsmAndFormatter;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.TargetPointsHelper;
|
||||
import net.osmand.plus.base.FavoriteImageDrawable;
|
||||
import net.osmand.plus.dashboard.DashLocationFragment;
|
||||
import net.osmand.plus.dialogs.DirectionsDialogs;
|
||||
import net.osmand.plus.dialogs.FavoriteDialogs;
|
||||
import net.osmand.plus.helpers.ColorDialogs;
|
||||
import net.osmand.plus.helpers.ScreenOrientationHelper;
|
||||
import net.osmand.util.MapUtils;
|
||||
|
@ -47,8 +56,6 @@ import android.graphics.Typeface;
|
|||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
import android.text.Spannable;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.AutoCompleteTextView;
|
||||
|
@ -83,6 +90,9 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment {
|
|||
private ActionMode actionMode;
|
||||
private SearchView searchView;
|
||||
|
||||
protected LatLon loc = null;
|
||||
protected Float heading = null;
|
||||
|
||||
@Override
|
||||
public void onAttach(Activity activity) {
|
||||
super.onAttach(activity);
|
||||
|
@ -125,6 +135,7 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment {
|
|||
// final LatLon mapLocation = getMyApplication().getSettings().getLastKnownMapLocation();
|
||||
favouritesAdapter.synchronizeGroups();
|
||||
|
||||
loc = getMyApplication().getSettings().getLastKnownMapLocation();
|
||||
if(favouritesAdapter.getGroupCount() > 0 &&
|
||||
"".equals(favouritesAdapter.getGroup(0).name)) {
|
||||
getExpandableListView().expandGroup(0);
|
||||
|
@ -153,43 +164,45 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment {
|
|||
}
|
||||
updateSelectionMode(actionMode);
|
||||
} else {
|
||||
final FavouritePoint point = (FavouritePoint) favouritesAdapter.getChild(groupPosition, childPosition);
|
||||
|
||||
ContextMenuAdapter qa = new ContextMenuAdapter(v.getContext());
|
||||
qa.setAnchor(v);
|
||||
final OsmandSettings settings = getMyApplication().getSettings();
|
||||
final FavouritePoint point = (FavouritePoint) favouritesAdapter.getChild(groupPosition, childPosition);
|
||||
|
||||
String name = getString(R.string.favorite) + ": " + point.getName();
|
||||
LatLon location = new LatLon(point.getLatitude(), point.getLongitude());
|
||||
OnClickListener onshow = new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
settings.SHOW_FAVORITES.set(true);
|
||||
}
|
||||
};
|
||||
DirectionsDialogs.createDirectionsActions(qa, location, point, name, settings.getLastKnownMapZoom(),
|
||||
final PopupMenu optionsMenu = new PopupMenu(getActivity(), v);
|
||||
DirectionsDialogs.createDirectionActionsPopUpMenu(optionsMenu, location, point, name, settings.getLastKnownMapZoom(),
|
||||
getActivity(), true, false);
|
||||
Item edit = qa.item(R.string.favourites_context_menu_edit).icons(
|
||||
R.drawable.ic_action_edit_dark, R.drawable.ic_action_edit_light);
|
||||
edit.listen(
|
||||
new OnContextMenuClick() {
|
||||
|
||||
|
||||
|
||||
// DirectionsDialogs.createDirectionsActions(qa, location, point, name, settings.getLastKnownMapZoom(),
|
||||
// getActivity(), true, false);
|
||||
boolean light = getMyApplication().getSettings().isLightContent();
|
||||
MenuItem item = optionsMenu.getMenu().add(R.string.favourites_context_menu_edit)
|
||||
.setIcon(light ? R.drawable.ic_action_edit_light : R.drawable.ic_action_edit_dark);
|
||||
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
editPoint(point);
|
||||
return true;
|
||||
}
|
||||
}).reg();
|
||||
Item delete = qa.item(R.string.favourites_context_menu_delete).icons(
|
||||
R.drawable.ic_action_delete_dark, R.drawable.ic_action_delete_light);
|
||||
delete.listen(
|
||||
new OnContextMenuClick() {
|
||||
});
|
||||
|
||||
item = optionsMenu.getMenu().add(R.string.favourites_context_menu_delete)
|
||||
.setIcon(light ? R.drawable.ic_action_delete_light : R.drawable.ic_action_delete_dark);
|
||||
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
deletePoint(point);
|
||||
|
||||
return true;
|
||||
}
|
||||
}).reg();
|
||||
MapActivityActions.showObjectContextMenu(qa, getActivity(), onshow);
|
||||
});
|
||||
|
||||
optionsMenu.show();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -737,9 +750,6 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment {
|
|||
} else {
|
||||
final ImageView ch = (ImageView) row.findViewById(R.id.check_item);
|
||||
ch.setVisibility(View.VISIBLE);
|
||||
ch.setImageDrawable(getActivity().getResources().getDrawable(
|
||||
getMyApplication().getSettings().isLightContent() ? R.drawable.ic_action_settings_enabled_light
|
||||
: R.drawable.ic_action_settings_enabled_dark));
|
||||
ch.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -761,7 +771,8 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment {
|
|||
row = inflater.inflate(R.layout.favourites_list_item, parent, false);
|
||||
}
|
||||
|
||||
TextView label = (TextView) row.findViewById(R.id.favourite_label);
|
||||
TextView name = (TextView) row.findViewById(R.id.favourite_label);
|
||||
TextView distanceText = (TextView) row.findViewById(R.id.distance);
|
||||
ImageView icon = (ImageView) row.findViewById(R.id.favourite_icon);
|
||||
final FavouritePoint model = (FavouritePoint) getChild(groupPosition, childPosition);
|
||||
row.setTag(model);
|
||||
|
@ -770,11 +781,19 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment {
|
|||
int dist = (int) (MapUtils.getDistance(model.getLatitude(), model.getLongitude(),
|
||||
lastKnownMapLocation.getLatitude(), lastKnownMapLocation.getLongitude()));
|
||||
String distance = OsmAndFormatter.getFormattedDistance(dist, getMyApplication()) + " ";
|
||||
label.setText(distance + model.getName(), TextView.BufferType.SPANNABLE);
|
||||
label.setTypeface(Typeface.DEFAULT, model.isVisible() ? Typeface.NORMAL : Typeface.ITALIC);
|
||||
((Spannable) label.getText()).setSpan(
|
||||
new ForegroundColorSpan(getResources().getColor(R.color.color_distance)), 0, distance.length() - 1,
|
||||
0);
|
||||
name.setText(model.getName(), TextView.BufferType.SPANNABLE);
|
||||
name.setTypeface(Typeface.DEFAULT, model.isVisible() ? Typeface.NORMAL : Typeface.ITALIC);
|
||||
distanceText.setText(distance);
|
||||
distanceText.setTextColor(getResources().getColor(R.color.color_distance));
|
||||
row.findViewById(R.id.group_image).setVisibility(View.GONE);
|
||||
|
||||
if(loc != null){
|
||||
ImageView direction = (ImageView) row.findViewById(R.id.direction);
|
||||
direction.setVisibility(View.VISIBLE);
|
||||
DashLocationFragment.updateArrow(getActivity(), loc, new LatLon(model.getLatitude(), model.getLongitude()), direction,
|
||||
10, R.drawable.ic_destination_arrow, heading);
|
||||
}
|
||||
|
||||
final CheckBox ch = (CheckBox) row.findViewById(R.id.check_item);
|
||||
if (selectionMode) {
|
||||
ch.setVisibility(View.VISIBLE);
|
||||
|
@ -862,5 +881,33 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
public void updateLocation(Location location) {
|
||||
//This is used as origin for both Fav-list and direction arrows
|
||||
if (getMyApplication().getSettings().getLastKnownMapLocation() != null) {
|
||||
loc = getMyApplication().getSettings().getLastKnownMapLocation();
|
||||
} else {
|
||||
loc = new LatLon(0f, 0f);
|
||||
}
|
||||
updateArrows();
|
||||
}
|
||||
|
||||
public boolean updateCompassValue(float value) {
|
||||
//heading = value;
|
||||
//updateArrows();
|
||||
//99 in next line used to one-time initalize arrows (with reference vs. fixed-north direction) on non-compass devices
|
||||
float lastHeading = heading != null ? heading : 99;
|
||||
heading = value;
|
||||
if (heading != null && Math.abs(MapUtils.degreesDiff(lastHeading, heading)) > 5) {
|
||||
updateArrows();
|
||||
return true;
|
||||
} else {
|
||||
heading = lastHeading;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private void updateArrows(){
|
||||
favouritesAdapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,7 +26,6 @@ import net.osmand.plus.render.MapRenderRepositories;
|
|||
import net.osmand.plus.sherpafy.TourViewActivity;
|
||||
import net.osmand.plus.views.controls.FloatingActionButton;
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.AlertDialog.Builder;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
|
@ -139,9 +138,9 @@ public class MainMenuActivity extends BaseDownloadActivity implements OsmAndLoca
|
|||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
getMyApplication().getLocationProvider().pauseAllUpdates();
|
||||
getMyApplication().getLocationProvider().removeLocationListener(this);
|
||||
getMyApplication().getLocationProvider().removeCompassListener(this);
|
||||
getLocationProvider().pauseAllUpdates();
|
||||
getLocationProvider().removeLocationListener(this);
|
||||
getLocationProvider().removeCompassListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -317,7 +317,7 @@ public class MapActivityActions implements DialogProvider {
|
|||
|
||||
final Builder builder = new AlertDialog.Builder(mapActivity);
|
||||
final ArrayAdapter<?> listAdapter =
|
||||
adapter.createListAdapter(mapActivity, getMyApplication().getSettings().isLightContentMenu());
|
||||
adapter.createListAdapter(mapActivity, getMyApplication().getSettings().isLightContent());
|
||||
builder.setAdapter(listAdapter, new DialogInterface.OnClickListener() {
|
||||
|
||||
@Override
|
||||
|
@ -641,12 +641,8 @@ public class MapActivityActions implements DialogProvider {
|
|||
public void prepareOptionsMenu(final ContextMenuAdapter cm) {
|
||||
refreshDrawer = false;
|
||||
final ArrayAdapter<?> listAdapter =
|
||||
cm.createListAdapter(mapActivity, getMyApplication().getSettings().isLightContentMenu());
|
||||
cm.createListAdapter(mapActivity, getMyApplication().getSettings().isLightContent());
|
||||
mDrawerList.setAdapter(listAdapter);
|
||||
mDrawerList.setDivider(mapActivity.getResources().getDrawable(R.drawable.drawer_divider));
|
||||
final int colorHint = cm.getBackgroundColor(mapActivity, getMyApplication().getSettings().isLightContentMenu());
|
||||
mDrawerList.setBackgroundColor(colorHint);
|
||||
mDrawerList.setCacheColorHint(colorHint);
|
||||
mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
|
||||
@Override
|
||||
|
@ -945,12 +941,6 @@ public class MapActivityActions implements DialogProvider {
|
|||
ArrayAdapter<Object> listAdapter = waypointDialogHelper.getWaypointsDrawerAdapter(mapActivity, running, flat);
|
||||
mDrawerList.setAdapter(listAdapter);
|
||||
refreshDrawer = false;
|
||||
mDrawerList.setDivider(mapActivity.getResources().getDrawable(R.drawable.drawer_divider));
|
||||
final int color = getMyApplication().getSettings().isLightContentMenu() ? mapActivity
|
||||
.getResources().getColor(R.color.color_white) : mapActivity.getResources().getColor(
|
||||
R.color.dark_drawer_bg_color);
|
||||
mDrawerList.setBackgroundColor(color);
|
||||
mDrawerList.setCacheColorHint(color);
|
||||
mDrawerList.setOnItemClickListener(waypointDialogHelper.getDrawerItemClickListener(mapActivity, running,
|
||||
listAdapter, null));
|
||||
}
|
||||
|
|
|
@ -292,7 +292,7 @@ public class MapActivityLayers {
|
|||
it.reg();
|
||||
}
|
||||
Builder builder = new AlertDialog.Builder(activity);
|
||||
ListAdapter listAdapter =adapter.createListAdapter(activity, app.getSettings().isLightContentMenu());
|
||||
ListAdapter listAdapter =adapter.createListAdapter(activity, app.getSettings().isLightContent());
|
||||
builder.setAdapter(listAdapter, new DialogInterface.OnClickListener(){
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.osmand.plus.activities;
|
||||
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.widget.PopupMenu;
|
||||
import android.view.*;
|
||||
import gnu.trove.list.array.TIntArrayList;
|
||||
|
||||
|
@ -630,9 +631,10 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment {
|
|||
String name = app.getString(R.string.favorite) + ": " + child.name;
|
||||
LatLon location = new LatLon(child.locationStart.lat, child.locationStart.lon);
|
||||
OsmandSettings settings = app.getSettings();
|
||||
DirectionsDialogs.createDirectionsActions(qa, location, child.locationStart, name, settings.getLastKnownMapZoom(), getMyActivity(),
|
||||
true, false);
|
||||
MapActivityActions.showObjectContextMenu(qa, getMyActivity(), null);
|
||||
final PopupMenu optionsMenu = new PopupMenu(getActivity(), v);
|
||||
DirectionsDialogs.createDirectionActionsPopUpMenu(optionsMenu, location, child.locationStart, name, settings.getLastKnownMapZoom(),
|
||||
getActivity(), true, false);
|
||||
optionsMenu.show();
|
||||
} else {
|
||||
child.expanded = !child.expanded;
|
||||
adapter.notifyDataSetInvalidated();
|
||||
|
|
|
@ -10,6 +10,7 @@ import java.util.Locale;
|
|||
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.view.MenuItemCompat;
|
||||
import android.support.v7.widget.PopupMenu;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.*;
|
||||
import android.view.MenuItem.OnMenuItemClickListener;
|
||||
|
@ -227,12 +228,11 @@ public class SearchAddressOnlineFragment extends Fragment implements SearchActiv
|
|||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
Place item = adapter.getItem(position);
|
||||
ContextMenuAdapter qa = new ContextMenuAdapter(view.getContext());
|
||||
qa.setAnchor(view);
|
||||
DirectionsDialogs.createDirectionsActions(qa, new LatLon(item.lat, item.lon), item,
|
||||
final PopupMenu optionsMenu = new PopupMenu(getActivity(), view);
|
||||
DirectionsDialogs.createDirectionsActionsPopUpMenu(optionsMenu, new LatLon(item.lat, item.lon), item,
|
||||
getString(R.string.address) + " : " + item.displayName, Math.max(15, settings.getLastKnownMapZoom()),
|
||||
getActivity(), true);
|
||||
MapActivityActions.showObjectContextMenu(qa, getActivity(), null);
|
||||
optionsMenu.show();
|
||||
}
|
||||
|
||||
private static class Place {
|
||||
|
|
|
@ -3,6 +3,7 @@ package net.osmand.plus.activities.search;
|
|||
import java.util.List;
|
||||
|
||||
import android.support.v4.app.ListFragment;
|
||||
import android.support.v7.widget.PopupMenu;
|
||||
import android.view.*;
|
||||
import net.osmand.data.LatLon;
|
||||
import net.osmand.plus.ContextMenuAdapter;
|
||||
|
@ -114,19 +115,12 @@ public class SearchHistoryFragment extends ListFragment implements SearchActivit
|
|||
}
|
||||
|
||||
private void selectModel(final HistoryEntry model, View v) {
|
||||
ContextMenuAdapter qa = new ContextMenuAdapter(v.getContext());
|
||||
qa.setAnchor(v);
|
||||
String name = model.getName();
|
||||
final PopupMenu optionsMenu = new PopupMenu(getActivity(), v);
|
||||
OsmandSettings settings = ((OsmandApplication) getActivity().getApplication()).getSettings();
|
||||
OnClickListener onShow = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
helper.selectEntry(model);
|
||||
}
|
||||
};
|
||||
DirectionsDialogs.createDirectionsActions(qa, new LatLon(model.getLat(), model.getLon()),
|
||||
DirectionsDialogs.createDirectionsActionsPopUpMenu(optionsMenu, new LatLon(model.getLat(), model.getLon()),
|
||||
model, name, settings.getLastKnownMapZoom(), getActivity(), false);
|
||||
MapActivityActions.showObjectContextMenu(qa, getActivity(), onShow);
|
||||
optionsMenu.show();
|
||||
}
|
||||
|
||||
class HistoryAdapter extends ArrayAdapter<HistoryEntry> {
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
package net.osmand.plus.activities.search;
|
||||
|
||||
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.support.v7.widget.PopupMenu;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import gnu.trove.set.hash.TLongHashSet;
|
||||
|
||||
|
@ -285,6 +288,14 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa
|
|||
amenityAdapter = new AmenityAdapter(new ArrayList<Amenity>());
|
||||
setListAdapter(amenityAdapter);
|
||||
|
||||
boolean light = getMyApplication().getSettings().isLightContent();
|
||||
Drawable arrowImage = getResources().getDrawable(R.drawable.ic_destination_arrow_white);
|
||||
if (light) {
|
||||
arrowImage.setColorFilter(getResources().getColor(R.color.color_distance), PorterDuff.Mode.MULTIPLY);
|
||||
} else {
|
||||
arrowImage.setColorFilter(getResources().getColor(R.color.color_distance), PorterDuff.Mode.MULTIPLY);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -558,21 +569,19 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa
|
|||
@Override
|
||||
public void onItemClick(AdapterView<?> parent,final View view, int position, long id) {
|
||||
final Amenity amenity = ((AmenityAdapter) getListAdapter()).getItem(position);
|
||||
ContextMenuAdapter adapter = new ContextMenuAdapter(view.getContext());
|
||||
adapter.setAnchor(view);
|
||||
String poiSimpleFormat = OsmAndFormatter.getPoiSimpleFormat(amenity, getMyApplication(), settings.usingEnglishNames());
|
||||
String name = poiSimpleFormat;
|
||||
int z = Math.max(16, settings.getLastKnownMapZoom());
|
||||
|
||||
DirectionsDialogs.createDirectionsActions(adapter, amenity.getLocation(), amenity, name, z, this, true );
|
||||
final PopupMenu optionsMenu = new PopupMenu(this, view);
|
||||
DirectionsDialogs.createDirectionsActionsPopUpMenu(optionsMenu, amenity.getLocation(), amenity, name, z, this, true);
|
||||
final String d = OsmAndFormatter.getAmenityDescriptionContent(getMyApplication(), amenity, false);
|
||||
if(d.toString().trim().length() > 0) {
|
||||
Item poiDescr = adapter.item(R.string.poi_context_menu_showdescription).icons(
|
||||
R.drawable.ic_action_note_dark, R.drawable.ic_action_note_light);
|
||||
poiDescr.listen(new OnContextMenuClick() {
|
||||
|
||||
MenuItem item = optionsMenu.getMenu().add(R.string.poi_context_menu_showdescription).
|
||||
setIcon(getMyApplication().getSettings().isLightContent() ?
|
||||
R.drawable.ic_action_note_light : R.drawable.ic_action_note_dark);
|
||||
item.setOnMenuItemClickListener(new OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
// Build text(amenity)
|
||||
|
||||
// Find and format links
|
||||
|
@ -592,20 +601,19 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa
|
|||
textView.setLinksClickable(true);
|
||||
return true;
|
||||
}
|
||||
}).reg();
|
||||
});
|
||||
}
|
||||
if (((OsmandApplication)getApplication()).accessibilityEnabled()) {
|
||||
Item showDetails = adapter.item(R.string.show_details);
|
||||
showDetails.listen(new OnContextMenuClick() {
|
||||
|
||||
MenuItem item = optionsMenu.getMenu().add(R.string.show_details);
|
||||
item.setOnMenuItemClickListener(new OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
showPOIDetails(amenity, settings.usingEnglishNames());
|
||||
return true;
|
||||
}
|
||||
}).reg();
|
||||
});
|
||||
}
|
||||
MapActivityActions.showObjectContextMenu(adapter, this, null);
|
||||
optionsMenu.show();
|
||||
}
|
||||
|
||||
|
||||
|
@ -760,6 +768,7 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa
|
|||
}
|
||||
float[] mes = null;
|
||||
TextView label = (TextView) row.findViewById(R.id.poi_label);
|
||||
TextView distanceText = (TextView) row.findViewById(R.id.distance);
|
||||
ImageView direction = (ImageView) row.findViewById(R.id.poi_direction);
|
||||
ImageView icon = (ImageView) row.findViewById(R.id.poi_icon);
|
||||
Amenity amenity = getItem(position);
|
||||
|
@ -785,7 +794,7 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa
|
|||
}
|
||||
}
|
||||
if(loc != null){
|
||||
DirectionDrawable draw = new DirectionDrawable(SearchPOIActivity.this, width, height);
|
||||
DirectionDrawable draw = new DirectionDrawable(SearchPOIActivity.this, width, height, R.drawable.ic_destination_arrow_white);
|
||||
Float h = heading;
|
||||
float a = h != null ? h : 0;
|
||||
|
||||
|
@ -844,8 +853,8 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa
|
|||
distance = " " + OsmAndFormatter.getFormattedDistance((int) mes[0], getMyApplication()) + " "; //$NON-NLS-1$
|
||||
}
|
||||
String poiType = OsmAndFormatter.getPoiStringWithoutType(amenity, settings.usingEnglishNames());
|
||||
label.setText(distance + poiType, TextView.BufferType.SPANNABLE);
|
||||
((Spannable) label.getText()).setSpan(new ForegroundColorSpan(getResources().getColor(R.color.color_distance)), 0, distance.length() - 1, 0);
|
||||
label.setText(poiType);
|
||||
distanceText.setText(distance);
|
||||
return (row);
|
||||
}
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ public class DashAudioVideoNotesActivity extends OsmandActionBarActivity {
|
|||
if (light) {
|
||||
row.setBackgroundColor(getResources().getColor(R.color.expandable_list_item_light));
|
||||
} else {
|
||||
row.setBackgroundColor(getResources().getColor(R.color.expandable_list_item_dark));
|
||||
row.setBackgroundColor(getResources().getColor(R.color.list_item_background_dark));
|
||||
}
|
||||
final AudioVideoNotesPlugin.Recording recording = getItem(position);
|
||||
DashAudioVideoNotesFragment.getNoteView(recording, row, DashAudioVideoNotesActivity.this, plugin);
|
||||
|
|
|
@ -139,8 +139,8 @@ public class DashFavoritesFragment extends DashLocationFragment implements Favou
|
|||
|
||||
if(loc != null){
|
||||
direction.setVisibility(View.VISIBLE);
|
||||
updateArrow(new LatLon(point.getLatitude(), point.getLongitude()), direction,
|
||||
10, R.drawable.ic_destination_arrow);
|
||||
updateArrow(getActivity(), loc, new LatLon(point.getLatitude(), point.getLongitude()), direction,
|
||||
10, R.drawable.ic_destination_arrow, heading);
|
||||
}
|
||||
arrows.add(direction);
|
||||
name.setText(point.getName());
|
||||
|
@ -177,8 +177,8 @@ public class DashFavoritesFragment extends DashLocationFragment implements Favou
|
|||
|
||||
for (int i = 0; i < arrows.size(); i++) {
|
||||
arrows.get(i).setVisibility(View.VISIBLE);
|
||||
updateArrow(new LatLon(points.get(i).getLatitude(),points.get(i).getLongitude()),
|
||||
arrows.get(i), 10, R.drawable.ic_destination_arrow);
|
||||
updateArrow(getActivity(), loc, new LatLon(points.get(i).getLatitude(), points.get(i).getLongitude()),
|
||||
arrows.get(i), 10, R.drawable.ic_destination_arrow, heading);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.osmand.plus.dashboard;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.hardware.Sensor;
|
||||
import android.hardware.SensorManager;
|
||||
|
@ -36,16 +37,17 @@ public class DashLocationFragment extends DashBaseFragment {
|
|||
}
|
||||
}
|
||||
|
||||
protected void updateArrow(LatLon l, ImageView direction, int size, int resourceId) {
|
||||
public static void updateArrow(Activity ctx, LatLon currentLocation, LatLon pointLocation,
|
||||
ImageView direction, int size, int resourceId, Float heading) {
|
||||
float[] mes = new float[2];
|
||||
Location.distanceBetween(l.getLatitude(), l.getLongitude(), loc.getLatitude(), loc.getLongitude(), mes);
|
||||
DirectionDrawable draw = new DirectionDrawable(getActivity(), size, size, resourceId);
|
||||
Location.distanceBetween(pointLocation.getLatitude(), pointLocation.getLongitude(), currentLocation.getLatitude(), currentLocation.getLongitude(), mes);
|
||||
DirectionDrawable draw = new DirectionDrawable(ctx, size, size, resourceId);
|
||||
Float h = heading;
|
||||
float a = h != null ? h : 0;
|
||||
|
||||
//Hardy: getRotation() is the correction if device's screen orientation != the default display's standard orientation
|
||||
int screenOrientation = 0;
|
||||
screenOrientation = ((WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation();
|
||||
screenOrientation = ((WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation();
|
||||
switch (screenOrientation)
|
||||
{
|
||||
case ORIENTATION_0: // Device default (normally portrait)
|
||||
|
@ -63,7 +65,7 @@ public class DashLocationFragment extends DashBaseFragment {
|
|||
}
|
||||
|
||||
//Looks like screenOrientation correction must not be applied for devices without compass?
|
||||
Sensor compass = ((SensorManager) getActivity().getSystemService(Context.SENSOR_SERVICE)).getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
|
||||
Sensor compass = ((SensorManager) ctx.getSystemService(Context.SENSOR_SERVICE)).getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
|
||||
if (compass == null) {
|
||||
screenOrientation = 0;
|
||||
}
|
||||
|
|
|
@ -14,8 +14,14 @@ import android.app.AlertDialog.Builder;
|
|||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.PopupMenu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class DirectionsDialogs {
|
||||
|
||||
public static void directionsToDialogAndLaunchMap(final Activity act, final double lat, final double lon, final String name) {
|
||||
|
@ -46,65 +52,67 @@ public class DirectionsDialogs {
|
|||
}
|
||||
}
|
||||
|
||||
public static void createDirectionsActions(final ContextMenuAdapter qa , final LatLon location, final Object obj, final String name,
|
||||
public static void createDirectionsActionsPopUpMenu(final PopupMenu optionsMenu , final LatLon location, final Object obj, final String name,
|
||||
final int z, final Activity activity, final boolean saveHistory) {
|
||||
createDirectionsActions(qa, location, obj, name, z, activity, saveHistory, true);
|
||||
createDirectionActionsPopUpMenu(optionsMenu, location, obj, name, z, activity, saveHistory, true);
|
||||
}
|
||||
|
||||
public static void createDirectionsActions(final ContextMenuAdapter qa , final LatLon location, final Object obj, final String name,
|
||||
|
||||
public static void createDirectionActionsPopUpMenu(final PopupMenu optionsMenu, final LatLon location, final Object obj, final String name,
|
||||
final int z, final Activity activity, final boolean saveHistory, boolean favorite) {
|
||||
|
||||
setupPopUpMenuIcon(optionsMenu);
|
||||
final OsmandApplication app = ((OsmandApplication) activity.getApplication());
|
||||
boolean light = app.getSettings().isLightContent();
|
||||
|
||||
final TargetPointsHelper targetPointsHelper = app.getTargetPointsHelper();
|
||||
|
||||
|
||||
Item dir = qa.item(R.string.context_menu_item_directions_to).icons(
|
||||
R.drawable.ic_action_gdirections_dark, R.drawable.ic_action_gdirections_light);
|
||||
dir.listen(
|
||||
new OnContextMenuClick() {
|
||||
|
||||
MenuItem item = optionsMenu.getMenu().add(
|
||||
R.string.context_menu_item_directions_to).setIcon(light ?
|
||||
R.drawable.ic_action_gdirections_light : R.drawable.ic_action_gdirections_dark);
|
||||
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
|
||||
directionsToDialogAndLaunchMap(activity, location.getLatitude(), location.getLongitude(), name);
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
DirectionsDialogs.directionsToDialogAndLaunchMap(activity, location.getLatitude(), location.getLongitude(), name);
|
||||
optionsMenu.dismiss();
|
||||
return true;
|
||||
}
|
||||
}).reg();
|
||||
Item intermediate;
|
||||
});
|
||||
|
||||
if (targetPointsHelper.getPointToNavigate() != null) {
|
||||
intermediate = qa.item(R.string.context_menu_item_intermediate_point).icons(
|
||||
R.drawable.ic_action_flage_dark,R.drawable.ic_action_flage_light);
|
||||
item = optionsMenu.getMenu().add(
|
||||
R.string.context_menu_item_intermediate_point).setIcon(light ?
|
||||
R.drawable.ic_action_flage_light : R.drawable.ic_action_flage_dark);
|
||||
} else {
|
||||
intermediate = qa.item(R.string.context_menu_item_destination_point).icons(
|
||||
R.drawable.ic_action_flag_dark, R.drawable.ic_action_flag_light);
|
||||
item = optionsMenu.getMenu().add(
|
||||
R.string.context_menu_item_destination_point).setIcon(light ?
|
||||
R.drawable.ic_action_flag_light : R.drawable.ic_action_flag_dark);
|
||||
}
|
||||
intermediate.listen(new OnContextMenuClick() {
|
||||
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
|
||||
addWaypointDialogAndLaunchMap(activity, location.getLatitude(), location.getLongitude(), name);
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
DirectionsDialogs.addWaypointDialogAndLaunchMap(activity, location.getLatitude(), location.getLongitude(), name);
|
||||
optionsMenu.dismiss();
|
||||
return true;
|
||||
}
|
||||
}).reg();
|
||||
|
||||
Item showOnMap = qa.item(R.string.show_poi_on_map).icons(
|
||||
R.drawable.ic_action_marker_dark, R.drawable.ic_action_marker_light );
|
||||
showOnMap.listen(
|
||||
new OnContextMenuClick() {
|
||||
|
||||
});
|
||||
item = optionsMenu.getMenu().add(
|
||||
R.string.show_poi_on_map).setIcon(light ?
|
||||
R.drawable.ic_action_marker_light : R.drawable.ic_action_marker_dark);
|
||||
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
app.getSettings().setMapLocationToShow(location.getLatitude(), location.getLongitude(), z, saveHistory ? name : null, name,
|
||||
obj); //$NON-NLS-1$
|
||||
MapActivity.launchMapActivityMoveToTop(activity);
|
||||
return true;
|
||||
}
|
||||
}).reg();
|
||||
});
|
||||
if (favorite) {
|
||||
Item addToFavorite = qa.item(R.string.add_to_favourite).icons(
|
||||
R.drawable.ic_action_fav_dark, R.drawable.ic_action_fav_light);
|
||||
addToFavorite.listen(new OnContextMenuClick() {
|
||||
|
||||
item = optionsMenu.getMenu().add(
|
||||
R.string.add_to_favourite).setIcon(light ?
|
||||
R.drawable.ic_action_fav_light : R.drawable.ic_action_fav_dark);
|
||||
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
Bundle args = new Bundle();
|
||||
Dialog dlg = FavoriteDialogs.createAddFavouriteDialog(activity, args);
|
||||
dlg.show();
|
||||
|
@ -112,7 +120,7 @@ public class DirectionsDialogs {
|
|||
name);
|
||||
return true;
|
||||
}
|
||||
}).reg();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -148,4 +156,24 @@ public class DirectionsDialogs {
|
|||
MapActivity.launchMapActivityMoveToTop(act);
|
||||
}
|
||||
}
|
||||
|
||||
private static void setupPopUpMenuIcon(PopupMenu menu){
|
||||
try {
|
||||
Field[] fields = menu.getClass().getDeclaredFields();
|
||||
for (Field field : fields) {
|
||||
if ("mPopup".equals(field.getName())) {
|
||||
field.setAccessible(true);
|
||||
Object menuPopupHelper = field.get(menu);
|
||||
Class<?> classPopupHelper = Class.forName(menuPopupHelper
|
||||
.getClass().getName());
|
||||
Method setForceIcons = classPopupHelper.getMethod(
|
||||
"setForceShowIcon", boolean.class);
|
||||
setForceIcons.invoke(menuPopupHelper, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,11 +6,8 @@ import java.util.Collection;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import android.app.FragmentManager;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.support.v4.app.FragmentPagerAdapter;
|
||||
|
||||
import net.osmand.IndexConstants;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandPlugin;
|
||||
|
@ -111,7 +108,7 @@ public class DownloadActivity extends BaseDownloadActivity {
|
|||
settings = ((OsmandApplication)getApplication()).getSettings();
|
||||
|
||||
indeterminateProgressBar = (ProgressBar) findViewById(R.id.IndeterminateProgressBar);
|
||||
determinateProgressBar = (ProgressBar) findViewById(R.id.DeterminateProgressBar);
|
||||
determinateProgressBar = (ProgressBar) findViewById(R.id.memory_progress);
|
||||
progressView = findViewById(R.id.ProgressView);
|
||||
progressMessage = (TextView) findViewById(R.id.ProgressMessage);
|
||||
progressPercent = (TextView) findViewById(R.id.ProgressPercent);
|
||||
|
|
|
@ -31,9 +31,6 @@ public class DownloadIndexAdapter extends OsmandBaseExpandableListAdapter implem
|
|||
|
||||
private Map<String, String> indexFileNames = null;
|
||||
private Map<String, String> indexActivatedFileNames = null;
|
||||
private int okColor;
|
||||
private int defaultColor;
|
||||
private int updateColor;
|
||||
private OsmandRegions osmandRegions;
|
||||
private java.text.DateFormat format;
|
||||
private OsmandApplication app;
|
||||
|
@ -45,11 +42,8 @@ public class DownloadIndexAdapter extends OsmandBaseExpandableListAdapter implem
|
|||
app = downloadFragment.getMyApplication();
|
||||
list = new ArrayList<IndexItemCategory>(IndexItemCategory.categorizeIndexItems(app, indexFiles));
|
||||
format = downloadFragment.getMyApplication().getResourceManager().getDateFormat();
|
||||
okColor = downloadFragment.getResources().getColor(R.color.color_ok);
|
||||
TypedArray ta = downloadFragment.getDownloadActivity().getTheme().obtainStyledAttributes(new int[]{android.R.attr.textColorPrimary});
|
||||
defaultColor = ta.getColor(0, downloadFragment.getResources().getColor(R.color.color_unknown));
|
||||
ta.recycle();
|
||||
updateColor = downloadFragment.getResources().getColor(R.color.color_update);
|
||||
osmandRegions = downloadFragment.getMyApplication().getResourceManager().getOsmandRegions();
|
||||
}
|
||||
|
||||
|
@ -233,13 +227,15 @@ public class DownloadIndexAdapter extends OsmandBaseExpandableListAdapter implem
|
|||
v = inflater.inflate(net.osmand.plus.R.layout.download_index_list_item, parent, false);
|
||||
}
|
||||
final View row = v;
|
||||
TextView item = (TextView) row.findViewById(R.id.download_item);
|
||||
TextView name = (TextView) row.findViewById(R.id.name);
|
||||
TextView edition = (TextView) row.findViewById(R.id.update_descr);
|
||||
edition.setText("");
|
||||
TextView description = (TextView) row.findViewById(R.id.download_descr);
|
||||
IndexItem e = (IndexItem) getChild(groupPosition, childPosition);
|
||||
OsmandApplication clctx = downloadFragment.getMyApplication();
|
||||
String eName = e.getVisibleDescription(clctx) + "\n" + e.getVisibleName(clctx, osmandRegions);
|
||||
item.setText(eName.trim()); //$NON-NLS-1$
|
||||
String d = e.getDate(format) + "\n" + e.getSizeDescription(clctx);
|
||||
String eName = e.getVisibleName(clctx, osmandRegions);
|
||||
name.setText(eName.trim()); //$NON-NLS-1$
|
||||
String d = e.getDate(format) + " " + e.getSizeDescription(clctx);
|
||||
description.setText(d.trim());
|
||||
|
||||
CheckBox ch = (CheckBox) row.findViewById(R.id.check_download_item);
|
||||
|
@ -255,49 +251,34 @@ public class DownloadIndexAdapter extends OsmandBaseExpandableListAdapter implem
|
|||
|
||||
if (indexFileNames != null) {
|
||||
|
||||
if (!e.isAlreadyDownloaded(indexFileNames)) {
|
||||
item.setTextColor(defaultColor);
|
||||
item.setTypeface(Typeface.DEFAULT, Typeface.NORMAL);
|
||||
} else {
|
||||
if (e.isAlreadyDownloaded(indexFileNames)) {
|
||||
if (e.getType() == DownloadActivityType.HILLSHADE_FILE
|
||||
|| e.getType() == DownloadActivityType.SRTM_COUNTRY_FILE) {
|
||||
item.setTextColor(okColor); // GREEN
|
||||
String sfName = e.getTargetFileName();
|
||||
if (indexActivatedFileNames.containsKey(sfName)) {
|
||||
item.setTypeface(Typeface.DEFAULT, Typeface.NORMAL);
|
||||
name.setTypeface(Typeface.DEFAULT, Typeface.NORMAL);
|
||||
// next case since present hillshade files cannot be deactivated, but are not in indexActivatedFileNames
|
||||
} else if (e.getType() == DownloadActivityType.HILLSHADE_FILE) {
|
||||
item.setTypeface(Typeface.DEFAULT, Typeface.NORMAL);
|
||||
name.setTypeface(Typeface.DEFAULT, Typeface.NORMAL);
|
||||
} else {
|
||||
item.setTypeface(Typeface.DEFAULT, Typeface.ITALIC);
|
||||
name.setTypeface(Typeface.DEFAULT, Typeface.ITALIC);
|
||||
}
|
||||
} else if (e.getDate(format) != null) {
|
||||
String sfName = e.getTargetFileName();
|
||||
final boolean updatableResource = indexActivatedFileNames.containsKey(sfName);
|
||||
if (updatableResource && !DownloadActivity.downloadListIndexThread.checkIfItemOutdated(e)) {
|
||||
item.setText(item.getText() + "\n" + downloadFragment.getResources().getString(R.string.local_index_installed) + " : "
|
||||
edition.setText(downloadFragment.getResources().getString(R.string.local_index_installed) + " : "
|
||||
+ indexActivatedFileNames.get(sfName));
|
||||
item.setTextColor(okColor); // GREEN
|
||||
item.setTypeface(Typeface.DEFAULT, Typeface.NORMAL);
|
||||
} else if (indexFileNames.containsKey(sfName) && !DownloadActivity.downloadListIndexThread.checkIfItemOutdated(e)) {
|
||||
item.setText(item.getText() + "\n" + downloadFragment.getResources().getString(R.string.local_index_installed) + " : "
|
||||
edition.setText(downloadFragment.getResources().getString(R.string.local_index_installed) + " : "
|
||||
+ indexFileNames.get(sfName));
|
||||
item.setTextColor(okColor);
|
||||
item.setTypeface(Typeface.DEFAULT, Typeface.ITALIC);
|
||||
} else if (updatableResource) {
|
||||
item.setText(item.getText() + "\n" + downloadFragment.getResources().getString(R.string.local_index_installed) + " : "
|
||||
edition.setText(downloadFragment.getResources().getString(R.string.local_index_installed) + " : "
|
||||
+ indexActivatedFileNames.get(sfName));
|
||||
item.setTextColor(updateColor); // LIGHT_BLUE
|
||||
item.setTypeface(Typeface.DEFAULT, Typeface.NORMAL);
|
||||
} else {
|
||||
item.setText(item.getText() + "\n" + downloadFragment.getResources().getString(R.string.local_index_installed) + " : "
|
||||
edition.setText(name.getText() + "\n" + downloadFragment.getResources().getString(R.string.local_index_installed) + " : "
|
||||
+ indexFileNames.get(sfName));
|
||||
item.setTextColor(updateColor);
|
||||
item.setTypeface(Typeface.DEFAULT, Typeface.ITALIC);
|
||||
}
|
||||
} else {
|
||||
item.setTextColor(okColor);
|
||||
item.setTypeface(Typeface.DEFAULT, Typeface.NORMAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ import android.widget.CheckBox;
|
|||
import android.widget.EditText;
|
||||
import android.widget.ExpandableListView;
|
||||
import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
|
@ -81,12 +81,12 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment {
|
|||
private ActionMode actionMode;
|
||||
|
||||
private TextView descriptionText;
|
||||
private ProgressBar sizeProgress;
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.local_index, container, false);
|
||||
|
||||
// getDownloadActivity().getSupportActionBar().setTitle(R.string.local_index_descr_title);
|
||||
getDownloadActivity().setSupportProgressBarIndeterminateVisibility(false);
|
||||
|
||||
ExpandableListView listView = (ExpandableListView)view.findViewById(android.R.id.list);
|
||||
|
@ -95,7 +95,8 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment {
|
|||
expandAllGroups();
|
||||
setListView(listView);
|
||||
//getDownloadActivity().getSupportActionBar().setLogo(R.drawable.tab_download_screen_icon);
|
||||
descriptionText = (TextView) view.findViewById(R.id.DescriptionText);
|
||||
descriptionText = (TextView) view.findViewById(R.id.memory_size);
|
||||
sizeProgress = (ProgressBar) view.findViewById(R.id.memory_progress);
|
||||
updateDescriptionTextWithSize();
|
||||
return view;
|
||||
}
|
||||
|
@ -528,15 +529,15 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment {
|
|||
if (j + 1 >= max && optionsMenuAdapter.length() > max) {
|
||||
if (split == null) {
|
||||
split = menu.addSubMenu(0, 1, j + 1, R.string.default_buttons_other_actions);
|
||||
split.setIcon(isLightActionBar() ? R.drawable.ic_overflow_menu_light : R.drawable.ic_overflow_menu_dark );
|
||||
split.setIcon(R.drawable.ic_overflow_menu_white);
|
||||
split.getItem();
|
||||
MenuItemCompat.setShowAsAction(split.getItem(),MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
|
||||
MenuItemCompat.setShowAsAction(split.getItem(),MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
|
||||
}
|
||||
item = split.add(0, optionsMenuAdapter.getElementId(j), j + 1, optionsMenuAdapter.getItemName(j));
|
||||
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM );
|
||||
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS );
|
||||
} else {
|
||||
item = menu.add(0, optionsMenuAdapter.getElementId(j), j + 1, optionsMenuAdapter.getItemName(j));
|
||||
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM );
|
||||
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS );
|
||||
}
|
||||
if (optionsMenuAdapter.getImageId(j, isLightActionBar()) != 0) {
|
||||
item.setIcon(optionsMenuAdapter.getImageId(j, isLightActionBar()));
|
||||
|
@ -658,12 +659,14 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment {
|
|||
private void updateDescriptionTextWithSize(){
|
||||
File dir = getMyApplication().getAppPath("").getParentFile();
|
||||
String size = formatGb.format(new Object[]{0});
|
||||
int percent = 0;
|
||||
if(dir.canRead()){
|
||||
StatFs fs = new StatFs(dir.getAbsolutePath());
|
||||
size = formatGb.format(new Object[]{(float) (fs.getAvailableBlocks()) * fs.getBlockSize() / (1 << 30) });
|
||||
percent = (int) (fs.getAvailableBlocks() * 100 / fs.getBlockCount());
|
||||
}
|
||||
|
||||
String text = getString(R.string.local_index_description, size);
|
||||
sizeProgress.setProgress(percent);
|
||||
String text = getString(R.string.free, size);
|
||||
int l = text.indexOf('.');
|
||||
if(l == -1) {
|
||||
l = text.length();
|
||||
|
@ -995,20 +998,17 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment {
|
|||
LocalIndexInfo group = getGroup(groupPosition);
|
||||
if (v == null) {
|
||||
LayoutInflater inflater = (LayoutInflater) getDownloadActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
v = inflater.inflate(net.osmand.plus.R.layout.expandable_list_item_category, parent, false);
|
||||
v = inflater.inflate(R.layout.local_index_list_category, parent, false);
|
||||
}
|
||||
StringBuilder t = new StringBuilder(group.getType().getHumanString(getDownloadActivity()));
|
||||
StringBuilder name = new StringBuilder(group.getType().getHumanString(getDownloadActivity()));
|
||||
if(group.getSubfolder() != null) {
|
||||
t.append(" ").append(group.getSubfolder());
|
||||
name.append(" ").append(group.getSubfolder());
|
||||
}
|
||||
if (group.isBackupedData()) {
|
||||
t.append(" - ").append(getString(R.string.local_indexes_cat_backup));
|
||||
name.append(" - ").append(getString(R.string.local_indexes_cat_backup));
|
||||
}
|
||||
|
||||
v.findViewById(R.id.explist_indicator).setVisibility(View.GONE);
|
||||
|
||||
TextView nameView = ((TextView) v.findViewById(R.id.category_name));
|
||||
nameView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||
TextView sizeView = ((TextView) v.findViewById(R.id.category_size));
|
||||
List<LocalIndexInfo> list = data.get(group);
|
||||
int size = 0;
|
||||
for (LocalIndexInfo aList : list) {
|
||||
|
@ -1020,16 +1020,17 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment {
|
|||
size += sz;
|
||||
}
|
||||
}
|
||||
String sz = "";
|
||||
if (size > 0) {
|
||||
String sz;
|
||||
if (size > 1 << 20) {
|
||||
sz = formatGb.format(new Object[] { (float) size / (1 << 20) });
|
||||
} else {
|
||||
sz = formatMb.format(new Object[] { (float) size / (1 << 10) });
|
||||
}
|
||||
t.append(" [").append(sz).append("]");
|
||||
|
||||
}
|
||||
nameView.setText(t.toString());
|
||||
sizeView.setText(sz);
|
||||
nameView.setText(name.toString());
|
||||
if (!group.isBackupedData()) {
|
||||
nameView.setTypeface(Typeface.DEFAULT, Typeface.NORMAL);
|
||||
} else {
|
||||
|
|
|
@ -110,8 +110,7 @@ public class UpdatesIndexFragment extends ListFragment {
|
|||
item.setIcon(R.drawable.ic_action_refresh_dark);
|
||||
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
|
||||
SubMenu s = menu.addSubMenu(0, DownloadIndexFragment.MORE_ID, 0, "");
|
||||
s.setIcon(isLightActionBar() ? R.drawable.ic_overflow_menu_light
|
||||
: R.drawable.ic_overflow_menu_dark);
|
||||
s.setIcon(R.drawable.ic_overflow_menu_white);
|
||||
s.add(0, DownloadIndexFragment.SELECT_ALL_ID, 0, R.string.select_all);
|
||||
s.add(0, DownloadIndexFragment.DESELECT_ALL_ID, 0, R.string.deselect_all);
|
||||
MenuItemCompat.setShowAsAction(s.getItem(), MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
|
||||
|
|
|
@ -62,7 +62,7 @@ public class AvoidSpecificRoads {
|
|||
}
|
||||
final RouteDataObject obj = getItem(position);
|
||||
v.findViewById(R.id.all_points).setVisibility(View.GONE);
|
||||
((ImageView) v.findViewById(R.id.waypoint_icon)).setImageResource(app.getSettings().isLightContentMenu() ?
|
||||
((ImageView) v.findViewById(R.id.waypoint_icon)).setImageResource(app.getSettings().isLightContent() ?
|
||||
R.drawable.ic_action_road_works_light : R.drawable.ic_action_road_works_dark);
|
||||
double dist = MapUtils.getDistance(mapLocation, MapUtils.get31LatitudeY(obj.getPoint31YTile(0)),
|
||||
MapUtils.get31LongitudeX(obj.getPoint31XTile(0)));
|
||||
|
@ -71,7 +71,7 @@ public class AvoidSpecificRoads {
|
|||
((TextView) v.findViewById(R.id.waypoint_text)).setText(getText(obj));
|
||||
ImageButton remove = (ImageButton) v.findViewById(R.id.info_close);
|
||||
remove.setVisibility(View.VISIBLE);
|
||||
remove.setImageResource(app.getSettings().isLightContentMenu() ?
|
||||
remove.setImageResource(app.getSettings().isLightContent() ?
|
||||
R.drawable.ic_action_gremove_light : R.drawable.ic_action_gremove_dark);
|
||||
remove.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
|
|
|
@ -232,7 +232,7 @@ public class GpxUiHelper {
|
|||
final File dir = app.getAppPath(IndexConstants.GPX_INDEX_DIR);
|
||||
Builder b = new AlertDialog.Builder(activity);
|
||||
// final int padding = (int) (12 * activity.getResources().getDisplayMetrics().density + 0.5f);
|
||||
final boolean light = app.getSettings().isLightContentMenu();
|
||||
final boolean light = app.getSettings().isLightContent();
|
||||
final int layout;
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
|
||||
layout = R.layout.list_menu_item;
|
||||
|
|
|
@ -16,7 +16,6 @@ import net.osmand.plus.activities.AvailableGPXFragment.GpxInfo;
|
|||
import net.osmand.plus.activities.EnumAdapter;
|
||||
import net.osmand.plus.activities.EnumAdapter.IEnumWithResource;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.activities.SettingsActivity;
|
||||
import net.osmand.plus.views.OsmandMapTileView;
|
||||
import net.osmand.util.Algorithms;
|
||||
import android.app.Activity;
|
||||
|
@ -25,10 +24,6 @@ import android.app.AlertDialog.Builder;
|
|||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.content.Intent;
|
||||
import android.preference.Preference;
|
||||
import android.preference.Preference.OnPreferenceClickListener;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
@ -232,7 +227,7 @@ public class OsmEditingPlugin extends OsmandPlugin {
|
|||
Builder bldr = new AlertDialog.Builder(la);
|
||||
LayoutInflater inflater = (LayoutInflater)la.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
final View view = inflater.inflate(R.layout.send_gpx_osm, null);
|
||||
final EditText descr = (EditText) view.findViewById(R.id.DescriptionText);
|
||||
final EditText descr = (EditText) view.findViewById(R.id.memory_size);
|
||||
if(info.length > 0 && info[0].getFileName() != null) {
|
||||
int dt = info[0].getFileName().indexOf('.');
|
||||
descr.setText(info[0].getFileName().substring(0, dt));
|
||||
|
|
|
@ -86,7 +86,7 @@ public class DashParkingFragment extends DashLocationFragment {
|
|||
ImageView direction = (ImageView) mainView.findViewById(R.id.direction_icon);
|
||||
if (loc != null){
|
||||
direction.setVisibility(View.VISIBLE);
|
||||
updateArrow(position, direction, 10, R.drawable.ic_destination_arrow);
|
||||
updateArrow(getActivity(), loc, position, direction, 10, R.drawable.ic_destination_arrow, heading);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,8 @@ import android.graphics.*;
|
|||
import android.graphics.drawable.Drawable;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
|
||||
/**
|
||||
|
@ -54,7 +56,12 @@ public class DirectionDrawable extends Drawable {
|
|||
public void draw(Canvas canvas) {
|
||||
if (resourceId != -1) {
|
||||
canvas.rotate(angle, canvas.getHeight() / 2, canvas.getWidth() / 2);
|
||||
Bitmap arrow = BitmapFactory.decodeResource(ctx.getResources(), resourceId);
|
||||
|
||||
Drawable arrowImage = ctx.getResources().getDrawable(resourceId);
|
||||
Bitmap arrow = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888);
|
||||
Canvas canv = new Canvas(arrow);
|
||||
arrowImage.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
|
||||
arrowImage.draw(canv);
|
||||
canvas.drawBitmap(arrow, null, new Rect(0, 0, arrow.getHeight(), arrow.getWidth()), null);
|
||||
} else {
|
||||
canvas.rotate(angle, canvas.getHeight()/2, canvas.getWidth() / 2);
|
||||
|
|
Loading…
Reference in a new issue