diff options
| author | Arne Schwabe <arne@rfc2549.org> | 2014-04-20 21:38:19 +0200 |
|---|---|---|
| committer | Arne Schwabe <arne@rfc2549.org> | 2014-05-17 13:08:14 +0200 |
| commit | be26c1845210a1c8824677ed6e2d093073ea5c84 (patch) | |
| tree | 81d02773f4fd9edc5d05b44c770be89994a9c207 /main/res/menu | |
| parent | 496878826d638367c129b02e66f992202e0d36c9 (diff) | |
| download | cgeo-be26c1845210a1c8824677ed6e2d093073ea5c84.zip cgeo-be26c1845210a1c8824677ed6e2d093073ea5c84.tar.gz cgeo-be26c1845210a1c8824677ed6e2d093073ea5c84.tar.bz2 | |
Implement ActionBar using AppCompat in cgeo
This a first version of an ActionBar implementation with following properties:
- The application should be usuable (there still might be bugs left from the conversation to Action)
- Provides a more modern feeling on all devices
- gets rid of the "dots of shame" on Android 3.0+ devices
- The Maps classes MUST inherit from Activity instead of ActionBarActivity. There these classes use the old ActionBar on Android 2.3 devices and the real ActionBar on 3.0+
- This can be fixed when cgeo is ported to Google Maps API v2.0 API which usesFragment
- The Dialog classes (CachePopup and WaypointPopup) have been converted to DialogFragments
- The AppCombat themes provide no Theme.Dialog theme
- this will later ease using these Fragment in other Activities
- Use an almost empty activity which just shows the DialogFragment
- Use the 'old' ActionBar but which overflow menu button to fit into Holo Design Style
- Using a real ActionBar for Dialogs is not really support by Android and trying to force the frame into showing an Actionbar on a dialog leeds to strange bugs/effects
- Most of the icon are still the Android 2.3 Menu Icon. These need to be replaced with Holo Style Icons
- for most menu icon the ifRoom and/or withText attributes should be reviewed and set
- The ActionBar of the main Activity is transparent. This is more or less by accident but looks good
- Review Up Action of activities. Is going back to Main Activity always the semantically right thing to do?
- Shortpress/Longpress on the Actionbars Compass Icon for primary/secondary Navigation clashes the normal ActionBar behaviour of long pressing to show the text of the action
This commit contains many fixes and suggestions from rsudev
Diffstat (limited to 'main/res/menu')
| -rw-r--r-- | main/res/menu/abstract_logging_activity.xml | 12 | ||||
| -rw-r--r-- | main/res/menu/cache_list_context.xml | 16 | ||||
| -rw-r--r-- | main/res/menu/cache_list_options.xml | 11 | ||||
| -rw-r--r-- | main/res/menu/cache_options.xml | 24 | ||||
| -rw-r--r-- | main/res/menu/compass_activity_options.xml | 9 | ||||
| -rw-r--r-- | main/res/menu/details_context.xml | 3 | ||||
| -rw-r--r-- | main/res/menu/images_list_context.xml | 5 | ||||
| -rw-r--r-- | main/res/menu/logging_ui.xml | 5 | ||||
| -rw-r--r-- | main/res/menu/main_activity_options.xml | 17 | ||||
| -rw-r--r-- | main/res/menu/map_activity.xml | 19 | ||||
| -rw-r--r-- | main/res/menu/navigate_any_point_activity_options.xml | 15 | ||||
| -rw-r--r-- | main/res/menu/search_activity_options.xml | 7 | ||||
| -rw-r--r-- | main/res/menu/static_maps_activity_options.xml | 4 | ||||
| -rw-r--r-- | main/res/menu/trackable_activity.xml | 5 | ||||
| -rw-r--r-- | main/res/menu/waypoint_options.xml | 3 |
15 files changed, 124 insertions, 31 deletions
diff --git a/main/res/menu/abstract_logging_activity.xml b/main/res/menu/abstract_logging_activity.xml index b926dd1..a7841a5 100644 --- a/main/res/menu/abstract_logging_activity.xml +++ b/main/res/menu/abstract_logging_activity.xml @@ -1,21 +1,25 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_signature" android:icon="@drawable/ic_menu_edit" - android:title="@string/init_signature"> + android:title="@string/init_signature" + cgeo:showAsAction="ifRoom|withText"> </item> <item android:id="@+id/menu_templates" android:icon="@drawable/ic_menu_add" - android:title="@string/log_add"> + android:title="@string/log_add" + cgeo:showAsAction="ifRoom|withText"> <menu /> <!-- filled dynamically --> </item> <item android:id="@+id/menu_smilies" android:icon="@drawable/ic_menu_emoticons" - android:title="@string/log_smilies"> + android:title="@string/log_smilies" + cgeo:showAsAction="ifRoom|withText"> <menu /> <!-- filled dynamically --> </item> diff --git a/main/res/menu/cache_list_context.xml b/main/res/menu/cache_list_context.xml index 2767a2e..8d52654 100644 --- a/main/res/menu/cache_list_context.xml +++ b/main/res/menu/cache_list_context.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_default_navigation" @@ -9,40 +10,49 @@ <item android:id="@+id/menu_navigate" android:icon="@drawable/ic_menu_mapmode" - android:title="@string/cache_menu_navigate"> + android:title="@string/cache_menu_navigate" + cgeo:showAsAction="ifRoom|withText"> </item> <item android:id="@+id/menu_cache_details" - android:title="@string/cache_menu_details"> + android:title="@string/cache_menu_details" + cgeo:showAsAction="ifRoom|withText"> </item> <item android:id="@+id/menu_log_visit_offline" android:icon="@drawable/ic_menu_edit" + cgeo:showAsAction="ifRoom|withText" android:title="@string/cache_menu_visit_offline"> </item> <item android:id="@+id/menu_log_visit" android:icon="@drawable/ic_menu_edit" + cgeo:showAsAction="ifRoom|withText" android:title="@string/cache_menu_visit"> </item> <item android:id="@+id/menu_drop_cache" + cgeo:showAsAction="ifRoom|withText" android:title="@string/cache_offline_drop"> </item> <item android:id="@+id/menu_move_to_list" + cgeo:showAsAction="ifRoom|withText" android:title="@string/cache_menu_move_list"> </item> <item android:id="@+id/menu_export" + cgeo:showAsAction="ifRoom|withText" android:title="@string/export"> </item> <item android:id="@+id/menu_refresh" + cgeo:showAsAction="ifRoom|withText" android:title="@string/cache_menu_refresh"> </item> <item android:id="@+id/menu_store_cache" + cgeo:showAsAction="ifRoom|withText" android:title="@string/cache_offline_store"> </item> diff --git a/main/res/menu/cache_list_options.xml b/main/res/menu/cache_list_options.xml index 418d2de..d743c71 100644 --- a/main/res/menu/cache_list_options.xml +++ b/main/res/menu/cache_list_options.xml @@ -1,14 +1,23 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item + android:id="@+id/menu_show_on_map" + android:icon="@drawable/actionbar_map" + cgeo:showAsAction="ifRoom" + android:title="@string/caches_on_map"> + </item> + <item android:id="@+id/menu_filter" android:icon="@drawable/ic_menu_filter" + cgeo:showAsAction="ifRoom|withText" android:title="@string/caches_filter"> </item> <item android:id="@+id/menu_sort" android:icon="@drawable/ic_menu_sort_alphabetically" + cgeo:showAsAction="ifRoom|withText" android:title="@string/caches_sort"> </item> <item diff --git a/main/res/menu/cache_options.xml b/main/res/menu/cache_options.xml index d2951f4..2bd0c44 100644 --- a/main/res/menu/cache_options.xml +++ b/main/res/menu/cache_options.xml @@ -1,45 +1,55 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > - +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_default_navigation" android:icon="@drawable/ic_menu_compass" + cgeo:showAsAction="ifRoom" android:title="@string/cache_menu_navigate"> <!-- will be replaced --> </item> <item android:id="@+id/menu_navigate" android:icon="@drawable/ic_menu_mapmode" + cgeo:showAsAction="ifRoom" android:title="@string/cache_menu_navigate"> </item> <item + android:id="@+id/menu_share" + android:icon="@drawable/ic_menu_share" + cgeo:showAsAction="ifRoom" + cgeo:actionProviderClass="android.support.v7.widget.ShareActionProvider" + android:title="@string/cache_menu_share"> + </item> + <item android:id="@+id/menu_calendar" android:icon="@drawable/ic_menu_agenda" + cgeo:showAsAction="ifRoom" android:title="@string/cache_menu_event"> </item> <item android:id="@+id/menu_log_visit_offline" android:icon="@drawable/ic_menu_edit" + cgeo:showAsAction="ifRoom" android:title="@string/cache_menu_visit_offline"> </item> <item android:id="@+id/menu_log_visit" android:icon="@drawable/ic_menu_edit" + cgeo:showAsAction="ifRoom" android:title="@string/cache_menu_visit"> </item> <item android:id="@+id/menu_caches_around" android:icon="@drawable/ic_menu_rotate" + cgeo:showAsAction="ifRoom" android:title="@string/cache_menu_around"> </item> <item android:id="@+id/menu_show_in_browser" android:icon="@drawable/ic_menu_info_details" + cgeo:showAsAction="ifRoom" android:title="@string/cache_menu_browser"> </item> - <item - android:id="@+id/menu_share" - android:icon="@drawable/ic_menu_share" - android:title="@string/cache_menu_share"> - </item> + </menu>
\ No newline at end of file diff --git a/main/res/menu/compass_activity_options.xml b/main/res/menu/compass_activity_options.xml index 01c7d36..bfdbf48 100644 --- a/main/res/menu/compass_activity_options.xml +++ b/main/res/menu/compass_activity_options.xml @@ -1,36 +1,43 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_switch_compass_gps" android:icon="@drawable/ic_menu_compass" + cgeo:showAsAction="ifRoom|withText" android:title="@string/use_gps"> <!-- will be replaced in code --> </item> <item android:id="@+id/menu_map" android:icon="@drawable/ic_menu_mapmode" + cgeo:showAsAction="ifRoom|withText" android:title="@string/caches_on_map"> </item> <item android:id="@+id/menu_edit_destination" android:icon="@drawable/ic_menu_edit" + cgeo:showAsAction="ifRoom|withText" android:title="@string/destination_set"> </item> <item android:id="@+id/menu_select_destination" android:icon="@drawable/ic_menu_myplaces" + cgeo:showAsAction="ifRoom|withText" android:title="@string/destination_select"> <menu /> <!-- filled dynamically --> </item> <item android:id="@+id/menu_tts_start" android:icon="@drawable/ic_menu_start_conversation" + cgeo:showAsAction="ifRoom|withText" android:title="@string/tts_start"> </item> <item android:id="@+id/menu_tts_stop" android:icon="@drawable/ic_menu_start_conversation" android:title="@string/tts_stop" + cgeo:showAsAction="ifRoom|withText" android:visible="false"> </item> diff --git a/main/res/menu/details_context.xml b/main/res/menu/details_context.xml index 3125459..53f326a 100644 --- a/main/res/menu/details_context.xml +++ b/main/res/menu/details_context.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_copy" diff --git a/main/res/menu/images_list_context.xml b/main/res/menu/images_list_context.xml index 75d0ca0..0726267 100644 --- a/main/res/menu/images_list_context.xml +++ b/main/res/menu/images_list_context.xml @@ -1,12 +1,15 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/image_open_file" + cgeo:showAsAction="ifRoom|withText" android:title="@string/cache_image_open_file"> </item> <item android:id="@+id/image_open_browser" + cgeo:showAsAction="ifRoom|withText" android:title="@string/cache_image_open_browser"> </item> diff --git a/main/res/menu/logging_ui.xml b/main/res/menu/logging_ui.xml index a8622c5..5baacfc 100644 --- a/main/res/menu/logging_ui.xml +++ b/main/res/menu/logging_ui.xml @@ -1,14 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_log_visit_offline" android:icon="@drawable/ic_menu_edit" + cgeo:showAsAction="ifRoom|withText" android:title="@string/cache_menu_visit_offline"> </item> <item android:id="@+id/menu_log_visit" android:icon="@drawable/ic_menu_edit" + cgeo:showAsAction="ifRoom|withText" android:title="@string/cache_menu_visit"> </item> diff --git a/main/res/menu/main_activity_options.xml b/main/res/menu/main_activity_options.xml index fc949dc..bf9124f 100644 --- a/main/res/menu/main_activity_options.xml +++ b/main/res/menu/main_activity_options.xml @@ -1,34 +1,49 @@ <?xml version="1.0" encoding="utf-8"?>
-<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:cgeo="http://schemas.android.com/apk/res-auto">
+
+ <!-- TODO: use ic_action_search -->
+ <item
+ style="@style/action_bar_action"
+ android:id="@+id/menu_gosearch"
+ cgeo:showAsAction="always"
+ cgeo:actionViewClass="android.support.v7.widget.SearchView"
+ android:icon="@drawable/actionbar_search" />
<item
android:id="@+id/menu_settings"
android:icon="@drawable/ic_menu_preferences"
+ cgeo:showAsAction="ifRoom"
android:title="@string/menu_settings">
</item>
<item
android:id="@+id/menu_history"
android:icon="@drawable/ic_menu_recent_history"
+ cgeo:showAsAction="ifRoom"
android:title="@string/menu_history">
</item>
<item
android:id="@+id/menu_pocket_queries"
android:icon="@drawable/ic_menu_account_list"
+ cgeo:showAsAction="ifRoom"
android:title="@string/menu_pocket_queries">
</item>
<item
android:id="@+id/menu_helpers"
android:icon="@drawable/ic_menu_shopping"
+ cgeo:showAsAction="ifRoom|"
android:title="@string/menu_helpers">
</item>
<item
android:id="@+id/menu_scan"
android:icon="@drawable/ic_menu_barcode"
+ cgeo:showAsAction="ifRoom"
android:title="@string/menu_scan_geo">
</item>
<item
android:id="@+id/menu_about"
android:icon="@drawable/ic_menu_info_details"
+ cgeo:showAsAction="ifRoom"
android:title="@string/menu_about">
</item>
</menu>
\ No newline at end of file diff --git a/main/res/menu/map_activity.xml b/main/res/menu/map_activity.xml index d81a49b..3dfc5ae 100644 --- a/main/res/menu/map_activity.xml +++ b/main/res/menu/map_activity.xml @@ -1,9 +1,19 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> + + <item android:id="@+id/menu_toggle_mypos" + android:title="@string/menu_centerposition" + android:icon="@drawable/ic_menu_myposition" + cgeo:showAsAction="always" + android:showAsAction="always" + + /> <item android:id="@+id/menu_select_mapview" android:icon="@drawable/ic_menu_mapmode" + cgeo:showAsAction="ifRoom|withText" android:title="@string/map_view_map"> <menu> <group @@ -15,37 +25,44 @@ <item android:id="@+id/menu_map_live" android:icon="@drawable/ic_menu_refresh" + cgeo:showAsAction="ifRoom|withText" android:title="@string/map_live_disable"> </item> <item android:id="@+id/menu_store_caches" android:enabled="false" android:icon="@drawable/ic_menu_set_as" + cgeo:showAsAction="ifRoom|withText" android:title="@string/caches_store_offline"> </item> <item android:id="@+id/submenu_modes" android:icon="@drawable/ic_menu_mark" + cgeo:showAsAction="ifRoom|withText" android:title="@string/map_modes"> <menu> <item android:id="@+id/menu_trail_mode" android:icon="@drawable/ic_menu_trail" + cgeo:showAsAction="ifRoom|withText" android:title="@string/map_trail_hide"> </item> <item android:id="@+id/menu_circle_mode" android:icon="@drawable/ic_menu_circle" + cgeo:showAsAction="ifRoom|withText" android:title="@string/map_circles_hide"> </item> <item android:id="@+id/menu_mycaches_mode" android:icon="@android:drawable/ic_menu_myplaces" + cgeo:showAsAction="ifRoom|withText" android:title="@string/map_mycaches_hide"> </item> <item android:id="@+id/menu_theme_mode" android:icon="@drawable/ic_menu_preferences" + cgeo:showAsAction="ifRoom|withText" android:title="@string/map_theme_select"> </item> </menu> diff --git a/main/res/menu/navigate_any_point_activity_options.xml b/main/res/menu/navigate_any_point_activity_options.xml index 4f199e2..a17405b 100644 --- a/main/res/menu/navigate_any_point_activity_options.xml +++ b/main/res/menu/navigate_any_point_activity_options.xml @@ -1,25 +1,30 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_navigate" android:icon="@drawable/ic_menu_mapmode" - android:title="@string/cache_menu_navigate"> + android:title="@string/cache_menu_navigate" + cgeo:showAsAction="ifRoom"> </item> <item android:id="@+id/menu_default_navigation" android:icon="@drawable/ic_menu_compass" - android:title="@string/cache_menu_navigate"> <!-- will be replaced in code --> + android:title="@string/cache_menu_navigate" + cgeo:showAsAction="ifRoom"> <!-- will be replaced in code --> </item> <item android:id="@+id/menu_caches_around" android:icon="@drawable/ic_menu_rotate" - android:title="@string/cache_menu_around"> + android:title="@string/cache_menu_around" + cgeo:showAsAction="ifRoom"> </item> <item android:id="@+id/menu_clear_history" android:icon="@drawable/ic_menu_delete" - android:title="@string/search_clear_history"> + android:title="@string/search_clear_history" + cgeo:showAsAction="ifRoom"> </item> </menu>
\ No newline at end of file diff --git a/main/res/menu/search_activity_options.xml b/main/res/menu/search_activity_options.xml index fcd7401..c4ee62b 100644 --- a/main/res/menu/search_activity_options.xml +++ b/main/res/menu/search_activity_options.xml @@ -1,10 +1,13 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_search_own_caches" android:icon="@drawable/ic_menu_myplaces" - android:title="@string/search_own_caches"> + android:title="@string/search_own_caches" + cgeo:showAsAction="ifRoom|withText" + > </item> </menu>
\ No newline at end of file diff --git a/main/res/menu/static_maps_activity_options.xml b/main/res/menu/static_maps_activity_options.xml index 7850c92..8621153 100644 --- a/main/res/menu/static_maps_activity_options.xml +++ b/main/res/menu/static_maps_activity_options.xml @@ -1,9 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_refresh" android:icon="@drawable/ic_menu_refresh" + cgeo:showAsAction="ifRoom" android:title="@string/cache_offline_refresh"> </item> diff --git a/main/res/menu/trackable_activity.xml b/main/res/menu/trackable_activity.xml index ddf45f6..60eaa9e 100644 --- a/main/res/menu/trackable_activity.xml +++ b/main/res/menu/trackable_activity.xml @@ -1,14 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_log_touch" android:icon="@drawable/ic_menu_agenda" + cgeo:showAsAction="ifRoom|withText" android:title="@string/trackable_log_touch"> </item> <item android:id="@+id/menu_browser_trackable" android:icon="@drawable/ic_menu_info_details" + cgeo:showAsAction="ifRoom|withText" android:title="@string/trackable_browser_open"> </item> diff --git a/main/res/menu/waypoint_options.xml b/main/res/menu/waypoint_options.xml index f03cca6..5aaeac2 100644 --- a/main/res/menu/waypoint_options.xml +++ b/main/res/menu/waypoint_options.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<menu xmlns:android="http://schemas.android.com/apk/res/android" > +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:cgeo="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_waypoint_reset_cache_coords" |
