From be26c1845210a1c8824677ed6e2d093073ea5c84 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Sun, 20 Apr 2014 21:38:19 +0200 Subject: 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 --- main/AndroidManifest.xml | 2 +- main/project.properties | 1 + main/res/drawable/ic_menu_myposition.xml | 5 + main/res/layout-land/compass_activity.xml | 2 - main/res/layout-v11/actionbar_maps.xml | 7 + main/res/layout/actionbar.xml | 7 - main/res/layout/actionbar_button_compass.xml | 15 - main/res/layout/actionbar_button_map.xml | 13 - main/res/layout/actionbar_button_myposition.xml | 12 - main/res/layout/actionbar_button_search.xml | 13 - main/res/layout/actionbar_maps.xml | 41 +++ main/res/layout/actionbar_popup.xml | 32 ++ main/res/layout/actionbar_progress.xml | 5 - main/res/layout/actionbar_title.xml | 16 - main/res/layout/actionbar_title_no_home.xml | 10 - main/res/layout/addresslist_activity.xml | 2 +- main/res/layout/authorization_activity.xml | 2 - main/res/layout/cachedetail_activity.xml | 7 - main/res/layout/cachelist_spinneritem.xml | 32 ++ main/res/layout/cacheslist_activity.xml | 9 - main/res/layout/cacheslist_item.xml | 4 +- main/res/layout/compass_activity.xml | 2 - main/res/layout/editwaypoint_activity.xml | 2 - main/res/layout/gpx.xml | 2 - main/res/layout/images_activity.xml | 2 - main/res/layout/imageselect_activity.xml | 7 - main/res/layout/logcache_activity.xml | 7 - main/res/layout/logtrackable_activity.xml | 7 - main/res/layout/main_activity.xml | 11 - main/res/layout/map_google.xml | 7 +- main/res/layout/map_mapsforge.xml | 9 +- main/res/layout/map_mapsforge_old.xml | 9 +- main/res/layout/navigateanypoint_activity.xml | 2 - main/res/layout/popup.xml | 17 +- main/res/layout/search_activity.xml | 2 - main/res/layout/staticmaps_activity.xml | 2 - main/res/layout/usefulapps_activity.xml | 2 - main/res/layout/viewpager_activity.xml | 2 - main/res/layout/waypoint_popup.xml | 7 +- main/res/menu/abstract_logging_activity.xml | 12 +- main/res/menu/cache_list_context.xml | 16 +- main/res/menu/cache_list_options.xml | 11 +- main/res/menu/cache_options.xml | 24 +- main/res/menu/compass_activity_options.xml | 9 +- main/res/menu/details_context.xml | 3 +- main/res/menu/images_list_context.xml | 5 +- main/res/menu/logging_ui.xml | 5 +- main/res/menu/main_activity_options.xml | 17 +- main/res/menu/map_activity.xml | 19 +- .../menu/navigate_any_point_activity_options.xml | 15 +- main/res/menu/search_activity_options.xml | 7 +- main/res/menu/static_maps_activity_options.xml | 4 +- main/res/menu/trackable_activity.xml | 5 +- main/res/menu/waypoint_options.xml | 3 +- main/res/values/attrs.xml | 1 - main/res/values/strings.xml | 3 + main/res/values/styles.xml | 6 +- main/res/values/themes.xml | 63 +++- .../cgeo/geocaching/AbstractDialogFragment.java | 354 +++++++++++++++++++++ .../cgeo/geocaching/AbstractLoggingActivity.java | 4 +- .../src/cgeo/geocaching/AbstractPopupActivity.java | 260 --------------- main/src/cgeo/geocaching/CacheDetailActivity.java | 32 +- main/src/cgeo/geocaching/CacheListActivity.java | 154 +++++++-- main/src/cgeo/geocaching/CacheMenuHandler.java | 32 +- main/src/cgeo/geocaching/CachePopup.java | 214 +++---------- main/src/cgeo/geocaching/CachePopupFragment.java | 229 +++++++++++++ main/src/cgeo/geocaching/CompassActivity.java | 4 +- .../cgeo/geocaching/CreateShortcutActivity.java | 4 +- main/src/cgeo/geocaching/EditWaypointActivity.java | 4 +- main/src/cgeo/geocaching/Geocache.java | 8 +- main/src/cgeo/geocaching/ImageSelectActivity.java | 4 +- main/src/cgeo/geocaching/ImagesActivity.java | 4 +- main/src/cgeo/geocaching/MainActivity.java | 30 +- .../cgeo/geocaching/NavigateAnyPointActivity.java | 6 +- main/src/cgeo/geocaching/SearchActivity.java | 4 +- main/src/cgeo/geocaching/StaticMapsActivity.java | 6 +- main/src/cgeo/geocaching/TrackableActivity.java | 9 +- main/src/cgeo/geocaching/UsefulAppsActivity.java | 4 +- main/src/cgeo/geocaching/WaypointPopup.java | 136 ++------ .../src/cgeo/geocaching/WaypointPopupFragment.java | 147 +++++++++ .../activity/AbstractActionBarActivity.java | 34 ++ .../cgeo/geocaching/activity/AbstractActivity.java | 28 +- .../geocaching/activity/AbstractListActivity.java | 26 +- .../activity/AbstractViewPagerActivity.java | 2 +- .../geocaching/activity/ActionBarListActivity.java | 34 ++ .../cgeo/geocaching/activity/ActivityMixin.java | 39 +-- main/src/cgeo/geocaching/list/AbstractList.java | 4 + main/src/cgeo/geocaching/list/PseudoList.java | 10 + main/src/cgeo/geocaching/list/StoredList.java | 57 ++-- main/src/cgeo/geocaching/maps/AbstractMap.java | 6 + main/src/cgeo/geocaching/maps/CGeoMap.java | 102 +++++- .../geocaching/maps/google/GoogleMapActivity.java | 12 +- .../maps/interfaces/MapActivityImpl.java | 1 - .../network/OAuthAuthorizationActivity.java | 4 +- .../cgeo/geocaching/utils/TranslationUtils.java | 4 +- 95 files changed, 1617 insertions(+), 959 deletions(-) create mode 100644 main/res/drawable/ic_menu_myposition.xml create mode 100644 main/res/layout-v11/actionbar_maps.xml delete mode 100644 main/res/layout/actionbar.xml delete mode 100644 main/res/layout/actionbar_button_compass.xml delete mode 100644 main/res/layout/actionbar_button_map.xml delete mode 100644 main/res/layout/actionbar_button_myposition.xml delete mode 100644 main/res/layout/actionbar_button_search.xml create mode 100644 main/res/layout/actionbar_maps.xml create mode 100644 main/res/layout/actionbar_popup.xml delete mode 100644 main/res/layout/actionbar_progress.xml delete mode 100644 main/res/layout/actionbar_title.xml delete mode 100644 main/res/layout/actionbar_title_no_home.xml create mode 100644 main/res/layout/cachelist_spinneritem.xml create mode 100644 main/src/cgeo/geocaching/AbstractDialogFragment.java delete mode 100644 main/src/cgeo/geocaching/AbstractPopupActivity.java create mode 100644 main/src/cgeo/geocaching/CachePopupFragment.java create mode 100644 main/src/cgeo/geocaching/WaypointPopupFragment.java create mode 100644 main/src/cgeo/geocaching/activity/AbstractActionBarActivity.java create mode 100644 main/src/cgeo/geocaching/activity/ActionBarListActivity.java (limited to 'main') diff --git a/main/AndroidManifest.xml b/main/AndroidManifest.xml index 7836d07..14395ec 100644 --- a/main/AndroidManifest.xml +++ b/main/AndroidManifest.xml @@ -7,7 +7,7 @@ + android:targetSdkVersion="19" /> diff --git a/main/project.properties b/main/project.properties index a761287..cef9857 100644 --- a/main/project.properties +++ b/main/project.properties @@ -13,3 +13,4 @@ proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project. # Project target. target=Google Inc.:Google APIs:19 android.library.reference.1=../mapswithme-api +android.library.reference.2=../../sdkdir/extras/android/support/v7/appcompat \ No newline at end of file diff --git a/main/res/drawable/ic_menu_myposition.xml b/main/res/drawable/ic_menu_myposition.xml new file mode 100644 index 0000000..62d5546 --- /dev/null +++ b/main/res/drawable/ic_menu_myposition.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/main/res/layout-land/compass_activity.xml b/main/res/layout-land/compass_activity.xml index 00e12bf..580bf76 100644 --- a/main/res/layout-land/compass_activity.xml +++ b/main/res/layout-land/compass_activity.xml @@ -5,8 +5,6 @@ android:background="?background_color" android:orientation="vertical" > - - + + + + + \ No newline at end of file diff --git a/main/res/layout/actionbar.xml b/main/res/layout/actionbar.xml deleted file mode 100644 index 098120c..0000000 --- a/main/res/layout/actionbar.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/main/res/layout/actionbar_button_compass.xml b/main/res/layout/actionbar_button_compass.xml deleted file mode 100644 index 932444b..0000000 --- a/main/res/layout/actionbar_button_compass.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/main/res/layout/actionbar_button_map.xml b/main/res/layout/actionbar_button_map.xml deleted file mode 100644 index 9b2138a..0000000 --- a/main/res/layout/actionbar_button_map.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/main/res/layout/actionbar_button_myposition.xml b/main/res/layout/actionbar_button_myposition.xml deleted file mode 100644 index 1e91419..0000000 --- a/main/res/layout/actionbar_button_myposition.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/main/res/layout/actionbar_button_search.xml b/main/res/layout/actionbar_button_search.xml deleted file mode 100644 index 2aa1a50..0000000 --- a/main/res/layout/actionbar_button_search.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/main/res/layout/actionbar_maps.xml b/main/res/layout/actionbar_maps.xml new file mode 100644 index 0000000..61e3acc --- /dev/null +++ b/main/res/layout/actionbar_maps.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/main/res/layout/actionbar_popup.xml b/main/res/layout/actionbar_popup.xml new file mode 100644 index 0000000..0cab165 --- /dev/null +++ b/main/res/layout/actionbar_popup.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/main/res/layout/actionbar_progress.xml b/main/res/layout/actionbar_progress.xml deleted file mode 100644 index 54b5875..0000000 --- a/main/res/layout/actionbar_progress.xml +++ /dev/null @@ -1,5 +0,0 @@ - - diff --git a/main/res/layout/actionbar_title.xml b/main/res/layout/actionbar_title.xml deleted file mode 100644 index 4fa5348..0000000 --- a/main/res/layout/actionbar_title.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/main/res/layout/actionbar_title_no_home.xml b/main/res/layout/actionbar_title_no_home.xml deleted file mode 100644 index 6295bdc..0000000 --- a/main/res/layout/actionbar_title_no_home.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/main/res/layout/addresslist_activity.xml b/main/res/layout/addresslist_activity.xml index c48c28f..e5c6491 100644 --- a/main/res/layout/addresslist_activity.xml +++ b/main/res/layout/addresslist_activity.xml @@ -4,7 +4,7 @@ android:layout_height="fill_parent" android:orientation="vertical" > - + - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/main/res/layout/cacheslist_activity.xml b/main/res/layout/cacheslist_activity.xml index c267f60..a12adad 100644 --- a/main/res/layout/cacheslist_activity.xml +++ b/main/res/layout/cacheslist_activity.xml @@ -4,15 +4,6 @@ android:layout_height="fill_parent" android:orientation="vertical" > - - - - - - - - - - - - - - -