From 50e6182c8d6b9e6eba61fa3906c0ff348764efd8 Mon Sep 17 00:00:00 2001 From: John Reck Date: Tue, 30 Oct 2012 17:34:20 -0700 Subject: Gingerbread support-ish This reverts commit 1336062985c9824d7fd796b1cebd5eaa8e4163ca. Change-Id: I718ec56315dc207a3e612abb4576bddab9afa2ee --- .../abs__primary_text_disable_only_holo_dark.xml | 20 + .../abs__primary_text_disable_only_holo_light.xml | 21 + .../res/color/abs__primary_text_holo_dark.xml | 24 + .../res/color/abs__primary_text_holo_light.xml | 26 + .../abs__ab_bottom_solid_dark_holo.9.png | Bin 0 -> 144 bytes .../abs__ab_bottom_solid_inverse_holo.9.png | Bin 0 -> 138 bytes .../abs__ab_bottom_solid_light_holo.9.png | Bin 0 -> 144 bytes .../abs__ab_bottom_transparent_dark_holo.9.png | Bin 0 -> 135 bytes .../abs__ab_bottom_transparent_light_holo.9.png | Bin 0 -> 134 bytes .../abs__ab_share_pack_holo_dark.9.png | Bin 0 -> 2866 bytes .../abs__ab_share_pack_holo_light.9.png | Bin 0 -> 2862 bytes .../drawable-hdpi/abs__ab_solid_dark_holo.9.png | Bin 0 -> 146 bytes .../drawable-hdpi/abs__ab_solid_light_holo.9.png | Bin 0 -> 145 bytes .../drawable-hdpi/abs__ab_solid_shadow_holo.9.png | Bin 0 -> 192 bytes .../abs__ab_stacked_solid_dark_holo.9.png | Bin 0 -> 146 bytes .../abs__ab_stacked_solid_light_holo.9.png | Bin 0 -> 146 bytes .../abs__ab_stacked_transparent_dark_holo.9.png | Bin 0 -> 139 bytes .../abs__ab_stacked_transparent_light_holo.9.png | Bin 0 -> 133 bytes .../abs__ab_transparent_dark_holo.9.png | Bin 0 -> 155 bytes .../abs__ab_transparent_light_holo.9.png | Bin 0 -> 145 bytes .../abs__btn_cab_done_default_holo_dark.9.png | Bin 0 -> 104 bytes .../abs__btn_cab_done_default_holo_light.9.png | Bin 0 -> 102 bytes .../abs__btn_cab_done_focused_holo_dark.9.png | Bin 0 -> 112 bytes .../abs__btn_cab_done_focused_holo_light.9.png | Bin 0 -> 108 bytes .../abs__btn_cab_done_pressed_holo_dark.9.png | Bin 0 -> 110 bytes .../abs__btn_cab_done_pressed_holo_light.9.png | Bin 0 -> 108 bytes .../abs__cab_background_bottom_holo_dark.9.png | Bin 0 -> 149 bytes .../abs__cab_background_bottom_holo_light.9.png | Bin 0 -> 145 bytes .../abs__cab_background_top_holo_dark.9.png | Bin 0 -> 147 bytes .../abs__cab_background_top_holo_light.9.png | Bin 0 -> 147 bytes .../drawable-hdpi/abs__dialog_full_holo_dark.9.png | Bin 0 -> 1414 bytes .../abs__dialog_full_holo_light.9.png | Bin 0 -> 1537 bytes .../drawable-hdpi/abs__ic_ab_back_holo_dark.png | Bin 0 -> 602 bytes .../drawable-hdpi/abs__ic_ab_back_holo_light.png | Bin 0 -> 546 bytes .../drawable-hdpi/abs__ic_cab_done_holo_dark.png | Bin 0 -> 713 bytes .../drawable-hdpi/abs__ic_cab_done_holo_light.png | Bin 0 -> 737 bytes .../abs__ic_menu_moreoverflow_normal_holo_dark.png | Bin 0 -> 144 bytes ...abs__ic_menu_moreoverflow_normal_holo_light.png | Bin 0 -> 148 bytes .../drawable-hdpi/abs__ic_menu_share_holo_dark.png | Bin 0 -> 467 bytes .../abs__ic_menu_share_holo_light.png | Bin 0 -> 505 bytes .../drawable-hdpi/abs__list_activated_holo.9.png | Bin 0 -> 154 bytes .../abs__list_divider_holo_dark.9.png | Bin 0 -> 78 bytes .../abs__list_divider_holo_light.9.png | Bin 0 -> 76 bytes .../res/drawable-hdpi/abs__list_focused_holo.9.png | Bin 0 -> 159 bytes .../drawable-hdpi/abs__list_longpressed_holo.9.png | Bin 0 -> 154 bytes .../abs__list_pressed_holo_dark.9.png | Bin 0 -> 159 bytes .../abs__list_pressed_holo_light.9.png | Bin 0 -> 159 bytes .../abs__list_selector_disabled_holo_dark.9.png | Bin 0 -> 189 bytes .../abs__list_selector_disabled_holo_light.9.png | Bin 0 -> 189 bytes .../abs__menu_dropdown_panel_holo_dark.9.png | Bin 0 -> 922 bytes .../abs__menu_dropdown_panel_holo_light.9.png | Bin 0 -> 1061 bytes .../drawable-hdpi/abs__progress_bg_holo_dark.9.png | Bin 0 -> 178 bytes .../abs__progress_bg_holo_light.9.png | Bin 0 -> 174 bytes .../abs__progress_primary_holo_dark.9.png | Bin 0 -> 917 bytes .../abs__progress_primary_holo_light.9.png | Bin 0 -> 917 bytes .../abs__progress_secondary_holo_dark.9.png | Bin 0 -> 188 bytes .../abs__progress_secondary_holo_light.9.png | Bin 0 -> 188 bytes .../drawable-hdpi/abs__spinner_48_inner_holo.png | Bin 0 -> 2081 bytes .../drawable-hdpi/abs__spinner_48_outer_holo.png | Bin 0 -> 1811 bytes .../abs__spinner_ab_default_holo_dark.9.png | Bin 0 -> 311 bytes .../abs__spinner_ab_default_holo_light.9.png | Bin 0 -> 312 bytes .../abs__spinner_ab_disabled_holo_dark.9.png | Bin 0 -> 306 bytes .../abs__spinner_ab_disabled_holo_light.9.png | Bin 0 -> 306 bytes .../abs__spinner_ab_focused_holo_dark.9.png | Bin 0 -> 524 bytes .../abs__spinner_ab_focused_holo_light.9.png | Bin 0 -> 523 bytes .../abs__spinner_ab_pressed_holo_dark.9.png | Bin 0 -> 464 bytes .../abs__spinner_ab_pressed_holo_light.9.png | Bin 0 -> 458 bytes .../abs__tab_selected_focused_holo.9.png | Bin 0 -> 147 bytes .../res/drawable-hdpi/abs__tab_selected_holo.9.png | Bin 0 -> 148 bytes .../abs__tab_selected_pressed_holo.9.png | Bin 0 -> 147 bytes .../abs__tab_unselected_pressed_holo.9.png | Bin 0 -> 145 bytes .../abs__ab_bottom_solid_dark_holo.9.png | Bin 0 -> 134 bytes .../abs__ab_bottom_solid_inverse_holo.9.png | Bin 0 -> 129 bytes .../abs__ab_bottom_solid_light_holo.9.png | Bin 0 -> 134 bytes .../abs__ab_bottom_transparent_dark_holo.9.png | Bin 0 -> 123 bytes .../abs__ab_bottom_transparent_light_holo.9.png | Bin 0 -> 123 bytes .../abs__ab_share_pack_holo_dark.9.png | Bin 0 -> 2851 bytes .../abs__ab_share_pack_holo_light.9.png | Bin 0 -> 122 bytes .../drawable-mdpi/abs__ab_solid_dark_holo.9.png | Bin 0 -> 133 bytes .../drawable-mdpi/abs__ab_solid_light_holo.9.png | Bin 0 -> 133 bytes .../drawable-mdpi/abs__ab_solid_shadow_holo.9.png | Bin 0 -> 168 bytes .../abs__ab_stacked_solid_dark_holo.9.png | Bin 0 -> 134 bytes .../abs__ab_stacked_solid_light_holo.9.png | Bin 0 -> 133 bytes .../abs__ab_stacked_transparent_dark_holo.9.png | Bin 0 -> 127 bytes .../abs__ab_stacked_transparent_light_holo.9.png | Bin 0 -> 123 bytes .../abs__ab_transparent_dark_holo.9.png | Bin 0 -> 139 bytes .../abs__ab_transparent_light_holo.9.png | Bin 0 -> 133 bytes .../abs__btn_cab_done_default_holo_dark.9.png | Bin 0 -> 101 bytes .../abs__btn_cab_done_default_holo_light.9.png | Bin 0 -> 99 bytes .../abs__btn_cab_done_focused_holo_dark.9.png | Bin 0 -> 109 bytes .../abs__btn_cab_done_focused_holo_light.9.png | Bin 0 -> 105 bytes .../abs__btn_cab_done_pressed_holo_dark.9.png | Bin 0 -> 107 bytes .../abs__btn_cab_done_pressed_holo_light.9.png | Bin 0 -> 105 bytes .../abs__cab_background_bottom_holo_dark.9.png | Bin 0 -> 127 bytes .../abs__cab_background_bottom_holo_light.9.png | Bin 0 -> 124 bytes .../abs__cab_background_top_holo_dark.9.png | Bin 0 -> 130 bytes .../abs__cab_background_top_holo_light.9.png | Bin 0 -> 128 bytes .../drawable-mdpi/abs__dialog_full_holo_dark.9.png | Bin 0 -> 882 bytes .../abs__dialog_full_holo_light.9.png | Bin 0 -> 1003 bytes .../drawable-mdpi/abs__ic_ab_back_holo_dark.png | Bin 0 -> 466 bytes .../drawable-mdpi/abs__ic_ab_back_holo_light.png | Bin 0 -> 438 bytes .../drawable-mdpi/abs__ic_cab_done_holo_dark.png | Bin 0 -> 566 bytes .../drawable-mdpi/abs__ic_cab_done_holo_light.png | Bin 0 -> 552 bytes .../abs__ic_menu_moreoverflow_normal_holo_dark.png | Bin 0 -> 122 bytes ...abs__ic_menu_moreoverflow_normal_holo_light.png | Bin 0 -> 131 bytes .../drawable-mdpi/abs__ic_menu_share_holo_dark.png | Bin 0 -> 332 bytes .../abs__ic_menu_share_holo_light.png | Bin 0 -> 355 bytes .../drawable-mdpi/abs__list_activated_holo.9.png | Bin 0 -> 151 bytes .../abs__list_divider_holo_dark.9.png | Bin 0 -> 78 bytes .../abs__list_divider_holo_light.9.png | Bin 0 -> 76 bytes .../res/drawable-mdpi/abs__list_focused_holo.9.png | Bin 0 -> 158 bytes .../drawable-mdpi/abs__list_longpressed_holo.9.png | Bin 0 -> 151 bytes .../abs__list_pressed_holo_dark.9.png | Bin 0 -> 158 bytes .../abs__list_pressed_holo_light.9.png | Bin 0 -> 158 bytes .../abs__list_selector_disabled_holo_dark.9.png | Bin 0 -> 172 bytes .../abs__list_selector_disabled_holo_light.9.png | Bin 0 -> 171 bytes .../abs__menu_dropdown_panel_holo_dark.9.png | Bin 0 -> 651 bytes .../abs__menu_dropdown_panel_holo_light.9.png | Bin 0 -> 720 bytes .../drawable-mdpi/abs__progress_bg_holo_dark.9.png | Bin 0 -> 165 bytes .../abs__progress_bg_holo_light.9.png | Bin 0 -> 159 bytes .../abs__progress_primary_holo_dark.9.png | Bin 0 -> 572 bytes .../abs__progress_primary_holo_light.9.png | Bin 0 -> 572 bytes .../abs__progress_secondary_holo_dark.9.png | Bin 0 -> 170 bytes .../abs__progress_secondary_holo_light.9.png | Bin 0 -> 170 bytes .../drawable-mdpi/abs__spinner_48_inner_holo.png | Bin 0 -> 1336 bytes .../drawable-mdpi/abs__spinner_48_outer_holo.png | Bin 0 -> 1165 bytes .../abs__spinner_ab_default_holo_dark.9.png | Bin 0 -> 254 bytes .../abs__spinner_ab_default_holo_light.9.png | Bin 0 -> 255 bytes .../abs__spinner_ab_disabled_holo_dark.9.png | Bin 0 -> 249 bytes .../abs__spinner_ab_disabled_holo_light.9.png | Bin 0 -> 249 bytes .../abs__spinner_ab_focused_holo_dark.9.png | Bin 0 -> 417 bytes .../abs__spinner_ab_focused_holo_light.9.png | Bin 0 -> 424 bytes .../abs__spinner_ab_pressed_holo_dark.9.png | Bin 0 -> 370 bytes .../abs__spinner_ab_pressed_holo_light.9.png | Bin 0 -> 370 bytes .../abs__tab_selected_focused_holo.9.png | Bin 0 -> 148 bytes .../res/drawable-mdpi/abs__tab_selected_holo.9.png | Bin 0 -> 151 bytes .../abs__tab_selected_pressed_holo.9.png | Bin 0 -> 150 bytes .../abs__tab_unselected_pressed_holo.9.png | Bin 0 -> 155 bytes .../res/drawable-v11/abs__progress_medium_holo.xml | 34 + .../abs__ab_bottom_solid_dark_holo.9.png | Bin 0 -> 165 bytes .../abs__ab_bottom_solid_inverse_holo.9.png | Bin 0 -> 157 bytes .../abs__ab_bottom_solid_light_holo.9.png | Bin 0 -> 166 bytes .../abs__ab_bottom_transparent_dark_holo.9.png | Bin 0 -> 153 bytes .../abs__ab_bottom_transparent_light_holo.9.png | Bin 0 -> 152 bytes .../abs__ab_share_pack_holo_dark.9.png | Bin 0 -> 2875 bytes .../abs__ab_share_pack_holo_light.9.png | Bin 0 -> 2869 bytes .../drawable-xhdpi/abs__ab_solid_dark_holo.9.png | Bin 0 -> 163 bytes .../drawable-xhdpi/abs__ab_solid_light_holo.9.png | Bin 0 -> 163 bytes .../drawable-xhdpi/abs__ab_solid_shadow_holo.9.png | Bin 0 -> 290 bytes .../abs__ab_stacked_solid_dark_holo.9.png | Bin 0 -> 163 bytes .../abs__ab_stacked_solid_light_holo.9.png | Bin 0 -> 163 bytes .../abs__ab_stacked_transparent_dark_holo.9.png | Bin 0 -> 158 bytes .../abs__ab_stacked_transparent_light_holo.9.png | Bin 0 -> 152 bytes .../abs__ab_transparent_dark_holo.9.png | Bin 0 -> 171 bytes .../abs__ab_transparent_light_holo.9.png | Bin 0 -> 160 bytes .../abs__btn_cab_done_default_holo_dark.9.png | Bin 0 -> 109 bytes .../abs__btn_cab_done_default_holo_light.9.png | Bin 0 -> 108 bytes .../abs__btn_cab_done_focused_holo_dark.9.png | Bin 0 -> 112 bytes .../abs__btn_cab_done_focused_holo_light.9.png | Bin 0 -> 113 bytes .../abs__btn_cab_done_pressed_holo_dark.9.png | Bin 0 -> 115 bytes .../abs__btn_cab_done_pressed_holo_light.9.png | Bin 0 -> 113 bytes .../abs__cab_background_bottom_holo_dark.9.png | Bin 0 -> 166 bytes .../abs__cab_background_bottom_holo_light.9.png | Bin 0 -> 161 bytes .../abs__cab_background_top_holo_dark.9.png | Bin 0 -> 174 bytes .../abs__cab_background_top_holo_light.9.png | Bin 0 -> 161 bytes .../abs__dialog_full_holo_dark.9.png | Bin 0 -> 2159 bytes .../abs__dialog_full_holo_light.9.png | Bin 0 -> 2302 bytes .../drawable-xhdpi/abs__ic_ab_back_holo_dark.png | Bin 0 -> 741 bytes .../drawable-xhdpi/abs__ic_ab_back_holo_light.png | Bin 0 -> 661 bytes .../drawable-xhdpi/abs__ic_cab_done_holo_dark.png | Bin 0 -> 970 bytes .../drawable-xhdpi/abs__ic_cab_done_holo_light.png | Bin 0 -> 915 bytes .../abs__ic_menu_moreoverflow_normal_holo_dark.png | Bin 0 -> 167 bytes ...abs__ic_menu_moreoverflow_normal_holo_light.png | Bin 0 -> 184 bytes .../abs__ic_menu_share_holo_dark.png | Bin 0 -> 699 bytes .../abs__ic_menu_share_holo_light.png | Bin 0 -> 935 bytes .../drawable-xhdpi/abs__list_activated_holo.9.png | Bin 0 -> 158 bytes .../abs__list_divider_holo_dark.9.png | Bin 0 -> 83 bytes .../abs__list_divider_holo_light.9.png | Bin 0 -> 83 bytes .../drawable-xhdpi/abs__list_focused_holo.9.png | Bin 0 -> 163 bytes .../abs__list_longpressed_holo.9.png | Bin 0 -> 158 bytes .../abs__list_pressed_holo_dark.9.png | Bin 0 -> 163 bytes .../abs__list_pressed_holo_light.9.png | Bin 0 -> 163 bytes .../abs__list_selector_disabled_holo_dark.9.png | Bin 0 -> 190 bytes .../abs__list_selector_disabled_holo_light.9.png | Bin 0 -> 188 bytes .../abs__menu_dropdown_panel_holo_dark.9.png | Bin 0 -> 1362 bytes .../abs__menu_dropdown_panel_holo_light.9.png | Bin 0 -> 1551 bytes .../abs__progress_bg_holo_dark.9.png | Bin 0 -> 174 bytes .../abs__progress_bg_holo_light.9.png | Bin 0 -> 172 bytes .../abs__progress_primary_holo_dark.9.png | Bin 0 -> 1309 bytes .../abs__progress_primary_holo_light.9.png | Bin 0 -> 1309 bytes .../abs__progress_secondary_holo_dark.9.png | Bin 0 -> 184 bytes .../abs__progress_secondary_holo_light.9.png | Bin 0 -> 184 bytes .../drawable-xhdpi/abs__spinner_48_inner_holo.png | Bin 0 -> 2769 bytes .../drawable-xhdpi/abs__spinner_48_outer_holo.png | Bin 0 -> 2432 bytes .../abs__spinner_ab_default_holo_dark.9.png | Bin 0 -> 395 bytes .../abs__spinner_ab_default_holo_light.9.png | Bin 0 -> 394 bytes .../abs__spinner_ab_disabled_holo_dark.9.png | Bin 0 -> 381 bytes .../abs__spinner_ab_disabled_holo_light.9.png | Bin 0 -> 381 bytes .../abs__spinner_ab_focused_holo_dark.9.png | Bin 0 -> 680 bytes .../abs__spinner_ab_focused_holo_light.9.png | Bin 0 -> 671 bytes .../abs__spinner_ab_pressed_holo_dark.9.png | Bin 0 -> 609 bytes .../abs__spinner_ab_pressed_holo_light.9.png | Bin 0 -> 602 bytes .../abs__tab_selected_focused_holo.9.png | Bin 0 -> 147 bytes .../drawable-xhdpi/abs__tab_selected_holo.9.png | Bin 0 -> 153 bytes .../abs__tab_selected_pressed_holo.9.png | Bin 0 -> 147 bytes .../abs__tab_unselected_pressed_holo.9.png | Bin 0 -> 149 bytes .../abs__activated_background_holo_dark.xml | 20 + .../abs__activated_background_holo_light.xml | 20 + .../res/drawable/abs__btn_cab_done_holo_dark.xml | 24 + .../res/drawable/abs__btn_cab_done_holo_light.xml | 24 + .../abs__ic_menu_moreoverflow_holo_dark.xml | 18 + .../abs__ic_menu_moreoverflow_holo_light.xml | 18 + .../drawable/abs__item_background_holo_dark.xml | 26 + .../drawable/abs__item_background_holo_light.xml | 26 + ...st_selector_background_transition_holo_dark.xml | 20 + ...t_selector_background_transition_holo_light.xml | 20 + .../res/drawable/abs__list_selector_holo_dark.xml | 27 + .../res/drawable/abs__list_selector_holo_light.xml | 28 + .../abs__progress_horizontal_holo_dark.xml | 32 + .../abs__progress_horizontal_holo_light.xml | 32 + .../res/drawable/abs__progress_medium_holo.xml | 34 + .../res/drawable/abs__spinner_ab_holo_dark.xml | 25 + .../res/drawable/abs__spinner_ab_holo_light.xml | 25 + .../res/drawable/abs__tab_indicator_ab_holo.xml | 34 + .../layout-large/abs__action_mode_close_item.xml | 40 + .../layout-v14/sherlock_spinner_dropdown_item.xml | 26 + .../res/layout-v14/sherlock_spinner_item.xml | 26 + .../res/layout-xlarge/abs__screen_action_bar.xml | 50 + .../abs__screen_action_bar_overlay.xml | 49 + .../res/layout/abs__action_bar_home.xml | 38 + .../res/layout/abs__action_bar_tab.xml | 7 + .../res/layout/abs__action_bar_tab_bar_view.xml | 6 + .../res/layout/abs__action_bar_title_item.xml | 50 + .../res/layout/abs__action_menu_item_layout.xml | 56 + .../res/layout/abs__action_menu_layout.xml | 23 + .../res/layout/abs__action_mode_bar.xml | 24 + .../res/layout/abs__action_mode_close_item.xml | 31 + .../res/layout/abs__activity_chooser_view.xml | 70 ++ .../abs__activity_chooser_view_list_item.xml | 53 + .../res/layout/abs__dialog_title_holo.xml | 46 + .../res/layout/abs__list_menu_item_checkbox.xml | 26 + .../res/layout/abs__list_menu_item_icon.xml | 28 + .../res/layout/abs__list_menu_item_layout.xml | 59 + .../res/layout/abs__list_menu_item_radio.xml | 24 + .../res/layout/abs__popup_menu_item_layout.xml | 60 + .../res/layout/abs__screen_action_bar.xml | 57 + .../res/layout/abs__screen_action_bar_overlay.xml | 59 + .../res/layout/abs__screen_simple.xml | 38 + .../abs__screen_simple_overlay_action_mode.xml | 38 + .../res/layout/sherlock_spinner_dropdown_item.xml | 26 + .../res/layout/sherlock_spinner_item.xml | 26 + actionbarsherlock/res/values-land/abs__dimens.xml | 33 + .../res/values-large-hdpi-1024x600/abs__dimens.xml | 33 + .../abs__dimens.xml | 33 + .../abs__dimens.xml | 33 + .../res/values-large-mdpi-1024x600/abs__dimens.xml | 36 + actionbarsherlock/res/values-large/abs__dimens.xml | 29 + .../res/values-sw600dp/abs__bools.xml | 19 + .../res/values-sw600dp/abs__dimens.xml | 38 + actionbarsherlock/res/values-v11/abs__themes.xml | 12 + actionbarsherlock/res/values-v14/abs__styles.xml | 118 ++ actionbarsherlock/res/values-v14/abs__themes.xml | 32 + .../res/values-w360dp/abs__dimens.xml | 22 + actionbarsherlock/res/values-w480dp/abs__bools.xml | 22 + .../res/values-w480dp/abs__config.xml | 29 + .../res/values-w500dp/abs__dimens.xml | 22 + .../res/values-w600dp/abs__dimens.xml | 22 + .../res/values-xlarge/abs__dimens.xml | 45 + actionbarsherlock/res/values/abs__attrs.xml | 380 +++++++ actionbarsherlock/res/values/abs__bools.xml | 22 + actionbarsherlock/res/values/abs__colors.xml | 27 + actionbarsherlock/res/values/abs__config.xml | 43 + actionbarsherlock/res/values/abs__dimens.xml | 50 + actionbarsherlock/res/values/abs__ids.xml | 26 + actionbarsherlock/res/values/abs__strings.xml | 42 + actionbarsherlock/res/values/abs__styles.xml | 384 +++++++ actionbarsherlock/res/values/abs__themes.xml | 226 ++++ .../internal/view/menu/ActionMenuPresenter.java | 721 ++++++++++++ .../internal/view/menu/BaseMenuPresenter.java | 231 ++++ .../internal/view/menu/MenuPresenter.java | 148 +++ .../internal/widget/IcsProgressBar.java | 1193 ++++++++++++++++++++ res/layout/action_bar_text.xml | 2 +- res/layout/action_mode.xml | 6 +- res/layout/popup_list_item.xml | 4 +- res/menu/movie.xml | 2 +- res/menu/operation.xml | 4 +- res/menu/photo.xml | 4 +- res/values-v14/styles.xml | 2 +- res/values/styles.xml | 4 +- 289 files changed, 5699 insertions(+), 14 deletions(-) create mode 100644 actionbarsherlock/res/color/abs__primary_text_disable_only_holo_dark.xml create mode 100644 actionbarsherlock/res/color/abs__primary_text_disable_only_holo_light.xml create mode 100644 actionbarsherlock/res/color/abs__primary_text_holo_dark.xml create mode 100644 actionbarsherlock/res/color/abs__primary_text_holo_light.xml create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_solid_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_solid_inverse_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_solid_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_transparent_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_transparent_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_share_pack_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_share_pack_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_solid_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_solid_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_solid_shadow_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_solid_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_solid_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_transparent_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_transparent_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_transparent_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ab_transparent_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_default_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_default_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_focused_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_focused_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__cab_background_bottom_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__cab_background_bottom_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__cab_background_top_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__cab_background_top_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__dialog_full_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__dialog_full_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ic_ab_back_holo_dark.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ic_ab_back_holo_light.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ic_cab_done_holo_dark.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ic_cab_done_holo_light.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_light.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ic_menu_share_holo_dark.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__ic_menu_share_holo_light.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__list_activated_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__list_divider_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__list_divider_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__list_focused_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__list_longpressed_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__list_pressed_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__list_pressed_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__list_selector_disabled_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__list_selector_disabled_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__menu_dropdown_panel_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__menu_dropdown_panel_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__progress_bg_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__progress_bg_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__progress_primary_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__progress_primary_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__progress_secondary_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__progress_secondary_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__spinner_48_inner_holo.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__spinner_48_outer_holo.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_default_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_default_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_disabled_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_disabled_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_focused_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_focused_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_pressed_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_pressed_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__tab_selected_focused_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__tab_selected_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__tab_selected_pressed_holo.9.png create mode 100644 actionbarsherlock/res/drawable-hdpi/abs__tab_unselected_pressed_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_solid_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_solid_inverse_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_solid_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_transparent_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_transparent_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_share_pack_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_share_pack_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_solid_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_solid_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_solid_shadow_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_solid_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_solid_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_transparent_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_transparent_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_transparent_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ab_transparent_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_default_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_default_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_focused_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_focused_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__cab_background_bottom_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__cab_background_bottom_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__cab_background_top_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__cab_background_top_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__dialog_full_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__dialog_full_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ic_ab_back_holo_dark.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ic_ab_back_holo_light.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ic_cab_done_holo_dark.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ic_cab_done_holo_light.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_light.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ic_menu_share_holo_dark.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__ic_menu_share_holo_light.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__list_activated_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__list_divider_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__list_divider_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__list_focused_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__list_longpressed_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__list_pressed_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__list_pressed_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__list_selector_disabled_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__list_selector_disabled_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__menu_dropdown_panel_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__menu_dropdown_panel_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__progress_bg_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__progress_bg_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__progress_primary_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__progress_primary_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__progress_secondary_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__progress_secondary_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__spinner_48_inner_holo.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__spinner_48_outer_holo.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_default_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_default_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_disabled_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_disabled_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_focused_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_focused_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_pressed_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_pressed_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__tab_selected_focused_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__tab_selected_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__tab_selected_pressed_holo.9.png create mode 100644 actionbarsherlock/res/drawable-mdpi/abs__tab_unselected_pressed_holo.9.png create mode 100644 actionbarsherlock/res/drawable-v11/abs__progress_medium_holo.xml create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_solid_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_solid_inverse_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_solid_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_transparent_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_transparent_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_share_pack_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_share_pack_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_solid_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_solid_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_solid_shadow_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_solid_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_solid_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_transparent_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_transparent_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_transparent_dark_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ab_transparent_light_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_default_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_default_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__cab_background_bottom_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__cab_background_bottom_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__cab_background_top_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__cab_background_top_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__dialog_full_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__dialog_full_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ic_ab_back_holo_dark.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ic_ab_back_holo_light.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ic_cab_done_holo_dark.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ic_cab_done_holo_light.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_light.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_share_holo_dark.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_share_holo_light.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__list_activated_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__list_divider_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__list_divider_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__list_focused_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__list_longpressed_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__list_pressed_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__list_pressed_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__list_selector_disabled_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__list_selector_disabled_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__progress_bg_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__progress_bg_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__progress_primary_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__progress_primary_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__progress_secondary_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__progress_secondary_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__spinner_48_inner_holo.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__spinner_48_outer_holo.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_default_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_default_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_focused_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_focused_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_dark.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_light.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__tab_selected_focused_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__tab_selected_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__tab_selected_pressed_holo.9.png create mode 100644 actionbarsherlock/res/drawable-xhdpi/abs__tab_unselected_pressed_holo.9.png create mode 100644 actionbarsherlock/res/drawable/abs__activated_background_holo_dark.xml create mode 100644 actionbarsherlock/res/drawable/abs__activated_background_holo_light.xml create mode 100644 actionbarsherlock/res/drawable/abs__btn_cab_done_holo_dark.xml create mode 100644 actionbarsherlock/res/drawable/abs__btn_cab_done_holo_light.xml create mode 100644 actionbarsherlock/res/drawable/abs__ic_menu_moreoverflow_holo_dark.xml create mode 100644 actionbarsherlock/res/drawable/abs__ic_menu_moreoverflow_holo_light.xml create mode 100644 actionbarsherlock/res/drawable/abs__item_background_holo_dark.xml create mode 100644 actionbarsherlock/res/drawable/abs__item_background_holo_light.xml create mode 100644 actionbarsherlock/res/drawable/abs__list_selector_background_transition_holo_dark.xml create mode 100644 actionbarsherlock/res/drawable/abs__list_selector_background_transition_holo_light.xml create mode 100644 actionbarsherlock/res/drawable/abs__list_selector_holo_dark.xml create mode 100644 actionbarsherlock/res/drawable/abs__list_selector_holo_light.xml create mode 100644 actionbarsherlock/res/drawable/abs__progress_horizontal_holo_dark.xml create mode 100644 actionbarsherlock/res/drawable/abs__progress_horizontal_holo_light.xml create mode 100644 actionbarsherlock/res/drawable/abs__progress_medium_holo.xml create mode 100644 actionbarsherlock/res/drawable/abs__spinner_ab_holo_dark.xml create mode 100644 actionbarsherlock/res/drawable/abs__spinner_ab_holo_light.xml create mode 100644 actionbarsherlock/res/drawable/abs__tab_indicator_ab_holo.xml create mode 100644 actionbarsherlock/res/layout-large/abs__action_mode_close_item.xml create mode 100644 actionbarsherlock/res/layout-v14/sherlock_spinner_dropdown_item.xml create mode 100644 actionbarsherlock/res/layout-v14/sherlock_spinner_item.xml create mode 100644 actionbarsherlock/res/layout-xlarge/abs__screen_action_bar.xml create mode 100644 actionbarsherlock/res/layout-xlarge/abs__screen_action_bar_overlay.xml create mode 100644 actionbarsherlock/res/layout/abs__action_bar_home.xml create mode 100644 actionbarsherlock/res/layout/abs__action_bar_tab.xml create mode 100644 actionbarsherlock/res/layout/abs__action_bar_tab_bar_view.xml create mode 100644 actionbarsherlock/res/layout/abs__action_bar_title_item.xml create mode 100644 actionbarsherlock/res/layout/abs__action_menu_item_layout.xml create mode 100644 actionbarsherlock/res/layout/abs__action_menu_layout.xml create mode 100644 actionbarsherlock/res/layout/abs__action_mode_bar.xml create mode 100644 actionbarsherlock/res/layout/abs__action_mode_close_item.xml create mode 100644 actionbarsherlock/res/layout/abs__activity_chooser_view.xml create mode 100644 actionbarsherlock/res/layout/abs__activity_chooser_view_list_item.xml create mode 100644 actionbarsherlock/res/layout/abs__dialog_title_holo.xml create mode 100644 actionbarsherlock/res/layout/abs__list_menu_item_checkbox.xml create mode 100644 actionbarsherlock/res/layout/abs__list_menu_item_icon.xml create mode 100644 actionbarsherlock/res/layout/abs__list_menu_item_layout.xml create mode 100644 actionbarsherlock/res/layout/abs__list_menu_item_radio.xml create mode 100644 actionbarsherlock/res/layout/abs__popup_menu_item_layout.xml create mode 100644 actionbarsherlock/res/layout/abs__screen_action_bar.xml create mode 100644 actionbarsherlock/res/layout/abs__screen_action_bar_overlay.xml create mode 100644 actionbarsherlock/res/layout/abs__screen_simple.xml create mode 100644 actionbarsherlock/res/layout/abs__screen_simple_overlay_action_mode.xml create mode 100644 actionbarsherlock/res/layout/sherlock_spinner_dropdown_item.xml create mode 100644 actionbarsherlock/res/layout/sherlock_spinner_item.xml create mode 100644 actionbarsherlock/res/values-land/abs__dimens.xml create mode 100644 actionbarsherlock/res/values-large-hdpi-1024x600/abs__dimens.xml create mode 100644 actionbarsherlock/res/values-large-land-hdpi-1024x600/abs__dimens.xml create mode 100644 actionbarsherlock/res/values-large-land-mdpi-1024x600/abs__dimens.xml create mode 100644 actionbarsherlock/res/values-large-mdpi-1024x600/abs__dimens.xml create mode 100644 actionbarsherlock/res/values-large/abs__dimens.xml create mode 100644 actionbarsherlock/res/values-sw600dp/abs__bools.xml create mode 100644 actionbarsherlock/res/values-sw600dp/abs__dimens.xml create mode 100644 actionbarsherlock/res/values-v11/abs__themes.xml create mode 100644 actionbarsherlock/res/values-v14/abs__styles.xml create mode 100644 actionbarsherlock/res/values-v14/abs__themes.xml create mode 100644 actionbarsherlock/res/values-w360dp/abs__dimens.xml create mode 100644 actionbarsherlock/res/values-w480dp/abs__bools.xml create mode 100644 actionbarsherlock/res/values-w480dp/abs__config.xml create mode 100644 actionbarsherlock/res/values-w500dp/abs__dimens.xml create mode 100644 actionbarsherlock/res/values-w600dp/abs__dimens.xml create mode 100644 actionbarsherlock/res/values-xlarge/abs__dimens.xml create mode 100644 actionbarsherlock/res/values/abs__attrs.xml create mode 100644 actionbarsherlock/res/values/abs__bools.xml create mode 100644 actionbarsherlock/res/values/abs__colors.xml create mode 100644 actionbarsherlock/res/values/abs__config.xml create mode 100644 actionbarsherlock/res/values/abs__dimens.xml create mode 100644 actionbarsherlock/res/values/abs__ids.xml create mode 100644 actionbarsherlock/res/values/abs__strings.xml create mode 100644 actionbarsherlock/res/values/abs__styles.xml create mode 100644 actionbarsherlock/res/values/abs__themes.xml create mode 100644 actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/ActionMenuPresenter.java create mode 100644 actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/BaseMenuPresenter.java create mode 100644 actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/MenuPresenter.java create mode 100644 actionbarsherlock/src/com/actionbarsherlock/internal/widget/IcsProgressBar.java diff --git a/actionbarsherlock/res/color/abs__primary_text_disable_only_holo_dark.xml b/actionbarsherlock/res/color/abs__primary_text_disable_only_holo_dark.xml new file mode 100644 index 000000000..ea7459aaf --- /dev/null +++ b/actionbarsherlock/res/color/abs__primary_text_disable_only_holo_dark.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/actionbarsherlock/res/color/abs__primary_text_disable_only_holo_light.xml b/actionbarsherlock/res/color/abs__primary_text_disable_only_holo_light.xml new file mode 100644 index 000000000..0edb33b4b --- /dev/null +++ b/actionbarsherlock/res/color/abs__primary_text_disable_only_holo_light.xml @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/actionbarsherlock/res/color/abs__primary_text_holo_dark.xml b/actionbarsherlock/res/color/abs__primary_text_holo_dark.xml new file mode 100644 index 000000000..2bcfd0b63 --- /dev/null +++ b/actionbarsherlock/res/color/abs__primary_text_holo_dark.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/actionbarsherlock/res/color/abs__primary_text_holo_light.xml b/actionbarsherlock/res/color/abs__primary_text_holo_light.xml new file mode 100644 index 000000000..198384fed --- /dev/null +++ b/actionbarsherlock/res/color/abs__primary_text_holo_light.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_solid_dark_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_solid_dark_holo.9.png new file mode 100644 index 000000000..769463b36 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_solid_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_solid_inverse_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_solid_inverse_holo.9.png new file mode 100644 index 000000000..88f11dcb9 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_solid_inverse_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_solid_light_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_solid_light_holo.9.png new file mode 100644 index 000000000..73050476e Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_solid_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_transparent_dark_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_transparent_dark_holo.9.png new file mode 100644 index 000000000..712a551ec Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_transparent_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_transparent_light_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_transparent_light_holo.9.png new file mode 100644 index 000000000..bf3b9438b Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_bottom_transparent_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_share_pack_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_share_pack_holo_dark.9.png new file mode 100644 index 000000000..6c1415772 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_share_pack_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_share_pack_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_share_pack_holo_light.9.png new file mode 100644 index 000000000..f4ff16be7 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_share_pack_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_solid_dark_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_solid_dark_holo.9.png new file mode 100644 index 000000000..cbbaec588 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_solid_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_solid_light_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_solid_light_holo.9.png new file mode 100644 index 000000000..af917e5b6 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_solid_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_solid_shadow_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_solid_shadow_holo.9.png new file mode 100644 index 000000000..2d59f354e Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_solid_shadow_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_solid_dark_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_solid_dark_holo.9.png new file mode 100644 index 000000000..0520e5a2f Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_solid_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_solid_light_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_solid_light_holo.9.png new file mode 100644 index 000000000..e3e3f93b9 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_solid_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_transparent_dark_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_transparent_dark_holo.9.png new file mode 100644 index 000000000..1e3957222 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_transparent_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_transparent_light_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_transparent_light_holo.9.png new file mode 100644 index 000000000..a16db853e Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_stacked_transparent_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_transparent_dark_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_transparent_dark_holo.9.png new file mode 100644 index 000000000..0eff695d8 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_transparent_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ab_transparent_light_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__ab_transparent_light_holo.9.png new file mode 100644 index 000000000..219b170fa Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ab_transparent_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_default_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_default_holo_dark.9.png new file mode 100644 index 000000000..b0dc31fb3 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_default_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_default_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_default_holo_light.9.png new file mode 100644 index 000000000..4bc2683b1 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_default_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_focused_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_focused_holo_dark.9.png new file mode 100644 index 000000000..4af38fb70 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_focused_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_focused_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_focused_holo_light.9.png new file mode 100644 index 000000000..d32f74cf4 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_focused_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_dark.9.png new file mode 100644 index 000000000..66adffed6 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_light.9.png new file mode 100644 index 000000000..caeff9c33 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__btn_cab_done_pressed_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__cab_background_bottom_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__cab_background_bottom_holo_dark.9.png new file mode 100644 index 000000000..1d836f65a Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__cab_background_bottom_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__cab_background_bottom_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__cab_background_bottom_holo_light.9.png new file mode 100644 index 000000000..5818666d4 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__cab_background_bottom_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__cab_background_top_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__cab_background_top_holo_dark.9.png new file mode 100644 index 000000000..564fb34b4 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__cab_background_top_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__cab_background_top_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__cab_background_top_holo_light.9.png new file mode 100644 index 000000000..ae21b760f Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__cab_background_top_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__dialog_full_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__dialog_full_holo_dark.9.png new file mode 100644 index 000000000..79e56f522 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__dialog_full_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__dialog_full_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__dialog_full_holo_light.9.png new file mode 100644 index 000000000..e029f210b Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__dialog_full_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ic_ab_back_holo_dark.png b/actionbarsherlock/res/drawable-hdpi/abs__ic_ab_back_holo_dark.png new file mode 100644 index 000000000..897a1c11a Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ic_ab_back_holo_dark.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ic_ab_back_holo_light.png b/actionbarsherlock/res/drawable-hdpi/abs__ic_ab_back_holo_light.png new file mode 100644 index 000000000..0c89f7140 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ic_ab_back_holo_light.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ic_cab_done_holo_dark.png b/actionbarsherlock/res/drawable-hdpi/abs__ic_cab_done_holo_dark.png new file mode 100644 index 000000000..d8662e3f0 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ic_cab_done_holo_dark.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ic_cab_done_holo_light.png b/actionbarsherlock/res/drawable-hdpi/abs__ic_cab_done_holo_light.png new file mode 100644 index 000000000..ed03f620f Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ic_cab_done_holo_light.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png b/actionbarsherlock/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png new file mode 100644 index 000000000..2abc45809 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_light.png b/actionbarsherlock/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_light.png new file mode 100644 index 000000000..bb6aef1d0 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ic_menu_moreoverflow_normal_holo_light.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ic_menu_share_holo_dark.png b/actionbarsherlock/res/drawable-hdpi/abs__ic_menu_share_holo_dark.png new file mode 100644 index 000000000..6f747c8f0 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ic_menu_share_holo_dark.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__ic_menu_share_holo_light.png b/actionbarsherlock/res/drawable-hdpi/abs__ic_menu_share_holo_light.png new file mode 100644 index 000000000..682b2fdec Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__ic_menu_share_holo_light.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__list_activated_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__list_activated_holo.9.png new file mode 100644 index 000000000..4ea7afa00 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__list_activated_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__list_divider_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__list_divider_holo_dark.9.png new file mode 100644 index 000000000..986ab0b97 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__list_divider_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__list_divider_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__list_divider_holo_light.9.png new file mode 100644 index 000000000..0279e17a1 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__list_divider_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__list_focused_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__list_focused_holo.9.png new file mode 100644 index 000000000..516f5c739 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__list_focused_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__list_longpressed_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__list_longpressed_holo.9.png new file mode 100644 index 000000000..4ea7afa00 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__list_longpressed_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__list_pressed_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__list_pressed_holo_dark.9.png new file mode 100644 index 000000000..5654cd694 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__list_pressed_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__list_pressed_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__list_pressed_holo_light.9.png new file mode 100644 index 000000000..5654cd694 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__list_pressed_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__list_selector_disabled_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__list_selector_disabled_holo_dark.9.png new file mode 100644 index 000000000..f6fd30dcd Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__list_selector_disabled_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__list_selector_disabled_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__list_selector_disabled_holo_light.9.png new file mode 100644 index 000000000..ca8e9a277 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__list_selector_disabled_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__menu_dropdown_panel_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__menu_dropdown_panel_holo_dark.9.png new file mode 100644 index 000000000..4d3d20857 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__menu_dropdown_panel_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__menu_dropdown_panel_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__menu_dropdown_panel_holo_light.9.png new file mode 100644 index 000000000..924a99d17 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__menu_dropdown_panel_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__progress_bg_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__progress_bg_holo_dark.9.png new file mode 100644 index 000000000..310c368e7 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__progress_bg_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__progress_bg_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__progress_bg_holo_light.9.png new file mode 100644 index 000000000..70cb7fc7e Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__progress_bg_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__progress_primary_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__progress_primary_holo_dark.9.png new file mode 100644 index 000000000..1c269205e Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__progress_primary_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__progress_primary_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__progress_primary_holo_light.9.png new file mode 100644 index 000000000..1c269205e Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__progress_primary_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__progress_secondary_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__progress_secondary_holo_dark.9.png new file mode 100644 index 000000000..40d0d1645 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__progress_secondary_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__progress_secondary_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__progress_secondary_holo_light.9.png new file mode 100644 index 000000000..40d0d1645 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__progress_secondary_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__spinner_48_inner_holo.png b/actionbarsherlock/res/drawable-hdpi/abs__spinner_48_inner_holo.png new file mode 100644 index 000000000..c8358e9ce Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__spinner_48_inner_holo.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__spinner_48_outer_holo.png b/actionbarsherlock/res/drawable-hdpi/abs__spinner_48_outer_holo.png new file mode 100644 index 000000000..f62f74bb3 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__spinner_48_outer_holo.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_default_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_default_holo_dark.9.png new file mode 100644 index 000000000..eb28ff9a5 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_default_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_default_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_default_holo_light.9.png new file mode 100644 index 000000000..d281adb55 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_default_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_disabled_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_disabled_holo_dark.9.png new file mode 100644 index 000000000..b29858609 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_disabled_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_disabled_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_disabled_holo_light.9.png new file mode 100644 index 000000000..4215396dd Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_disabled_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_focused_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_focused_holo_dark.9.png new file mode 100644 index 000000000..a280eabf5 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_focused_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_focused_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_focused_holo_light.9.png new file mode 100644 index 000000000..f8d619b4d Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_focused_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_pressed_holo_dark.9.png b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_pressed_holo_dark.9.png new file mode 100644 index 000000000..955a2f340 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_pressed_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_pressed_holo_light.9.png b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_pressed_holo_light.9.png new file mode 100644 index 000000000..6c22e223a Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__spinner_ab_pressed_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__tab_selected_focused_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__tab_selected_focused_holo.9.png new file mode 100644 index 000000000..673e3bf10 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__tab_selected_focused_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__tab_selected_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__tab_selected_holo.9.png new file mode 100644 index 000000000..d57df98b5 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__tab_selected_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__tab_selected_pressed_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__tab_selected_pressed_holo.9.png new file mode 100644 index 000000000..6278eef47 Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__tab_selected_pressed_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-hdpi/abs__tab_unselected_pressed_holo.9.png b/actionbarsherlock/res/drawable-hdpi/abs__tab_unselected_pressed_holo.9.png new file mode 100644 index 000000000..aadc6f87b Binary files /dev/null and b/actionbarsherlock/res/drawable-hdpi/abs__tab_unselected_pressed_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_solid_dark_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_solid_dark_holo.9.png new file mode 100644 index 000000000..b2293670b Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_solid_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_solid_inverse_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_solid_inverse_holo.9.png new file mode 100644 index 000000000..c65f443e3 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_solid_inverse_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_solid_light_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_solid_light_holo.9.png new file mode 100644 index 000000000..0706c8af6 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_solid_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_transparent_dark_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_transparent_dark_holo.9.png new file mode 100644 index 000000000..d814d02d3 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_transparent_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_transparent_light_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_transparent_light_holo.9.png new file mode 100644 index 000000000..b139c8e49 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_bottom_transparent_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_share_pack_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_share_pack_holo_dark.9.png new file mode 100644 index 000000000..ed4ba34ec Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_share_pack_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_share_pack_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_share_pack_holo_light.9.png new file mode 100644 index 000000000..8f10bd522 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_share_pack_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_solid_dark_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_solid_dark_holo.9.png new file mode 100644 index 000000000..743d00b6c Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_solid_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_solid_light_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_solid_light_holo.9.png new file mode 100644 index 000000000..17c1fb921 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_solid_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_solid_shadow_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_solid_shadow_holo.9.png new file mode 100644 index 000000000..ddfc8e3d5 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_solid_shadow_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_solid_dark_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_solid_dark_holo.9.png new file mode 100644 index 000000000..007a4b239 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_solid_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_solid_light_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_solid_light_holo.9.png new file mode 100644 index 000000000..ad6e1a4d9 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_solid_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_transparent_dark_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_transparent_dark_holo.9.png new file mode 100644 index 000000000..0ad6c888b Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_transparent_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_transparent_light_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_transparent_light_holo.9.png new file mode 100644 index 000000000..19b50abcb Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_stacked_transparent_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_transparent_dark_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_transparent_dark_holo.9.png new file mode 100644 index 000000000..ad980b13f Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_transparent_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ab_transparent_light_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__ab_transparent_light_holo.9.png new file mode 100644 index 000000000..60e6c5278 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ab_transparent_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_default_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_default_holo_dark.9.png new file mode 100644 index 000000000..5461b9c00 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_default_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_default_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_default_holo_light.9.png new file mode 100644 index 000000000..5dc6f804a Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_default_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_focused_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_focused_holo_dark.9.png new file mode 100644 index 000000000..a70b53c59 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_focused_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_focused_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_focused_holo_light.9.png new file mode 100644 index 000000000..c7a9896b0 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_focused_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_dark.9.png new file mode 100644 index 000000000..85d7aadd4 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_light.9.png new file mode 100644 index 000000000..f7b01e012 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__btn_cab_done_pressed_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__cab_background_bottom_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__cab_background_bottom_holo_dark.9.png new file mode 100644 index 000000000..d8f1c8bd5 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__cab_background_bottom_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__cab_background_bottom_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__cab_background_bottom_holo_light.9.png new file mode 100644 index 000000000..31e49894a Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__cab_background_bottom_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__cab_background_top_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__cab_background_top_holo_dark.9.png new file mode 100644 index 000000000..7c2cbe535 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__cab_background_top_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__cab_background_top_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__cab_background_top_holo_light.9.png new file mode 100644 index 000000000..30cbdc174 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__cab_background_top_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__dialog_full_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__dialog_full_holo_dark.9.png new file mode 100644 index 000000000..fb3660eab Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__dialog_full_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__dialog_full_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__dialog_full_holo_light.9.png new file mode 100644 index 000000000..f18050ea5 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__dialog_full_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ic_ab_back_holo_dark.png b/actionbarsherlock/res/drawable-mdpi/abs__ic_ab_back_holo_dark.png new file mode 100644 index 000000000..df2d3d158 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ic_ab_back_holo_dark.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ic_ab_back_holo_light.png b/actionbarsherlock/res/drawable-mdpi/abs__ic_ab_back_holo_light.png new file mode 100644 index 000000000..b2aa9c265 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ic_ab_back_holo_light.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ic_cab_done_holo_dark.png b/actionbarsherlock/res/drawable-mdpi/abs__ic_cab_done_holo_dark.png new file mode 100644 index 000000000..a17b6a789 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ic_cab_done_holo_dark.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ic_cab_done_holo_light.png b/actionbarsherlock/res/drawable-mdpi/abs__ic_cab_done_holo_light.png new file mode 100644 index 000000000..b28b3b54f Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ic_cab_done_holo_light.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png b/actionbarsherlock/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png new file mode 100644 index 000000000..ba704b67e Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_light.png b/actionbarsherlock/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_light.png new file mode 100644 index 000000000..01d681697 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ic_menu_moreoverflow_normal_holo_light.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ic_menu_share_holo_dark.png b/actionbarsherlock/res/drawable-mdpi/abs__ic_menu_share_holo_dark.png new file mode 100644 index 000000000..6bf21e307 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ic_menu_share_holo_dark.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__ic_menu_share_holo_light.png b/actionbarsherlock/res/drawable-mdpi/abs__ic_menu_share_holo_light.png new file mode 100644 index 000000000..70fe31aa2 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__ic_menu_share_holo_light.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__list_activated_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__list_activated_holo.9.png new file mode 100644 index 000000000..3bf8e0362 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__list_activated_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__list_divider_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__list_divider_holo_dark.9.png new file mode 100644 index 000000000..986ab0b97 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__list_divider_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__list_divider_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__list_divider_holo_light.9.png new file mode 100644 index 000000000..0279e17a1 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__list_divider_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__list_focused_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__list_focused_holo.9.png new file mode 100644 index 000000000..7c0599e3a Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__list_focused_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__list_longpressed_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__list_longpressed_holo.9.png new file mode 100644 index 000000000..3bf8e0362 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__list_longpressed_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__list_pressed_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__list_pressed_holo_dark.9.png new file mode 100644 index 000000000..6e77525d2 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__list_pressed_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__list_pressed_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__list_pressed_holo_light.9.png new file mode 100644 index 000000000..6e77525d2 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__list_pressed_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__list_selector_disabled_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__list_selector_disabled_holo_dark.9.png new file mode 100644 index 000000000..92da2f0dd Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__list_selector_disabled_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__list_selector_disabled_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__list_selector_disabled_holo_light.9.png new file mode 100644 index 000000000..42cb6463e Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__list_selector_disabled_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__menu_dropdown_panel_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__menu_dropdown_panel_holo_dark.9.png new file mode 100644 index 000000000..460ec46eb Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__menu_dropdown_panel_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__menu_dropdown_panel_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__menu_dropdown_panel_holo_light.9.png new file mode 100644 index 000000000..e84adf2d4 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__menu_dropdown_panel_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__progress_bg_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__progress_bg_holo_dark.9.png new file mode 100644 index 000000000..3d946e545 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__progress_bg_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__progress_bg_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__progress_bg_holo_light.9.png new file mode 100644 index 000000000..4bb22f0e1 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__progress_bg_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__progress_primary_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__progress_primary_holo_dark.9.png new file mode 100644 index 000000000..ab8ec6984 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__progress_primary_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__progress_primary_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__progress_primary_holo_light.9.png new file mode 100644 index 000000000..ab8ec6984 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__progress_primary_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__progress_secondary_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__progress_secondary_holo_dark.9.png new file mode 100644 index 000000000..7274274b1 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__progress_secondary_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__progress_secondary_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__progress_secondary_holo_light.9.png new file mode 100644 index 000000000..7274274b1 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__progress_secondary_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__spinner_48_inner_holo.png b/actionbarsherlock/res/drawable-mdpi/abs__spinner_48_inner_holo.png new file mode 100644 index 000000000..9458668f0 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__spinner_48_inner_holo.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__spinner_48_outer_holo.png b/actionbarsherlock/res/drawable-mdpi/abs__spinner_48_outer_holo.png new file mode 100644 index 000000000..4ce73edce Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__spinner_48_outer_holo.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_default_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_default_holo_dark.9.png new file mode 100644 index 000000000..29aff4d43 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_default_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_default_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_default_holo_light.9.png new file mode 100644 index 000000000..4055f7053 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_default_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_disabled_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_disabled_holo_dark.9.png new file mode 100644 index 000000000..ea4ee042e Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_disabled_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_disabled_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_disabled_holo_light.9.png new file mode 100644 index 000000000..f74c02b9e Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_disabled_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_focused_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_focused_holo_dark.9.png new file mode 100644 index 000000000..09a2992cc Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_focused_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_focused_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_focused_holo_light.9.png new file mode 100644 index 000000000..6536ee633 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_focused_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_pressed_holo_dark.9.png b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_pressed_holo_dark.9.png new file mode 100644 index 000000000..202b5b72e Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_pressed_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_pressed_holo_light.9.png b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_pressed_holo_light.9.png new file mode 100644 index 000000000..6de0ba884 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__spinner_ab_pressed_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__tab_selected_focused_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__tab_selected_focused_holo.9.png new file mode 100644 index 000000000..c9972e74b Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__tab_selected_focused_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__tab_selected_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__tab_selected_holo.9.png new file mode 100644 index 000000000..587337caf Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__tab_selected_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__tab_selected_pressed_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__tab_selected_pressed_holo.9.png new file mode 100644 index 000000000..155c4fc75 Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__tab_selected_pressed_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-mdpi/abs__tab_unselected_pressed_holo.9.png b/actionbarsherlock/res/drawable-mdpi/abs__tab_unselected_pressed_holo.9.png new file mode 100644 index 000000000..b1223fe3c Binary files /dev/null and b/actionbarsherlock/res/drawable-mdpi/abs__tab_unselected_pressed_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-v11/abs__progress_medium_holo.xml b/actionbarsherlock/res/drawable-v11/abs__progress_medium_holo.xml new file mode 100644 index 000000000..6bcbdb83f --- /dev/null +++ b/actionbarsherlock/res/drawable-v11/abs__progress_medium_holo.xml @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_solid_dark_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_solid_dark_holo.9.png new file mode 100644 index 000000000..575334699 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_solid_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_solid_inverse_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_solid_inverse_holo.9.png new file mode 100644 index 000000000..7e6c047d6 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_solid_inverse_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_solid_light_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_solid_light_holo.9.png new file mode 100644 index 000000000..8155fe840 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_solid_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_transparent_dark_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_transparent_dark_holo.9.png new file mode 100644 index 000000000..6cee9a128 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_transparent_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_transparent_light_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_transparent_light_holo.9.png new file mode 100644 index 000000000..fa4d76af9 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_bottom_transparent_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_share_pack_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_share_pack_holo_dark.9.png new file mode 100644 index 000000000..55099d49d Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_share_pack_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_share_pack_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_share_pack_holo_light.9.png new file mode 100644 index 000000000..3c4701fc2 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_share_pack_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_solid_dark_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_solid_dark_holo.9.png new file mode 100644 index 000000000..6622cbad3 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_solid_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_solid_light_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_solid_light_holo.9.png new file mode 100644 index 000000000..c42729783 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_solid_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_solid_shadow_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_solid_shadow_holo.9.png new file mode 100644 index 000000000..d0df29d8b Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_solid_shadow_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_solid_dark_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_solid_dark_holo.9.png new file mode 100644 index 000000000..a0d9c1b95 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_solid_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_solid_light_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_solid_light_holo.9.png new file mode 100644 index 000000000..d36f99fec Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_solid_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_transparent_dark_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_transparent_dark_holo.9.png new file mode 100644 index 000000000..5ad475dc3 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_transparent_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_transparent_light_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_transparent_light_holo.9.png new file mode 100644 index 000000000..6ade5eeb3 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_stacked_transparent_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_transparent_dark_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_transparent_dark_holo.9.png new file mode 100644 index 000000000..719b9234d Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_transparent_dark_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ab_transparent_light_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__ab_transparent_light_holo.9.png new file mode 100644 index 000000000..6da264db2 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ab_transparent_light_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_default_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_default_holo_dark.9.png new file mode 100644 index 000000000..7ef2db75e Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_default_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_default_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_default_holo_light.9.png new file mode 100644 index 000000000..2283b4c01 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_default_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_dark.9.png new file mode 100644 index 000000000..6d2039e28 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_light.9.png new file mode 100644 index 000000000..3c909b513 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_focused_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_dark.9.png new file mode 100644 index 000000000..131d1030c Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_light.9.png new file mode 100644 index 000000000..3e7dcdfdb Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__btn_cab_done_pressed_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__cab_background_bottom_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__cab_background_bottom_holo_dark.9.png new file mode 100644 index 000000000..0bd09806f Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__cab_background_bottom_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__cab_background_bottom_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__cab_background_bottom_holo_light.9.png new file mode 100644 index 000000000..43ed26d47 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__cab_background_bottom_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__cab_background_top_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__cab_background_top_holo_dark.9.png new file mode 100644 index 000000000..6b3157985 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__cab_background_top_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__cab_background_top_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__cab_background_top_holo_light.9.png new file mode 100644 index 000000000..df0121bb3 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__cab_background_top_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__dialog_full_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__dialog_full_holo_dark.9.png new file mode 100644 index 000000000..f4970ad1c Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__dialog_full_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__dialog_full_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__dialog_full_holo_light.9.png new file mode 100644 index 000000000..172fc3b5e Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__dialog_full_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ic_ab_back_holo_dark.png b/actionbarsherlock/res/drawable-xhdpi/abs__ic_ab_back_holo_dark.png new file mode 100644 index 000000000..8ded62fb7 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ic_ab_back_holo_dark.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ic_ab_back_holo_light.png b/actionbarsherlock/res/drawable-xhdpi/abs__ic_ab_back_holo_light.png new file mode 100644 index 000000000..517e9f72d Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ic_ab_back_holo_light.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ic_cab_done_holo_dark.png b/actionbarsherlock/res/drawable-xhdpi/abs__ic_cab_done_holo_dark.png new file mode 100644 index 000000000..2e06dd01b Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ic_cab_done_holo_dark.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ic_cab_done_holo_light.png b/actionbarsherlock/res/drawable-xhdpi/abs__ic_cab_done_holo_light.png new file mode 100644 index 000000000..bb19810bc Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ic_cab_done_holo_light.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png b/actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png new file mode 100644 index 000000000..a92fb1d4a Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_dark.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_light.png b/actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_light.png new file mode 100644 index 000000000..930ca8d95 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_moreoverflow_normal_holo_light.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_share_holo_dark.png b/actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_share_holo_dark.png new file mode 100644 index 000000000..45a0f1da0 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_share_holo_dark.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_share_holo_light.png b/actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_share_holo_light.png new file mode 100644 index 000000000..528e554ab Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__ic_menu_share_holo_light.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__list_activated_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__list_activated_holo.9.png new file mode 100644 index 000000000..eda10e612 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__list_activated_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__list_divider_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__list_divider_holo_dark.9.png new file mode 100644 index 000000000..e62f011d4 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__list_divider_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__list_divider_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__list_divider_holo_light.9.png new file mode 100644 index 000000000..65061c0f4 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__list_divider_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__list_focused_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__list_focused_holo.9.png new file mode 100644 index 000000000..690cb1eb6 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__list_focused_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__list_longpressed_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__list_longpressed_holo.9.png new file mode 100644 index 000000000..eda10e612 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__list_longpressed_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__list_pressed_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__list_pressed_holo_dark.9.png new file mode 100644 index 000000000..e4b33935a Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__list_pressed_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__list_pressed_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__list_pressed_holo_light.9.png new file mode 100644 index 000000000..e4b33935a Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__list_pressed_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__list_selector_disabled_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__list_selector_disabled_holo_dark.9.png new file mode 100644 index 000000000..88726b691 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__list_selector_disabled_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__list_selector_disabled_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__list_selector_disabled_holo_light.9.png new file mode 100644 index 000000000..c6a7d4d87 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__list_selector_disabled_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_dark.9.png new file mode 100644 index 000000000..e2aff72f4 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_light.9.png new file mode 100644 index 000000000..93066c840 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__menu_dropdown_panel_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__progress_bg_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__progress_bg_holo_dark.9.png new file mode 100644 index 000000000..345f5d306 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__progress_bg_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__progress_bg_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__progress_bg_holo_light.9.png new file mode 100644 index 000000000..c843ef3af Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__progress_bg_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__progress_primary_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__progress_primary_holo_dark.9.png new file mode 100644 index 000000000..c6c3f1ec2 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__progress_primary_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__progress_primary_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__progress_primary_holo_light.9.png new file mode 100644 index 000000000..c6c3f1ec2 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__progress_primary_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__progress_secondary_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__progress_secondary_holo_dark.9.png new file mode 100644 index 000000000..205b66e2c Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__progress_secondary_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__progress_secondary_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__progress_secondary_holo_light.9.png new file mode 100644 index 000000000..205b66e2c Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__progress_secondary_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__spinner_48_inner_holo.png b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_48_inner_holo.png new file mode 100644 index 000000000..19517c4b0 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_48_inner_holo.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__spinner_48_outer_holo.png b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_48_outer_holo.png new file mode 100644 index 000000000..14143c51c Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_48_outer_holo.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_default_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_default_holo_dark.9.png new file mode 100644 index 000000000..d8929fcd1 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_default_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_default_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_default_holo_light.9.png new file mode 100644 index 000000000..9174c4e4b Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_default_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_dark.9.png new file mode 100644 index 000000000..3015d3070 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_light.9.png new file mode 100644 index 000000000..126637d11 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_disabled_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_focused_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_focused_holo_dark.9.png new file mode 100644 index 000000000..d45c7a864 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_focused_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_focused_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_focused_holo_light.9.png new file mode 100644 index 000000000..29036b907 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_focused_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_dark.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_dark.9.png new file mode 100644 index 000000000..2cb34d7f6 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_dark.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_light.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_light.9.png new file mode 100644 index 000000000..82f752fdc Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__spinner_ab_pressed_holo_light.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__tab_selected_focused_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__tab_selected_focused_holo.9.png new file mode 100644 index 000000000..03cfb0945 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__tab_selected_focused_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__tab_selected_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__tab_selected_holo.9.png new file mode 100644 index 000000000..e4229f26b Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__tab_selected_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__tab_selected_pressed_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__tab_selected_pressed_holo.9.png new file mode 100644 index 000000000..e862cb121 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__tab_selected_pressed_holo.9.png differ diff --git a/actionbarsherlock/res/drawable-xhdpi/abs__tab_unselected_pressed_holo.9.png b/actionbarsherlock/res/drawable-xhdpi/abs__tab_unselected_pressed_holo.9.png new file mode 100644 index 000000000..f1eb67323 Binary files /dev/null and b/actionbarsherlock/res/drawable-xhdpi/abs__tab_unselected_pressed_holo.9.png differ diff --git a/actionbarsherlock/res/drawable/abs__activated_background_holo_dark.xml b/actionbarsherlock/res/drawable/abs__activated_background_holo_dark.xml new file mode 100644 index 000000000..85c2c0212 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__activated_background_holo_dark.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__activated_background_holo_light.xml b/actionbarsherlock/res/drawable/abs__activated_background_holo_light.xml new file mode 100644 index 000000000..85c2c0212 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__activated_background_holo_light.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__btn_cab_done_holo_dark.xml b/actionbarsherlock/res/drawable/abs__btn_cab_done_holo_dark.xml new file mode 100644 index 000000000..cab896283 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__btn_cab_done_holo_dark.xml @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__btn_cab_done_holo_light.xml b/actionbarsherlock/res/drawable/abs__btn_cab_done_holo_light.xml new file mode 100644 index 000000000..42ba8a0df --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__btn_cab_done_holo_light.xml @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__ic_menu_moreoverflow_holo_dark.xml b/actionbarsherlock/res/drawable/abs__ic_menu_moreoverflow_holo_dark.xml new file mode 100644 index 000000000..2588a492d --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__ic_menu_moreoverflow_holo_dark.xml @@ -0,0 +1,18 @@ + + + + + diff --git a/actionbarsherlock/res/drawable/abs__ic_menu_moreoverflow_holo_light.xml b/actionbarsherlock/res/drawable/abs__ic_menu_moreoverflow_holo_light.xml new file mode 100644 index 000000000..e2078c967 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__ic_menu_moreoverflow_holo_light.xml @@ -0,0 +1,18 @@ + + + + + diff --git a/actionbarsherlock/res/drawable/abs__item_background_holo_dark.xml b/actionbarsherlock/res/drawable/abs__item_background_holo_dark.xml new file mode 100644 index 000000000..d99b7a426 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__item_background_holo_dark.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__item_background_holo_light.xml b/actionbarsherlock/res/drawable/abs__item_background_holo_light.xml new file mode 100644 index 000000000..da5fb2e86 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__item_background_holo_light.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__list_selector_background_transition_holo_dark.xml b/actionbarsherlock/res/drawable/abs__list_selector_background_transition_holo_dark.xml new file mode 100644 index 000000000..b2ce4f0f7 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__list_selector_background_transition_holo_dark.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__list_selector_background_transition_holo_light.xml b/actionbarsherlock/res/drawable/abs__list_selector_background_transition_holo_light.xml new file mode 100644 index 000000000..d7e31b1d1 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__list_selector_background_transition_holo_light.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__list_selector_holo_dark.xml b/actionbarsherlock/res/drawable/abs__list_selector_holo_dark.xml new file mode 100644 index 000000000..08b8b12f3 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__list_selector_holo_dark.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__list_selector_holo_light.xml b/actionbarsherlock/res/drawable/abs__list_selector_holo_light.xml new file mode 100644 index 000000000..ada490bf9 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__list_selector_holo_light.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__progress_horizontal_holo_dark.xml b/actionbarsherlock/res/drawable/abs__progress_horizontal_holo_dark.xml new file mode 100644 index 000000000..bd19140ab --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__progress_horizontal_holo_dark.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__progress_horizontal_holo_light.xml b/actionbarsherlock/res/drawable/abs__progress_horizontal_holo_light.xml new file mode 100644 index 000000000..321f07c8b --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__progress_horizontal_holo_light.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__progress_medium_holo.xml b/actionbarsherlock/res/drawable/abs__progress_medium_holo.xml new file mode 100644 index 000000000..6d4814f86 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__progress_medium_holo.xml @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__spinner_ab_holo_dark.xml b/actionbarsherlock/res/drawable/abs__spinner_ab_holo_dark.xml new file mode 100644 index 000000000..4af5e22a9 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__spinner_ab_holo_dark.xml @@ -0,0 +1,25 @@ + + + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__spinner_ab_holo_light.xml b/actionbarsherlock/res/drawable/abs__spinner_ab_holo_light.xml new file mode 100644 index 000000000..b78508478 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__spinner_ab_holo_light.xml @@ -0,0 +1,25 @@ + + + + + + + + + diff --git a/actionbarsherlock/res/drawable/abs__tab_indicator_ab_holo.xml b/actionbarsherlock/res/drawable/abs__tab_indicator_ab_holo.xml new file mode 100644 index 000000000..d34e20811 --- /dev/null +++ b/actionbarsherlock/res/drawable/abs__tab_indicator_ab_holo.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/layout-large/abs__action_mode_close_item.xml b/actionbarsherlock/res/layout-large/abs__action_mode_close_item.xml new file mode 100644 index 000000000..8811dad8d --- /dev/null +++ b/actionbarsherlock/res/layout-large/abs__action_mode_close_item.xml @@ -0,0 +1,40 @@ + + + + + + + diff --git a/actionbarsherlock/res/layout-v14/sherlock_spinner_dropdown_item.xml b/actionbarsherlock/res/layout-v14/sherlock_spinner_dropdown_item.xml new file mode 100644 index 000000000..6c183c059 --- /dev/null +++ b/actionbarsherlock/res/layout-v14/sherlock_spinner_dropdown_item.xml @@ -0,0 +1,26 @@ + + + diff --git a/actionbarsherlock/res/layout-v14/sherlock_spinner_item.xml b/actionbarsherlock/res/layout-v14/sherlock_spinner_item.xml new file mode 100644 index 000000000..61dc02527 --- /dev/null +++ b/actionbarsherlock/res/layout-v14/sherlock_spinner_item.xml @@ -0,0 +1,26 @@ + + + diff --git a/actionbarsherlock/res/layout-xlarge/abs__screen_action_bar.xml b/actionbarsherlock/res/layout-xlarge/abs__screen_action_bar.xml new file mode 100644 index 000000000..040df44ab --- /dev/null +++ b/actionbarsherlock/res/layout-xlarge/abs__screen_action_bar.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + diff --git a/actionbarsherlock/res/layout-xlarge/abs__screen_action_bar_overlay.xml b/actionbarsherlock/res/layout-xlarge/abs__screen_action_bar_overlay.xml new file mode 100644 index 000000000..c64ef141b --- /dev/null +++ b/actionbarsherlock/res/layout-xlarge/abs__screen_action_bar_overlay.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/layout/abs__action_bar_home.xml b/actionbarsherlock/res/layout/abs__action_bar_home.xml new file mode 100644 index 000000000..5c1e9ec4b --- /dev/null +++ b/actionbarsherlock/res/layout/abs__action_bar_home.xml @@ -0,0 +1,38 @@ + + + + + + + diff --git a/actionbarsherlock/res/layout/abs__action_bar_tab.xml b/actionbarsherlock/res/layout/abs__action_bar_tab.xml new file mode 100644 index 000000000..f46f7a044 --- /dev/null +++ b/actionbarsherlock/res/layout/abs__action_bar_tab.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/actionbarsherlock/res/layout/abs__action_bar_tab_bar_view.xml b/actionbarsherlock/res/layout/abs__action_bar_tab_bar_view.xml new file mode 100644 index 000000000..0d51220c9 --- /dev/null +++ b/actionbarsherlock/res/layout/abs__action_bar_tab_bar_view.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/actionbarsherlock/res/layout/abs__action_bar_title_item.xml b/actionbarsherlock/res/layout/abs__action_bar_title_item.xml new file mode 100644 index 000000000..dd69acada --- /dev/null +++ b/actionbarsherlock/res/layout/abs__action_bar_title_item.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + diff --git a/actionbarsherlock/res/layout/abs__action_menu_item_layout.xml b/actionbarsherlock/res/layout/abs__action_menu_item_layout.xml new file mode 100644 index 000000000..13149fd63 --- /dev/null +++ b/actionbarsherlock/res/layout/abs__action_menu_item_layout.xml @@ -0,0 +1,56 @@ + + + + + + + diff --git a/actionbarsherlock/res/layout/abs__action_menu_layout.xml b/actionbarsherlock/res/layout/abs__action_menu_layout.xml new file mode 100644 index 000000000..a6f8e53f8 --- /dev/null +++ b/actionbarsherlock/res/layout/abs__action_menu_layout.xml @@ -0,0 +1,23 @@ + + + + diff --git a/actionbarsherlock/res/layout/abs__action_mode_bar.xml b/actionbarsherlock/res/layout/abs__action_mode_bar.xml new file mode 100644 index 000000000..7168dc77f --- /dev/null +++ b/actionbarsherlock/res/layout/abs__action_mode_bar.xml @@ -0,0 +1,24 @@ + + + diff --git a/actionbarsherlock/res/layout/abs__action_mode_close_item.xml b/actionbarsherlock/res/layout/abs__action_mode_close_item.xml new file mode 100644 index 000000000..875ec3e1b --- /dev/null +++ b/actionbarsherlock/res/layout/abs__action_mode_close_item.xml @@ -0,0 +1,31 @@ + + + + + + diff --git a/actionbarsherlock/res/layout/abs__activity_chooser_view.xml b/actionbarsherlock/res/layout/abs__activity_chooser_view.xml new file mode 100644 index 000000000..019d14ef4 --- /dev/null +++ b/actionbarsherlock/res/layout/abs__activity_chooser_view.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/layout/abs__activity_chooser_view_list_item.xml b/actionbarsherlock/res/layout/abs__activity_chooser_view_list_item.xml new file mode 100644 index 000000000..b430032a1 --- /dev/null +++ b/actionbarsherlock/res/layout/abs__activity_chooser_view_list_item.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/layout/abs__dialog_title_holo.xml b/actionbarsherlock/res/layout/abs__dialog_title_holo.xml new file mode 100644 index 000000000..6402f28be --- /dev/null +++ b/actionbarsherlock/res/layout/abs__dialog_title_holo.xml @@ -0,0 +1,46 @@ + + + + + + + + + + diff --git a/actionbarsherlock/res/layout/abs__list_menu_item_checkbox.xml b/actionbarsherlock/res/layout/abs__list_menu_item_checkbox.xml new file mode 100644 index 000000000..39aca3a8d --- /dev/null +++ b/actionbarsherlock/res/layout/abs__list_menu_item_checkbox.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/actionbarsherlock/res/layout/abs__list_menu_item_icon.xml b/actionbarsherlock/res/layout/abs__list_menu_item_icon.xml new file mode 100644 index 000000000..55ab28a24 --- /dev/null +++ b/actionbarsherlock/res/layout/abs__list_menu_item_icon.xml @@ -0,0 +1,28 @@ + + + + + diff --git a/actionbarsherlock/res/layout/abs__list_menu_item_layout.xml b/actionbarsherlock/res/layout/abs__list_menu_item_layout.xml new file mode 100644 index 000000000..147f36fe8 --- /dev/null +++ b/actionbarsherlock/res/layout/abs__list_menu_item_layout.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/layout/abs__list_menu_item_radio.xml b/actionbarsherlock/res/layout/abs__list_menu_item_radio.xml new file mode 100644 index 000000000..ff54bbecd --- /dev/null +++ b/actionbarsherlock/res/layout/abs__list_menu_item_radio.xml @@ -0,0 +1,24 @@ + + + + diff --git a/actionbarsherlock/res/layout/abs__popup_menu_item_layout.xml b/actionbarsherlock/res/layout/abs__popup_menu_item_layout.xml new file mode 100644 index 000000000..d42425ad3 --- /dev/null +++ b/actionbarsherlock/res/layout/abs__popup_menu_item_layout.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/layout/abs__screen_action_bar.xml b/actionbarsherlock/res/layout/abs__screen_action_bar.xml new file mode 100644 index 000000000..1fb82fe9a --- /dev/null +++ b/actionbarsherlock/res/layout/abs__screen_action_bar.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/layout/abs__screen_action_bar_overlay.xml b/actionbarsherlock/res/layout/abs__screen_action_bar_overlay.xml new file mode 100644 index 000000000..0961ef561 --- /dev/null +++ b/actionbarsherlock/res/layout/abs__screen_action_bar_overlay.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/layout/abs__screen_simple.xml b/actionbarsherlock/res/layout/abs__screen_simple.xml new file mode 100644 index 000000000..33e2dea0d --- /dev/null +++ b/actionbarsherlock/res/layout/abs__screen_simple.xml @@ -0,0 +1,38 @@ + + + + + + + diff --git a/actionbarsherlock/res/layout/abs__screen_simple_overlay_action_mode.xml b/actionbarsherlock/res/layout/abs__screen_simple_overlay_action_mode.xml new file mode 100644 index 000000000..f8b9fb185 --- /dev/null +++ b/actionbarsherlock/res/layout/abs__screen_simple_overlay_action_mode.xml @@ -0,0 +1,38 @@ + + + + + + + diff --git a/actionbarsherlock/res/layout/sherlock_spinner_dropdown_item.xml b/actionbarsherlock/res/layout/sherlock_spinner_dropdown_item.xml new file mode 100644 index 000000000..a6c6252d2 --- /dev/null +++ b/actionbarsherlock/res/layout/sherlock_spinner_dropdown_item.xml @@ -0,0 +1,26 @@ + + + diff --git a/actionbarsherlock/res/layout/sherlock_spinner_item.xml b/actionbarsherlock/res/layout/sherlock_spinner_item.xml new file mode 100644 index 000000000..bea740178 --- /dev/null +++ b/actionbarsherlock/res/layout/sherlock_spinner_item.xml @@ -0,0 +1,26 @@ + + + diff --git a/actionbarsherlock/res/values-land/abs__dimens.xml b/actionbarsherlock/res/values-land/abs__dimens.xml new file mode 100644 index 000000000..502cc16a3 --- /dev/null +++ b/actionbarsherlock/res/values-land/abs__dimens.xml @@ -0,0 +1,33 @@ + + + + + 40dip + + 4dip + + 16dp + + 12dp + + -2dp + + 4dip + diff --git a/actionbarsherlock/res/values-large-hdpi-1024x600/abs__dimens.xml b/actionbarsherlock/res/values-large-hdpi-1024x600/abs__dimens.xml new file mode 100644 index 000000000..3312cfa7f --- /dev/null +++ b/actionbarsherlock/res/values-large-hdpi-1024x600/abs__dimens.xml @@ -0,0 +1,33 @@ + + + + + 48dip + + 8dip + + 18dp + + 14dp + + -3dp + + 5dip + diff --git a/actionbarsherlock/res/values-large-land-hdpi-1024x600/abs__dimens.xml b/actionbarsherlock/res/values-large-land-hdpi-1024x600/abs__dimens.xml new file mode 100644 index 000000000..502cc16a3 --- /dev/null +++ b/actionbarsherlock/res/values-large-land-hdpi-1024x600/abs__dimens.xml @@ -0,0 +1,33 @@ + + + + + 40dip + + 4dip + + 16dp + + 12dp + + -2dp + + 4dip + diff --git a/actionbarsherlock/res/values-large-land-mdpi-1024x600/abs__dimens.xml b/actionbarsherlock/res/values-large-land-mdpi-1024x600/abs__dimens.xml new file mode 100644 index 000000000..3312cfa7f --- /dev/null +++ b/actionbarsherlock/res/values-large-land-mdpi-1024x600/abs__dimens.xml @@ -0,0 +1,33 @@ + + + + + 48dip + + 8dip + + 18dp + + 14dp + + -3dp + + 5dip + diff --git a/actionbarsherlock/res/values-large-mdpi-1024x600/abs__dimens.xml b/actionbarsherlock/res/values-large-mdpi-1024x600/abs__dimens.xml new file mode 100644 index 000000000..35910333b --- /dev/null +++ b/actionbarsherlock/res/values-large-mdpi-1024x600/abs__dimens.xml @@ -0,0 +1,36 @@ + + + + + 56dip + + 4dip + + 18dp + + 14dp + + -3dp + + 9dip + + + 64dip + diff --git a/actionbarsherlock/res/values-large/abs__dimens.xml b/actionbarsherlock/res/values-large/abs__dimens.xml new file mode 100644 index 000000000..63b12f7f3 --- /dev/null +++ b/actionbarsherlock/res/values-large/abs__dimens.xml @@ -0,0 +1,29 @@ + + + + + 55% + + 80% + diff --git a/actionbarsherlock/res/values-sw600dp/abs__bools.xml b/actionbarsherlock/res/values-sw600dp/abs__bools.xml new file mode 100644 index 000000000..7a48e1542 --- /dev/null +++ b/actionbarsherlock/res/values-sw600dp/abs__bools.xml @@ -0,0 +1,19 @@ + + + + + false + diff --git a/actionbarsherlock/res/values-sw600dp/abs__dimens.xml b/actionbarsherlock/res/values-sw600dp/abs__dimens.xml new file mode 100644 index 000000000..f67853817 --- /dev/null +++ b/actionbarsherlock/res/values-sw600dp/abs__dimens.xml @@ -0,0 +1,38 @@ + + + + + 56dip + + 4dip + + 18dp + + 14dp + + -3dp + + 9dip + + 5 + + + 64dip + diff --git a/actionbarsherlock/res/values-v11/abs__themes.xml b/actionbarsherlock/res/values-v11/abs__themes.xml new file mode 100644 index 000000000..03473572c --- /dev/null +++ b/actionbarsherlock/res/values-v11/abs__themes.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/actionbarsherlock/res/values-v14/abs__styles.xml b/actionbarsherlock/res/values-v14/abs__styles.xml new file mode 100644 index 000000000..f2aa64d2d --- /dev/null +++ b/actionbarsherlock/res/values-v14/abs__styles.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/values-v14/abs__themes.xml b/actionbarsherlock/res/values-v14/abs__themes.xml new file mode 100644 index 000000000..ceb960737 --- /dev/null +++ b/actionbarsherlock/res/values-v14/abs__themes.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/values-w360dp/abs__dimens.xml b/actionbarsherlock/res/values-w360dp/abs__dimens.xml new file mode 100644 index 000000000..6f49d7e47 --- /dev/null +++ b/actionbarsherlock/res/values-w360dp/abs__dimens.xml @@ -0,0 +1,22 @@ + + + + 3 + diff --git a/actionbarsherlock/res/values-w480dp/abs__bools.xml b/actionbarsherlock/res/values-w480dp/abs__bools.xml new file mode 100644 index 000000000..3eaf4aee9 --- /dev/null +++ b/actionbarsherlock/res/values-w480dp/abs__bools.xml @@ -0,0 +1,22 @@ + + + + true + false + diff --git a/actionbarsherlock/res/values-w480dp/abs__config.xml b/actionbarsherlock/res/values-w480dp/abs__config.xml new file mode 100644 index 000000000..88357b0a7 --- /dev/null +++ b/actionbarsherlock/res/values-w480dp/abs__config.xml @@ -0,0 +1,29 @@ + + + + + + + + true + + diff --git a/actionbarsherlock/res/values-w500dp/abs__dimens.xml b/actionbarsherlock/res/values-w500dp/abs__dimens.xml new file mode 100644 index 000000000..2fd4deea2 --- /dev/null +++ b/actionbarsherlock/res/values-w500dp/abs__dimens.xml @@ -0,0 +1,22 @@ + + + + 4 + diff --git a/actionbarsherlock/res/values-w600dp/abs__dimens.xml b/actionbarsherlock/res/values-w600dp/abs__dimens.xml new file mode 100644 index 000000000..b085952d3 --- /dev/null +++ b/actionbarsherlock/res/values-w600dp/abs__dimens.xml @@ -0,0 +1,22 @@ + + + + 5 + diff --git a/actionbarsherlock/res/values-xlarge/abs__dimens.xml b/actionbarsherlock/res/values-xlarge/abs__dimens.xml new file mode 100644 index 000000000..bfc535de1 --- /dev/null +++ b/actionbarsherlock/res/values-xlarge/abs__dimens.xml @@ -0,0 +1,45 @@ + + + + + 56dip + + 4dip + + 18dp + + 14dp + + -3dp + + 9dip + + + 64dip + + + 45% + + 72% + diff --git a/actionbarsherlock/res/values/abs__attrs.xml b/actionbarsherlock/res/values/abs__attrs.xml new file mode 100644 index 000000000..bd5ee4404 --- /dev/null +++ b/actionbarsherlock/res/values/abs__attrs.xml @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/values/abs__bools.xml b/actionbarsherlock/res/values/abs__bools.xml new file mode 100644 index 000000000..0b432448d --- /dev/null +++ b/actionbarsherlock/res/values/abs__bools.xml @@ -0,0 +1,22 @@ + + + + + false + true + true + + diff --git a/actionbarsherlock/res/values/abs__colors.xml b/actionbarsherlock/res/values/abs__colors.xml new file mode 100644 index 000000000..625c632ff --- /dev/null +++ b/actionbarsherlock/res/values/abs__colors.xml @@ -0,0 +1,27 @@ + + + + + #ff000000 + #fff3f3f3 + @color/abs__background_holo_light + @color/abs__background_holo_dark + #ff4c4c4c + #ffb2b2b2 + @color/abs__bright_foreground_holo_light + @color/abs__bright_foreground_holo_dark + #ff33b5e5 + diff --git a/actionbarsherlock/res/values/abs__config.xml b/actionbarsherlock/res/values/abs__config.xml new file mode 100644 index 000000000..4c7b5d459 --- /dev/null +++ b/actionbarsherlock/res/values/abs__config.xml @@ -0,0 +1,43 @@ + + + + + + + + 320dp + + + false + + + true + + + false + + diff --git a/actionbarsherlock/res/values/abs__dimens.xml b/actionbarsherlock/res/values/abs__dimens.xml new file mode 100644 index 000000000..0a409756c --- /dev/null +++ b/actionbarsherlock/res/values/abs__dimens.xml @@ -0,0 +1,50 @@ + + + + + 48dip + + 8dip + + 18dp + + 14dp + + -3dp + + 5dip + + 2 + + + 56dip + + + 64dip + + + 65% + + 95% + diff --git a/actionbarsherlock/res/values/abs__ids.xml b/actionbarsherlock/res/values/abs__ids.xml new file mode 100644 index 000000000..f9f56045b --- /dev/null +++ b/actionbarsherlock/res/values/abs__ids.xml @@ -0,0 +1,26 @@ + + + + + + + + + + diff --git a/actionbarsherlock/res/values/abs__strings.xml b/actionbarsherlock/res/values/abs__strings.xml new file mode 100644 index 000000000..1e1c7022c --- /dev/null +++ b/actionbarsherlock/res/values/abs__strings.xml @@ -0,0 +1,42 @@ + + + + + Navigate home + + Navigate up + + More options + + + Done + + + See all... + + Select activity + + Share with... + + Choose an application + + Share with + + Share with %s + diff --git a/actionbarsherlock/res/values/abs__styles.xml b/actionbarsherlock/res/values/abs__styles.xml new file mode 100644 index 000000000..8cbd36484 --- /dev/null +++ b/actionbarsherlock/res/values/abs__styles.xml @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/actionbarsherlock/res/values/abs__themes.xml b/actionbarsherlock/res/values/abs__themes.xml new file mode 100644 index 000000000..5300dedd6 --- /dev/null +++ b/actionbarsherlock/res/values/abs__themes.xml @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/ActionMenuPresenter.java b/actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/ActionMenuPresenter.java new file mode 100644 index 000000000..6f568c698 --- /dev/null +++ b/actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/ActionMenuPresenter.java @@ -0,0 +1,721 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.actionbarsherlock.internal.view.menu; + +import static com.actionbarsherlock.internal.ResourcesCompat.getResources_getInteger; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; +import android.content.Context; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.os.Build; +import android.os.Parcel; +import android.os.Parcelable; +import android.util.SparseBooleanArray; +import android.view.SoundEffectConstants; +import android.view.View; +import android.view.View.MeasureSpec; +import android.view.ViewConfiguration; +import android.view.ViewGroup; +import android.widget.ImageButton; +import com.actionbarsherlock.R; +import com.actionbarsherlock.internal.view.View_HasStateListenerSupport; +import com.actionbarsherlock.internal.view.View_OnAttachStateChangeListener; +import com.actionbarsherlock.internal.view.menu.ActionMenuView.ActionMenuChildView; +import com.actionbarsherlock.view.ActionProvider; +import com.actionbarsherlock.view.MenuItem; + +/** + * MenuPresenter for building action menus as seen in the action bar and action modes. + */ +public class ActionMenuPresenter extends BaseMenuPresenter + implements ActionProvider.SubUiVisibilityListener { + //UNUSED private static final String TAG = "ActionMenuPresenter"; + + private View mOverflowButton; + private boolean mReserveOverflow; + private boolean mReserveOverflowSet; + private int mWidthLimit; + private int mActionItemWidthLimit; + private int mMaxItems; + private boolean mMaxItemsSet; + private boolean mStrictWidthLimit; + private boolean mWidthLimitSet; + private boolean mExpandedActionViewsExclusive; + + private int mMinCellSize; + + // Group IDs that have been added as actions - used temporarily, allocated here for reuse. + private final SparseBooleanArray mActionButtonGroups = new SparseBooleanArray(); + + private View mScrapActionButtonView; + + private OverflowPopup mOverflowPopup; + private ActionButtonSubmenu mActionButtonPopup; + + private OpenOverflowRunnable mPostedOpenRunnable; + + final PopupPresenterCallback mPopupPresenterCallback = new PopupPresenterCallback(); + int mOpenSubMenuId; + + public ActionMenuPresenter(Context context) { + super(context, R.layout.abs__action_menu_layout, + R.layout.abs__action_menu_item_layout); + } + + @Override + public void initForMenu(Context context, MenuBuilder menu) { + super.initForMenu(context, menu); + + final Resources res = context.getResources(); + + if (!mReserveOverflowSet) { + mReserveOverflow = reserveOverflow(mContext); + } + + if (!mWidthLimitSet) { + mWidthLimit = res.getDisplayMetrics().widthPixels / 2; + } + + // Measure for initial configuration + if (!mMaxItemsSet) { + mMaxItems = getResources_getInteger(context, R.integer.abs__max_action_buttons); + } + + int width = mWidthLimit; + if (mReserveOverflow) { + if (mOverflowButton == null) { + mOverflowButton = new OverflowMenuButton(mSystemContext); + final int spec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED); + mOverflowButton.measure(spec, spec); + } + width -= mOverflowButton.getMeasuredWidth(); + } else { + mOverflowButton = null; + } + + mActionItemWidthLimit = width; + + mMinCellSize = (int) (ActionMenuView.MIN_CELL_SIZE * res.getDisplayMetrics().density); + + // Drop a scrap view as it may no longer reflect the proper context/config. + mScrapActionButtonView = null; + } + + public static boolean reserveOverflow(Context context) { + //Check for theme-forced overflow action item + TypedArray a = context.getTheme().obtainStyledAttributes(R.styleable.SherlockTheme); + boolean result = a.getBoolean(R.styleable.SherlockTheme_absForceOverflow, false); + a.recycle(); + if (result) { + return true; + } + + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { + return (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB); + } else { + return !HasPermanentMenuKey.get(context); + } + } + + private static class HasPermanentMenuKey { + public static boolean get(Context context) { + return ViewConfiguration.get(context).hasPermanentMenuKey(); + } + } + + public void onConfigurationChanged(Configuration newConfig) { + if (!mMaxItemsSet) { + mMaxItems = getResources_getInteger(mContext, + R.integer.abs__max_action_buttons); + if (mMenu != null) { + mMenu.onItemsChanged(true); + } + } + } + + public void setWidthLimit(int width, boolean strict) { + mWidthLimit = width; + mStrictWidthLimit = strict; + mWidthLimitSet = true; + } + + public void setReserveOverflow(boolean reserveOverflow) { + mReserveOverflow = reserveOverflow; + mReserveOverflowSet = true; + } + + public void setItemLimit(int itemCount) { + mMaxItems = itemCount; + mMaxItemsSet = true; + } + + public void setExpandedActionViewsExclusive(boolean isExclusive) { + mExpandedActionViewsExclusive = isExclusive; + } + + @Override + public MenuView getMenuView(ViewGroup root) { + MenuView result = super.getMenuView(root); + ((ActionMenuView) result).setPresenter(this); + return result; + } + + @Override + public View getItemView(MenuItemImpl item, View convertView, ViewGroup parent) { + View actionView = item.getActionView(); + if (actionView == null || item.hasCollapsibleActionView()) { + if (!(convertView instanceof ActionMenuItemView)) { + convertView = null; + } + actionView = super.getItemView(item, convertView, parent); + } + actionView.setVisibility(item.isActionViewExpanded() ? View.GONE : View.VISIBLE); + + final ActionMenuView menuParent = (ActionMenuView) parent; + final ViewGroup.LayoutParams lp = actionView.getLayoutParams(); + if (!menuParent.checkLayoutParams(lp)) { + actionView.setLayoutParams(menuParent.generateLayoutParams(lp)); + } + return actionView; + } + + @Override + public void bindItemView(MenuItemImpl item, MenuView.ItemView itemView) { + itemView.initialize(item, 0); + + final ActionMenuView menuView = (ActionMenuView) mMenuView; + ActionMenuItemView actionItemView = (ActionMenuItemView) itemView; + actionItemView.setItemInvoker(menuView); + } + + @Override + public boolean shouldIncludeItem(int childIndex, MenuItemImpl item) { + return item.isActionButton(); + } + + @Override + public void updateMenuView(boolean cleared) { + super.updateMenuView(cleared); + + if (mMenu != null) { + final ArrayList actionItems = mMenu.getActionItems(); + final int count = actionItems.size(); + for (int i = 0; i < count; i++) { + final ActionProvider provider = actionItems.get(i).getActionProvider(); + if (provider != null) { + provider.setSubUiVisibilityListener(this); + } + } + } + + final ArrayList nonActionItems = mMenu != null ? + mMenu.getNonActionItems() : null; + + boolean hasOverflow = false; + if (mReserveOverflow && nonActionItems != null) { + final int count = nonActionItems.size(); + if (count == 1) { + hasOverflow = !nonActionItems.get(0).isActionViewExpanded(); + } else { + hasOverflow = count > 0; + } + } + + if (hasOverflow) { + if (mOverflowButton == null) { + mOverflowButton = new OverflowMenuButton(mSystemContext); + } + ViewGroup parent = (ViewGroup) mOverflowButton.getParent(); + if (parent != mMenuView) { + if (parent != null) { + parent.removeView(mOverflowButton); + } + ActionMenuView menuView = (ActionMenuView) mMenuView; + menuView.addView(mOverflowButton, menuView.generateOverflowButtonLayoutParams()); + } + } else if (mOverflowButton != null && mOverflowButton.getParent() == mMenuView) { + ((ViewGroup) mMenuView).removeView(mOverflowButton); + } + + ((ActionMenuView) mMenuView).setOverflowReserved(mReserveOverflow); + } + + @Override + public boolean filterLeftoverView(ViewGroup parent, int childIndex) { + if (parent.getChildAt(childIndex) == mOverflowButton) return false; + return super.filterLeftoverView(parent, childIndex); + } + + public boolean onSubMenuSelected(SubMenuBuilder subMenu) { + if (!subMenu.hasVisibleItems()) return false; + + SubMenuBuilder topSubMenu = subMenu; + while (topSubMenu.getParentMenu() != mMenu) { + topSubMenu = (SubMenuBuilder) topSubMenu.getParentMenu(); + } + View anchor = findViewForItem(topSubMenu.getItem()); + if (anchor == null) { + if (mOverflowButton == null) return false; + anchor = mOverflowButton; + } + + mOpenSubMenuId = subMenu.getItem().getItemId(); + mActionButtonPopup = new ActionButtonSubmenu(mContext, subMenu); + mActionButtonPopup.setAnchorView(anchor); + mActionButtonPopup.show(); + super.onSubMenuSelected(subMenu); + return true; + } + + private View findViewForItem(MenuItem item) { + final ViewGroup parent = (ViewGroup) mMenuView; + if (parent == null) return null; + + final int count = parent.getChildCount(); + for (int i = 0; i < count; i++) { + final View child = parent.getChildAt(i); + if (child instanceof MenuView.ItemView && + ((MenuView.ItemView) child).getItemData() == item) { + return child; + } + } + return null; + } + + /** + * Display the overflow menu if one is present. + * @return true if the overflow menu was shown, false otherwise. + */ + public boolean showOverflowMenu() { + if (mReserveOverflow && !isOverflowMenuShowing() && mMenu != null && mMenuView != null && + mPostedOpenRunnable == null && !mMenu.getNonActionItems().isEmpty()) { + OverflowPopup popup = new OverflowPopup(mContext, mMenu, mOverflowButton, true); + mPostedOpenRunnable = new OpenOverflowRunnable(popup); + // Post this for later; we might still need a layout for the anchor to be right. + ((View) mMenuView).post(mPostedOpenRunnable); + + // ActionMenuPresenter uses null as a callback argument here + // to indicate overflow is opening. + super.onSubMenuSelected(null); + + return true; + } + return false; + } + + /** + * Hide the overflow menu if it is currently showing. + * + * @return true if the overflow menu was hidden, false otherwise. + */ + public boolean hideOverflowMenu() { + if (mPostedOpenRunnable != null && mMenuView != null) { + ((View) mMenuView).removeCallbacks(mPostedOpenRunnable); + mPostedOpenRunnable = null; + return true; + } + + MenuPopupHelper popup = mOverflowPopup; + if (popup != null) { + popup.dismiss(); + return true; + } + return false; + } + + /** + * Dismiss all popup menus - overflow and submenus. + * @return true if popups were dismissed, false otherwise. (This can be because none were open.) + */ + public boolean dismissPopupMenus() { + boolean result = hideOverflowMenu(); + result |= hideSubMenus(); + return result; + } + + /** + * Dismiss all submenu popups. + * + * @return true if popups were dismissed, false otherwise. (This can be because none were open.) + */ + public boolean hideSubMenus() { + if (mActionButtonPopup != null) { + mActionButtonPopup.dismiss(); + return true; + } + return false; + } + + /** + * @return true if the overflow menu is currently showing + */ + public boolean isOverflowMenuShowing() { + return mOverflowPopup != null && mOverflowPopup.isShowing(); + } + + /** + * @return true if space has been reserved in the action menu for an overflow item. + */ + public boolean isOverflowReserved() { + return mReserveOverflow; + } + + public boolean flagActionItems() { + final ArrayList visibleItems = mMenu.getVisibleItems(); + final int itemsSize = visibleItems.size(); + int maxActions = mMaxItems; + int widthLimit = mActionItemWidthLimit; + final int querySpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED); + final ViewGroup parent = (ViewGroup) mMenuView; + + int requiredItems = 0; + int requestedItems = 0; + int firstActionWidth = 0; + boolean hasOverflow = false; + for (int i = 0; i < itemsSize; i++) { + MenuItemImpl item = visibleItems.get(i); + if (item.requiresActionButton()) { + requiredItems++; + } else if (item.requestsActionButton()) { + requestedItems++; + } else { + hasOverflow = true; + } + if (mExpandedActionViewsExclusive && item.isActionViewExpanded()) { + // Overflow everything if we have an expanded action view and we're + // space constrained. + maxActions = 0; + } + } + + // Reserve a spot for the overflow item if needed. + if (mReserveOverflow && + (hasOverflow || requiredItems + requestedItems > maxActions)) { + maxActions--; + } + maxActions -= requiredItems; + + final SparseBooleanArray seenGroups = mActionButtonGroups; + seenGroups.clear(); + + int cellSize = 0; + int cellsRemaining = 0; + if (mStrictWidthLimit) { + cellsRemaining = widthLimit / mMinCellSize; + final int cellSizeRemaining = widthLimit % mMinCellSize; + cellSize = mMinCellSize + cellSizeRemaining / cellsRemaining; + } + + // Flag as many more requested items as will fit. + for (int i = 0; i < itemsSize; i++) { + MenuItemImpl item = visibleItems.get(i); + + if (item.requiresActionButton()) { + View v = getItemView(item, mScrapActionButtonView, parent); + if (mScrapActionButtonView == null) { + mScrapActionButtonView = v; + } + if (mStrictWidthLimit) { + cellsRemaining -= ActionMenuView.measureChildForCells(v, + cellSize, cellsRemaining, querySpec, 0); + } else { + v.measure(querySpec, querySpec); + } + final int measuredWidth = v.getMeasuredWidth(); + widthLimit -= measuredWidth; + if (firstActionWidth == 0) { + firstActionWidth = measuredWidth; + } + final int groupId = item.getGroupId(); + if (groupId != 0) { + seenGroups.put(groupId, true); + } + item.setIsActionButton(true); + } else if (item.requestsActionButton()) { + // Items in a group with other items that already have an action slot + // can break the max actions rule, but not the width limit. + final int groupId = item.getGroupId(); + final boolean inGroup = seenGroups.get(groupId); + boolean isAction = (maxActions > 0 || inGroup) && widthLimit > 0 && + (!mStrictWidthLimit || cellsRemaining > 0); + + if (isAction) { + View v = getItemView(item, mScrapActionButtonView, parent); + if (mScrapActionButtonView == null) { + mScrapActionButtonView = v; + } + if (mStrictWidthLimit) { + final int cells = ActionMenuView.measureChildForCells(v, + cellSize, cellsRemaining, querySpec, 0); + cellsRemaining -= cells; + if (cells == 0) { + isAction = false; + } + } else { + v.measure(querySpec, querySpec); + } + final int measuredWidth = v.getMeasuredWidth(); + widthLimit -= measuredWidth; + if (firstActionWidth == 0) { + firstActionWidth = measuredWidth; + } + + if (mStrictWidthLimit) { + isAction &= widthLimit >= 0; + } else { + // Did this push the entire first item past the limit? + isAction &= widthLimit + firstActionWidth > 0; + } + } + + if (isAction && groupId != 0) { + seenGroups.put(groupId, true); + } else if (inGroup) { + // We broke the width limit. Demote the whole group, they all overflow now. + seenGroups.put(groupId, false); + for (int j = 0; j < i; j++) { + MenuItemImpl areYouMyGroupie = visibleItems.get(j); + if (areYouMyGroupie.getGroupId() == groupId) { + // Give back the action slot + if (areYouMyGroupie.isActionButton()) maxActions++; + areYouMyGroupie.setIsActionButton(false); + } + } + } + + if (isAction) maxActions--; + + item.setIsActionButton(isAction); + } + } + return true; + } + + @Override + public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { + dismissPopupMenus(); + super.onCloseMenu(menu, allMenusAreClosing); + } + + @Override + public Parcelable onSaveInstanceState() { + SavedState state = new SavedState(); + state.openSubMenuId = mOpenSubMenuId; + return state; + } + + @Override + public void onRestoreInstanceState(Parcelable state) { + SavedState saved = (SavedState) state; + if (saved.openSubMenuId > 0) { + MenuItem item = mMenu.findItem(saved.openSubMenuId); + if (item != null) { + SubMenuBuilder subMenu = (SubMenuBuilder) item.getSubMenu(); + onSubMenuSelected(subMenu); + } + } + } + + @Override + public void onSubUiVisibilityChanged(boolean isVisible) { + if (isVisible) { + // Not a submenu, but treat it like one. + super.onSubMenuSelected(null); + } else { + mMenu.close(false); + } + } + + private static class SavedState implements Parcelable { + public int openSubMenuId; + + SavedState() { + } + + SavedState(Parcel in) { + openSubMenuId = in.readInt(); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeInt(openSubMenuId); + } + + @SuppressWarnings("unused") + public static final Parcelable.Creator CREATOR + = new Parcelable.Creator() { + public SavedState createFromParcel(Parcel in) { + return new SavedState(in); + } + + public SavedState[] newArray(int size) { + return new SavedState[size]; + } + }; + } + + private class OverflowMenuButton extends ImageButton implements ActionMenuChildView, View_HasStateListenerSupport { + private final Set mListeners = new HashSet(); + + public OverflowMenuButton(Context context) { + super(context, null, R.attr.actionOverflowButtonStyle); + + setClickable(true); + setFocusable(true); + setVisibility(VISIBLE); + setEnabled(true); + } + + @Override + public boolean performClick() { + if (super.performClick()) { + return true; + } + + playSoundEffect(SoundEffectConstants.CLICK); + showOverflowMenu(); + return true; + } + + public boolean needsDividerBefore() { + return false; + } + + public boolean needsDividerAfter() { + return false; + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + for (View_OnAttachStateChangeListener listener : mListeners) { + listener.onViewAttachedToWindow(this); + } + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + for (View_OnAttachStateChangeListener listener : mListeners) { + listener.onViewDetachedFromWindow(this); + } + } + + @Override + public void addOnAttachStateChangeListener(View_OnAttachStateChangeListener listener) { + mListeners.add(listener); + } + + @Override + public void removeOnAttachStateChangeListener(View_OnAttachStateChangeListener listener) { + mListeners.remove(listener); + } + } + + private class OverflowPopup extends MenuPopupHelper { + public OverflowPopup(Context context, MenuBuilder menu, View anchorView, + boolean overflowOnly) { + super(context, menu, anchorView, overflowOnly); + setCallback(mPopupPresenterCallback); + } + + @Override + public void onDismiss() { + super.onDismiss(); + mMenu.close(); + mOverflowPopup = null; + } + } + + private class ActionButtonSubmenu extends MenuPopupHelper { + //UNUSED private SubMenuBuilder mSubMenu; + + public ActionButtonSubmenu(Context context, SubMenuBuilder subMenu) { + super(context, subMenu); + //UNUSED mSubMenu = subMenu; + + MenuItemImpl item = (MenuItemImpl) subMenu.getItem(); + if (!item.isActionButton()) { + // Give a reasonable anchor to nested submenus. + setAnchorView(mOverflowButton == null ? (View) mMenuView : mOverflowButton); + } + + setCallback(mPopupPresenterCallback); + + boolean preserveIconSpacing = false; + final int count = subMenu.size(); + for (int i = 0; i < count; i++) { + MenuItem childItem = subMenu.getItem(i); + if (childItem.isVisible() && childItem.getIcon() != null) { + preserveIconSpacing = true; + break; + } + } + setForceShowIcon(preserveIconSpacing); + } + + @Override + public void onDismiss() { + super.onDismiss(); + mActionButtonPopup = null; + mOpenSubMenuId = 0; + } + } + + private class PopupPresenterCallback implements MenuPresenter.Callback { + + @Override + public boolean onOpenSubMenu(MenuBuilder subMenu) { + if (subMenu == null) return false; + + mOpenSubMenuId = ((SubMenuBuilder) subMenu).getItem().getItemId(); + return false; + } + + @Override + public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { + if (menu instanceof SubMenuBuilder) { + ((SubMenuBuilder) menu).getRootMenu().close(false); + } + } + } + + private class OpenOverflowRunnable implements Runnable { + private OverflowPopup mPopup; + + public OpenOverflowRunnable(OverflowPopup popup) { + mPopup = popup; + } + + public void run() { + mMenu.changeMenuMode(); + final View menuView = (View) mMenuView; + if (menuView != null && menuView.getWindowToken() != null && mPopup.tryShow()) { + mOverflowPopup = mPopup; + } + mPostedOpenRunnable = null; + } + } +} diff --git a/actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/BaseMenuPresenter.java b/actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/BaseMenuPresenter.java new file mode 100644 index 000000000..6da26f2ae --- /dev/null +++ b/actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/BaseMenuPresenter.java @@ -0,0 +1,231 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.actionbarsherlock.internal.view.menu; + +import java.util.ArrayList; +import android.content.Context; +import android.os.Build; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +/** + * Base class for MenuPresenters that have a consistent container view and item + * views. Behaves similarly to an AdapterView in that existing item views will + * be reused if possible when items change. + */ +public abstract class BaseMenuPresenter implements MenuPresenter { + private static final boolean IS_HONEYCOMB = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB; + + protected Context mSystemContext; + protected Context mContext; + protected MenuBuilder mMenu; + protected LayoutInflater mSystemInflater; + protected LayoutInflater mInflater; + private Callback mCallback; + + private int mMenuLayoutRes; + private int mItemLayoutRes; + + protected MenuView mMenuView; + + private int mId; + + /** + * Construct a new BaseMenuPresenter. + * + * @param context Context for generating system-supplied views + * @param menuLayoutRes Layout resource ID for the menu container view + * @param itemLayoutRes Layout resource ID for a single item view + */ + public BaseMenuPresenter(Context context, int menuLayoutRes, int itemLayoutRes) { + mSystemContext = context; + mSystemInflater = LayoutInflater.from(context); + mMenuLayoutRes = menuLayoutRes; + mItemLayoutRes = itemLayoutRes; + } + + @Override + public void initForMenu(Context context, MenuBuilder menu) { + mContext = context; + mInflater = LayoutInflater.from(mContext); + mMenu = menu; + } + + @Override + public MenuView getMenuView(ViewGroup root) { + if (mMenuView == null) { + mMenuView = (MenuView) mSystemInflater.inflate(mMenuLayoutRes, root, false); + mMenuView.initialize(mMenu); + updateMenuView(true); + } + + return mMenuView; + } + + /** + * Reuses item views when it can + */ + public void updateMenuView(boolean cleared) { + final ViewGroup parent = (ViewGroup) mMenuView; + if (parent == null) return; + + int childIndex = 0; + if (mMenu != null) { + mMenu.flagActionItems(); + ArrayList visibleItems = mMenu.getVisibleItems(); + final int itemCount = visibleItems.size(); + for (int i = 0; i < itemCount; i++) { + MenuItemImpl item = visibleItems.get(i); + if (shouldIncludeItem(childIndex, item)) { + final View convertView = parent.getChildAt(childIndex); + final MenuItemImpl oldItem = convertView instanceof MenuView.ItemView ? + ((MenuView.ItemView) convertView).getItemData() : null; + final View itemView = getItemView(item, convertView, parent); + if (item != oldItem) { + // Don't let old states linger with new data. + itemView.setPressed(false); + if (IS_HONEYCOMB) itemView.jumpDrawablesToCurrentState(); + } + if (itemView != convertView) { + addItemView(itemView, childIndex); + } + childIndex++; + } + } + } + + // Remove leftover views. + while (childIndex < parent.getChildCount()) { + if (!filterLeftoverView(parent, childIndex)) { + childIndex++; + } + } + } + + /** + * Add an item view at the given index. + * + * @param itemView View to add + * @param childIndex Index within the parent to insert at + */ + protected void addItemView(View itemView, int childIndex) { + final ViewGroup currentParent = (ViewGroup) itemView.getParent(); + if (currentParent != null) { + currentParent.removeView(itemView); + } + ((ViewGroup) mMenuView).addView(itemView, childIndex); + } + + /** + * Filter the child view at index and remove it if appropriate. + * @param parent Parent to filter from + * @param childIndex Index to filter + * @return true if the child view at index was removed + */ + protected boolean filterLeftoverView(ViewGroup parent, int childIndex) { + parent.removeViewAt(childIndex); + return true; + } + + public void setCallback(Callback cb) { + mCallback = cb; + } + + /** + * Create a new item view that can be re-bound to other item data later. + * + * @return The new item view + */ + public MenuView.ItemView createItemView(ViewGroup parent) { + return (MenuView.ItemView) mSystemInflater.inflate(mItemLayoutRes, parent, false); + } + + /** + * Prepare an item view for use. See AdapterView for the basic idea at work here. + * This may require creating a new item view, but well-behaved implementations will + * re-use the view passed as convertView if present. The returned view will be populated + * with data from the item parameter. + * + * @param item Item to present + * @param convertView Existing view to reuse + * @param parent Intended parent view - use for inflation. + * @return View that presents the requested menu item + */ + public View getItemView(MenuItemImpl item, View convertView, ViewGroup parent) { + MenuView.ItemView itemView; + if (convertView instanceof MenuView.ItemView) { + itemView = (MenuView.ItemView) convertView; + } else { + itemView = createItemView(parent); + } + bindItemView(item, itemView); + return (View) itemView; + } + + /** + * Bind item data to an existing item view. + * + * @param item Item to bind + * @param itemView View to populate with item data + */ + public abstract void bindItemView(MenuItemImpl item, MenuView.ItemView itemView); + + /** + * Filter item by child index and item data. + * + * @param childIndex Indended presentation index of this item + * @param item Item to present + * @return true if this item should be included in this menu presentation; false otherwise + */ + public boolean shouldIncludeItem(int childIndex, MenuItemImpl item) { + return true; + } + + public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { + if (mCallback != null) { + mCallback.onCloseMenu(menu, allMenusAreClosing); + } + } + + public boolean onSubMenuSelected(SubMenuBuilder menu) { + if (mCallback != null) { + return mCallback.onOpenSubMenu(menu); + } + return false; + } + + public boolean flagActionItems() { + return false; + } + + public boolean expandItemActionView(MenuBuilder menu, MenuItemImpl item) { + return false; + } + + public boolean collapseItemActionView(MenuBuilder menu, MenuItemImpl item) { + return false; + } + + public int getId() { + return mId; + } + + public void setId(int id) { + mId = id; + } +} diff --git a/actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/MenuPresenter.java b/actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/MenuPresenter.java new file mode 100644 index 000000000..c3f35472c --- /dev/null +++ b/actionbarsherlock/src/com/actionbarsherlock/internal/view/menu/MenuPresenter.java @@ -0,0 +1,148 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.actionbarsherlock.internal.view.menu; + +import android.content.Context; +import android.os.Parcelable; +import android.view.ViewGroup; + +/** + * A MenuPresenter is responsible for building views for a Menu object. + * It takes over some responsibility from the old style monolithic MenuBuilder class. + */ +public interface MenuPresenter { + /** + * Called by menu implementation to notify another component of open/close events. + */ + public interface Callback { + /** + * Called when a menu is closing. + * @param menu + * @param allMenusAreClosing + */ + public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing); + + /** + * Called when a submenu opens. Useful for notifying the application + * of menu state so that it does not attempt to hide the action bar + * while a submenu is open or similar. + * + * @param subMenu Submenu currently being opened + * @return true if the Callback will handle presenting the submenu, false if + * the presenter should attempt to do so. + */ + public boolean onOpenSubMenu(MenuBuilder subMenu); + } + + /** + * Initialize this presenter for the given context and menu. + * This method is called by MenuBuilder when a presenter is + * added. See {@link MenuBuilder#addMenuPresenter(MenuPresenter)} + * + * @param context Context for this presenter; used for view creation and resource management + * @param menu Menu to host + */ + public void initForMenu(Context context, MenuBuilder menu); + + /** + * Retrieve a MenuView to display the menu specified in + * {@link #initForMenu(Context, Menu)}. + * + * @param root Intended parent of the MenuView. + * @return A freshly created MenuView. + */ + public MenuView getMenuView(ViewGroup root); + + /** + * Update the menu UI in response to a change. Called by + * MenuBuilder during the normal course of operation. + * + * @param cleared true if the menu was entirely cleared + */ + public void updateMenuView(boolean cleared); + + /** + * Set a callback object that will be notified of menu events + * related to this specific presentation. + * @param cb Callback that will be notified of future events + */ + public void setCallback(Callback cb); + + /** + * Called by Menu implementations to indicate that a submenu item + * has been selected. An active Callback should be notified, and + * if applicable the presenter should present the submenu. + * + * @param subMenu SubMenu being opened + * @return true if the the event was handled, false otherwise. + */ + public boolean onSubMenuSelected(SubMenuBuilder subMenu); + + /** + * Called by Menu implementations to indicate that a menu or submenu is + * closing. Presenter implementations should close the representation + * of the menu indicated as necessary and notify a registered callback. + * + * @param menu Menu or submenu that is closing. + * @param allMenusAreClosing True if all associated menus are closing. + */ + public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing); + + /** + * Called by Menu implementations to flag items that will be shown as actions. + * @return true if this presenter changed the action status of any items. + */ + public boolean flagActionItems(); + + /** + * Called when a menu item with a collapsable action view should expand its action view. + * + * @param menu Menu containing the item to be expanded + * @param item Item to be expanded + * @return true if this presenter expanded the action view, false otherwise. + */ + public boolean expandItemActionView(MenuBuilder menu, MenuItemImpl item); + + /** + * Called when a menu item with a collapsable action view should collapse its action view. + * + * @param menu Menu containing the item to be collapsed + * @param item Item to be collapsed + * @return true if this presenter collapsed the action view, false otherwise. + */ + public boolean collapseItemActionView(MenuBuilder menu, MenuItemImpl item); + + /** + * Returns an ID for determining how to save/restore instance state. + * @return a valid ID value. + */ + public int getId(); + + /** + * Returns a Parcelable describing the current state of the presenter. + * It will be passed to the {@link #onRestoreInstanceState(Parcelable)} + * method of the presenter sharing the same ID later. + * @return The saved instance state + */ + public Parcelable onSaveInstanceState(); + + /** + * Supplies the previously saved instance state to be restored. + * @param state The previously saved instance state + */ + public void onRestoreInstanceState(Parcelable state); +} diff --git a/actionbarsherlock/src/com/actionbarsherlock/internal/widget/IcsProgressBar.java b/actionbarsherlock/src/com/actionbarsherlock/internal/widget/IcsProgressBar.java new file mode 100644 index 000000000..1c02d4aca --- /dev/null +++ b/actionbarsherlock/src/com/actionbarsherlock/internal/widget/IcsProgressBar.java @@ -0,0 +1,1193 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.actionbarsherlock.internal.widget; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.BitmapShader; +import android.graphics.Canvas; +import android.graphics.Rect; +import android.graphics.Shader; +import android.graphics.drawable.Animatable; +import android.graphics.drawable.AnimationDrawable; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.ClipDrawable; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; +import android.graphics.drawable.ShapeDrawable; +import android.graphics.drawable.shapes.RoundRectShape; +import android.graphics.drawable.shapes.Shape; +import android.os.Build; +import android.os.Parcel; +import android.os.Parcelable; +import android.os.SystemClock; +import android.util.AttributeSet; +import android.view.Gravity; +import android.view.View; +import android.view.ViewDebug; +import android.view.accessibility.AccessibilityEvent; +import android.view.accessibility.AccessibilityManager; +import android.view.animation.AlphaAnimation; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import android.view.animation.Interpolator; +import android.view.animation.LinearInterpolator; +import android.view.animation.Transformation; +import android.widget.RemoteViews.RemoteView; + + +/** + *

+ * Visual indicator of progress in some operation. Displays a bar to the user + * representing how far the operation has progressed; the application can + * change the amount of progress (modifying the length of the bar) as it moves + * forward. There is also a secondary progress displayable on a progress bar + * which is useful for displaying intermediate progress, such as the buffer + * level during a streaming playback progress bar. + *

+ * + *

+ * A progress bar can also be made indeterminate. In indeterminate mode, the + * progress bar shows a cyclic animation without an indication of progress. This mode is used by + * applications when the length of the task is unknown. The indeterminate progress bar can be either + * a spinning wheel or a horizontal bar. + *

+ * + *

The following code example shows how a progress bar can be used from + * a worker thread to update the user interface to notify the user of progress: + *

+ * + *
+ * public class MyActivity extends Activity {
+ *     private static final int PROGRESS = 0x1;
+ *
+ *     private ProgressBar mProgress;
+ *     private int mProgressStatus = 0;
+ *
+ *     private Handler mHandler = new Handler();
+ *
+ *     protected void onCreate(Bundle icicle) {
+ *         super.onCreate(icicle);
+ *
+ *         setContentView(R.layout.progressbar_activity);
+ *
+ *         mProgress = (ProgressBar) findViewById(R.id.progress_bar);
+ *
+ *         // Start lengthy operation in a background thread
+ *         new Thread(new Runnable() {
+ *             public void run() {
+ *                 while (mProgressStatus < 100) {
+ *                     mProgressStatus = doWork();
+ *
+ *                     // Update the progress bar
+ *                     mHandler.post(new Runnable() {
+ *                         public void run() {
+ *                             mProgress.setProgress(mProgressStatus);
+ *                         }
+ *                     });
+ *                 }
+ *             }
+ *         }).start();
+ *     }
+ * }
+ * + *

To add a progress bar to a layout file, you can use the {@code <ProgressBar>} element. + * By default, the progress bar is a spinning wheel (an indeterminate indicator). To change to a + * horizontal progress bar, apply the {@link android.R.style#Widget_ProgressBar_Horizontal + * Widget.ProgressBar.Horizontal} style, like so:

+ * + *
+ * <ProgressBar
+ *     style="@android:style/Widget.ProgressBar.Horizontal"
+ *     ... />
+ * + *

If you will use the progress bar to show real progress, you must use the horizontal bar. You + * can then increment the progress with {@link #incrementProgressBy incrementProgressBy()} or + * {@link #setProgress setProgress()}. By default, the progress bar is full when it reaches 100. If + * necessary, you can adjust the maximum value (the value for a full bar) using the {@link + * android.R.styleable#ProgressBar_max android:max} attribute. Other attributes available are listed + * below.

+ * + *

Another common style to apply to the progress bar is {@link + * android.R.style#Widget_ProgressBar_Small Widget.ProgressBar.Small}, which shows a smaller + * version of the spinning wheel—useful when waiting for content to load. + * For example, you can insert this kind of progress bar into your default layout for + * a view that will be populated by some content fetched from the Internet—the spinning wheel + * appears immediately and when your application receives the content, it replaces the progress bar + * with the loaded content. For example:

+ * + *
+ * <LinearLayout
+ *     android:orientation="horizontal"
+ *     ... >
+ *     <ProgressBar
+ *         android:layout_width="wrap_content"
+ *         android:layout_height="wrap_content"
+ *         style="@android:style/Widget.ProgressBar.Small"
+ *         android:layout_marginRight="5dp" />
+ *     <TextView
+ *         android:layout_width="wrap_content"
+ *         android:layout_height="wrap_content"
+ *         android:text="@string/loading" />
+ * </LinearLayout>
+ * + *

Other progress bar styles provided by the system include:

+ *
    + *
  • {@link android.R.style#Widget_ProgressBar_Horizontal Widget.ProgressBar.Horizontal}
  • + *
  • {@link android.R.style#Widget_ProgressBar_Small Widget.ProgressBar.Small}
  • + *
  • {@link android.R.style#Widget_ProgressBar_Large Widget.ProgressBar.Large}
  • + *
  • {@link android.R.style#Widget_ProgressBar_Inverse Widget.ProgressBar.Inverse}
  • + *
  • {@link android.R.style#Widget_ProgressBar_Small_Inverse + * Widget.ProgressBar.Small.Inverse}
  • + *
  • {@link android.R.style#Widget_ProgressBar_Large_Inverse + * Widget.ProgressBar.Large.Inverse}
  • + *
+ *

The "inverse" styles provide an inverse color scheme for the spinner, which may be necessary + * if your application uses a light colored theme (a white background).

+ * + *

XML attributes + *

+ * See {@link android.R.styleable#ProgressBar ProgressBar Attributes}, + * {@link android.R.styleable#View View Attributes} + *

+ * + * @attr ref android.R.styleable#ProgressBar_animationResolution + * @attr ref android.R.styleable#ProgressBar_indeterminate + * @attr ref android.R.styleable#ProgressBar_indeterminateBehavior + * @attr ref android.R.styleable#ProgressBar_indeterminateDrawable + * @attr ref android.R.styleable#ProgressBar_indeterminateDuration + * @attr ref android.R.styleable#ProgressBar_indeterminateOnly + * @attr ref android.R.styleable#ProgressBar_interpolator + * @attr ref android.R.styleable#ProgressBar_max + * @attr ref android.R.styleable#ProgressBar_maxHeight + * @attr ref android.R.styleable#ProgressBar_maxWidth + * @attr ref android.R.styleable#ProgressBar_minHeight + * @attr ref android.R.styleable#ProgressBar_minWidth + * @attr ref android.R.styleable#ProgressBar_progress + * @attr ref android.R.styleable#ProgressBar_progressDrawable + * @attr ref android.R.styleable#ProgressBar_secondaryProgress + */ +@RemoteView +public class IcsProgressBar extends View { + private static final boolean IS_HONEYCOMB = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB; + private static final int MAX_LEVEL = 10000; + private static final int ANIMATION_RESOLUTION = 200; + private static final int TIMEOUT_SEND_ACCESSIBILITY_EVENT = 200; + + private static final int[] ProgressBar = new int[] { + android.R.attr.maxWidth, + android.R.attr.maxHeight, + android.R.attr.max, + android.R.attr.progress, + android.R.attr.secondaryProgress, + android.R.attr.indeterminate, + android.R.attr.indeterminateOnly, + android.R.attr.indeterminateDrawable, + android.R.attr.progressDrawable, + android.R.attr.indeterminateDuration, + android.R.attr.indeterminateBehavior, + android.R.attr.minWidth, + android.R.attr.minHeight, + android.R.attr.interpolator, + android.R.attr.animationResolution, + }; + private static final int ProgressBar_maxWidth = 0; + private static final int ProgressBar_maxHeight = 1; + private static final int ProgressBar_max = 2; + private static final int ProgressBar_progress = 3; + private static final int ProgressBar_secondaryProgress = 4; + private static final int ProgressBar_indeterminate = 5; + private static final int ProgressBar_indeterminateOnly = 6; + private static final int ProgressBar_indeterminateDrawable = 7; + private static final int ProgressBar_progressDrawable = 8; + private static final int ProgressBar_indeterminateDuration = 9; + private static final int ProgressBar_indeterminateBehavior = 10; + private static final int ProgressBar_minWidth = 11; + private static final int ProgressBar_minHeight = 12; + private static final int ProgressBar_interpolator = 13; + private static final int ProgressBar_animationResolution = 14; + + int mMinWidth; + int mMaxWidth; + int mMinHeight; + int mMaxHeight; + + private int mProgress; + private int mSecondaryProgress; + private int mMax; + + private int mBehavior; + private int mDuration; + private boolean mIndeterminate; + private boolean mOnlyIndeterminate; + private Transformation mTransformation; + private AlphaAnimation mAnimation; + private Drawable mIndeterminateDrawable; + private int mIndeterminateRealLeft; + private int mIndeterminateRealTop; + private Drawable mProgressDrawable; + private Drawable mCurrentDrawable; + Bitmap mSampleTile; + private boolean mNoInvalidate; + private Interpolator mInterpolator; + private RefreshProgressRunnable mRefreshProgressRunnable; + private long mUiThreadId; + private boolean mShouldStartAnimationDrawable; + private long mLastDrawTime; + + private boolean mInDrawing; + + private int mAnimationResolution; + + private AccessibilityManager mAccessibilityManager; + private AccessibilityEventSender mAccessibilityEventSender; + + /** + * Create a new progress bar with range 0...100 and initial progress of 0. + * @param context the application environment + */ + public IcsProgressBar(Context context) { + this(context, null); + } + + public IcsProgressBar(Context context, AttributeSet attrs) { + this(context, attrs, android.R.attr.progressBarStyle); + } + + public IcsProgressBar(Context context, AttributeSet attrs, int defStyle) { + this(context, attrs, defStyle, 0); + } + + /** + * @hide + */ + public IcsProgressBar(Context context, AttributeSet attrs, int defStyle, int styleRes) { + super(context, attrs, defStyle); + mUiThreadId = Thread.currentThread().getId(); + initProgressBar(); + + TypedArray a = + context.obtainStyledAttributes(attrs, /*R.styleable.*/ProgressBar, defStyle, styleRes); + + mNoInvalidate = true; + + Drawable drawable = a.getDrawable(/*R.styleable.*/ProgressBar_progressDrawable); + if (drawable != null) { + drawable = tileify(drawable, false); + // Calling this method can set mMaxHeight, make sure the corresponding + // XML attribute for mMaxHeight is read after calling this method + setProgressDrawable(drawable); + } + + + mDuration = a.getInt(/*R.styleable.*/ProgressBar_indeterminateDuration, mDuration); + + mMinWidth = a.getDimensionPixelSize(/*R.styleable.*/ProgressBar_minWidth, mMinWidth); + mMaxWidth = a.getDimensionPixelSize(/*R.styleable.*/ProgressBar_maxWidth, mMaxWidth); + mMinHeight = a.getDimensionPixelSize(/*R.styleable.*/ProgressBar_minHeight, mMinHeight); + mMaxHeight = a.getDimensionPixelSize(/*R.styleable.*/ProgressBar_maxHeight, mMaxHeight); + + mBehavior = a.getInt(/*R.styleable.*/ProgressBar_indeterminateBehavior, mBehavior); + + final int resID = a.getResourceId( + /*com.android.internal.R.styleable.*/ProgressBar_interpolator, + android.R.anim.linear_interpolator); // default to linear interpolator + if (resID > 0) { + setInterpolator(context, resID); + } + + setMax(a.getInt(/*R.styleable.*/ProgressBar_max, mMax)); + + setProgress(a.getInt(/*R.styleable.*/ProgressBar_progress, mProgress)); + + setSecondaryProgress( + a.getInt(/*R.styleable.*/ProgressBar_secondaryProgress, mSecondaryProgress)); + + drawable = a.getDrawable(/*R.styleable.*/ProgressBar_indeterminateDrawable); + if (drawable != null) { + drawable = tileifyIndeterminate(drawable); + setIndeterminateDrawable(drawable); + } + + mOnlyIndeterminate = a.getBoolean( + /*R.styleable.*/ProgressBar_indeterminateOnly, mOnlyIndeterminate); + + mNoInvalidate = false; + + setIndeterminate(mOnlyIndeterminate || a.getBoolean( + /*R.styleable.*/ProgressBar_indeterminate, mIndeterminate)); + + mAnimationResolution = a.getInteger(/*R.styleable.*/ProgressBar_animationResolution, + ANIMATION_RESOLUTION); + + a.recycle(); + + mAccessibilityManager = (AccessibilityManager)context.getSystemService(Context.ACCESSIBILITY_SERVICE); + } + + /** + * Converts a drawable to a tiled version of itself. It will recursively + * traverse layer and state list drawables. + */ + private Drawable tileify(Drawable drawable, boolean clip) { + + if (drawable instanceof LayerDrawable) { + LayerDrawable background = (LayerDrawable) drawable; + final int N = background.getNumberOfLayers(); + Drawable[] outDrawables = new Drawable[N]; + + for (int i = 0; i < N; i++) { + int id = background.getId(i); + outDrawables[i] = tileify(background.getDrawable(i), + (id == android.R.id.progress || id == android.R.id.secondaryProgress)); + } + + LayerDrawable newBg = new LayerDrawable(outDrawables); + + for (int i = 0; i < N; i++) { + newBg.setId(i, background.getId(i)); + } + + return newBg; + + }/* else if (drawable instanceof StateListDrawable) { + StateListDrawable in = (StateListDrawable) drawable; + StateListDrawable out = new StateListDrawable(); + int numStates = in.getStateCount(); + for (int i = 0; i < numStates; i++) { + out.addState(in.getStateSet(i), tileify(in.getStateDrawable(i), clip)); + } + return out; + + }*/ else if (drawable instanceof BitmapDrawable) { + final Bitmap tileBitmap = ((BitmapDrawable) drawable).getBitmap(); + if (mSampleTile == null) { + mSampleTile = tileBitmap; + } + + final ShapeDrawable shapeDrawable = new ShapeDrawable(getDrawableShape()); + + final BitmapShader bitmapShader = new BitmapShader(tileBitmap, + Shader.TileMode.REPEAT, Shader.TileMode.CLAMP); + shapeDrawable.getPaint().setShader(bitmapShader); + + return (clip) ? new ClipDrawable(shapeDrawable, Gravity.LEFT, + ClipDrawable.HORIZONTAL) : shapeDrawable; + } + + return drawable; + } + + Shape getDrawableShape() { + final float[] roundedCorners = new float[] { 5, 5, 5, 5, 5, 5, 5, 5 }; + return new RoundRectShape(roundedCorners, null, null); + } + + /** + * Convert a AnimationDrawable for use as a barberpole animation. + * Each frame of the animation is wrapped in a ClipDrawable and + * given a tiling BitmapShader. + */ + private Drawable tileifyIndeterminate(Drawable drawable) { + if (drawable instanceof AnimationDrawable) { + AnimationDrawable background = (AnimationDrawable) drawable; + final int N = background.getNumberOfFrames(); + AnimationDrawable newBg = new AnimationDrawable(); + newBg.setOneShot(background.isOneShot()); + + for (int i = 0; i < N; i++) { + Drawable frame = tileify(background.getFrame(i), true); + frame.setLevel(10000); + newBg.addFrame(frame, background.getDuration(i)); + } + newBg.setLevel(10000); + drawable = newBg; + } + return drawable; + } + + /** + *

+ * Initialize the progress bar's default values: + *

+ *
    + *
  • progress = 0
  • + *
  • max = 100
  • + *
  • animation duration = 4000 ms
  • + *
  • indeterminate = false
  • + *
  • behavior = repeat
  • + *
+ */ + private void initProgressBar() { + mMax = 100; + mProgress = 0; + mSecondaryProgress = 0; + mIndeterminate = false; + mOnlyIndeterminate = false; + mDuration = 4000; + mBehavior = AlphaAnimation.RESTART; + mMinWidth = 24; + mMaxWidth = 48; + mMinHeight = 24; + mMaxHeight = 48; + } + + /** + *

Indicate whether this progress bar is in indeterminate mode.

+ * + * @return true if the progress bar is in indeterminate mode + */ + @ViewDebug.ExportedProperty(category = "progress") + public synchronized boolean isIndeterminate() { + return mIndeterminate; + } + + /** + *

Change the indeterminate mode for this progress bar. In indeterminate + * mode, the progress is ignored and the progress bar shows an infinite + * animation instead.

+ * + * If this progress bar's style only supports indeterminate mode (such as the circular + * progress bars), then this will be ignored. + * + * @param indeterminate true to enable the indeterminate mode + */ + public synchronized void setIndeterminate(boolean indeterminate) { + if ((!mOnlyIndeterminate || !mIndeterminate) && indeterminate != mIndeterminate) { + mIndeterminate = indeterminate; + + if (indeterminate) { + // swap between indeterminate and regular backgrounds + mCurrentDrawable = mIndeterminateDrawable; + startAnimation(); + } else { + mCurrentDrawable = mProgressDrawable; + stopAnimation(); + } + } + } + + /** + *

Get the drawable used to draw the progress bar in + * indeterminate mode.

+ * + * @return a {@link android.graphics.drawable.Drawable} instance + * + * @see #setIndeterminateDrawable(android.graphics.drawable.Drawable) + * @see #setIndeterminate(boolean) + */ + public Drawable getIndeterminateDrawable() { + return mIndeterminateDrawable; + } + + /** + *

Define the drawable used to draw the progress bar in + * indeterminate mode.

+ * + * @param d the new drawable + * + * @see #getIndeterminateDrawable() + * @see #setIndeterminate(boolean) + */ + public void setIndeterminateDrawable(Drawable d) { + if (d != null) { + d.setCallback(this); + } + mIndeterminateDrawable = d; + if (mIndeterminate) { + mCurrentDrawable = d; + postInvalidate(); + } + } + + /** + *

Get the drawable used to draw the progress bar in + * progress mode.

+ * + * @return a {@link android.graphics.drawable.Drawable} instance + * + * @see #setProgressDrawable(android.graphics.drawable.Drawable) + * @see #setIndeterminate(boolean) + */ + public Drawable getProgressDrawable() { + return mProgressDrawable; + } + + /** + *

Define the drawable used to draw the progress bar in + * progress mode.

+ * + * @param d the new drawable + * + * @see #getProgressDrawable() + * @see #setIndeterminate(boolean) + */ + public void setProgressDrawable(Drawable d) { + boolean needUpdate; + if (mProgressDrawable != null && d != mProgressDrawable) { + mProgressDrawable.setCallback(null); + needUpdate = true; + } else { + needUpdate = false; + } + + if (d != null) { + d.setCallback(this); + + // Make sure the ProgressBar is always tall enough + int drawableHeight = d.getMinimumHeight(); + if (mMaxHeight < drawableHeight) { + mMaxHeight = drawableHeight; + requestLayout(); + } + } + mProgressDrawable = d; + if (!mIndeterminate) { + mCurrentDrawable = d; + postInvalidate(); + } + + if (needUpdate) { + updateDrawableBounds(getWidth(), getHeight()); + updateDrawableState(); + doRefreshProgress(android.R.id.progress, mProgress, false, false); + doRefreshProgress(android.R.id.secondaryProgress, mSecondaryProgress, false, false); + } + } + + /** + * @return The drawable currently used to draw the progress bar + */ + Drawable getCurrentDrawable() { + return mCurrentDrawable; + } + + @Override + protected boolean verifyDrawable(Drawable who) { + return who == mProgressDrawable || who == mIndeterminateDrawable + || super.verifyDrawable(who); + } + + @Override + public void jumpDrawablesToCurrentState() { + super.jumpDrawablesToCurrentState(); + if (mProgressDrawable != null) mProgressDrawable.jumpToCurrentState(); + if (mIndeterminateDrawable != null) mIndeterminateDrawable.jumpToCurrentState(); + } + + @Override + public void postInvalidate() { + if (!mNoInvalidate) { + super.postInvalidate(); + } + } + + private class RefreshProgressRunnable implements Runnable { + + private int mId; + private int mProgress; + private boolean mFromUser; + + RefreshProgressRunnable(int id, int progress, boolean fromUser) { + mId = id; + mProgress = progress; + mFromUser = fromUser; + } + + public void run() { + doRefreshProgress(mId, mProgress, mFromUser, true); + // Put ourselves back in the cache when we are done + mRefreshProgressRunnable = this; + } + + public void setup(int id, int progress, boolean fromUser) { + mId = id; + mProgress = progress; + mFromUser = fromUser; + } + + } + + private synchronized void doRefreshProgress(int id, int progress, boolean fromUser, + boolean callBackToApp) { + float scale = mMax > 0 ? (float) progress / (float) mMax : 0; + final Drawable d = mCurrentDrawable; + if (d != null) { + Drawable progressDrawable = null; + + if (d instanceof LayerDrawable) { + progressDrawable = ((LayerDrawable) d).findDrawableByLayerId(id); + } + + final int level = (int) (scale * MAX_LEVEL); + (progressDrawable != null ? progressDrawable : d).setLevel(level); + } else { + invalidate(); + } + + if (callBackToApp && id == android.R.id.progress) { + onProgressRefresh(scale, fromUser); + } + } + + void onProgressRefresh(float scale, boolean fromUser) { + if (mAccessibilityManager.isEnabled()) { + scheduleAccessibilityEventSender(); + } + } + + private synchronized void refreshProgress(int id, int progress, boolean fromUser) { + if (mUiThreadId == Thread.currentThread().getId()) { + doRefreshProgress(id, progress, fromUser, true); + } else { + RefreshProgressRunnable r; + if (mRefreshProgressRunnable != null) { + // Use cached RefreshProgressRunnable if available + r = mRefreshProgressRunnable; + // Uncache it + mRefreshProgressRunnable = null; + r.setup(id, progress, fromUser); + } else { + // Make a new one + r = new RefreshProgressRunnable(id, progress, fromUser); + } + post(r); + } + } + + /** + *

Set the current progress to the specified value. Does not do anything + * if the progress bar is in indeterminate mode.

+ * + * @param progress the new progress, between 0 and {@link #getMax()} + * + * @see #setIndeterminate(boolean) + * @see #isIndeterminate() + * @see #getProgress() + * @see #incrementProgressBy(int) + */ + public synchronized void setProgress(int progress) { + setProgress(progress, false); + } + + synchronized void setProgress(int progress, boolean fromUser) { + if (mIndeterminate) { + return; + } + + if (progress < 0) { + progress = 0; + } + + if (progress > mMax) { + progress = mMax; + } + + if (progress != mProgress) { + mProgress = progress; + refreshProgress(android.R.id.progress, mProgress, fromUser); + } + } + + /** + *

+ * Set the current secondary progress to the specified value. Does not do + * anything if the progress bar is in indeterminate mode. + *

+ * + * @param secondaryProgress the new secondary progress, between 0 and {@link #getMax()} + * @see #setIndeterminate(boolean) + * @see #isIndeterminate() + * @see #getSecondaryProgress() + * @see #incrementSecondaryProgressBy(int) + */ + public synchronized void setSecondaryProgress(int secondaryProgress) { + if (mIndeterminate) { + return; + } + + if (secondaryProgress < 0) { + secondaryProgress = 0; + } + + if (secondaryProgress > mMax) { + secondaryProgress = mMax; + } + + if (secondaryProgress != mSecondaryProgress) { + mSecondaryProgress = secondaryProgress; + refreshProgress(android.R.id.secondaryProgress, mSecondaryProgress, false); + } + } + + /** + *

Get the progress bar's current level of progress. Return 0 when the + * progress bar is in indeterminate mode.

+ * + * @return the current progress, between 0 and {@link #getMax()} + * + * @see #setIndeterminate(boolean) + * @see #isIndeterminate() + * @see #setProgress(int) + * @see #setMax(int) + * @see #getMax() + */ + @ViewDebug.ExportedProperty(category = "progress") + public synchronized int getProgress() { + return mIndeterminate ? 0 : mProgress; + } + + /** + *

Get the progress bar's current level of secondary progress. Return 0 when the + * progress bar is in indeterminate mode.

+ * + * @return the current secondary progress, between 0 and {@link #getMax()} + * + * @see #setIndeterminate(boolean) + * @see #isIndeterminate() + * @see #setSecondaryProgress(int) + * @see #setMax(int) + * @see #getMax() + */ + @ViewDebug.ExportedProperty(category = "progress") + public synchronized int getSecondaryProgress() { + return mIndeterminate ? 0 : mSecondaryProgress; + } + + /** + *

Return the upper limit of this progress bar's range.

+ * + * @return a positive integer + * + * @see #setMax(int) + * @see #getProgress() + * @see #getSecondaryProgress() + */ + @ViewDebug.ExportedProperty(category = "progress") + public synchronized int getMax() { + return mMax; + } + + /** + *

Set the range of the progress bar to 0...max.

+ * + * @param max the upper range of this progress bar + * + * @see #getMax() + * @see #setProgress(int) + * @see #setSecondaryProgress(int) + */ + public synchronized void setMax(int max) { + if (max < 0) { + max = 0; + } + if (max != mMax) { + mMax = max; + postInvalidate(); + + if (mProgress > max) { + mProgress = max; + } + refreshProgress(android.R.id.progress, mProgress, false); + } + } + + /** + *

Increase the progress bar's progress by the specified amount.

+ * + * @param diff the amount by which the progress must be increased + * + * @see #setProgress(int) + */ + public synchronized final void incrementProgressBy(int diff) { + setProgress(mProgress + diff); + } + + /** + *

Increase the progress bar's secondary progress by the specified amount.

+ * + * @param diff the amount by which the secondary progress must be increased + * + * @see #setSecondaryProgress(int) + */ + public synchronized final void incrementSecondaryProgressBy(int diff) { + setSecondaryProgress(mSecondaryProgress + diff); + } + + /** + *

Start the indeterminate progress animation.

+ */ + void startAnimation() { + if (getVisibility() != VISIBLE) { + return; + } + + if (mIndeterminateDrawable instanceof Animatable) { + mShouldStartAnimationDrawable = true; + mAnimation = null; + } else { + if (mInterpolator == null) { + mInterpolator = new LinearInterpolator(); + } + + mTransformation = new Transformation(); + mAnimation = new AlphaAnimation(0.0f, 1.0f); + mAnimation.setRepeatMode(mBehavior); + mAnimation.setRepeatCount(Animation.INFINITE); + mAnimation.setDuration(mDuration); + mAnimation.setInterpolator(mInterpolator); + mAnimation.setStartTime(Animation.START_ON_FIRST_FRAME); + } + postInvalidate(); + } + + /** + *

Stop the indeterminate progress animation.

+ */ + void stopAnimation() { + mAnimation = null; + mTransformation = null; + if (mIndeterminateDrawable instanceof Animatable) { + ((Animatable) mIndeterminateDrawable).stop(); + mShouldStartAnimationDrawable = false; + } + postInvalidate(); + } + + /** + * Sets the acceleration curve for the indeterminate animation. + * The interpolator is loaded as a resource from the specified context. + * + * @param context The application environment + * @param resID The resource identifier of the interpolator to load + */ + public void setInterpolator(Context context, int resID) { + setInterpolator(AnimationUtils.loadInterpolator(context, resID)); + } + + /** + * Sets the acceleration curve for the indeterminate animation. + * Defaults to a linear interpolation. + * + * @param interpolator The interpolator which defines the acceleration curve + */ + public void setInterpolator(Interpolator interpolator) { + mInterpolator = interpolator; + } + + /** + * Gets the acceleration curve type for the indeterminate animation. + * + * @return the {@link Interpolator} associated to this animation + */ + public Interpolator getInterpolator() { + return mInterpolator; + } + + @Override + public void setVisibility(int v) { + if (getVisibility() != v) { + super.setVisibility(v); + + if (mIndeterminate) { + // let's be nice with the UI thread + if (v == GONE || v == INVISIBLE) { + stopAnimation(); + } else { + startAnimation(); + } + } + } + } + + @Override + protected void onVisibilityChanged(View changedView, int visibility) { + super.onVisibilityChanged(changedView, visibility); + + if (mIndeterminate) { + // let's be nice with the UI thread + if (visibility == GONE || visibility == INVISIBLE) { + stopAnimation(); + } else { + startAnimation(); + } + } + } + + @Override + public void invalidateDrawable(Drawable dr) { + if (!mInDrawing) { + if (verifyDrawable(dr)) { + final Rect dirty = dr.getBounds(); + final int scrollX = getScrollX() + getPaddingLeft(); + final int scrollY = getScrollY() + getPaddingTop(); + + invalidate(dirty.left + scrollX, dirty.top + scrollY, + dirty.right + scrollX, dirty.bottom + scrollY); + } else { + super.invalidateDrawable(dr); + } + } + } + + /** + * @hide + * + @Override + public int getResolvedLayoutDirection(Drawable who) { + return (who == mProgressDrawable || who == mIndeterminateDrawable) ? + getResolvedLayoutDirection() : super.getResolvedLayoutDirection(who); + } + */ + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + updateDrawableBounds(w, h); + } + + private void updateDrawableBounds(int w, int h) { + // onDraw will translate the canvas so we draw starting at 0,0 + int right = w - getPaddingRight() - getPaddingLeft(); + int bottom = h - getPaddingBottom() - getPaddingTop(); + int top = 0; + int left = 0; + + if (mIndeterminateDrawable != null) { + // Aspect ratio logic does not apply to AnimationDrawables + if (mOnlyIndeterminate && !(mIndeterminateDrawable instanceof AnimationDrawable)) { + // Maintain aspect ratio. Certain kinds of animated drawables + // get very confused otherwise. + final int intrinsicWidth = mIndeterminateDrawable.getIntrinsicWidth(); + final int intrinsicHeight = mIndeterminateDrawable.getIntrinsicHeight(); + final float intrinsicAspect = (float) intrinsicWidth / intrinsicHeight; + final float boundAspect = (float) w / h; + if (intrinsicAspect != boundAspect) { + if (boundAspect > intrinsicAspect) { + // New width is larger. Make it smaller to match height. + final int width = (int) (h * intrinsicAspect); + left = (w - width) / 2; + right = left + width; + } else { + // New height is larger. Make it smaller to match width. + final int height = (int) (w * (1 / intrinsicAspect)); + top = (h - height) / 2; + bottom = top + height; + } + } + } + mIndeterminateDrawable.setBounds(0, 0, right - left, bottom - top); + mIndeterminateRealLeft = left; + mIndeterminateRealTop = top; + } + + if (mProgressDrawable != null) { + mProgressDrawable.setBounds(0, 0, right, bottom); + } + } + + @Override + protected synchronized void onDraw(Canvas canvas) { + super.onDraw(canvas); + + Drawable d = mCurrentDrawable; + if (d != null) { + // Translate canvas so a indeterminate circular progress bar with padding + // rotates properly in its animation + canvas.save(); + canvas.translate(getPaddingLeft() + mIndeterminateRealLeft, getPaddingTop() + mIndeterminateRealTop); + long time = getDrawingTime(); + if (mAnimation != null) { + mAnimation.getTransformation(time, mTransformation); + float scale = mTransformation.getAlpha(); + try { + mInDrawing = true; + d.setLevel((int) (scale * MAX_LEVEL)); + } finally { + mInDrawing = false; + } + if (SystemClock.uptimeMillis() - mLastDrawTime >= mAnimationResolution) { + mLastDrawTime = SystemClock.uptimeMillis(); + postInvalidateDelayed(mAnimationResolution); + } + } + d.draw(canvas); + canvas.restore(); + if (mShouldStartAnimationDrawable && d instanceof Animatable) { + ((Animatable) d).start(); + mShouldStartAnimationDrawable = false; + } + } + } + + @Override + protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + Drawable d = mCurrentDrawable; + + int dw = 0; + int dh = 0; + if (d != null) { + dw = Math.max(mMinWidth, Math.min(mMaxWidth, d.getIntrinsicWidth())); + dh = Math.max(mMinHeight, Math.min(mMaxHeight, d.getIntrinsicHeight())); + } + updateDrawableState(); + dw += getPaddingLeft() + getPaddingRight(); + dh += getPaddingTop() + getPaddingBottom(); + + if (IS_HONEYCOMB) { + setMeasuredDimension(View.resolveSizeAndState(dw, widthMeasureSpec, 0), + View.resolveSizeAndState(dh, heightMeasureSpec, 0)); + } else { + setMeasuredDimension(View.resolveSize(dw, widthMeasureSpec), + View.resolveSize(dh, heightMeasureSpec)); + } + } + + @Override + protected void drawableStateChanged() { + super.drawableStateChanged(); + updateDrawableState(); + } + + private void updateDrawableState() { + int[] state = getDrawableState(); + + if (mProgressDrawable != null && mProgressDrawable.isStateful()) { + mProgressDrawable.setState(state); + } + + if (mIndeterminateDrawable != null && mIndeterminateDrawable.isStateful()) { + mIndeterminateDrawable.setState(state); + } + } + + static class SavedState extends BaseSavedState { + int progress; + int secondaryProgress; + + /** + * Constructor called from {@link IcsProgressBar#onSaveInstanceState()} + */ + SavedState(Parcelable superState) { + super(superState); + } + + /** + * Constructor called from {@link #CREATOR} + */ + private SavedState(Parcel in) { + super(in); + progress = in.readInt(); + secondaryProgress = in.readInt(); + } + + @Override + public void writeToParcel(Parcel out, int flags) { + super.writeToParcel(out, flags); + out.writeInt(progress); + out.writeInt(secondaryProgress); + } + + public static final Parcelable.Creator CREATOR + = new Parcelable.Creator() { + public SavedState createFromParcel(Parcel in) { + return new SavedState(in); + } + + public SavedState[] newArray(int size) { + return new SavedState[size]; + } + }; + } + + @Override + public Parcelable onSaveInstanceState() { + // Force our ancestor class to save its state + Parcelable superState = super.onSaveInstanceState(); + SavedState ss = new SavedState(superState); + + ss.progress = mProgress; + ss.secondaryProgress = mSecondaryProgress; + + return ss; + } + + @Override + public void onRestoreInstanceState(Parcelable state) { + SavedState ss = (SavedState) state; + super.onRestoreInstanceState(ss.getSuperState()); + + setProgress(ss.progress); + setSecondaryProgress(ss.secondaryProgress); + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + if (mIndeterminate) { + startAnimation(); + } + } + + @Override + protected void onDetachedFromWindow() { + if (mIndeterminate) { + stopAnimation(); + } + if(mRefreshProgressRunnable != null) { + removeCallbacks(mRefreshProgressRunnable); + } + if (mAccessibilityEventSender != null) { + removeCallbacks(mAccessibilityEventSender); + } + // This should come after stopAnimation(), otherwise an invalidate message remains in the + // queue, which can prevent the entire view hierarchy from being GC'ed during a rotation + super.onDetachedFromWindow(); + } + + @Override + public void onInitializeAccessibilityEvent(AccessibilityEvent event) { + super.onInitializeAccessibilityEvent(event); + event.setItemCount(mMax); + event.setCurrentItemIndex(mProgress); + } + + /** + * Schedule a command for sending an accessibility event. + *
+ * Note: A command is used to ensure that accessibility events + * are sent at most one in a given time frame to save + * system resources while the progress changes quickly. + */ + private void scheduleAccessibilityEventSender() { + if (mAccessibilityEventSender == null) { + mAccessibilityEventSender = new AccessibilityEventSender(); + } else { + removeCallbacks(mAccessibilityEventSender); + } + postDelayed(mAccessibilityEventSender, TIMEOUT_SEND_ACCESSIBILITY_EVENT); + } + + /** + * Command for sending an accessibility event. + */ + private class AccessibilityEventSender implements Runnable { + public void run() { + sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED); + } + } +} diff --git a/res/layout/action_bar_text.xml b/res/layout/action_bar_text.xml index a33264702..bff5f1f96 100644 --- a/res/layout/action_bar_text.xml +++ b/res/layout/action_bar_text.xml @@ -16,7 +16,7 @@