Merge remote-tracking branch 'remotes/upstream/video_thumbnail' into beta
authortobiasKaminsky <tobias@kaminsky.me>
Wed, 2 Dec 2015 19:29:03 +0000 (20:29 +0100)
committertobiasKaminsky <tobias@kaminsky.me>
Wed, 2 Dec 2015 19:29:03 +0000 (20:29 +0100)
1310 files changed:
.gitignore
.gitmodules
.travis.yml
AndroidManifest.xml
CHANGELOG.md
README.md
SETUP.md
THIRD_PARTY.txt
android-release.apk [new file with mode: 0644]
apks/latest [new file with mode: 0644]
apks/owncloud-beta-20151124.apk [new file with mode: 0644]
apks/owncloud-beta-20151125.apk [new file with mode: 0644]
apks/owncloud-beta-20151128.apk [new file with mode: 0644]
apks/owncloud-beta-20151129.apk [new file with mode: 0644]
apks/owncloud-beta-20151130.apk [new file with mode: 0644]
build.gradle
doc/oCC2015_Android_workshop.odp [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/.classpath
libs/android-support-appcompat-v7-exploded-aar/.project
libs/android-support-appcompat-v7-exploded-aar/AndroidManifest.xml
libs/android-support-appcompat-v7-exploded-aar/R.txt
libs/android-support-appcompat-v7-exploded-aar/README.txt [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/assets/.gitignore [deleted file]
libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v4.jar [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v7-appcompat.jar [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/libs/appcompat-v7-19.1.0.jar [deleted file]
libs/android-support-appcompat-v7-exploded-aar/libs/support-v4-19.1.0.jar [deleted file]
libs/android-support-appcompat-v7-exploded-aar/project.properties
libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_fade_in.xml
libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_fade_out.xml
libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_grow_fade_in_from_bottom.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_popup_enter.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_popup_exit.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_shrink_fade_out_from_bottom.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_in_bottom.xml
libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_in_top.xml
libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_out_bottom.xml
libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_out_top.xml
libs/android-support-appcompat-v7-exploded-aar/res/color-v11/abc_background_cache_hint_selector_material_dark.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color-v11/abc_background_cache_hint_selector_material_light.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color-v23/abc_color_highlight_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color/abc_background_cache_hint_selector_material_dark.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color/abc_background_cache_hint_selector_material_light.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_disable_only_material_dark.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_disable_only_material_light.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_material_dark.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_material_light.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color/abc_search_url_text.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color/abc_search_url_text_holo.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/color/abc_secondary_text_material_dark.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color/abc_secondary_text_material_light.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color/switch_thumb_material_dark.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/color/switch_thumb_material_light.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_solid_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_solid_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_transparent_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_transparent_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_solid_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_solid_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_solid_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_solid_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_transparent_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_transparent_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_transparent_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_transparent_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_015.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_015.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_off_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_on_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00001.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00012.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_bottom_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_bottom_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_cab_done_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_cab_done_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_disabled.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_normal.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_search_api_disabled_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_cut_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_paste_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_selectall_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_focused_holo.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_longpressed_holo.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_pressed_holo_light.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_dropdown_panel_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_dropdown_panel_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_mtrl_mult.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_popup_background_mtrl_mult.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_control_off_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_control_to_pressed_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_control_to_pressed_mtrl_005.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_primary_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_track_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_default_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_default_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_disabled_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_disabled_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_focused_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_focused_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_pressed_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_pressed_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_mtrl_am_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_switch_track_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_indicator_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_selected_focused_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_selected_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_selected_pressed_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_unselected_pressed_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_activated_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_default_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_activated_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_default_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_default_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_selected_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_selected_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_selected_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_selected_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_ab_back_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_cut_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_spinner_mtrl_am_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_ab_back_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_cut_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_spinner_mtrl_am_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_cut_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_spinner_mtrl_am_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_spinner_mtrl_am_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_solid_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_solid_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_transparent_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_transparent_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_solid_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_solid_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_solid_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_solid_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_transparent_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_transparent_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_transparent_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_transparent_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_015.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_015.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_off_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_on_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00001.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00012.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_bottom_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_bottom_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_cab_done_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_cab_done_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_disabled.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_normal.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_search_api_disabled_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_cut_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_paste_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_selectall_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_focused_holo.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_longpressed_holo.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_pressed_holo_light.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_dropdown_panel_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_dropdown_panel_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_mtrl_mult.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_popup_background_mtrl_mult.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_control_off_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_control_to_pressed_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_control_to_pressed_mtrl_005.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_primary_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_track_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_default_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_default_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_disabled_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_disabled_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_focused_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_focused_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_pressed_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_pressed_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_mtrl_am_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_switch_track_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_indicator_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_selected_focused_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_selected_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_selected_pressed_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_unselected_pressed_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_activated_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_default_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_activated_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_default_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_default_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_selected_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_selected_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_selected_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_selected_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-v21/abc_action_bar_item_background_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-v21/abc_btn_colored_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-v23/abc_control_background_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_solid_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_solid_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_transparent_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_transparent_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_solid_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_solid_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_solid_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_solid_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_transparent_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_transparent_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_transparent_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_transparent_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_015.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_015.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_off_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_on_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00001.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00012.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_bottom_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_bottom_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_cab_done_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_cab_done_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_disabled.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_normal.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_search_api_disabled_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_cut_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_paste_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_selectall_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_focused_holo.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_longpressed_holo.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_popup_background_mtrl_mult.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_control_off_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_control_to_pressed_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_control_to_pressed_mtrl_005.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_primary_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_track_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_default_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_default_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_focused_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_focused_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_mtrl_am_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_switch_track_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_indicator_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_selected_focused_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_selected_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_selected_pressed_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_unselected_pressed_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_activated_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_default_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_activated_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_default_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_default_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_selected_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_selected_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_solid_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_solid_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_transparent_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_transparent_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_solid_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_solid_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_solid_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_solid_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_transparent_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_transparent_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_transparent_dark_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_transparent_light_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_015.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_015.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_off_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_on_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_bottom_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_bottom_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_cab_done_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_cab_done_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_disabled.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_normal.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_search_api_disabled_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_selectall_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_holo_dark.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search_api_holo_light.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_focused_holo.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_longpressed_holo.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_pressed_holo_dark.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_pressed_holo_light.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_selector_disabled_holo_dark.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_selector_disabled_holo_light.9.png
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_dropdown_panel_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_dropdown_panel_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_popup_background_mtrl_mult.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_control_off_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_control_to_pressed_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_control_to_pressed_mtrl_005.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_primary_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_track_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_default_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_default_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_disabled_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_disabled_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_focused_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_focused_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_pressed_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_pressed_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_mtrl_am_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_switch_track_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_indicator_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_selected_focused_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_selected_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_selected_pressed_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_unselected_pressed_holo.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_activated_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_default_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_activated_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_default_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_default_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_selected_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_selected_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_selected_holo_dark.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_selected_holo_light.9.png [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_015.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_015.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_clear_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_selectall_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_share_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_voice_search_api_mtrl_alpha.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_scrubber_control_to_pressed_mtrl_000.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_scrubber_control_to_pressed_mtrl_005.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_switch_track_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_tab_indicator_mtrl_alpha.9.png [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_borderless_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_check_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_colored_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_default_mtrl_shape.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_radio_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_cab_background_internal_bg.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_cab_background_top_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_dialog_material_background_dark.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_dialog_material_background_light.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_edit_text_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_ic_clear.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_ic_clear_holo_light.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_item_background_holo_dark.xml
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_item_background_holo_light.xml
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_background_transition_holo_dark.xml
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_background_transition_holo_light.xml
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_holo_dark.xml
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_holo_light.xml
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_ratingbar_full_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_search_dropdown_dark.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_search_dropdown_light.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_seekbar_thumb_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_seekbar_track_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_spinner_ab_holo_dark.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_spinner_ab_holo_light.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_spinner_textfield_background_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_switch_thumb_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_tab_indicator_ab_holo.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_tab_indicator_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_text_cursor_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_search_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_searchview_holo_dark.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_searchview_holo_light.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_searchview_right_holo_dark.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_searchview_right_holo_light.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout-v11/abc_action_bar_decor.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout-v11/abc_simple_decor.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout-v14/abc_activity_chooser_view.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_decor.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_decor_include.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_decor_overlay.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_home.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_tab.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_tabbar.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_title_item.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_up_container.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_view_list_nav_layout.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_menu_item_layout.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_menu_layout.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_bar.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_close_item.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_close_item_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_activity_chooser_view.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_activity_chooser_view_include.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_activity_chooser_view_list_item.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_alert_dialog_button_bar_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_alert_dialog_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_dialog_title_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_expanded_menu_layout.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_list_menu_item_checkbox.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_list_menu_item_icon.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_list_menu_item_layout.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_list_menu_item_radio.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_popup_menu_item_layout.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_screen_content_include.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_screen_simple.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_screen_simple_overlay_action_mode.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_screen_toolbar.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_search_dropdown_item_icons_2line.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_search_view.xml
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_select_dialog_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_simple_decor.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_media_action.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_media_cancel_action.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_big_media.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_big_media_narrow.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_lines.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_media.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_part_chronometer.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_part_time.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/select_dialog_item_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/select_dialog_multichoice_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/select_dialog_singlechoice_material.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/layout/support_simple_spinner_dropdown_item.xml
libs/android-support-appcompat-v7-exploded-aar/res/values-af/values-af.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-af/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-am/values-am.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-am/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-ar/values-ar.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ar/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-az-rAZ/values-az-rAZ.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-bg/values-bg.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-bg/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-bn-rBD/values-bn-rBD.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ca/values-ca.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ca/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-cs/values-cs.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-cs/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-da/values-da.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-da/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-de/values-de.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-de/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-el/values-el.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-el/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-en-rAU/values-en-rAU.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-en-rGB/values-en-rGB.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-en-rGB/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-en-rIN/values-en-rIN.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-en-rIN/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-es-rUS/values-es-rUS.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-es-rUS/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-es/values-es.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-es/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-et-rEE/values-et-rEE.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-et-rEE/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-eu-rES/values-eu-rES.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-fa/values-fa.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-fa/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-fi/values-fi.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-fi/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-fr-rCA/values-fr-rCA.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-fr-rCA/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-fr/values-fr.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-fr/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-gl-rES/values-gl-rES.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-gu-rIN/values-gu-rIN.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-h320dp/values-h320dp.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-h720dp/values-h720dp.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-hdpi/values-hdpi.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-hi/values-hi.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-hi/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-hr/values-hr.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-hr/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-hu/values-hu.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-hu/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-hy-rAM/values-hy-rAM.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-hy-rAM/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-in/values-in.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-in/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-is-rIS/values-is-rIS.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-it/values-it.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-it/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-iw/values-iw.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-iw/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-ja/values-ja.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ja/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-ka-rGE/values-ka-rGE.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ka-rGE/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-kk-rKZ/values-kk-rKZ.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-km-rKH/values-km-rKH.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-km-rKH/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-kn-rIN/values-kn-rIN.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ko/values-ko.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ko/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-ky-rKG/values-ky-rKG.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-land/values-land.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-land/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-large-v14/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-large/values-large.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-large/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-ldltr-v21/values-ldltr-v21.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ldrtl-v23/values-ldrtl-v23.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-lo-rLA/values-lo-rLA.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-lo-rLA/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-lt/values-lt.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-lt/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-lv/values-lv.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-lv/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-mk-rMK/values-mk-rMK.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ml-rIN/values-ml-rIN.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-mn-rMN/values-mn-rMN.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-mn-rMN/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-mr-rIN/values-mr-rIN.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ms-rMY/values-ms-rMY.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ms-rMY/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-my-rMM/values-my-rMM.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-nb/values-nb.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-nb/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-ne-rNP/values-ne-rNP.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-nl/values-nl.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-nl/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-pa-rIN/values-pa-rIN.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-pl/values-pl.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-pl/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-port/values-port.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-pt-rBR/values-pt-rBR.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-pt-rPT/values-pt-rPT.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-pt-rPT/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-pt/values-pt.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-pt/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-ro/values-ro.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ro/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-ru/values-ru.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-ru/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-si-rLK/values-si-rLK.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-sk/values-sk.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-sk/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-sl/values-sl.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-sl/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-sq-rAL/values-sq-rAL.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-sr/values-sr.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-sr/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-sv/values-sv.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-sv/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-sw/values-sw.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-sw/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-sw600dp/values-sw600dp.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-sw600dp/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-ta-rIN/values-ta-rIN.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-te-rIN/values-te-rIN.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-th/values-th.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-th/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-tl/values-tl.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-tl/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-tr/values-tr.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-tr/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-uk/values-uk.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-uk/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-ur-rPK/values-ur-rPK.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-uz-rUZ/values-uz-rUZ.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-v11/values-v11.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-v11/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-v12/values-v12.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-v14/values-v14.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-v14/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-v17/values-v17.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-v18/values-v18.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-v21/values-v21.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-v22/values-v22.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-v23/values-v23.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-vi/values-vi.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-vi/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-w360dp/values-w360dp.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-w360dp/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-w480dp/values-w480dp.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-w480dp/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-w500dp/values-w500dp.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-w500dp/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-w600dp/values-w600dp.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-w600dp/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-w720dp/values-w720dp.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-w720dp/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-xlarge-land/values-xlarge-land.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-xlarge/values-xlarge.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-xlarge/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rCN/values-zh-rCN.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rCN/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rHK/values-zh-rHK.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rHK/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rTW/values-zh-rTW.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rTW/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values-zu/values-zu.xml [new file with mode: 0644]
libs/android-support-appcompat-v7-exploded-aar/res/values-zu/values.xml [deleted file]
libs/android-support-appcompat-v7-exploded-aar/res/values/values.xml
libs/android-support-appcompat-v7-exploded-aar/src/.gitignore [deleted file]
libs/android-support-appcompat-v7-exploded-aar/src/.readme [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/.classpath [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/AndroidManifest.xml [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/R.txt [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/aapt/AndroidManifest.xml [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/annotations.zip [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/build.xml [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/jars/classes.jar [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/libs/classes.jar [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/proguard.txt [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/project.properties [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-hdpi-v4/fab_bg_mini.png [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-hdpi-v4/fab_bg_normal.png [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-mdpi-v4/fab_bg_mini.png [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-mdpi-v4/fab_bg_normal.png [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xhdpi-v4/fab_bg_mini.png [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xhdpi-v4/fab_bg_normal.png [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxhdpi-v4/fab_bg_mini.png [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxhdpi-v4/fab_bg_normal.png [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxxhdpi-v4/fab_bg_mini.png [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxxhdpi-v4/fab_bg_normal.png [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/values/values.xml [new file with mode: 0644]
libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/src/.readme [new file with mode: 0644]
libs/org.apache.http.legacy.jar [new file with mode: 0644]
oc_jb_workaround/AndroidManifest.xml
oc_jb_workaround/build.gradle
owncloud-android-library
project.properties
res/drawable-hdpi-v9/ic_action_download.png [deleted file]
res/drawable-hdpi-v9/ic_action_refresh.png [deleted file]
res/drawable-hdpi-v9/ic_action_settings.png [deleted file]
res/drawable-hdpi/common_error.png
res/drawable-hdpi/file.png
res/drawable-hdpi/file_application.png [new file with mode: 0644]
res/drawable-hdpi/file_calendar.png [new file with mode: 0644]
res/drawable-hdpi/file_code.png [new file with mode: 0644]
res/drawable-hdpi/file_doc.png
res/drawable-hdpi/file_image.png
res/drawable-hdpi/file_movie.png
res/drawable-hdpi/file_pdf.png
res/drawable-hdpi/file_ppt.png
res/drawable-hdpi/file_sound.png
res/drawable-hdpi/file_text.png [new file with mode: 0644]
res/drawable-hdpi/file_vcard.png [new file with mode: 0644]
res/drawable-hdpi/file_xls.png
res/drawable-hdpi/file_zip.png
res/drawable-hdpi/folder_external.png [new file with mode: 0644]
res/drawable-hdpi/folder_public.png
res/drawable-hdpi/ic_account_circle.png [new file with mode: 0644]
res/drawable-hdpi/ic_action_create_dir.png
res/drawable-hdpi/ic_action_download.png
res/drawable-hdpi/ic_action_download_grey.png [new file with mode: 0644]
res/drawable-hdpi/ic_action_refresh.png
res/drawable-hdpi/ic_action_refresh_black.png [deleted file]
res/drawable-hdpi/ic_action_refresh_grey.png [new file with mode: 0644]
res/drawable-hdpi/ic_action_settings.png
res/drawable-hdpi/ic_action_upload.png
res/drawable-hdpi/ic_cancel.png [new file with mode: 0644]
res/drawable-hdpi/ic_checkbox_blank_outline.png [new file with mode: 0644]
res/drawable-hdpi/ic_checkbox_marked.png [new file with mode: 0644]
res/drawable-hdpi/ic_drawer.png [deleted file]
res/drawable-hdpi/ic_folder_open.png [new file with mode: 0644]
res/drawable-hdpi/ic_hide.png [new file with mode: 0644]
res/drawable-hdpi/ic_import.png [new file with mode: 0644]
res/drawable-hdpi/ic_lock.png [new file with mode: 0644]
res/drawable-hdpi/ic_lock_open.png [new file with mode: 0644]
res/drawable-hdpi/ic_log.png [new file with mode: 0644]
res/drawable-hdpi/ic_menu_archive.png
res/drawable-hdpi/ic_ok.png [new file with mode: 0644]
res/drawable-hdpi/ic_play_arrow.png [new file with mode: 0644]
res/drawable-hdpi/ic_view.png [new file with mode: 0644]
res/drawable-hdpi/ic_view_list.png [new file with mode: 0644]
res/drawable-hdpi/ic_view_module.png [new file with mode: 0644]
res/drawable-hdpi/ic_warning.png [new file with mode: 0644]
res/drawable-hdpi/icon.png
res/drawable-hdpi/no_network.png [new file with mode: 0644]
res/drawable-hdpi/shared_via_link.png [new file with mode: 0644]
res/drawable-hdpi/shared_via_users.png [new file with mode: 0644]
res/drawable-hdpi/shared_with_me.png [deleted file]
res/drawable-hdpi/shared_with_me_folder.png
res/drawable-hdpi/sharedlink.png [deleted file]
res/drawable-ldpi-v9/ic_action_download.png [deleted file]
res/drawable-ldpi-v9/ic_action_refresh.png [deleted file]
res/drawable-ldpi-v9/ic_action_settings.png [deleted file]
res/drawable-ldpi/common_error.png [deleted file]
res/drawable-ldpi/copy_link.png [deleted file]
res/drawable-ldpi/file.png [deleted file]
res/drawable-ldpi/file_doc.png [deleted file]
res/drawable-ldpi/file_image.png [deleted file]
res/drawable-ldpi/file_movie.png [deleted file]
res/drawable-ldpi/file_pdf.png [deleted file]
res/drawable-ldpi/file_ppt.png [deleted file]
res/drawable-ldpi/ic_action_create_dir.png [deleted file]
res/drawable-ldpi/ic_action_download.png [deleted file]
res/drawable-ldpi/ic_action_refresh.png [deleted file]
res/drawable-ldpi/ic_action_refresh_black.png [deleted file]
res/drawable-ldpi/ic_action_settings.png [deleted file]
res/drawable-ldpi/ic_action_upload.png [deleted file]
res/drawable-ldpi/icon.png [deleted file]
res/drawable-ldpi/image_fail.png [deleted file]
res/drawable-ldpi/logo.png [deleted file]
res/drawable-ldpi/winter_holidays_icon.png [deleted file]
res/drawable-mdpi-v9/ic_action_download.png [deleted file]
res/drawable-mdpi-v9/ic_action_refresh.png [deleted file]
res/drawable-mdpi-v9/ic_action_settings.png [deleted file]
res/drawable-mdpi/file.png
res/drawable-mdpi/file_application.png [new file with mode: 0644]
res/drawable-mdpi/file_calendar.png [new file with mode: 0644]
res/drawable-mdpi/file_code.png [new file with mode: 0644]
res/drawable-mdpi/file_doc.png
res/drawable-mdpi/file_image.png
res/drawable-mdpi/file_movie.png
res/drawable-mdpi/file_pdf.png
res/drawable-mdpi/file_ppt.png
res/drawable-mdpi/file_sound.png
res/drawable-mdpi/file_text.png [new file with mode: 0644]
res/drawable-mdpi/file_vcard.png [new file with mode: 0644]
res/drawable-mdpi/file_xls.png
res/drawable-mdpi/file_zip.png
res/drawable-mdpi/folder_external.png [new file with mode: 0644]
res/drawable-mdpi/folder_public.png
res/drawable-mdpi/ic_action_create_dir.png
res/drawable-mdpi/ic_action_download.png
res/drawable-mdpi/ic_action_download_grey.png [new file with mode: 0644]
res/drawable-mdpi/ic_action_upload.png
res/drawable-mdpi/ic_checkbox_blank_outline.png [new file with mode: 0644]
res/drawable-mdpi/ic_checkbox_marked.png [new file with mode: 0644]
res/drawable-mdpi/ic_drawer.png [deleted file]
res/drawable-mdpi/ic_import.png [new file with mode: 0644]
res/drawable-mdpi/ic_menu_archive.png
res/drawable-mdpi/ic_play_arrow.png [new file with mode: 0644]
res/drawable-mdpi/ic_view_list.png [new file with mode: 0644]
res/drawable-mdpi/ic_view_module.png [new file with mode: 0644]
res/drawable-mdpi/icon.png
res/drawable-mdpi/logo.png [deleted file]
res/drawable-mdpi/shared_via_link.png [new file with mode: 0644]
res/drawable-mdpi/shared_via_users.png [new file with mode: 0644]
res/drawable-mdpi/shared_with_me.png [deleted file]
res/drawable-mdpi/shared_with_me_folder.png
res/drawable-mdpi/sharedlink.png [deleted file]
res/drawable-xhdpi/common_error.png [new file with mode: 0644]
res/drawable-xhdpi/file.png
res/drawable-xhdpi/file_application.png [new file with mode: 0644]
res/drawable-xhdpi/file_calendar.png [new file with mode: 0644]
res/drawable-xhdpi/file_code.png [new file with mode: 0644]
res/drawable-xhdpi/file_doc.png
res/drawable-xhdpi/file_image.png
res/drawable-xhdpi/file_movie.png
res/drawable-xhdpi/file_pdf.png
res/drawable-xhdpi/file_ppt.png
res/drawable-xhdpi/file_sound.png
res/drawable-xhdpi/file_text.png [new file with mode: 0644]
res/drawable-xhdpi/file_vcard.png [new file with mode: 0644]
res/drawable-xhdpi/file_xls.png
res/drawable-xhdpi/file_zip.png
res/drawable-xhdpi/folder_external.png [new file with mode: 0644]
res/drawable-xhdpi/folder_public.png
res/drawable-xhdpi/ic_account_circle.png [new file with mode: 0644]
res/drawable-xhdpi/ic_action_create_dir.png [new file with mode: 0644]
res/drawable-xhdpi/ic_action_download.png [new file with mode: 0644]
res/drawable-xhdpi/ic_action_download_grey.png [new file with mode: 0644]
res/drawable-xhdpi/ic_action_refresh.png [new file with mode: 0644]
res/drawable-xhdpi/ic_action_refresh_grey.png [new file with mode: 0644]
res/drawable-xhdpi/ic_action_settings.png [new file with mode: 0644]
res/drawable-xhdpi/ic_action_upload.png [new file with mode: 0644]
res/drawable-xhdpi/ic_cancel.png [new file with mode: 0644]
res/drawable-xhdpi/ic_checkbox_blank_outline.png [new file with mode: 0644]
res/drawable-xhdpi/ic_checkbox_marked.png [new file with mode: 0644]
res/drawable-xhdpi/ic_drawer.png [deleted file]
res/drawable-xhdpi/ic_folder_open.png [new file with mode: 0644]
res/drawable-xhdpi/ic_hide.png [new file with mode: 0644]
res/drawable-xhdpi/ic_import.png [new file with mode: 0644]
res/drawable-xhdpi/ic_lock.png [new file with mode: 0644]
res/drawable-xhdpi/ic_lock_open.png [new file with mode: 0644]
res/drawable-xhdpi/ic_log.png [new file with mode: 0644]
res/drawable-xhdpi/ic_menu_archive.png
res/drawable-xhdpi/ic_ok.png [new file with mode: 0644]
res/drawable-xhdpi/ic_play_arrow.png [new file with mode: 0644]
res/drawable-xhdpi/ic_view.png [new file with mode: 0644]
res/drawable-xhdpi/ic_view_list.png [new file with mode: 0644]
res/drawable-xhdpi/ic_view_module.png [new file with mode: 0644]
res/drawable-xhdpi/ic_warning.png [new file with mode: 0644]
res/drawable-xhdpi/icon.png
res/drawable-xhdpi/no_network.png [new file with mode: 0644]
res/drawable-xhdpi/shared_via_link.png [new file with mode: 0644]
res/drawable-xhdpi/shared_via_users.png [new file with mode: 0644]
res/drawable-xhdpi/shared_with_me.png [deleted file]
res/drawable-xhdpi/shared_with_me_folder.png
res/drawable-xhdpi/sharedlink.png [deleted file]
res/drawable-xxhdpi/common_error.png [new file with mode: 0644]
res/drawable-xxhdpi/file.png
res/drawable-xxhdpi/file_application.png [new file with mode: 0644]
res/drawable-xxhdpi/file_calendar.png [new file with mode: 0644]
res/drawable-xxhdpi/file_code.png [new file with mode: 0644]
res/drawable-xxhdpi/file_doc.png
res/drawable-xxhdpi/file_image.png
res/drawable-xxhdpi/file_movie.png
res/drawable-xxhdpi/file_pdf.png
res/drawable-xxhdpi/file_ppt.png
res/drawable-xxhdpi/file_sound.png
res/drawable-xxhdpi/file_text.png [new file with mode: 0644]
res/drawable-xxhdpi/file_vcard.png [new file with mode: 0644]
res/drawable-xxhdpi/file_xls.png
res/drawable-xxhdpi/file_zip.png
res/drawable-xxhdpi/folder_external.png [new file with mode: 0644]
res/drawable-xxhdpi/folder_public.png
res/drawable-xxhdpi/ic_account_circle.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_action_create_dir.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_action_download.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_action_download_grey.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_action_refresh.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_action_refresh_grey.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_action_settings.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_action_upload.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_cancel.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_checkbox_blank_outline.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_checkbox_marked.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_folder_open.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_hide.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_import.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_lock.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_lock_open.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_log.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_menu_archive.png
res/drawable-xxhdpi/ic_ok.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_play_arrow.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_sort_variant.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_view.png [new file with mode: 0644]
res/drawable-xxhdpi/ic_warning.png [new file with mode: 0644]
res/drawable-xxhdpi/icon.png [new file with mode: 0644]
res/drawable-xxhdpi/no_network.png [new file with mode: 0644]
res/drawable-xxhdpi/owncloud_progress_bg_light.9.png [new file with mode: 0644]
res/drawable-xxhdpi/owncloud_progress_primary_light.9.png [new file with mode: 0644]
res/drawable-xxhdpi/owncloud_progress_secondary_light.9.png [new file with mode: 0644]
res/drawable-xxhdpi/owncloud_progressbar_indeterminate_1.png [new file with mode: 0644]
res/drawable-xxhdpi/owncloud_progressbar_indeterminate_2.png [new file with mode: 0644]
res/drawable-xxhdpi/owncloud_progressbar_indeterminate_3.png [new file with mode: 0644]
res/drawable-xxhdpi/owncloud_progressbar_indeterminate_4.png [new file with mode: 0644]
res/drawable-xxhdpi/owncloud_progressbar_indeterminate_5.png [new file with mode: 0644]
res/drawable-xxhdpi/owncloud_progressbar_indeterminate_6.png [new file with mode: 0644]
res/drawable-xxhdpi/owncloud_progressbar_indeterminate_7.png [new file with mode: 0644]
res/drawable-xxhdpi/owncloud_progressbar_indeterminate_8.png [new file with mode: 0644]
res/drawable-xxhdpi/shared_with_me_folder.png
res/drawable-xxxhdpi/ic_action_create_dir.png [new file with mode: 0644]
res/drawable-xxxhdpi/ic_action_download.png [new file with mode: 0644]
res/drawable-xxxhdpi/ic_action_upload.png [new file with mode: 0644]
res/drawable-xxxhdpi/icon.png [new file with mode: 0644]
res/drawable/actionbar_progress_horizontal.xml [new file with mode: 0644]
res/drawable/actionbar_progress_indeterminate_horizontal.xml [new file with mode: 0644]
res/drawable/backrepeat.xml [new file with mode: 0644]
res/drawable/checker_16_16.png [new file with mode: 0644]
res/drawable/conflict_file_indicator.png [new file with mode: 0644]
res/drawable/fab_label_background.xml [new file with mode: 0644]
res/drawable/process_dialog_background.xml [new file with mode: 0644]
res/drawable/synchronizing_file_indicator.png [new file with mode: 0644]
res/layout-land/account_setup.xml
res/layout-v14/generic_explanation.xml
res/layout/account_setup.xml
res/layout/alert_dialog_list_view.xml [new file with mode: 0644]
res/layout/drawer.xml
res/layout/drawer_list_item.xml
res/layout/drawer_radiobutton.xml
res/layout/error_send.xml [new file with mode: 0644]
res/layout/file_actions.xml [new file with mode: 0644]
res/layout/file_details_empty.xml
res/layout/file_details_fragment.xml
res/layout/file_download_fragment.xml
res/layout/file_preview.xml
res/layout/files.xml
res/layout/files_folder_picker.xml
res/layout/generic_explanation.xml
res/layout/grid_image.xml
res/layout/grid_item.xml
res/layout/list_footer.xml
res/layout/list_fragment.xml
res/layout/list_item.xml
res/layout/listrow_details.xml
res/layout/listrow_group.xml
res/layout/loading_dialog.xml
res/layout/log_item.xml
res/layout/log_send_file.xml
res/layout/migration_layout.xml [new file with mode: 0644]
res/layout/passcodelock.xml
res/layout/preview_image_fragment.xml
res/layout/search_users_groups_layout.xml [new file with mode: 0644]
res/layout/share_activity.xml [new file with mode: 0644]
res/layout/share_file_layout.xml [new file with mode: 0644]
res/layout/share_user_item.xml [new file with mode: 0644]
res/layout/simple_dialog_list_item.xml [new file with mode: 0644]
res/layout/ssl_untrusted_cert_layout.xml
res/layout/ssl_validator_layout.xml
res/layout/text_file_preview.xml [new file with mode: 0644]
res/layout/upload_files_layout.xml
res/layout/uploader_layout.xml
res/layout/uploader_list_item_layout.xml
res/menu/file_actions_menu.xml
res/menu/main_menu.xml
res/menu/multiple_file_actions_menu.xml [new file with mode: 0644]
res/menu/uploader_menu.xml [new file with mode: 0644]
res/values-af-rZA/strings.xml
res/values-ar/strings.xml
res/values-az/strings.xml
res/values-bal/strings.xml [new file with mode: 0644]
res/values-bg-rBG/strings.xml
res/values-bn-rBD/strings.xml
res/values-bn-rIN/strings.xml
res/values-bs/strings.xml
res/values-ca/strings.xml
res/values-cs-rCZ/strings.xml
res/values-cy-rGB/strings.xml
res/values-da/strings.xml
res/values-de-rAT/strings.xml
res/values-de-rCH/strings.xml
res/values-de-rDE/strings.xml
res/values-de/strings.xml
res/values-el/strings.xml
res/values-en-rGB/strings.xml
res/values-en-rUS/strings.xml [new file with mode: 0644]
res/values-eo/strings.xml
res/values-es-rAR/strings.xml
res/values-es-rCL/strings.xml
res/values-es-rES/strings.xml [new file with mode: 0644]
res/values-es-rMX/strings.xml
res/values-es/strings.xml
res/values-et-rEE/strings.xml
res/values-eu/strings.xml
res/values-fa/strings.xml
res/values-fi-rFI/strings.xml
res/values-fr/strings.xml
res/values-gl/strings.xml
res/values-he/strings.xml
res/values-hi-rIN/strings.xml
res/values-hi/strings.xml
res/values-hr/strings.xml
res/values-hu-rHU/strings.xml
res/values-hy/strings.xml
res/values-ia/strings.xml
res/values-id/strings.xml
res/values-is/strings.xml
res/values-it/strings.xml
res/values-ja-rJP/strings.xml
res/values-ka-rGE/strings.xml
res/values-km/strings.xml
res/values-kn/strings.xml
res/values-ko/strings.xml
res/values-ku-rIQ/strings.xml
res/values-la/strings.xml [new file with mode: 0644]
res/values-lb/strings.xml
res/values-lo/strings.xml
res/values-lt-rLT/strings.xml
res/values-lv/strings.xml
res/values-mk/strings.xml
res/values-mn/strings.xml
res/values-ms-rMY/strings.xml
res/values-my/strings.xml
res/values-nb-rNO/strings.xml
res/values-nl/strings.xml
res/values-nn-rNO/strings.xml
res/values-oc/strings.xml
res/values-pa/strings.xml
res/values-pl/strings.xml
res/values-pt-rBR/strings.xml
res/values-pt-rPT/strings.xml
res/values-rm/strings.xml [new file with mode: 0644]
res/values-ro/strings.xml
res/values-ru-rRU/strings.xml
res/values-ru/strings.xml
res/values-si-rLK/strings.xml
res/values-sk-rSK/strings.xml
res/values-sl/strings.xml
res/values-sq/strings.xml
res/values-sr-rSP/strings.xml
res/values-sr/strings.xml
res/values-sv/strings.xml
res/values-ta-rLK/strings.xml
res/values-th-rTH/strings.xml
res/values-tr/strings.xml
res/values-tzl/strings.xml [deleted file]
res/values-ug/strings.xml
res/values-uk/strings.xml
res/values-ur-rPK/strings.xml
res/values-v11/versioned_styles.xml
res/values-v21/styles.xml [new file with mode: 0644]
res/values-vi/strings.xml
res/values-zh-rCN/strings.xml
res/values-zh-rHK/strings.xml
res/values-zh-rTW/strings.xml
res/values/attrs.xml
res/values/colors.xml
res/values/dims.xml
res/values/drawer_resources.xml
res/values/setup.xml
res/values/strings.xml
res/values/styles.xml
res/values/versioned_styles.xml
res/xml/preferences.xml
res/xml/users_and_groups_searchable.xml [new file with mode: 0644]
setup_env.bat
setup_env.sh
src/com/owncloud/android/MainApp.java
src/com/owncloud/android/authentication/AccountAuthenticatorActivity.java
src/com/owncloud/android/authentication/AccountUtils.java
src/com/owncloud/android/authentication/AuthenticatorActivity.java
src/com/owncloud/android/authentication/PassCodeManager.java
src/com/owncloud/android/datamodel/FileDataStorageManager.java
src/com/owncloud/android/datamodel/OCFile.java
src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java
src/com/owncloud/android/db/ProviderMeta.java
src/com/owncloud/android/files/FileMenuFilter.java
src/com/owncloud/android/files/FileOperationsHelper.java
src/com/owncloud/android/files/InstantUploadBroadcastReceiver.java
src/com/owncloud/android/files/services/FileDownloader.java
src/com/owncloud/android/files/services/FileUploader.java
src/com/owncloud/android/files/services/IndexedForest.java
src/com/owncloud/android/media/MediaControlView.java
src/com/owncloud/android/media/MediaService.java
src/com/owncloud/android/notifications/NotificationBuilderWithProgressBar.java
src/com/owncloud/android/operations/CopyFileOperation.java [new file with mode: 0644]
src/com/owncloud/android/operations/CreateFolderOperation.java
src/com/owncloud/android/operations/CreateShareOperation.java [deleted file]
src/com/owncloud/android/operations/CreateShareViaLinkOperation.java [new file with mode: 0644]
src/com/owncloud/android/operations/CreateShareWithShareeOperation.java [new file with mode: 0644]
src/com/owncloud/android/operations/DownloadFileOperation.java
src/com/owncloud/android/operations/GetCapabilitiesOperarion.java [new file with mode: 0644]
src/com/owncloud/android/operations/GetSharesForFileOperation.java
src/com/owncloud/android/operations/GetSharesOperation.java [deleted file]
src/com/owncloud/android/operations/RefreshFolderOperation.java
src/com/owncloud/android/operations/SynchronizeFileOperation.java
src/com/owncloud/android/operations/SynchronizeFolderOperation.java
src/com/owncloud/android/operations/UnshareLinkOperation.java [deleted file]
src/com/owncloud/android/operations/UnshareOperation.java [new file with mode: 0644]
src/com/owncloud/android/operations/UpdateShareViaLinkOperation.java [new file with mode: 0644]
src/com/owncloud/android/operations/UploadFileOperation.java
src/com/owncloud/android/operations/common/SyncOperation.java
src/com/owncloud/android/providers/FileContentProvider.java
src/com/owncloud/android/providers/UsersAndGroupsSearchProvider.java [new file with mode: 0644]
src/com/owncloud/android/services/OperationsService.java
src/com/owncloud/android/services/SyncFolderHandler.java
src/com/owncloud/android/syncadapter/FileSyncAdapter.java
src/com/owncloud/android/ui/NavigationDrawerItem.java
src/com/owncloud/android/ui/activity/ConflictsResolveActivity.java
src/com/owncloud/android/ui/activity/ErrorReportActivity.java [new file with mode: 0644]
src/com/owncloud/android/ui/activity/ErrorsWhileCopyingHandlerActivity.java
src/com/owncloud/android/ui/activity/FileActivity.java
src/com/owncloud/android/ui/activity/FileDisplayActivity.java
src/com/owncloud/android/ui/activity/FolderPickerActivity.java
src/com/owncloud/android/ui/activity/GenericExplanationActivity.java
src/com/owncloud/android/ui/activity/LocalDirectorySelectorActivity.java [new file with mode: 0644]
src/com/owncloud/android/ui/activity/LogHistoryActivity.java
src/com/owncloud/android/ui/activity/PassCodeActivity.java
src/com/owncloud/android/ui/activity/Preferences.java
src/com/owncloud/android/ui/activity/ShareActivity.java [new file with mode: 0644]
src/com/owncloud/android/ui/activity/StorageMigrationActivity.java [new file with mode: 0644]
src/com/owncloud/android/ui/activity/UploadFilesActivity.java
src/com/owncloud/android/ui/activity/UploadPathActivity.java
src/com/owncloud/android/ui/activity/Uploader.java
src/com/owncloud/android/ui/adapter/DiskLruImageCache.java
src/com/owncloud/android/ui/adapter/DiskLruImageCacheFileProvider.java [new file with mode: 0644]
src/com/owncloud/android/ui/adapter/FileListListAdapter.java
src/com/owncloud/android/ui/adapter/LocalFileListAdapter.java
src/com/owncloud/android/ui/adapter/NavigationDrawerListAdapter.java
src/com/owncloud/android/ui/adapter/ShareUserListAdapter.java [new file with mode: 0644]
src/com/owncloud/android/ui/adapter/X509CertificateViewAdapter.java
src/com/owncloud/android/ui/dialog/AccountActionsDialogFragment.java [new file with mode: 0644]
src/com/owncloud/android/ui/dialog/ChangelogDialog.java
src/com/owncloud/android/ui/dialog/ConfirmationDialogFragment.java
src/com/owncloud/android/ui/dialog/ConflictsResolveDialog.java
src/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java
src/com/owncloud/android/ui/dialog/CredentialsDialogFragment.java
src/com/owncloud/android/ui/dialog/ExpirationDatePickerDialogFragment.java [new file with mode: 0644]
src/com/owncloud/android/ui/dialog/FileActionsDialogFragment.java [new file with mode: 0644]
src/com/owncloud/android/ui/dialog/IndeterminateProgressDialog.java
src/com/owncloud/android/ui/dialog/LoadingDialog.java
src/com/owncloud/android/ui/dialog/OwnCloudListPreference.java [new file with mode: 0644]
src/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java
src/com/owncloud/android/ui/dialog/RemoveFilesDialogFragment.java [new file with mode: 0644]
src/com/owncloud/android/ui/dialog/RenameFileDialogFragment.java
src/com/owncloud/android/ui/dialog/ShareLinkToDialog.java
src/com/owncloud/android/ui/dialog/SharePasswordDialogFragment.java
src/com/owncloud/android/ui/dialog/UploadSourceDialogFragment.java
src/com/owncloud/android/ui/dialog/parcel/MenuItemParcelable.java [new file with mode: 0644]
src/com/owncloud/android/ui/dialog/parcel/MenuParcelable.java [new file with mode: 0644]
src/com/owncloud/android/ui/fragment/ExtendedListFragment.java
src/com/owncloud/android/ui/fragment/FileDetailFragment.java
src/com/owncloud/android/ui/fragment/FileFragment.java
src/com/owncloud/android/ui/fragment/LocalFileListFragment.java
src/com/owncloud/android/ui/fragment/OCFileListFragment.java
src/com/owncloud/android/ui/fragment/SearchShareesFragment.java [new file with mode: 0644]
src/com/owncloud/android/ui/fragment/ShareFileFragment.java [new file with mode: 0644]
src/com/owncloud/android/ui/preview/FileDownloadFragment.java
src/com/owncloud/android/ui/preview/ImageViewCustom.java
src/com/owncloud/android/ui/preview/PreviewImageActivity.java
src/com/owncloud/android/ui/preview/PreviewImageFragment.java
src/com/owncloud/android/ui/preview/PreviewImagePagerAdapter.java
src/com/owncloud/android/ui/preview/PreviewMediaFragment.java
src/com/owncloud/android/ui/preview/PreviewTextFragment.java [new file with mode: 0644]
src/com/owncloud/android/ui/preview/PreviewVideoActivity.java
src/com/owncloud/android/utils/DialogMenuItem.java [new file with mode: 0644]
src/com/owncloud/android/utils/DisplayUtils.java
src/com/owncloud/android/utils/ErrorMessageAdapter.java
src/com/owncloud/android/utils/ExceptionHandler.java [new file with mode: 0644]
src/com/owncloud/android/utils/FileStorageUtils.java
src/com/owncloud/android/utils/GetShareWithUsersAsyncTask.java [new file with mode: 0644]
src/com/owncloud/android/utils/MimetypeIconUtil.java [new file with mode: 0644]
src/third_parties/daveKoeller/AlphanumComparator.java
src/third_parties/in/srain/cube/GridViewWithHeaderAndFooter.java
tests/project.properties
user_manual/android_app.rst
user_manual/images/android-1.png [new file with mode: 0644]
user_manual/images/android-10.png [new file with mode: 0644]
user_manual/images/android-11.png [new file with mode: 0644]
user_manual/images/android-2.png [new file with mode: 0644]
user_manual/images/android-3.png [new file with mode: 0644]
user_manual/images/android-4.png [new file with mode: 0644]
user_manual/images/android-5.png [new file with mode: 0644]
user_manual/images/android-6.png [new file with mode: 0644]
user_manual/images/android-7.png [new file with mode: 0644]
user_manual/images/android-8.png [new file with mode: 0644]
user_manual/images/android-9.png [new file with mode: 0644]
user_manual/images/android-downloads.png [deleted file]
user_manual/images/android-file-list.png [deleted file]
user_manual/images/android-file-options.png [deleted file]
user_manual/images/android-file.png [deleted file]
user_manual/images/android-files-page.png [deleted file]
user_manual/images/android-first-screen.jpg [deleted file]
user_manual/images/android-help.png [deleted file]
user_manual/images/android-new-account.png [deleted file]
user_manual/images/android-settings.png [deleted file]
user_manual/images/android-ssl-cert.png [deleted file]
user_manual/images/android-upload.png [deleted file]

index 8346dbf..009ead4 100644 (file)
@@ -1,5 +1,4 @@
 # built application files
-*.apk
 *.ap_
 
 # files for the dex VM
@@ -14,6 +13,7 @@ build/
 *.iml
 gen/
 target/
+build/
 
 # Local configuration files (sdk path, etc)
 local.properties
@@ -39,4 +39,4 @@ tests/proguard-project.txt
 build
 
 # Actionbarsherlock is now ignored since scripts takes care of init the sub-modules.
-actionbarsherlock
\ No newline at end of file
+actionbarsherlock
index 7ccbef0..882f3c2 100644 (file)
@@ -1,4 +1,3 @@
-
 [submodule "owncloud-android-library"]
        path = owncloud-android-library
        url = git://github.com/owncloud/android-library.git
index b72625c..11e5f40 100644 (file)
@@ -1,13 +1,15 @@
+sudo: false
 language: android
 android:
   components:
-    - build-tools-22.0.1
+    - build-tools-23.0.2
+    - android-23
+    - android-22
     - android-19
-    - android-16
 before_install:
   - rm pom.xml
 script:
   - ./setup_env.sh ant
-  - ant clean
-  - ant debug
+  - ant clean -Djava.source=7 -Djava.target=7
+  - ant debug -Djava.source=7 -Djava.target=7
   
index 5b9fc71..c2fa0fb 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- 
+<!--
   ownCloud Android client application
 
   Copyright (C) 2012  Bartek Przybylski
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
  -->
 <manifest package="com.owncloud.android"
-    android:versionCode="10700200"
-    android:versionName="1.7.2" xmlns:android="http://schemas.android.com/apk/res/android">
+    android:versionCode="20151130"
+    android:versionName="20151130"
+    xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <uses-sdk
+        android:minSdkVersion="14"
+        android:targetSdkVersion="23" />
 
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
     <uses-permission android:name="android.permission.USE_CREDENTIALS" />
     <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
     <uses-permission android:name="android.permission.BROADCAST_STICKY" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
-    <uses-permission android:name="android.permission.WAKE_LOCK"/>
-    
-    <uses-sdk
-        android:minSdkVersion="14"
-        android:targetSdkVersion="19" />
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+    <uses-permission android:name="android.permission.WAKE_LOCK" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
-    </uses-permission>
+    <android:uses-permission android:name="android.permission.READ_PHONE_STATE" />
+    <android:uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 
     <application
         android:name=".MainApp"
         android:icon="@drawable/icon"
         android:label="@string/app_name"
-        android:theme="@style/Theme.ownCloud"
+        android:theme="@style/Theme.ownCloud" >
         <activity
             android:name=".ui.activity.FileDisplayActivity"
-            android:label="@string/app_name"
-            >
+            android:label="@string/app_name" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
+
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
-        <activity android:name=".ui.activity.UploadFilesActivity">
-        </activity>
-        <activity android:name=".ui.activity.Uploader" >
+        <activity android:name=".ui.activity.UploadFilesActivity" />
+        <activity android:name=".ui.activity.LocalDirectorySelectorActivity" />
+        <activity android:name=".ui.activity.StorageMigrationActivity" />
+        <activity android:name=".ui.activity.Uploader"
+            android:label="@string/uploader_top_message"
+            android:theme="@style/Theme.ownCloud">
             <intent-filter>
-                <action android:name="android.intent.action.SEND" >
-                </action>
+                <action android:name="android.intent.action.SEND" />
 
-                <category android:name="android.intent.category.DEFAULT" >
-                </category>
+                <category android:name="android.intent.category.DEFAULT" />
 
-                <data android:mimeType="*/*" >
-                </data>
+                <data android:mimeType="*/*" />
             </intent-filter>
             <intent-filter>
-                <action android:name="android.intent.action.SEND_MULTIPLE" >
-                </action>
-
-                <category android:name="android.intent.category.DEFAULT" >
-                </category>
+                <action android:name="android.intent.action.SEND_MULTIPLE" />
 
-                <data android:mimeType="*/*" >
-                </data>
+                <category android:name="android.intent.category.DEFAULT" />
 
-                       </intent-filter>
+                <data android:mimeType="*/*" />
+            </intent-filter>
         </activity>
         <activity
             android:name=".ui.activity.Preferences"
             android:theme="@style/Theme.ownCloud" >
         </activity>
-        <activity      
-            android:name=".ui.preview.PreviewImageActivity" 
-            />
-                       
-        <activity      
+        <activity
+            android:name=".ui.preview.PreviewImageActivity"
+            android:theme="@style/Theme.ownCloud.Overlay" />
+        <activity
             android:name=".ui.preview.PreviewVideoActivity"
-                       android:label="@string/app_name"
-                       android:theme="@style/Theme.ownCloud.Fullscreen" 
-                       >
-               </activity>        
+            android:label="@string/app_name"
+            android:theme="@style/Theme.ownCloud.Fullscreen" />
 
         <service
             android:name=".authentication.AccountAuthenticatorService"
-            android:exported="true">
-            <intent-filter  android:priority="100">
+            android:exported="true" >
+            <intent-filter android:priority="100" >
                 <action android:name="android.accounts.AccountAuthenticator" />
             </intent-filter>
 
         </service>
         <service
             android:name=".syncadapter.FileSyncService"
-            android:exported="true" 
-            >
+            android:exported="true" >
             <intent-filter>
                 <action android:name="android.content.SyncAdapter" />
             </intent-filter>
             android:name=".providers.FileContentProvider"
             android:authorities="@string/authority"
             android:enabled="true"
-            android:exported="false"
+            android:exported="true"
             android:label="@string/sync_string_files"
-            android:syncable="true" >
+            android:syncable="true" />
+
+        <provider
+            android:name=".providers.UsersAndGroupsSearchProvider"
+            android:authorities="com.owncloud.android.providers.UsersAndGroupsSearchProvider"
+            android:enabled="true"
+            android:exported="false"
+            android:label="@string/search_users_and_groups_hint" />
+
+        <provider
+            android:name=".ui.adapter.DiskLruImageCacheFileProvider"
+            android:authorities="@string/authorityCache"
+            android:exported="true">
         </provider>
 
         <activity
             android:name=".authentication.AuthenticatorActivity"
             android:exported="true"
-            android:theme="@style/Theme.ownCloud.noActionBar" 
-            android:launchMode="singleTask">
+            android:launchMode="singleTask"
+            android:theme="@style/Theme.ownCloud.noActionBar" >
             <intent-filter>
                 <action android:name="android.intent.action.VIEW" />
+
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.BROWSABLE" />
+
                 <data android:scheme="@string/oauth2_redirect_scheme" />
             </intent-filter>
             <intent-filter>
                 <action android:name="com.owncloud.android.workaround.accounts.CREATE" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
         <service android:name=".files.services.FileDownloader" />
         <service android:name=".files.services.FileUploader" />
         <service android:name=".media.MediaService" />
-        
+
         <activity android:name=".ui.activity.PassCodeActivity" />
         <activity android:name=".ui.activity.ConflictsResolveActivity"/>
         <activity android:name=".ui.activity.GenericExplanationActivity"/>
         <activity android:name=".ui.activity.ErrorsWhileCopyingHandlerActivity"/>
         
         <activity android:name=".ui.activity.LogHistoryActivity"/>
-        
+        <activity android:name=".ui.activity.ErrorReportActivity"/>
+
         <receiver android:name=".files.InstantUploadBroadcastReceiver">
             <intent-filter>
+
                 <!-- unofficially supported by many Android phones but not by HTC devices: -->
                 <action android:name="com.android.camera.NEW_PICTURE" />
-                <!-- officially supported since Android 4.0 (SDK 14, works even for HTC devices): --> 
+                <!-- officially supported since Android 4.0 (SDK 14, works even for HTC devices): -->
                 <action android:name="android.hardware.action.NEW_PICTURE" />
+
                 <data android:mimeType="image/*" />
             </intent-filter>
             <intent-filter>
                 <action android:name="android.hardware.action.NEW_VIDEO" />
+
                 <data android:mimeType="video/*" />
             </intent-filter>
             <intent-filter>
-                <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
+                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
             </intent-filter>
+            <intent-filter>
+                               <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
+                           <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
+                       </intent-filter>
         </receiver>
-        <receiver android:name=".files.BootupBroadcastReceiver">
+        <receiver android:name=".files.BootupBroadcastReceiver" >
             <intent-filter>
-                <action android:name="android.intent.action.BOOT_COMPLETED"/>
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
             </intent-filter>
         </receiver>
-        <service android:name=".services.observer.FileObserverService"/>
-        
-               <activity
-                       android:name=".ui.activity.CopyToClipboardActivity"
-                       android:label="@string/copy_link"
-                       android:icon="@drawable/copy_link"/>
-
-        <activity 
-                       android:name=".ui.activity.FolderPickerActivity"
-                       android:label="@string/app_name"/>
-
-        <activity 
-                       android:name=".ui.activity.UploadPathActivity"
-                       android:label="@string/app_name"/>
-        
+
+        <service android:name=".services.observer.FileObserverService" />
+
+        <activity
+            android:name=".ui.activity.CopyToClipboardActivity"
+            android:icon="@drawable/copy_link"
+            android:label="@string/copy_link" />
+        <activity
+            android:name=".ui.activity.FolderPickerActivity"
+            android:label="@string/app_name" />
+        <activity
+            android:name=".ui.activity.UploadPathActivity"
+            android:label="@string/app_name" />
+        <activity
+            android:name=".ui.activity.ShareActivity"
+            android:label="@string/share_dialog_title"
+            android:theme="@style/Theme.ownCloud.Dialog"
+            android:launchMode="singleTop"
+            android:windowSoftInputMode="adjustResize" >
+            <intent-filter>
+                <action android:name="android.intent.action.SEARCH" />
+            </intent-filter>
+            <meta-data android:name="android.app.searchable"
+                       android:resource="@xml/users_and_groups_searchable"/>
+        </activity>
     </application>
 
 </manifest>
index 6934155..739f057 100644 (file)
@@ -1,42 +1,66 @@
-## 1.7.2 (July 2015)
-- New navigation drawer
-- Improved Passcode
-- Automatic grid view just for folders full of images
-- More characters allowed in file names
-- Support for servers in same domain, different path
-- Bugs fixed:
-  + Frequent crashes in folder with several images
-  + Sync error in servers with huge quota and external storage enable
-  + Share by link error 
-  + Some other crashes and minor bugs
-
-## 1.7.1 (April 2015)
-
-- Share link even with password enforced by server
-- Get the app ready for oc 8.1 servers
-- Added option to create new folder in uploads from external apps
-- Improved management of deleted users
-- Bugs fixed
-  + Fixed crash on Android 2.x devices
-  + Improvements on uploads
-
-## 1.7.0 (February 2015)
-
-- Download full folders
-- Grid view for images
-- Remote thumbnails (OC Server 8.0+)
-- Added number of files and folders at the end of the list
-- "Open with" in contextual menu
-- Downloads added to Media Provider
-- Uploads:
-  + Local thumbnails in section "Files"
-  + Multiple selection in "Content from other apps" (Android 4.3+)
-- Gallery: 
-  + proper handling of EXIF
-  + obey sorting in the list of files
-- Settings view updated
-- Improved subjects in e-mails
-- Bugs fixed
+# 2015-11-28 
 
+- update all PR
+- PR [#1191] (https://github.com/owncloud/android/pull/1191) "Cancel upload on wlan exit" merged
+- PR [#1220] (https://github.com/owncloud/android/pull/1220) "Move to compile target Marshmallow (Android 6 - v23)" merged
 
+# 2015-11-21
+- fix #1297
+- update all PR
+- try for #1278
 
+# 2015-11-20
+- PR [#1293] (https://github.com/owncloud/android/pull/1293) "External SD by przybylski" merged
+- PR [#1296] (https://github.com/owncloud/android/pull/1296) "Don't allow to remove passcode without entering it. Don't allow to set incomplete passcode by przybylski" merged
+
+# 2015-11-18
+- update all PR
+- fix #1259
+
+# 2015-11-13
+- update all PR
+
+# 2015-11-10
+- update master
+- PR [#1277] (https://github.com/owncloud/android/pull/1277) "Optimized uploader layout and user configured sorting" merged
+
+# 2015-11-05
+- update master
+- fix #1244
+- add changelog
+- add check for update of beta version
+
+# 2015-11-02
+- PR [#1240](https://github.com/owncloud/android/pull/1240) "Set as wallpaper" merged
+- updated other PRs
+
+# 2015-11-01
+- PR [#1236](https://github.com/owncloud/android/pull/1236) "Streaming video/audio" merged
+- PR [#1035](https://github.com/owncloud/android/pull/1035) "Enable video thumbnail" merged
+
+# 2015-10-31
+- updated all PR
+- bugfix: #1234, #1230
+- implement Crash Handler
+- implement direct download of latest apk in settings -> last item on bottom
+
+# 2015-10-30
+- fixed problem with Authority
+
+# 2015-10-29
+- PR [#1099](https://github.com/owncloud/android/pull/1099) "Switch list vs grid" merged
+- PR [#1100](https://github.com/owncloud/android/pull/1100) "Material FAB with speed dial implementation" merged
+- PR [#1209](https://github.com/owncloud/android/pull/1209) "Material buttons - before in #1090" merged
+- PR [#1205](https://github.com/owncloud/android/pull/1205) "Switch between online and offline files" merged
+- PR [#1195](https://github.com/owncloud/android/pull/1195) "Resize Cache" merged
+- PR [#1187](https://github.com/owncloud/android/pull/1187) "Video: Big thumbnails" merged
+- PR [#1058](https://github.com/owncloud/android/pull/1058) "add sort to UploadFileActiviy" merged
+- PR [#1168](https://github.com/owncloud/android/pull/1168) "Avoid duplicate files" merged
+- PR [#1176](https://github.com/owncloud/android/pull/1176) "Multi select" merged
+
+
+# 2015-10-26
+- start of branch
+- PR [#745](https://github.com/owncloud/android/pull/745) merged
+- PR [#1044](https://github.com/owncloud/android/pull/1044) merged: < 8.1: GalleryPlus app needed, >= 8.2 Gallery app needed
+- PR [#1111](https://github.com/owncloud/android/pull/1111) merged
\ No newline at end of file
index e3ff535..a239144 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,11 +1,18 @@
-#This is the Android client for [ownCloud][0]
+#This is the BETA Android client for [ownCloud][0]
+
+The BETA app is only intended to be used by experienced users that want to use and test the latest features.
+All pull requests labeled "3 - to review" or higher will be included into the branch.
+
+If you find a bug please verify first if it is *really* a bug in beta, then comment in the corresponding pull request or create a new issue with the prefix "Beta YYYY-MM-DD:".
+
+The compiled APKs can be found [here][2]
+
+The changelog is found [here][3]
 
 The app performs file synchronization with an ownCloud server. Other ownCloud features may be added in the future, but they are not a priority right now.
 
 ## Build Status on
-Git master: ![Build Status](https://api.travis-ci.org/owncloud/android.svg?branch=master)
-
-Git stable:  ![Build Status](https://api.travis-ci.org/owncloud/android.svg?branch=stable)
+Git beta: ![Build Status](https://api.travis-ci.org/owncloud/android.svg?branch=beta)
 
 ## Development
 
@@ -14,6 +21,8 @@ Make sure you read [SETUP.md][1] when you start working on this project.
 
 [0]: https://github.com/owncloud/core
 [1]: https://github.com/owncloud/android/blob/master/SETUP.md
+[2]: https://github.com/owncloud/android/tree/beta/apks/
+[3]: https://github.com/owncloud/android/blob/beta/CHANGELOG.md
 
 ### Contributing
 Please see [Contribution Guidelines](https://owncloud.org/contribute/). Fork this repository and contribute back using
index 4f9cef9..64c04c9 100644 (file)
--- a/SETUP.md
+++ b/SETUP.md
@@ -18,8 +18,8 @@ Open a terminal and type 'android' to start the Android SDK Manager. To build th
 
 * Android SDK Tools and Android SDK Platform-tools (already installed); upgrade to their last versions is usually a good idea.
 * Android SDK Build-Tools; any version from 20 or later should work fine; avoid preview versions, if any available.
-* Android 4.4.2 (API 19), SDK Platform; needed to build the ownCloud app.
-* Android 4.1.2 (API 16), SDK Platform; needed to build the Android Support Library (not neeeded if working with Android Studio or gradle).
+* Android 4.4.2 (API 19), SDK Platform; needed for build/test ownCloud app.
+* Android 5.1.1 (API 22), SDK Platform; needed to build the Android Support Library (not neeeded if working with Android Studio or gradle) and build the owncloud app.
 
 Install any other package you consider interesting, such as emulators.
 
@@ -36,7 +36,7 @@ Next steps will assume you have a Github account and that you will get the code
 * Open a terminal and go on with the next steps in it.
 * Clone your forked repository: ```git clone git@github.com:YOURGITHUBNAME/android.git```.
 * Move to the project folder with ```cd android```.
-* Checkout the remote branch 'master' in your own local branch 'master': ```git checkout -b master remotes/origin/master```.
+* Checkout the remote branch 'master' in your own local branch 'master': ```git checkout master remotes/origin/master```.
 * Pull any changes from your remote branch 'master': ```git pull origin master```
 * Make official ownCloud repo known as upstream: ```git remote add upstream git@github.com:owncloud/android.git```
 * Make sure to get the latest changes from official android/master branch: ```git pull upstream master```
@@ -90,6 +90,7 @@ The generated APK file is saved in android/build/outputs/apk as android-debug.ap
 * Choose the projects with the next names under the 'New Project Name' column:
 ** owncloud-android 
 ** android-support-appcompat-v7-exploded-aar
+** com-getbase-floatingactionbutton-1-10-0-exploded-aar
 ** owncloud-android-workaround-accounts        (optional)
 ** ownCloud Android Library
 ** ownCloud Sample Client (optional)
@@ -102,11 +103,12 @@ The generated APK file is saved in android/build/outputs/apk as android-debug.ap
 * If any error persists, clean and build manually the next projects in order:
 ** ownCloud Android Library
 ** android-support-appcompat-v7-exploded-aar
+** com-getbase-floatingactionbutton-1-10-0-exploded-aar
 ** owncloud-android
 * If any error on those projects persists, check the project properties. In the 'Android' section, API Level should be
 ** ownCloud Android Library    -> API level 19
-** android-support-appcompat-v7-exploded-aa -> API level 16
-** owncloud-android    -> API level 19 ; in this project, two library projects should appear referred in the bottom of the dialog: libs\android-support-appcompat-v7-exploded-aar and owncloud-android-library. Add them if needed.
+** android-support-appcompat-v7-exploded-aa -> API level 22
+** owncloud-android    -> API level 22 ; in this project, three library projects should appear referred in the bottom of the dialog: libs\android-support-appcompat-v7-exploded-aar, ** com-getbase-floatingactionbutton-1-10-0-exploded-aar and owncloud-android-library. Add them if needed.
 * After those actions you should be good to go. HAVE FUN!
 
 
@@ -139,7 +141,7 @@ Download/install Android plugin for Maven, then build ownCloud with mvn:
 * cd ..
 * git clone https://github.com/mosabua/maven-android-sdk-deployer.git
 * cd maven-android-sdk-deployer
-* mvn -pl com.simpligility.android.sdk-deployer:android-19 -am install
+* mvn -pl com.simpligility.android.sdk-deployer:android-22 -am install
 * cd ../android/owncloud-android-library
 * mvn install
 * cd ..
index 6fd3e5b..7b21bfc 100644 (file)
@@ -59,4 +59,8 @@ The third party software included and used by this project is:
    modifications com.ortiz.touch.ExtendedViewPager and com.ortiz.touch.TouchImageView classes. 
    See https://github.com/MikeOrtiz/TouchImageView
  
\ No newline at end of file
+ * floatingactionbutton 1.10.1.
+   Copyright (c) 2014 Jerzy Chalupski
+   Licensed under Apache License, Version 2.0.
+   placed at libs/com-getbase-floatingactionbutton-1-10-0-exploded-aar has been exploded by ownCloud Inc.
+   See https://github.com/futuresimple/android-floating-action-button 
\ No newline at end of file
diff --git a/android-release.apk b/android-release.apk
new file mode 100644 (file)
index 0000000..ad74471
Binary files /dev/null and b/android-release.apk differ
diff --git a/apks/latest b/apks/latest
new file mode 100644 (file)
index 0000000..fc7c290
--- /dev/null
@@ -0,0 +1 @@
+20151130
diff --git a/apks/owncloud-beta-20151124.apk b/apks/owncloud-beta-20151124.apk
new file mode 100644 (file)
index 0000000..26535e0
Binary files /dev/null and b/apks/owncloud-beta-20151124.apk differ
diff --git a/apks/owncloud-beta-20151125.apk b/apks/owncloud-beta-20151125.apk
new file mode 100644 (file)
index 0000000..5eb3ff1
Binary files /dev/null and b/apks/owncloud-beta-20151125.apk differ
diff --git a/apks/owncloud-beta-20151128.apk b/apks/owncloud-beta-20151128.apk
new file mode 100644 (file)
index 0000000..3b81dd3
Binary files /dev/null and b/apks/owncloud-beta-20151128.apk differ
diff --git a/apks/owncloud-beta-20151129.apk b/apks/owncloud-beta-20151129.apk
new file mode 100644 (file)
index 0000000..9c03cf4
Binary files /dev/null and b/apks/owncloud-beta-20151129.apk differ
diff --git a/apks/owncloud-beta-20151130.apk b/apks/owncloud-beta-20151130.apk
new file mode 100644 (file)
index 0000000..ec3d7f1
Binary files /dev/null and b/apks/owncloud-beta-20151130.apk differ
index a5c0431..da6b273 100644 (file)
@@ -3,7 +3,7 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:1.2.3'
+        classpath 'com.android.tools.build:gradle:1.5.0'
     }
 }
 
@@ -20,15 +20,26 @@ repositories {
 
 dependencies {
     compile name: 'touch-image-view'
-    compile 'com.android.support:support-v4:19.1.0'
     compile project(':owncloud-android-library')
+    compile 'com.android.support:support-v4:23.1.1'
     compile 'com.jakewharton:disklrucache:2.0.2'
-    compile 'com.android.support:appcompat-v7:19.1.0'
+    compile 'com.android.support:appcompat-v7:23.1.1'
+    compile 'com.getbase:floatingactionbutton:1.10.1'
 }
 
 android {
-    compileSdkVersion 19
-    buildToolsVersion "22.0.1"
+    compileSdkVersion 23
+    buildToolsVersion "23.0.2"
+    // as long as ownCloud uses Apache HTTP
+    // http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client
+    useLibrary 'org.apache.http.legacy'
+
+    defaultConfig {
+        applicationId "com.owncloud.android.beta"
+        versionCode 20151130
+        versionName "20151130"
+    }
+
     sourceSets {
         main {
             manifest.srcFile 'AndroidManifest.xml'
@@ -59,18 +70,26 @@ android {
         }
     }
 
-
-    compileOptions {
-        sourceCompatibility JavaVersion.VERSION_1_7
-        targetCompatibility JavaVersion.VERSION_1_7
-    }
-    
     productFlavors {
     }
 
     packagingOptions {
         exclude 'META-INF/LICENSE.txt'
     }
-}
 
+    signingConfigs {
+        release {
+            storeFile file(RELEASE_STORE_FILE)
+            storePassword RELEASE_STORE_PASSWORD
+            keyAlias RELEASE_KEY_ALIAS
+            keyPassword RELEASE_KEY_PASSWORD
+        }
+    }
+
+     buildTypes {
+        release {
+            signingConfig signingConfigs.release
+        }
+    }
 
+}
diff --git a/doc/oCC2015_Android_workshop.odp b/doc/oCC2015_Android_workshop.odp
new file mode 100644 (file)
index 0000000..29ed242
Binary files /dev/null and b/doc/oCC2015_Android_workshop.odp differ
index 5cc5eb9..a4763d1 100644 (file)
@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-       <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
-       <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
-       <classpathentry kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
        <classpathentry kind="src" path="src"/>
        <classpathentry kind="src" path="gen"/>
+       <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+       <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
        <classpathentry kind="output" path="bin/classes"/>
 </classpath>
index 7e75601..957d33d 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-       <name>android-support-appcompat-v7-exploded-aar</name>
+       <name>android-support-v7-appcompat</name>
        <comment></comment>
        <projects>
        </projects>
index 6939d32..dac4cb2 100644 (file)
@@ -18,4 +18,3 @@
     <uses-sdk android:minSdkVersion="7"/>
     <application />
 </manifest>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/AndroidManifest.xml -->
\ No newline at end of file
index ff1eab0..dc52062 100644 (file)
 int anim abc_fade_in 0x7f040000
 int anim abc_fade_out 0x7f040001
-int anim abc_slide_in_bottom 0x7f040002
-int anim abc_slide_in_top 0x7f040003
-int anim abc_slide_out_bottom 0x7f040004
-int anim abc_slide_out_top 0x7f040005
-int attr actionBarDivider 0x7f010000
-int attr actionBarItemBackground 0x7f010001
-int attr actionBarSize 0x7f010002
-int attr actionBarSplitStyle 0x7f010003
-int attr actionBarStyle 0x7f010004
-int attr actionBarTabBarStyle 0x7f010005
-int attr actionBarTabStyle 0x7f010006
-int attr actionBarTabTextStyle 0x7f010007
-int attr actionBarWidgetTheme 0x7f010008
-int attr actionButtonStyle 0x7f010009
-int attr actionDropDownStyle 0x7f010066
-int attr actionLayout 0x7f01005d
-int attr actionMenuTextAppearance 0x7f01000a
-int attr actionMenuTextColor 0x7f01000b
-int attr actionModeBackground 0x7f01000c
-int attr actionModeCloseButtonStyle 0x7f01000d
-int attr actionModeCloseDrawable 0x7f01000e
-int attr actionModeCopyDrawable 0x7f01000f
-int attr actionModeCutDrawable 0x7f010010
-int attr actionModeFindDrawable 0x7f010011
-int attr actionModePasteDrawable 0x7f010012
-int attr actionModePopupWindowStyle 0x7f010013
-int attr actionModeSelectAllDrawable 0x7f010014
-int attr actionModeShareDrawable 0x7f010015
-int attr actionModeSplitBackground 0x7f010016
-int attr actionModeStyle 0x7f010017
-int attr actionModeWebSearchDrawable 0x7f010018
-int attr actionOverflowButtonStyle 0x7f010019
-int attr actionProviderClass 0x7f01005f
-int attr actionViewClass 0x7f01005e
-int attr activityChooserViewStyle 0x7f01001a
-int attr background 0x7f010047
-int attr backgroundSplit 0x7f010049
-int attr backgroundStacked 0x7f010048
-int attr buttonBarButtonStyle 0x7f01001b
-int attr buttonBarStyle 0x7f01001c
-int attr customNavigationLayout 0x7f01004a
-int attr disableChildrenWhenDisabled 0x7f010065
-int attr displayOptions 0x7f010040
-int attr divider 0x7f010046
-int attr dividerHorizontal 0x7f01001d
-int attr dividerPadding 0x7f01005b
-int attr dividerVertical 0x7f01001e
-int attr dropDownListViewStyle 0x7f01001f
-int attr dropdownListPreferredItemHeight 0x7f010067
-int attr expandActivityOverflowButtonDrawable 0x7f010058
-int attr height 0x7f010020
-int attr homeAsUpIndicator 0x7f010021
-int attr homeLayout 0x7f01004b
-int attr icon 0x7f010044
-int attr iconifiedByDefault 0x7f010060
-int attr indeterminateProgressStyle 0x7f01004d
-int attr initialActivityCount 0x7f010057
-int attr isLightTheme 0x7f010022
-int attr itemPadding 0x7f01004f
-int attr listChoiceBackgroundIndicator 0x7f01006b
-int attr listPopupWindowStyle 0x7f010023
-int attr listPreferredItemHeight 0x7f010024
-int attr listPreferredItemHeightLarge 0x7f010025
-int attr listPreferredItemHeightSmall 0x7f010026
-int attr listPreferredItemPaddingLeft 0x7f010027
-int attr listPreferredItemPaddingRight 0x7f010028
-int attr logo 0x7f010045
-int attr navigationMode 0x7f01003f
-int attr paddingEnd 0x7f01006d
-int attr paddingStart 0x7f01006c
-int attr panelMenuListTheme 0x7f01006a
-int attr panelMenuListWidth 0x7f010069
-int attr popupMenuStyle 0x7f010068
-int attr popupPromptView 0x7f010064
-int attr progressBarPadding 0x7f01004e
-int attr progressBarStyle 0x7f01004c
-int attr prompt 0x7f010062
-int attr queryHint 0x7f010061
-int attr searchDropdownBackground 0x7f010029
-int attr searchResultListItemHeight 0x7f01002a
-int attr searchViewAutoCompleteTextView 0x7f01002b
-int attr searchViewCloseIcon 0x7f01002c
-int attr searchViewEditQuery 0x7f01002d
-int attr searchViewEditQueryBackground 0x7f01002e
-int attr searchViewGoIcon 0x7f01002f
-int attr searchViewSearchIcon 0x7f010030
-int attr searchViewTextField 0x7f010031
-int attr searchViewTextFieldRight 0x7f010032
-int attr searchViewVoiceIcon 0x7f010033
-int attr selectableItemBackground 0x7f010034
-int attr showAsAction 0x7f01005c
-int attr showDividers 0x7f01005a
-int attr spinnerDropDownItemStyle 0x7f010035
-int attr spinnerMode 0x7f010063
-int attr spinnerStyle 0x7f010036
-int attr subtitle 0x7f010041
-int attr subtitleTextStyle 0x7f010043
-int attr textAllCaps 0x7f010059
-int attr textAppearanceLargePopupMenu 0x7f010037
-int attr textAppearanceListItem 0x7f010038
-int attr textAppearanceListItemSmall 0x7f010039
-int attr textAppearanceSearchResultSubtitle 0x7f01003a
-int attr textAppearanceSearchResultTitle 0x7f01003b
-int attr textAppearanceSmallPopupMenu 0x7f01003c
-int attr textColorSearchUrl 0x7f01003d
-int attr title 0x7f01003e
-int attr titleTextStyle 0x7f010042
-int attr windowActionBar 0x7f010050
-int attr windowActionBarOverlay 0x7f010051
-int attr windowFixedHeightMajor 0x7f010056
-int attr windowFixedHeightMinor 0x7f010054
-int attr windowFixedWidthMajor 0x7f010053
-int attr windowFixedWidthMinor 0x7f010055
-int attr windowSplitActionBar 0x7f010052
-int bool abc_action_bar_embed_tabs_pre_jb 0x7f050000
-int bool abc_action_bar_expanded_action_views_exclusive 0x7f050001
-int bool abc_config_actionMenuItemAllCaps 0x7f050002
-int bool abc_config_allowActionMenuItemTextWithIcon 0x7f050003
-int bool abc_config_showMenuShortcutsWhenKeyboardPresent 0x7f050004
-int bool abc_split_action_bar_is_narrow 0x7f050005
-int color abc_search_url_text_holo 0x7f060003
-int color abc_search_url_text_normal 0x7f060000
-int color abc_search_url_text_pressed 0x7f060001
-int color abc_search_url_text_selected 0x7f060002
-int dimen abc_action_bar_default_height 0x7f080000
-int dimen abc_action_bar_icon_vertical_padding 0x7f080001
-int dimen abc_action_bar_progress_bar_size 0x7f080002
-int dimen abc_action_bar_stacked_max_height 0x7f080003
-int dimen abc_action_bar_stacked_tab_max_width 0x7f080004
-int dimen abc_action_bar_subtitle_bottom_margin 0x7f080005
-int dimen abc_action_bar_subtitle_text_size 0x7f080006
-int dimen abc_action_bar_subtitle_top_margin 0x7f080007
-int dimen abc_action_bar_title_text_size 0x7f080008
-int dimen abc_action_button_min_width 0x7f080009
-int dimen abc_config_prefDialogWidth 0x7f08000a
-int dimen abc_dropdownitem_icon_width 0x7f08000b
-int dimen abc_dropdownitem_text_padding_left 0x7f08000c
-int dimen abc_dropdownitem_text_padding_right 0x7f08000d
-int dimen abc_panel_menu_list_width 0x7f08000e
-int dimen abc_search_view_preferred_width 0x7f08000f
-int dimen abc_search_view_text_min_width 0x7f080010
-int dimen dialog_fixed_height_major 0x7f080011
-int dimen dialog_fixed_height_minor 0x7f080012
-int dimen dialog_fixed_width_major 0x7f080013
-int dimen dialog_fixed_width_minor 0x7f080014
-int drawable abc_ab_bottom_solid_dark_holo 0x7f020000
-int drawable abc_ab_bottom_solid_light_holo 0x7f020001
-int drawable abc_ab_bottom_transparent_dark_holo 0x7f020002
-int drawable abc_ab_bottom_transparent_light_holo 0x7f020003
-int drawable abc_ab_share_pack_holo_dark 0x7f020004
-int drawable abc_ab_share_pack_holo_light 0x7f020005
-int drawable abc_ab_solid_dark_holo 0x7f020006
-int drawable abc_ab_solid_light_holo 0x7f020007
-int drawable abc_ab_stacked_solid_dark_holo 0x7f020008
-int drawable abc_ab_stacked_solid_light_holo 0x7f020009
-int drawable abc_ab_stacked_transparent_dark_holo 0x7f02000a
-int drawable abc_ab_stacked_transparent_light_holo 0x7f02000b
-int drawable abc_ab_transparent_dark_holo 0x7f02000c
-int drawable abc_ab_transparent_light_holo 0x7f02000d
-int drawable abc_cab_background_bottom_holo_dark 0x7f02000e
-int drawable abc_cab_background_bottom_holo_light 0x7f02000f
-int drawable abc_cab_background_top_holo_dark 0x7f020010
-int drawable abc_cab_background_top_holo_light 0x7f020011
-int drawable abc_ic_ab_back_holo_dark 0x7f020012
-int drawable abc_ic_ab_back_holo_light 0x7f020013
-int drawable abc_ic_cab_done_holo_dark 0x7f020014
-int drawable abc_ic_cab_done_holo_light 0x7f020015
-int drawable abc_ic_clear 0x7f020016
-int drawable abc_ic_clear_disabled 0x7f020017
-int drawable abc_ic_clear_holo_light 0x7f020018
-int drawable abc_ic_clear_normal 0x7f020019
-int drawable abc_ic_clear_search_api_disabled_holo_light 0x7f02001a
-int drawable abc_ic_clear_search_api_holo_light 0x7f02001b
-int drawable abc_ic_commit_search_api_holo_dark 0x7f02001c
-int drawable abc_ic_commit_search_api_holo_light 0x7f02001d
-int drawable abc_ic_go 0x7f02001e
-int drawable abc_ic_go_search_api_holo_light 0x7f02001f
-int drawable abc_ic_menu_moreoverflow_normal_holo_dark 0x7f020020
-int drawable abc_ic_menu_moreoverflow_normal_holo_light 0x7f020021
-int drawable abc_ic_menu_share_holo_dark 0x7f020022
-int drawable abc_ic_menu_share_holo_light 0x7f020023
-int drawable abc_ic_search 0x7f020024
-int drawable abc_ic_search_api_holo_light 0x7f020025
-int drawable abc_ic_voice_search 0x7f020026
-int drawable abc_ic_voice_search_api_holo_light 0x7f020027
-int drawable abc_item_background_holo_dark 0x7f020028
-int drawable abc_item_background_holo_light 0x7f020029
-int drawable abc_list_divider_holo_dark 0x7f02002a
-int drawable abc_list_divider_holo_light 0x7f02002b
-int drawable abc_list_focused_holo 0x7f02002c
-int drawable abc_list_longpressed_holo 0x7f02002d
-int drawable abc_list_pressed_holo_dark 0x7f02002e
-int drawable abc_list_pressed_holo_light 0x7f02002f
-int drawable abc_list_selector_background_transition_holo_dark 0x7f020030
-int drawable abc_list_selector_background_transition_holo_light 0x7f020031
-int drawable abc_list_selector_disabled_holo_dark 0x7f020032
-int drawable abc_list_selector_disabled_holo_light 0x7f020033
-int drawable abc_list_selector_holo_dark 0x7f020034
-int drawable abc_list_selector_holo_light 0x7f020035
-int drawable abc_menu_dropdown_panel_holo_dark 0x7f020036
-int drawable abc_menu_dropdown_panel_holo_light 0x7f020037
-int drawable abc_menu_hardkey_panel_holo_dark 0x7f020038
-int drawable abc_menu_hardkey_panel_holo_light 0x7f020039
-int drawable abc_search_dropdown_dark 0x7f02003a
-int drawable abc_search_dropdown_light 0x7f02003b
-int drawable abc_spinner_ab_default_holo_dark 0x7f02003c
-int drawable abc_spinner_ab_default_holo_light 0x7f02003d
-int drawable abc_spinner_ab_disabled_holo_dark 0x7f02003e
-int drawable abc_spinner_ab_disabled_holo_light 0x7f02003f
-int drawable abc_spinner_ab_focused_holo_dark 0x7f020040
-int drawable abc_spinner_ab_focused_holo_light 0x7f020041
-int drawable abc_spinner_ab_holo_dark 0x7f020042
-int drawable abc_spinner_ab_holo_light 0x7f020043
-int drawable abc_spinner_ab_pressed_holo_dark 0x7f020044
-int drawable abc_spinner_ab_pressed_holo_light 0x7f020045
-int drawable abc_tab_indicator_ab_holo 0x7f020046
-int drawable abc_tab_selected_focused_holo 0x7f020047
-int drawable abc_tab_selected_holo 0x7f020048
-int drawable abc_tab_selected_pressed_holo 0x7f020049
-int drawable abc_tab_unselected_pressed_holo 0x7f02004a
-int drawable abc_textfield_search_default_holo_dark 0x7f02004b
-int drawable abc_textfield_search_default_holo_light 0x7f02004c
-int drawable abc_textfield_search_right_default_holo_dark 0x7f02004d
-int drawable abc_textfield_search_right_default_holo_light 0x7f02004e
-int drawable abc_textfield_search_right_selected_holo_dark 0x7f02004f
-int drawable abc_textfield_search_right_selected_holo_light 0x7f020050
-int drawable abc_textfield_search_selected_holo_dark 0x7f020051
-int drawable abc_textfield_search_selected_holo_light 0x7f020052
-int drawable abc_textfield_searchview_holo_dark 0x7f020053
-int drawable abc_textfield_searchview_holo_light 0x7f020054
-int drawable abc_textfield_searchview_right_holo_dark 0x7f020055
-int drawable abc_textfield_searchview_right_holo_light 0x7f020056
-int id action_bar 0x7f07001c
-int id action_bar_activity_content 0x7f070014
-int id action_bar_container 0x7f07001b
-int id action_bar_overlay_layout 0x7f07001f
-int id action_bar_root 0x7f07001a
-int id action_bar_subtitle 0x7f070023
-int id action_bar_title 0x7f070022
-int id action_context_bar 0x7f07001d
-int id action_menu_divider 0x7f070015
-int id action_menu_presenter 0x7f070016
-int id action_mode_close_button 0x7f070024
-int id activity_chooser_view_content 0x7f070025
-int id always 0x7f07000f
-int id beginning 0x7f07000a
-int id checkbox 0x7f07002d
-int id collapseActionView 0x7f070011
-int id default_activity_button 0x7f070028
-int id dialog 0x7f070012
-int id disableHome 0x7f070008
-int id dropdown 0x7f070013
-int id edit_query 0x7f070030
-int id end 0x7f07000c
-int id expand_activities_button 0x7f070026
-int id expanded_menu 0x7f07002c
-int id home 0x7f070017
-int id homeAsUp 0x7f070005
-int id icon 0x7f07002a
-int id ifRoom 0x7f07000e
-int id image 0x7f070027
-int id listMode 0x7f070001
-int id list_item 0x7f070029
-int id middle 0x7f07000b
-int id never 0x7f07000d
-int id none 0x7f070009
-int id normal 0x7f070000
-int id progress_circular 0x7f070018
-int id progress_horizontal 0x7f070019
-int id radio 0x7f07002f
-int id search_badge 0x7f070032
-int id search_bar 0x7f070031
-int id search_button 0x7f070033
-int id search_close_btn 0x7f070038
-int id search_edit_frame 0x7f070034
-int id search_go_btn 0x7f07003a
-int id search_mag_icon 0x7f070035
-int id search_plate 0x7f070036
-int id search_src_text 0x7f070037
-int id search_voice_btn 0x7f07003b
-int id shortcut 0x7f07002e
-int id showCustom 0x7f070007
-int id showHome 0x7f070004
-int id showTitle 0x7f070006
-int id split_action_bar 0x7f07001e
-int id submit_area 0x7f070039
-int id tabMode 0x7f070002
-int id title 0x7f07002b
-int id top_action_bar 0x7f070020
-int id up 0x7f070021
-int id useLogo 0x7f070003
-int id withText 0x7f070010
+int anim abc_grow_fade_in_from_bottom 0x7f040002
+int anim abc_popup_enter 0x7f040003
+int anim abc_popup_exit 0x7f040004
+int anim abc_shrink_fade_out_from_bottom 0x7f040005
+int anim abc_slide_in_bottom 0x7f040006
+int anim abc_slide_in_top 0x7f040007
+int anim abc_slide_out_bottom 0x7f040008
+int anim abc_slide_out_top 0x7f040009
+int attr actionBarDivider 0x7f010063
+int attr actionBarItemBackground 0x7f010064
+int attr actionBarPopupTheme 0x7f01005d
+int attr actionBarSize 0x7f010062
+int attr actionBarSplitStyle 0x7f01005f
+int attr actionBarStyle 0x7f01005e
+int attr actionBarTabBarStyle 0x7f010059
+int attr actionBarTabStyle 0x7f010058
+int attr actionBarTabTextStyle 0x7f01005a
+int attr actionBarTheme 0x7f010060
+int attr actionBarWidgetTheme 0x7f010061
+int attr actionButtonStyle 0x7f01007d
+int attr actionDropDownStyle 0x7f010079
+int attr actionLayout 0x7f010034
+int attr actionMenuTextAppearance 0x7f010065
+int attr actionMenuTextColor 0x7f010066
+int attr actionModeBackground 0x7f010069
+int attr actionModeCloseButtonStyle 0x7f010068
+int attr actionModeCloseDrawable 0x7f01006b
+int attr actionModeCopyDrawable 0x7f01006d
+int attr actionModeCutDrawable 0x7f01006c
+int attr actionModeFindDrawable 0x7f010071
+int attr actionModePasteDrawable 0x7f01006e
+int attr actionModePopupWindowStyle 0x7f010073
+int attr actionModeSelectAllDrawable 0x7f01006f
+int attr actionModeShareDrawable 0x7f010070
+int attr actionModeSplitBackground 0x7f01006a
+int attr actionModeStyle 0x7f010067
+int attr actionModeWebSearchDrawable 0x7f010072
+int attr actionOverflowButtonStyle 0x7f01005b
+int attr actionOverflowMenuStyle 0x7f01005c
+int attr actionProviderClass 0x7f010036
+int attr actionViewClass 0x7f010035
+int attr activityChooserViewStyle 0x7f010085
+int attr alertDialogButtonGroupStyle 0x7f0100a8
+int attr alertDialogCenterButtons 0x7f0100a9
+int attr alertDialogStyle 0x7f0100a7
+int attr alertDialogTheme 0x7f0100aa
+int attr allowStacking 0x7f010025
+int attr arrowHeadLength 0x7f01002c
+int attr arrowShaftLength 0x7f01002d
+int attr autoCompleteTextViewStyle 0x7f0100af
+int attr background 0x7f01000c
+int attr backgroundSplit 0x7f01000e
+int attr backgroundStacked 0x7f01000d
+int attr backgroundTint 0x7f0100cc
+int attr backgroundTintMode 0x7f0100cd
+int attr barLength 0x7f01002e
+int attr borderlessButtonStyle 0x7f010082
+int attr buttonBarButtonStyle 0x7f01007f
+int attr buttonBarNegativeButtonStyle 0x7f0100ad
+int attr buttonBarNeutralButtonStyle 0x7f0100ae
+int attr buttonBarPositiveButtonStyle 0x7f0100ac
+int attr buttonBarStyle 0x7f01007e
+int attr buttonPanelSideLayout 0x7f01001f
+int attr buttonStyle 0x7f0100b0
+int attr buttonStyleSmall 0x7f0100b1
+int attr buttonTint 0x7f010026
+int attr buttonTintMode 0x7f010027
+int attr checkboxStyle 0x7f0100b2
+int attr checkedTextViewStyle 0x7f0100b3
+int attr closeIcon 0x7f01003e
+int attr closeItemLayout 0x7f01001c
+int attr collapseContentDescription 0x7f0100c3
+int attr collapseIcon 0x7f0100c2
+int attr color 0x7f010028
+int attr colorAccent 0x7f0100a0
+int attr colorButtonNormal 0x7f0100a4
+int attr colorControlActivated 0x7f0100a2
+int attr colorControlHighlight 0x7f0100a3
+int attr colorControlNormal 0x7f0100a1
+int attr colorPrimary 0x7f01009e
+int attr colorPrimaryDark 0x7f01009f
+int attr colorSwitchThumbNormal 0x7f0100a5
+int attr commitIcon 0x7f010043
+int attr contentInsetEnd 0x7f010017
+int attr contentInsetLeft 0x7f010018
+int attr contentInsetRight 0x7f010019
+int attr contentInsetStart 0x7f010016
+int attr controlBackground 0x7f0100a6
+int attr customNavigationLayout 0x7f01000f
+int attr defaultQueryHint 0x7f01003d
+int attr dialogPreferredPadding 0x7f010077
+int attr dialogTheme 0x7f010076
+int attr displayOptions 0x7f010005
+int attr divider 0x7f01000b
+int attr dividerHorizontal 0x7f010084
+int attr dividerPadding 0x7f010032
+int attr dividerVertical 0x7f010083
+int attr drawableSize 0x7f01002a
+int attr drawerArrowStyle 0x7f010000
+int attr dropDownListViewStyle 0x7f010096
+int attr dropdownListPreferredItemHeight 0x7f01007a
+int attr editTextBackground 0x7f01008b
+int attr editTextColor 0x7f01008a
+int attr editTextStyle 0x7f0100b4
+int attr elevation 0x7f01001a
+int attr expandActivityOverflowButtonDrawable 0x7f01001e
+int attr gapBetweenBars 0x7f01002b
+int attr goIcon 0x7f01003f
+int attr height 0x7f010001
+int attr hideOnContentScroll 0x7f010015
+int attr homeAsUpIndicator 0x7f01007c
+int attr homeLayout 0x7f010010
+int attr icon 0x7f010009
+int attr iconifiedByDefault 0x7f01003b
+int attr imageButtonStyle 0x7f01008c
+int attr indeterminateProgressStyle 0x7f010012
+int attr initialActivityCount 0x7f01001d
+int attr isLightTheme 0x7f010002
+int attr itemPadding 0x7f010014
+int attr layout 0x7f01003a
+int attr listChoiceBackgroundIndicator 0x7f01009d
+int attr listDividerAlertDialog 0x7f010078
+int attr listItemLayout 0x7f010023
+int attr listLayout 0x7f010020
+int attr listPopupWindowStyle 0x7f010097
+int attr listPreferredItemHeight 0x7f010091
+int attr listPreferredItemHeightLarge 0x7f010093
+int attr listPreferredItemHeightSmall 0x7f010092
+int attr listPreferredItemPaddingLeft 0x7f010094
+int attr listPreferredItemPaddingRight 0x7f010095
+int attr logo 0x7f01000a
+int attr logoDescription 0x7f0100c6
+int attr maxButtonHeight 0x7f0100c1
+int attr measureWithLargestChild 0x7f010030
+int attr multiChoiceItemLayout 0x7f010021
+int attr navigationContentDescription 0x7f0100c5
+int attr navigationIcon 0x7f0100c4
+int attr navigationMode 0x7f010004
+int attr overlapAnchor 0x7f010038
+int attr paddingEnd 0x7f0100ca
+int attr paddingStart 0x7f0100c9
+int attr panelBackground 0x7f01009a
+int attr panelMenuListTheme 0x7f01009c
+int attr panelMenuListWidth 0x7f01009b
+int attr popupMenuStyle 0x7f010088
+int attr popupTheme 0x7f01001b
+int attr popupWindowStyle 0x7f010089
+int attr preserveIconSpacing 0x7f010037
+int attr progressBarPadding 0x7f010013
+int attr progressBarStyle 0x7f010011
+int attr queryBackground 0x7f010045
+int attr queryHint 0x7f01003c
+int attr radioButtonStyle 0x7f0100b5
+int attr ratingBarStyle 0x7f0100b6
+int attr searchHintIcon 0x7f010041
+int attr searchIcon 0x7f010040
+int attr searchViewStyle 0x7f010090
+int attr seekBarStyle 0x7f0100b7
+int attr selectableItemBackground 0x7f010080
+int attr selectableItemBackgroundBorderless 0x7f010081
+int attr showAsAction 0x7f010033
+int attr showDividers 0x7f010031
+int attr showText 0x7f01004d
+int attr singleChoiceItemLayout 0x7f010022
+int attr spinBars 0x7f010029
+int attr spinnerDropDownItemStyle 0x7f01007b
+int attr spinnerStyle 0x7f0100b8
+int attr splitTrack 0x7f01004c
+int attr state_above_anchor 0x7f010039
+int attr submitBackground 0x7f010046
+int attr subtitle 0x7f010006
+int attr subtitleTextAppearance 0x7f0100bb
+int attr subtitleTextColor 0x7f0100c8
+int attr subtitleTextStyle 0x7f010008
+int attr suggestionRowLayout 0x7f010044
+int attr switchMinWidth 0x7f01004a
+int attr switchPadding 0x7f01004b
+int attr switchStyle 0x7f0100b9
+int attr switchTextAppearance 0x7f010049
+int attr textAllCaps 0x7f010024
+int attr textAppearanceLargePopupMenu 0x7f010074
+int attr textAppearanceListItem 0x7f010098
+int attr textAppearanceListItemSmall 0x7f010099
+int attr textAppearanceSearchResultSubtitle 0x7f01008e
+int attr textAppearanceSearchResultTitle 0x7f01008d
+int attr textAppearanceSmallPopupMenu 0x7f010075
+int attr textColorAlertDialogListItem 0x7f0100ab
+int attr textColorSearchUrl 0x7f01008f
+int attr theme 0x7f0100cb
+int attr thickness 0x7f01002f
+int attr thumbTextPadding 0x7f010048
+int attr title 0x7f010003
+int attr titleMarginBottom 0x7f0100c0
+int attr titleMarginEnd 0x7f0100be
+int attr titleMarginStart 0x7f0100bd
+int attr titleMarginTop 0x7f0100bf
+int attr titleMargins 0x7f0100bc
+int attr titleTextAppearance 0x7f0100ba
+int attr titleTextColor 0x7f0100c7
+int attr titleTextStyle 0x7f010007
+int attr toolbarNavigationButtonStyle 0x7f010087
+int attr toolbarStyle 0x7f010086
+int attr track 0x7f010047
+int attr voiceIcon 0x7f010042
+int attr windowActionBar 0x7f01004e
+int attr windowActionBarOverlay 0x7f010050
+int attr windowActionModeOverlay 0x7f010051
+int attr windowFixedHeightMajor 0x7f010055
+int attr windowFixedHeightMinor 0x7f010053
+int attr windowFixedWidthMajor 0x7f010052
+int attr windowFixedWidthMinor 0x7f010054
+int attr windowMinWidthMajor 0x7f010056
+int attr windowMinWidthMinor 0x7f010057
+int attr windowNoTitle 0x7f01004f
+int bool abc_action_bar_embed_tabs 0x7f060003
+int bool abc_action_bar_embed_tabs_pre_jb 0x7f060001
+int bool abc_action_bar_expanded_action_views_exclusive 0x7f060004
+int bool abc_allow_stacked_button_bar 0x7f060000
+int bool abc_config_actionMenuItemAllCaps 0x7f060005
+int bool abc_config_allowActionMenuItemTextWithIcon 0x7f060002
+int bool abc_config_closeDialogWhenTouchOutside 0x7f060006
+int bool abc_config_showMenuShortcutsWhenKeyboardPresent 0x7f060007
+int color abc_background_cache_hint_selector_material_dark 0x7f0a003a
+int color abc_background_cache_hint_selector_material_light 0x7f0a003b
+int color abc_color_highlight_material 0x7f0a003c
+int color abc_input_method_navigation_guard 0x7f0a0000
+int color abc_primary_text_disable_only_material_dark 0x7f0a003d
+int color abc_primary_text_disable_only_material_light 0x7f0a003e
+int color abc_primary_text_material_dark 0x7f0a003f
+int color abc_primary_text_material_light 0x7f0a0040
+int color abc_search_url_text 0x7f0a0041
+int color abc_search_url_text_normal 0x7f0a0001
+int color abc_search_url_text_pressed 0x7f0a0002
+int color abc_search_url_text_selected 0x7f0a0003
+int color abc_secondary_text_material_dark 0x7f0a0042
+int color abc_secondary_text_material_light 0x7f0a0043
+int color accent_material_dark 0x7f0a0004
+int color accent_material_light 0x7f0a0005
+int color background_floating_material_dark 0x7f0a0006
+int color background_floating_material_light 0x7f0a0007
+int color background_material_dark 0x7f0a0008
+int color background_material_light 0x7f0a0009
+int color bright_foreground_disabled_material_dark 0x7f0a000a
+int color bright_foreground_disabled_material_light 0x7f0a000b
+int color bright_foreground_inverse_material_dark 0x7f0a000c
+int color bright_foreground_inverse_material_light 0x7f0a000d
+int color bright_foreground_material_dark 0x7f0a000e
+int color bright_foreground_material_light 0x7f0a000f
+int color button_material_dark 0x7f0a0010
+int color button_material_light 0x7f0a0011
+int color dim_foreground_disabled_material_dark 0x7f0a0012
+int color dim_foreground_disabled_material_light 0x7f0a0013
+int color dim_foreground_material_dark 0x7f0a0014
+int color dim_foreground_material_light 0x7f0a0015
+int color foreground_material_dark 0x7f0a0016
+int color foreground_material_light 0x7f0a0017
+int color highlighted_text_material_dark 0x7f0a0018
+int color highlighted_text_material_light 0x7f0a0019
+int color hint_foreground_material_dark 0x7f0a001a
+int color hint_foreground_material_light 0x7f0a001b
+int color material_blue_grey_800 0x7f0a001c
+int color material_blue_grey_900 0x7f0a001d
+int color material_blue_grey_950 0x7f0a001e
+int color material_deep_teal_200 0x7f0a001f
+int color material_deep_teal_500 0x7f0a0020
+int color material_grey_100 0x7f0a0021
+int color material_grey_300 0x7f0a0022
+int color material_grey_50 0x7f0a0023
+int color material_grey_600 0x7f0a0024
+int color material_grey_800 0x7f0a0025
+int color material_grey_850 0x7f0a0026
+int color material_grey_900 0x7f0a0027
+int color primary_dark_material_dark 0x7f0a0028
+int color primary_dark_material_light 0x7f0a0029
+int color primary_material_dark 0x7f0a002a
+int color primary_material_light 0x7f0a002b
+int color primary_text_default_material_dark 0x7f0a002c
+int color primary_text_default_material_light 0x7f0a002d
+int color primary_text_disabled_material_dark 0x7f0a002e
+int color primary_text_disabled_material_light 0x7f0a002f
+int color ripple_material_dark 0x7f0a0030
+int color ripple_material_light 0x7f0a0031
+int color secondary_text_default_material_dark 0x7f0a0032
+int color secondary_text_default_material_light 0x7f0a0033
+int color secondary_text_disabled_material_dark 0x7f0a0034
+int color secondary_text_disabled_material_light 0x7f0a0035
+int color switch_thumb_disabled_material_dark 0x7f0a0036
+int color switch_thumb_disabled_material_light 0x7f0a0037
+int color switch_thumb_material_dark 0x7f0a0044
+int color switch_thumb_material_light 0x7f0a0045
+int color switch_thumb_normal_material_dark 0x7f0a0038
+int color switch_thumb_normal_material_light 0x7f0a0039
+int dimen abc_action_bar_content_inset_material 0x7f07000d
+int dimen abc_action_bar_default_height_material 0x7f070001
+int dimen abc_action_bar_default_padding_end_material 0x7f07000e
+int dimen abc_action_bar_default_padding_start_material 0x7f07000f
+int dimen abc_action_bar_icon_vertical_padding_material 0x7f070011
+int dimen abc_action_bar_overflow_padding_end_material 0x7f070012
+int dimen abc_action_bar_overflow_padding_start_material 0x7f070013
+int dimen abc_action_bar_progress_bar_size 0x7f070002
+int dimen abc_action_bar_stacked_max_height 0x7f070014
+int dimen abc_action_bar_stacked_tab_max_width 0x7f070015
+int dimen abc_action_bar_subtitle_bottom_margin_material 0x7f070016
+int dimen abc_action_bar_subtitle_top_margin_material 0x7f070017
+int dimen abc_action_button_min_height_material 0x7f070018
+int dimen abc_action_button_min_width_material 0x7f070019
+int dimen abc_action_button_min_width_overflow_material 0x7f07001a
+int dimen abc_alert_dialog_button_bar_height 0x7f070000
+int dimen abc_button_inset_horizontal_material 0x7f07001b
+int dimen abc_button_inset_vertical_material 0x7f07001c
+int dimen abc_button_padding_horizontal_material 0x7f07001d
+int dimen abc_button_padding_vertical_material 0x7f07001e
+int dimen abc_config_prefDialogWidth 0x7f070005
+int dimen abc_control_corner_material 0x7f07001f
+int dimen abc_control_inset_material 0x7f070020
+int dimen abc_control_padding_material 0x7f070021
+int dimen abc_dialog_fixed_height_major 0x7f070006
+int dimen abc_dialog_fixed_height_minor 0x7f070007
+int dimen abc_dialog_fixed_width_major 0x7f070008
+int dimen abc_dialog_fixed_width_minor 0x7f070009
+int dimen abc_dialog_list_padding_vertical_material 0x7f070022
+int dimen abc_dialog_min_width_major 0x7f07000a
+int dimen abc_dialog_min_width_minor 0x7f07000b
+int dimen abc_dialog_padding_material 0x7f070023
+int dimen abc_dialog_padding_top_material 0x7f070024
+int dimen abc_disabled_alpha_material_dark 0x7f070025
+int dimen abc_disabled_alpha_material_light 0x7f070026
+int dimen abc_dropdownitem_icon_width 0x7f070027
+int dimen abc_dropdownitem_text_padding_left 0x7f070028
+int dimen abc_dropdownitem_text_padding_right 0x7f070029
+int dimen abc_edit_text_inset_bottom_material 0x7f07002a
+int dimen abc_edit_text_inset_horizontal_material 0x7f07002b
+int dimen abc_edit_text_inset_top_material 0x7f07002c
+int dimen abc_floating_window_z 0x7f07002d
+int dimen abc_list_item_padding_horizontal_material 0x7f07002e
+int dimen abc_panel_menu_list_width 0x7f07002f
+int dimen abc_search_view_preferred_width 0x7f070030
+int dimen abc_search_view_text_min_width 0x7f07000c
+int dimen abc_seekbar_track_background_height_material 0x7f070031
+int dimen abc_seekbar_track_progress_height_material 0x7f070032
+int dimen abc_select_dialog_padding_start_material 0x7f070033
+int dimen abc_switch_padding 0x7f070010
+int dimen abc_text_size_body_1_material 0x7f070034
+int dimen abc_text_size_body_2_material 0x7f070035
+int dimen abc_text_size_button_material 0x7f070036
+int dimen abc_text_size_caption_material 0x7f070037
+int dimen abc_text_size_display_1_material 0x7f070038
+int dimen abc_text_size_display_2_material 0x7f070039
+int dimen abc_text_size_display_3_material 0x7f07003a
+int dimen abc_text_size_display_4_material 0x7f07003b
+int dimen abc_text_size_headline_material 0x7f07003c
+int dimen abc_text_size_large_material 0x7f07003d
+int dimen abc_text_size_medium_material 0x7f07003e
+int dimen abc_text_size_menu_material 0x7f07003f
+int dimen abc_text_size_small_material 0x7f070040
+int dimen abc_text_size_subhead_material 0x7f070041
+int dimen abc_text_size_subtitle_material_toolbar 0x7f070003
+int dimen abc_text_size_title_material 0x7f070042
+int dimen abc_text_size_title_material_toolbar 0x7f070004
+int dimen disabled_alpha_material_dark 0x7f070043
+int dimen disabled_alpha_material_light 0x7f070044
+int dimen highlight_alpha_material_colored 0x7f070045
+int dimen highlight_alpha_material_dark 0x7f070046
+int dimen highlight_alpha_material_light 0x7f070047
+int dimen notification_large_icon_height 0x7f070048
+int dimen notification_large_icon_width 0x7f070049
+int dimen notification_subtext_size 0x7f07004a
+int drawable abc_ab_share_pack_mtrl_alpha 0x7f020000
+int drawable abc_action_bar_item_background_material 0x7f020001
+int drawable abc_btn_borderless_material 0x7f020002
+int drawable abc_btn_check_material 0x7f020003
+int drawable abc_btn_check_to_on_mtrl_000 0x7f020004
+int drawable abc_btn_check_to_on_mtrl_015 0x7f020005
+int drawable abc_btn_colored_material 0x7f020006
+int drawable abc_btn_default_mtrl_shape 0x7f020007
+int drawable abc_btn_radio_material 0x7f020008
+int drawable abc_btn_radio_to_on_mtrl_000 0x7f020009
+int drawable abc_btn_radio_to_on_mtrl_015 0x7f02000a
+int drawable abc_btn_rating_star_off_mtrl_alpha 0x7f02000b
+int drawable abc_btn_rating_star_on_mtrl_alpha 0x7f02000c
+int drawable abc_btn_switch_to_on_mtrl_00001 0x7f02000d
+int drawable abc_btn_switch_to_on_mtrl_00012 0x7f02000e
+int drawable abc_cab_background_internal_bg 0x7f02000f
+int drawable abc_cab_background_top_material 0x7f020010
+int drawable abc_cab_background_top_mtrl_alpha 0x7f020011
+int drawable abc_control_background_material 0x7f020012
+int drawable abc_dialog_material_background_dark 0x7f020013
+int drawable abc_dialog_material_background_light 0x7f020014
+int drawable abc_edit_text_material 0x7f020015
+int drawable abc_ic_ab_back_mtrl_am_alpha 0x7f020016
+int drawable abc_ic_clear_mtrl_alpha 0x7f020017
+int drawable abc_ic_commit_search_api_mtrl_alpha 0x7f020018
+int drawable abc_ic_go_search_api_mtrl_alpha 0x7f020019
+int drawable abc_ic_menu_copy_mtrl_am_alpha 0x7f02001a
+int drawable abc_ic_menu_cut_mtrl_alpha 0x7f02001b
+int drawable abc_ic_menu_moreoverflow_mtrl_alpha 0x7f02001c
+int drawable abc_ic_menu_paste_mtrl_am_alpha 0x7f02001d
+int drawable abc_ic_menu_selectall_mtrl_alpha 0x7f02001e
+int drawable abc_ic_menu_share_mtrl_alpha 0x7f02001f
+int drawable abc_ic_search_api_mtrl_alpha 0x7f020020
+int drawable abc_ic_voice_search_api_mtrl_alpha 0x7f020021
+int drawable abc_item_background_holo_dark 0x7f020022
+int drawable abc_item_background_holo_light 0x7f020023
+int drawable abc_list_divider_mtrl_alpha 0x7f020024
+int drawable abc_list_focused_holo 0x7f020025
+int drawable abc_list_longpressed_holo 0x7f020026
+int drawable abc_list_pressed_holo_dark 0x7f020027
+int drawable abc_list_pressed_holo_light 0x7f020028
+int drawable abc_list_selector_background_transition_holo_dark 0x7f020029
+int drawable abc_list_selector_background_transition_holo_light 0x7f02002a
+int drawable abc_list_selector_disabled_holo_dark 0x7f02002b
+int drawable abc_list_selector_disabled_holo_light 0x7f02002c
+int drawable abc_list_selector_holo_dark 0x7f02002d
+int drawable abc_list_selector_holo_light 0x7f02002e
+int drawable abc_menu_hardkey_panel_mtrl_mult 0x7f02002f
+int drawable abc_popup_background_mtrl_mult 0x7f020030
+int drawable abc_ratingbar_full_material 0x7f020031
+int drawable abc_scrubber_control_off_mtrl_alpha 0x7f020032
+int drawable abc_scrubber_control_to_pressed_mtrl_000 0x7f020033
+int drawable abc_scrubber_control_to_pressed_mtrl_005 0x7f020034
+int drawable abc_scrubber_primary_mtrl_alpha 0x7f020035
+int drawable abc_scrubber_track_mtrl_alpha 0x7f020036
+int drawable abc_seekbar_thumb_material 0x7f020037
+int drawable abc_seekbar_track_material 0x7f020038
+int drawable abc_spinner_mtrl_am_alpha 0x7f020039
+int drawable abc_spinner_textfield_background_material 0x7f02003a
+int drawable abc_switch_thumb_material 0x7f02003b
+int drawable abc_switch_track_mtrl_alpha 0x7f02003c
+int drawable abc_tab_indicator_material 0x7f02003d
+int drawable abc_tab_indicator_mtrl_alpha 0x7f02003e
+int drawable abc_text_cursor_material 0x7f02003f
+int drawable abc_textfield_activated_mtrl_alpha 0x7f020040
+int drawable abc_textfield_default_mtrl_alpha 0x7f020041
+int drawable abc_textfield_search_activated_mtrl_alpha 0x7f020042
+int drawable abc_textfield_search_default_mtrl_alpha 0x7f020043
+int drawable abc_textfield_search_material 0x7f020044
+int drawable notification_template_icon_bg 0x7f020045
+int id action0 0x7f0b0050
+int id action_bar 0x7f0b0041
+int id action_bar_activity_content 0x7f0b0000
+int id action_bar_container 0x7f0b0040
+int id action_bar_root 0x7f0b003c
+int id action_bar_spinner 0x7f0b0001
+int id action_bar_subtitle 0x7f0b0022
+int id action_bar_title 0x7f0b0021
+int id action_context_bar 0x7f0b0042
+int id action_divider 0x7f0b0054
+int id action_menu_divider 0x7f0b0002
+int id action_menu_presenter 0x7f0b0003
+int id action_mode_bar 0x7f0b003e
+int id action_mode_bar_stub 0x7f0b003d
+int id action_mode_close_button 0x7f0b0023
+int id activity_chooser_view_content 0x7f0b0024
+int id alertTitle 0x7f0b0030
+int id always 0x7f0b001b
+int id beginning 0x7f0b0018
+int id buttonPanel 0x7f0b002b
+int id cancel_action 0x7f0b0051
+int id checkbox 0x7f0b0039
+int id chronometer 0x7f0b0057
+int id collapseActionView 0x7f0b001c
+int id contentPanel 0x7f0b0031
+int id custom 0x7f0b0037
+int id customPanel 0x7f0b0036
+int id decor_content_parent 0x7f0b003f
+int id default_activity_button 0x7f0b0027
+int id disableHome 0x7f0b000c
+int id edit_query 0x7f0b0043
+int id end 0x7f0b0019
+int id end_padder 0x7f0b005c
+int id expand_activities_button 0x7f0b0025
+int id expanded_menu 0x7f0b0038
+int id home 0x7f0b0004
+int id homeAsUp 0x7f0b000d
+int id icon 0x7f0b0029
+int id ifRoom 0x7f0b001d
+int id image 0x7f0b0026
+int id info 0x7f0b005b
+int id line1 0x7f0b0055
+int id line3 0x7f0b0059
+int id listMode 0x7f0b0009
+int id list_item 0x7f0b0028
+int id media_actions 0x7f0b0053
+int id middle 0x7f0b001a
+int id multiply 0x7f0b0013
+int id never 0x7f0b001e
+int id none 0x7f0b000e
+int id normal 0x7f0b000a
+int id parentPanel 0x7f0b002d
+int id progress_circular 0x7f0b0005
+int id progress_horizontal 0x7f0b0006
+int id radio 0x7f0b003b
+int id screen 0x7f0b0014
+int id scrollIndicatorDown 0x7f0b0035
+int id scrollIndicatorUp 0x7f0b0032
+int id scrollView 0x7f0b0033
+int id search_badge 0x7f0b0045
+int id search_bar 0x7f0b0044
+int id search_button 0x7f0b0046
+int id search_close_btn 0x7f0b004b
+int id search_edit_frame 0x7f0b0047
+int id search_go_btn 0x7f0b004d
+int id search_mag_icon 0x7f0b0048
+int id search_plate 0x7f0b0049
+int id search_src_text 0x7f0b004a
+int id search_voice_btn 0x7f0b004e
+int id select_dialog_listview 0x7f0b004f
+int id shortcut 0x7f0b003a
+int id showCustom 0x7f0b000f
+int id showHome 0x7f0b0010
+int id showTitle 0x7f0b0011
+int id spacer 0x7f0b002c
+int id split_action_bar 0x7f0b0007
+int id src_atop 0x7f0b0015
+int id src_in 0x7f0b0016
+int id src_over 0x7f0b0017
+int id status_bar_latest_event_content 0x7f0b0052
+int id submit_area 0x7f0b004c
+int id tabMode 0x7f0b000b
+int id text 0x7f0b005a
+int id text2 0x7f0b0058
+int id textSpacerNoButtons 0x7f0b0034
+int id time 0x7f0b0056
+int id title 0x7f0b002a
+int id title_template 0x7f0b002f
+int id topPanel 0x7f0b002e
+int id up 0x7f0b0008
+int id useLogo 0x7f0b0012
+int id withText 0x7f0b001f
+int id wrap_content 0x7f0b0020
+int integer abc_config_activityDefaultDur 0x7f090001
+int integer abc_config_activityShortDur 0x7f090002
 int integer abc_max_action_buttons 0x7f090000
-int layout abc_action_bar_decor 0x7f030000
-int layout abc_action_bar_decor_include 0x7f030001
-int layout abc_action_bar_decor_overlay 0x7f030002
-int layout abc_action_bar_home 0x7f030003
-int layout abc_action_bar_tab 0x7f030004
-int layout abc_action_bar_tabbar 0x7f030005
-int layout abc_action_bar_title_item 0x7f030006
-int layout abc_action_bar_view_list_nav_layout 0x7f030007
-int layout abc_action_menu_item_layout 0x7f030008
-int layout abc_action_menu_layout 0x7f030009
-int layout abc_action_mode_bar 0x7f03000a
-int layout abc_action_mode_close_item 0x7f03000b
-int layout abc_activity_chooser_view 0x7f03000c
-int layout abc_activity_chooser_view_include 0x7f03000d
-int layout abc_activity_chooser_view_list_item 0x7f03000e
-int layout abc_expanded_menu_layout 0x7f03000f
-int layout abc_list_menu_item_checkbox 0x7f030010
-int layout abc_list_menu_item_icon 0x7f030011
-int layout abc_list_menu_item_layout 0x7f030012
-int layout abc_list_menu_item_radio 0x7f030013
-int layout abc_popup_menu_item_layout 0x7f030014
-int layout abc_search_dropdown_item_icons_2line 0x7f030015
-int layout abc_search_view 0x7f030016
-int layout abc_simple_decor 0x7f030017
-int layout support_simple_spinner_dropdown_item 0x7f030018
-int string abc_action_bar_home_description 0x7f0a0000
-int string abc_action_bar_up_description 0x7f0a0001
-int string abc_action_menu_overflow_description 0x7f0a0002
-int string abc_action_mode_done 0x7f0a0003
-int string abc_activity_chooser_view_see_all 0x7f0a0004
-int string abc_activitychooserview_choose_application 0x7f0a0005
-int string abc_searchview_description_clear 0x7f0a0006
-int string abc_searchview_description_query 0x7f0a0007
-int string abc_searchview_description_search 0x7f0a0008
-int string abc_searchview_description_submit 0x7f0a0009
-int string abc_searchview_description_voice 0x7f0a000a
-int string abc_shareactionprovider_share_with 0x7f0a000b
-int string abc_shareactionprovider_share_with_application 0x7f0a000c
-int style TextAppearance_AppCompat_Base_CompactMenu_Dialog 0x7f0b0000
-int style TextAppearance_AppCompat_Base_SearchResult 0x7f0b0001
-int style TextAppearance_AppCompat_Base_SearchResult_Subtitle 0x7f0b0002
-int style TextAppearance_AppCompat_Base_SearchResult_Title 0x7f0b0003
-int style TextAppearance_AppCompat_Base_Widget_PopupMenu_Large 0x7f0b0004
-int style TextAppearance_AppCompat_Base_Widget_PopupMenu_Small 0x7f0b0005
-int style TextAppearance_AppCompat_Light_Base_SearchResult 0x7f0b0006
-int style TextAppearance_AppCompat_Light_Base_SearchResult_Subtitle 0x7f0b0007
-int style TextAppearance_AppCompat_Light_Base_SearchResult_Title 0x7f0b0008
-int style TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Large 0x7f0b0009
-int style TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Small 0x7f0b000a
-int style TextAppearance_AppCompat_Light_SearchResult_Subtitle 0x7f0b000b
-int style TextAppearance_AppCompat_Light_SearchResult_Title 0x7f0b000c
-int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x7f0b000d
-int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x7f0b000e
-int style TextAppearance_AppCompat_SearchResult_Subtitle 0x7f0b000f
-int style TextAppearance_AppCompat_SearchResult_Title 0x7f0b0010
-int style TextAppearance_AppCompat_Widget_ActionBar_Menu 0x7f0b0011
-int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x7f0b0012
-int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x7f0b0013
-int style TextAppearance_AppCompat_Widget_ActionBar_Title 0x7f0b0014
-int style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x7f0b0015
-int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x7f0b0016
-int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse 0x7f0b0017
-int style TextAppearance_AppCompat_Widget_ActionMode_Title 0x7f0b0018
-int style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse 0x7f0b0019
-int style TextAppearance_AppCompat_Widget_Base_ActionBar_Menu 0x7f0b001a
-int style TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle 0x7f0b001b
-int style TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle_Inverse 0x7f0b001c
-int style TextAppearance_AppCompat_Widget_Base_ActionBar_Title 0x7f0b001d
-int style TextAppearance_AppCompat_Widget_Base_ActionBar_Title_Inverse 0x7f0b001e
-int style TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle 0x7f0b001f
-int style TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle_Inverse 0x7f0b0020
-int style TextAppearance_AppCompat_Widget_Base_ActionMode_Title 0x7f0b0021
-int style TextAppearance_AppCompat_Widget_Base_ActionMode_Title_Inverse 0x7f0b0022
-int style TextAppearance_AppCompat_Widget_Base_DropDownItem 0x7f0b0023
-int style TextAppearance_AppCompat_Widget_DropDownItem 0x7f0b0024
-int style TextAppearance_AppCompat_Widget_PopupMenu_Large 0x7f0b0025
-int style TextAppearance_AppCompat_Widget_PopupMenu_Small 0x7f0b0026
-int style TextAppearance_Widget_AppCompat_Base_ExpandedMenu_Item 0x7f0b0027
-int style TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x7f0b0028
-int style Theme_AppCompat 0x7f0b0029
-int style Theme_AppCompat_Base_CompactMenu 0x7f0b002a
-int style Theme_AppCompat_Base_CompactMenu_Dialog 0x7f0b002b
-int style Theme_AppCompat_CompactMenu 0x7f0b002c
-int style Theme_AppCompat_CompactMenu_Dialog 0x7f0b002d
-int style Theme_AppCompat_DialogWhenLarge 0x7f0b002e
-int style Theme_AppCompat_Light 0x7f0b002f
-int style Theme_AppCompat_Light_DarkActionBar 0x7f0b0030
-int style Theme_AppCompat_Light_DialogWhenLarge 0x7f0b0031
-int style Theme_Base 0x7f0b0032
-int style Theme_Base_AppCompat 0x7f0b0033
-int style Theme_Base_AppCompat_Dialog_FixedSize 0x7f0b0034
-int style Theme_Base_AppCompat_Dialog_Light_FixedSize 0x7f0b0035
-int style Theme_Base_AppCompat_DialogWhenLarge 0x7f0b0036
-int style Theme_Base_AppCompat_DialogWhenLarge_Base 0x7f0b0089
-int style Theme_Base_AppCompat_Light 0x7f0b0037
-int style Theme_Base_AppCompat_Light_DarkActionBar 0x7f0b0038
-int style Theme_Base_AppCompat_Light_DialogWhenLarge 0x7f0b0039
-int style Theme_Base_AppCompat_Light_DialogWhenLarge_Base 0x7f0b008a
-int style Theme_Base_Light 0x7f0b003a
-int style Widget_AppCompat_ActionBar 0x7f0b003b
-int style Widget_AppCompat_ActionBar_Solid 0x7f0b003c
-int style Widget_AppCompat_ActionBar_TabBar 0x7f0b003d
-int style Widget_AppCompat_ActionBar_TabText 0x7f0b003e
-int style Widget_AppCompat_ActionBar_TabView 0x7f0b003f
-int style Widget_AppCompat_ActionButton 0x7f0b0040
-int style Widget_AppCompat_ActionButton_CloseMode 0x7f0b0041
-int style Widget_AppCompat_ActionButton_Overflow 0x7f0b0042
-int style Widget_AppCompat_ActionMode 0x7f0b0043
-int style Widget_AppCompat_ActivityChooserView 0x7f0b0044
-int style Widget_AppCompat_AutoCompleteTextView 0x7f0b0045
-int style Widget_AppCompat_Base_ActionBar 0x7f0b0046
-int style Widget_AppCompat_Base_ActionBar_Solid 0x7f0b0047
-int style Widget_AppCompat_Base_ActionBar_TabBar 0x7f0b0048
-int style Widget_AppCompat_Base_ActionBar_TabText 0x7f0b0049
-int style Widget_AppCompat_Base_ActionBar_TabView 0x7f0b004a
-int style Widget_AppCompat_Base_ActionButton 0x7f0b004b
-int style Widget_AppCompat_Base_ActionButton_CloseMode 0x7f0b004c
-int style Widget_AppCompat_Base_ActionButton_Overflow 0x7f0b004d
-int style Widget_AppCompat_Base_ActionMode 0x7f0b004e
-int style Widget_AppCompat_Base_ActivityChooserView 0x7f0b004f
-int style Widget_AppCompat_Base_AutoCompleteTextView 0x7f0b0050
-int style Widget_AppCompat_Base_DropDownItem_Spinner 0x7f0b0051
-int style Widget_AppCompat_Base_ListPopupWindow 0x7f0b0052
-int style Widget_AppCompat_Base_ListView_DropDown 0x7f0b0053
-int style Widget_AppCompat_Base_ListView_Menu 0x7f0b0054
-int style Widget_AppCompat_Base_PopupMenu 0x7f0b0055
-int style Widget_AppCompat_Base_ProgressBar 0x7f0b0056
-int style Widget_AppCompat_Base_ProgressBar_Horizontal 0x7f0b0057
-int style Widget_AppCompat_Base_Spinner 0x7f0b0058
-int style Widget_AppCompat_DropDownItem_Spinner 0x7f0b0059
-int style Widget_AppCompat_Light_ActionBar 0x7f0b005a
-int style Widget_AppCompat_Light_ActionBar_Solid 0x7f0b005b
-int style Widget_AppCompat_Light_ActionBar_Solid_Inverse 0x7f0b005c
-int style Widget_AppCompat_Light_ActionBar_TabBar 0x7f0b005d
-int style Widget_AppCompat_Light_ActionBar_TabBar_Inverse 0x7f0b005e
-int style Widget_AppCompat_Light_ActionBar_TabText 0x7f0b005f
-int style Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x7f0b0060
-int style Widget_AppCompat_Light_ActionBar_TabView 0x7f0b0061
-int style Widget_AppCompat_Light_ActionBar_TabView_Inverse 0x7f0b0062
-int style Widget_AppCompat_Light_ActionButton 0x7f0b0063
-int style Widget_AppCompat_Light_ActionButton_CloseMode 0x7f0b0064
-int style Widget_AppCompat_Light_ActionButton_Overflow 0x7f0b0065
-int style Widget_AppCompat_Light_ActionMode_Inverse 0x7f0b0066
-int style Widget_AppCompat_Light_ActivityChooserView 0x7f0b0067
-int style Widget_AppCompat_Light_AutoCompleteTextView 0x7f0b0068
-int style Widget_AppCompat_Light_Base_ActionBar 0x7f0b0069
-int style Widget_AppCompat_Light_Base_ActionBar_Solid 0x7f0b006a
-int style Widget_AppCompat_Light_Base_ActionBar_Solid_Inverse 0x7f0b006b
-int style Widget_AppCompat_Light_Base_ActionBar_TabBar 0x7f0b006c
-int style Widget_AppCompat_Light_Base_ActionBar_TabBar_Inverse 0x7f0b006d
-int style Widget_AppCompat_Light_Base_ActionBar_TabText 0x7f0b006e
-int style Widget_AppCompat_Light_Base_ActionBar_TabText_Inverse 0x7f0b006f
-int style Widget_AppCompat_Light_Base_ActionBar_TabView 0x7f0b0070
-int style Widget_AppCompat_Light_Base_ActionBar_TabView_Inverse 0x7f0b0071
-int style Widget_AppCompat_Light_Base_ActionButton 0x7f0b0072
-int style Widget_AppCompat_Light_Base_ActionButton_CloseMode 0x7f0b0073
-int style Widget_AppCompat_Light_Base_ActionButton_Overflow 0x7f0b0074
-int style Widget_AppCompat_Light_Base_ActionMode_Inverse 0x7f0b0075
-int style Widget_AppCompat_Light_Base_ActivityChooserView 0x7f0b0076
-int style Widget_AppCompat_Light_Base_AutoCompleteTextView 0x7f0b0077
-int style Widget_AppCompat_Light_Base_DropDownItem_Spinner 0x7f0b0078
-int style Widget_AppCompat_Light_Base_ListPopupWindow 0x7f0b0079
-int style Widget_AppCompat_Light_Base_ListView_DropDown 0x7f0b007a
-int style Widget_AppCompat_Light_Base_PopupMenu 0x7f0b007b
-int style Widget_AppCompat_Light_Base_Spinner 0x7f0b007c
-int style Widget_AppCompat_Light_DropDownItem_Spinner 0x7f0b007d
-int style Widget_AppCompat_Light_ListPopupWindow 0x7f0b007e
-int style Widget_AppCompat_Light_ListView_DropDown 0x7f0b007f
-int style Widget_AppCompat_Light_PopupMenu 0x7f0b0080
-int style Widget_AppCompat_Light_Spinner_DropDown_ActionBar 0x7f0b0081
-int style Widget_AppCompat_ListPopupWindow 0x7f0b0082
-int style Widget_AppCompat_ListView_DropDown 0x7f0b0083
-int style Widget_AppCompat_ListView_Menu 0x7f0b0084
-int style Widget_AppCompat_PopupMenu 0x7f0b0085
-int style Widget_AppCompat_ProgressBar 0x7f0b0086
-int style Widget_AppCompat_ProgressBar_Horizontal 0x7f0b0087
-int style Widget_AppCompat_Spinner_DropDown_ActionBar 0x7f0b0088
-int[] styleable ActionBar { 0x7f010020, 0x7f01003e, 0x7f01003f, 0x7f010040, 0x7f010041, 0x7f010042, 0x7f010043, 0x7f010044, 0x7f010045, 0x7f010046, 0x7f010047, 0x7f010048, 0x7f010049, 0x7f01004a, 0x7f01004b, 0x7f01004c, 0x7f01004d, 0x7f01004e, 0x7f01004f }
+int integer cancel_button_image_alpha 0x7f090003
+int integer status_bar_notification_info_maxnum 0x7f090004
+int layout abc_action_bar_title_item 0x7f030000
+int layout abc_action_bar_up_container 0x7f030001
+int layout abc_action_bar_view_list_nav_layout 0x7f030002
+int layout abc_action_menu_item_layout 0x7f030003
+int layout abc_action_menu_layout 0x7f030004
+int layout abc_action_mode_bar 0x7f030005
+int layout abc_action_mode_close_item_material 0x7f030006
+int layout abc_activity_chooser_view 0x7f030007
+int layout abc_activity_chooser_view_list_item 0x7f030008
+int layout abc_alert_dialog_button_bar_material 0x7f030009
+int layout abc_alert_dialog_material 0x7f03000a
+int layout abc_dialog_title_material 0x7f03000b
+int layout abc_expanded_menu_layout 0x7f03000c
+int layout abc_list_menu_item_checkbox 0x7f03000d
+int layout abc_list_menu_item_icon 0x7f03000e
+int layout abc_list_menu_item_layout 0x7f03000f
+int layout abc_list_menu_item_radio 0x7f030010
+int layout abc_popup_menu_item_layout 0x7f030011
+int layout abc_screen_content_include 0x7f030012
+int layout abc_screen_simple 0x7f030013
+int layout abc_screen_simple_overlay_action_mode 0x7f030014
+int layout abc_screen_toolbar 0x7f030015
+int layout abc_search_dropdown_item_icons_2line 0x7f030016
+int layout abc_search_view 0x7f030017
+int layout abc_select_dialog_material 0x7f030018
+int layout notification_media_action 0x7f030019
+int layout notification_media_cancel_action 0x7f03001a
+int layout notification_template_big_media 0x7f03001b
+int layout notification_template_big_media_narrow 0x7f03001c
+int layout notification_template_lines 0x7f03001d
+int layout notification_template_media 0x7f03001e
+int layout notification_template_part_chronometer 0x7f03001f
+int layout notification_template_part_time 0x7f030020
+int layout select_dialog_item_material 0x7f030021
+int layout select_dialog_multichoice_material 0x7f030022
+int layout select_dialog_singlechoice_material 0x7f030023
+int layout support_simple_spinner_dropdown_item 0x7f030024
+int string abc_action_bar_home_description 0x7f050000
+int string abc_action_bar_home_description_format 0x7f050001
+int string abc_action_bar_home_subtitle_description_format 0x7f050002
+int string abc_action_bar_up_description 0x7f050003
+int string abc_action_menu_overflow_description 0x7f050004
+int string abc_action_mode_done 0x7f050005
+int string abc_activity_chooser_view_see_all 0x7f050006
+int string abc_activitychooserview_choose_application 0x7f050007
+int string abc_capital_off 0x7f050008
+int string abc_capital_on 0x7f050009
+int string abc_search_hint 0x7f05000a
+int string abc_searchview_description_clear 0x7f05000b
+int string abc_searchview_description_query 0x7f05000c
+int string abc_searchview_description_search 0x7f05000d
+int string abc_searchview_description_submit 0x7f05000e
+int string abc_searchview_description_voice 0x7f05000f
+int string abc_shareactionprovider_share_with 0x7f050010
+int string abc_shareactionprovider_share_with_application 0x7f050011
+int string abc_toolbar_collapse_description 0x7f050012
+int string status_bar_notification_info_overflow 0x7f050013
+int style AlertDialog_AppCompat 0x7f08007d
+int style AlertDialog_AppCompat_Light 0x7f08007e
+int style Animation_AppCompat_Dialog 0x7f08007f
+int style Animation_AppCompat_DropDownUp 0x7f080080
+int style Base_AlertDialog_AppCompat 0x7f080081
+int style Base_AlertDialog_AppCompat_Light 0x7f080082
+int style Base_Animation_AppCompat_Dialog 0x7f080083
+int style Base_Animation_AppCompat_DropDownUp 0x7f080084
+int style Base_DialogWindowTitle_AppCompat 0x7f080085
+int style Base_DialogWindowTitleBackground_AppCompat 0x7f080086
+int style Base_TextAppearance_AppCompat 0x7f08002f
+int style Base_TextAppearance_AppCompat_Body1 0x7f080030
+int style Base_TextAppearance_AppCompat_Body2 0x7f080031
+int style Base_TextAppearance_AppCompat_Button 0x7f080019
+int style Base_TextAppearance_AppCompat_Caption 0x7f080032
+int style Base_TextAppearance_AppCompat_Display1 0x7f080033
+int style Base_TextAppearance_AppCompat_Display2 0x7f080034
+int style Base_TextAppearance_AppCompat_Display3 0x7f080035
+int style Base_TextAppearance_AppCompat_Display4 0x7f080036
+int style Base_TextAppearance_AppCompat_Headline 0x7f080037
+int style Base_TextAppearance_AppCompat_Inverse 0x7f080004
+int style Base_TextAppearance_AppCompat_Large 0x7f080038
+int style Base_TextAppearance_AppCompat_Large_Inverse 0x7f080005
+int style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x7f080039
+int style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x7f08003a
+int style Base_TextAppearance_AppCompat_Medium 0x7f08003b
+int style Base_TextAppearance_AppCompat_Medium_Inverse 0x7f080006
+int style Base_TextAppearance_AppCompat_Menu 0x7f08003c
+int style Base_TextAppearance_AppCompat_SearchResult 0x7f080087
+int style Base_TextAppearance_AppCompat_SearchResult_Subtitle 0x7f08003d
+int style Base_TextAppearance_AppCompat_SearchResult_Title 0x7f08003e
+int style Base_TextAppearance_AppCompat_Small 0x7f08003f
+int style Base_TextAppearance_AppCompat_Small_Inverse 0x7f080007
+int style Base_TextAppearance_AppCompat_Subhead 0x7f080040
+int style Base_TextAppearance_AppCompat_Subhead_Inverse 0x7f080008
+int style Base_TextAppearance_AppCompat_Title 0x7f080041
+int style Base_TextAppearance_AppCompat_Title_Inverse 0x7f080009
+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Menu 0x7f080042
+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x7f080043
+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x7f080044
+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Title 0x7f080045
+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x7f080046
+int style Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x7f080047
+int style Base_TextAppearance_AppCompat_Widget_ActionMode_Title 0x7f080048
+int style Base_TextAppearance_AppCompat_Widget_Button 0x7f080049
+int style Base_TextAppearance_AppCompat_Widget_Button_Inverse 0x7f080079
+int style Base_TextAppearance_AppCompat_Widget_DropDownItem 0x7f080088
+int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Large 0x7f08004a
+int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Small 0x7f08004b
+int style Base_TextAppearance_AppCompat_Widget_Switch 0x7f08004c
+int style Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem 0x7f08004d
+int style Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x7f080089
+int style Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle 0x7f08004e
+int style Base_TextAppearance_Widget_AppCompat_Toolbar_Title 0x7f08004f
+int style Base_Theme_AppCompat 0x7f080050
+int style Base_Theme_AppCompat_CompactMenu 0x7f08008a
+int style Base_Theme_AppCompat_Dialog 0x7f08000a
+int style Base_Theme_AppCompat_Dialog_Alert 0x7f08008b
+int style Base_Theme_AppCompat_Dialog_FixedSize 0x7f08008c
+int style Base_Theme_AppCompat_Dialog_MinWidth 0x7f08008d
+int style Base_Theme_AppCompat_DialogWhenLarge 0x7f080001
+int style Base_Theme_AppCompat_Light 0x7f080051
+int style Base_Theme_AppCompat_Light_DarkActionBar 0x7f08008e
+int style Base_Theme_AppCompat_Light_Dialog 0x7f08000b
+int style Base_Theme_AppCompat_Light_Dialog_Alert 0x7f08008f
+int style Base_Theme_AppCompat_Light_Dialog_FixedSize 0x7f080090
+int style Base_Theme_AppCompat_Light_Dialog_MinWidth 0x7f080091
+int style Base_Theme_AppCompat_Light_DialogWhenLarge 0x7f080002
+int style Base_ThemeOverlay_AppCompat 0x7f080092
+int style Base_ThemeOverlay_AppCompat_ActionBar 0x7f080093
+int style Base_ThemeOverlay_AppCompat_Dark 0x7f080094
+int style Base_ThemeOverlay_AppCompat_Dark_ActionBar 0x7f080095
+int style Base_ThemeOverlay_AppCompat_Light 0x7f080096
+int style Base_V11_Theme_AppCompat_Dialog 0x7f08000c
+int style Base_V11_Theme_AppCompat_Light_Dialog 0x7f08000d
+int style Base_V12_Widget_AppCompat_AutoCompleteTextView 0x7f080015
+int style Base_V12_Widget_AppCompat_EditText 0x7f080016
+int style Base_V21_Theme_AppCompat 0x7f080052
+int style Base_V21_Theme_AppCompat_Dialog 0x7f080053
+int style Base_V21_Theme_AppCompat_Light 0x7f080054
+int style Base_V21_Theme_AppCompat_Light_Dialog 0x7f080055
+int style Base_V22_Theme_AppCompat 0x7f080077
+int style Base_V22_Theme_AppCompat_Light 0x7f080078
+int style Base_V23_Theme_AppCompat 0x7f08007a
+int style Base_V23_Theme_AppCompat_Light 0x7f08007b
+int style Base_V7_Theme_AppCompat 0x7f080097
+int style Base_V7_Theme_AppCompat_Dialog 0x7f080098
+int style Base_V7_Theme_AppCompat_Light 0x7f080099
+int style Base_V7_Theme_AppCompat_Light_Dialog 0x7f08009a
+int style Base_V7_Widget_AppCompat_AutoCompleteTextView 0x7f08009b
+int style Base_V7_Widget_AppCompat_EditText 0x7f08009c
+int style Base_Widget_AppCompat_ActionBar 0x7f08009d
+int style Base_Widget_AppCompat_ActionBar_Solid 0x7f08009e
+int style Base_Widget_AppCompat_ActionBar_TabBar 0x7f08009f
+int style Base_Widget_AppCompat_ActionBar_TabText 0x7f080056
+int style Base_Widget_AppCompat_ActionBar_TabView 0x7f080057
+int style Base_Widget_AppCompat_ActionButton 0x7f080058
+int style Base_Widget_AppCompat_ActionButton_CloseMode 0x7f080059
+int style Base_Widget_AppCompat_ActionButton_Overflow 0x7f08005a
+int style Base_Widget_AppCompat_ActionMode 0x7f0800a0
+int style Base_Widget_AppCompat_ActivityChooserView 0x7f0800a1
+int style Base_Widget_AppCompat_AutoCompleteTextView 0x7f080017
+int style Base_Widget_AppCompat_Button 0x7f08005b
+int style Base_Widget_AppCompat_Button_Borderless 0x7f08005c
+int style Base_Widget_AppCompat_Button_Borderless_Colored 0x7f08005d
+int style Base_Widget_AppCompat_Button_ButtonBar_AlertDialog 0x7f0800a2
+int style Base_Widget_AppCompat_Button_Colored 0x7f08007c
+int style Base_Widget_AppCompat_Button_Small 0x7f08005e
+int style Base_Widget_AppCompat_ButtonBar 0x7f08005f
+int style Base_Widget_AppCompat_ButtonBar_AlertDialog 0x7f0800a3
+int style Base_Widget_AppCompat_CompoundButton_CheckBox 0x7f080060
+int style Base_Widget_AppCompat_CompoundButton_RadioButton 0x7f080061
+int style Base_Widget_AppCompat_CompoundButton_Switch 0x7f0800a4
+int style Base_Widget_AppCompat_DrawerArrowToggle 0x7f080000
+int style Base_Widget_AppCompat_DrawerArrowToggle_Common 0x7f0800a5
+int style Base_Widget_AppCompat_DropDownItem_Spinner 0x7f080062
+int style Base_Widget_AppCompat_EditText 0x7f080018
+int style Base_Widget_AppCompat_ImageButton 0x7f080063
+int style Base_Widget_AppCompat_Light_ActionBar 0x7f0800a6
+int style Base_Widget_AppCompat_Light_ActionBar_Solid 0x7f0800a7
+int style Base_Widget_AppCompat_Light_ActionBar_TabBar 0x7f0800a8
+int style Base_Widget_AppCompat_Light_ActionBar_TabText 0x7f080064
+int style Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x7f080065
+int style Base_Widget_AppCompat_Light_ActionBar_TabView 0x7f080066
+int style Base_Widget_AppCompat_Light_PopupMenu 0x7f080067
+int style Base_Widget_AppCompat_Light_PopupMenu_Overflow 0x7f080068
+int style Base_Widget_AppCompat_ListPopupWindow 0x7f080069
+int style Base_Widget_AppCompat_ListView 0x7f08006a
+int style Base_Widget_AppCompat_ListView_DropDown 0x7f08006b
+int style Base_Widget_AppCompat_ListView_Menu 0x7f08006c
+int style Base_Widget_AppCompat_PopupMenu 0x7f08006d
+int style Base_Widget_AppCompat_PopupMenu_Overflow 0x7f08006e
+int style Base_Widget_AppCompat_PopupWindow 0x7f0800a9
+int style Base_Widget_AppCompat_ProgressBar 0x7f08000e
+int style Base_Widget_AppCompat_ProgressBar_Horizontal 0x7f08000f
+int style Base_Widget_AppCompat_RatingBar 0x7f08006f
+int style Base_Widget_AppCompat_SearchView 0x7f0800aa
+int style Base_Widget_AppCompat_SearchView_ActionBar 0x7f0800ab
+int style Base_Widget_AppCompat_SeekBar 0x7f080070
+int style Base_Widget_AppCompat_Spinner 0x7f080071
+int style Base_Widget_AppCompat_Spinner_Underlined 0x7f080003
+int style Base_Widget_AppCompat_TextView_SpinnerItem 0x7f080072
+int style Base_Widget_AppCompat_Toolbar 0x7f0800ac
+int style Base_Widget_AppCompat_Toolbar_Button_Navigation 0x7f080073
+int style Platform_AppCompat 0x7f080010
+int style Platform_AppCompat_Light 0x7f080011
+int style Platform_ThemeOverlay_AppCompat 0x7f080074
+int style Platform_ThemeOverlay_AppCompat_Dark 0x7f080075
+int style Platform_ThemeOverlay_AppCompat_Light 0x7f080076
+int style Platform_V11_AppCompat 0x7f080012
+int style Platform_V11_AppCompat_Light 0x7f080013
+int style Platform_V14_AppCompat 0x7f08001a
+int style Platform_V14_AppCompat_Light 0x7f08001b
+int style Platform_Widget_AppCompat_Spinner 0x7f080014
+int style RtlOverlay_DialogWindowTitle_AppCompat 0x7f080021
+int style RtlOverlay_Widget_AppCompat_ActionBar_TitleItem 0x7f080022
+int style RtlOverlay_Widget_AppCompat_DialogTitle_Icon 0x7f080023
+int style RtlOverlay_Widget_AppCompat_PopupMenuItem 0x7f080024
+int style RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup 0x7f080025
+int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Text 0x7f080026
+int style RtlOverlay_Widget_AppCompat_Search_DropDown 0x7f080027
+int style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 0x7f080028
+int style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 0x7f080029
+int style RtlOverlay_Widget_AppCompat_Search_DropDown_Query 0x7f08002a
+int style RtlOverlay_Widget_AppCompat_Search_DropDown_Text 0x7f08002b
+int style RtlOverlay_Widget_AppCompat_SearchView_MagIcon 0x7f08002c
+int style RtlUnderlay_Widget_AppCompat_ActionButton 0x7f08002d
+int style RtlUnderlay_Widget_AppCompat_ActionButton_Overflow 0x7f08002e
+int style TextAppearance_AppCompat 0x7f0800ad
+int style TextAppearance_AppCompat_Body1 0x7f0800ae
+int style TextAppearance_AppCompat_Body2 0x7f0800af
+int style TextAppearance_AppCompat_Button 0x7f0800b0
+int style TextAppearance_AppCompat_Caption 0x7f0800b1
+int style TextAppearance_AppCompat_Display1 0x7f0800b2
+int style TextAppearance_AppCompat_Display2 0x7f0800b3
+int style TextAppearance_AppCompat_Display3 0x7f0800b4
+int style TextAppearance_AppCompat_Display4 0x7f0800b5
+int style TextAppearance_AppCompat_Headline 0x7f0800b6
+int style TextAppearance_AppCompat_Inverse 0x7f0800b7
+int style TextAppearance_AppCompat_Large 0x7f0800b8
+int style TextAppearance_AppCompat_Large_Inverse 0x7f0800b9
+int style TextAppearance_AppCompat_Light_SearchResult_Subtitle 0x7f0800ba
+int style TextAppearance_AppCompat_Light_SearchResult_Title 0x7f0800bb
+int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x7f0800bc
+int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x7f0800bd
+int style TextAppearance_AppCompat_Medium 0x7f0800be
+int style TextAppearance_AppCompat_Medium_Inverse 0x7f0800bf
+int style TextAppearance_AppCompat_Menu 0x7f0800c0
+int style TextAppearance_AppCompat_SearchResult_Subtitle 0x7f0800c1
+int style TextAppearance_AppCompat_SearchResult_Title 0x7f0800c2
+int style TextAppearance_AppCompat_Small 0x7f0800c3
+int style TextAppearance_AppCompat_Small_Inverse 0x7f0800c4
+int style TextAppearance_AppCompat_Subhead 0x7f0800c5
+int style TextAppearance_AppCompat_Subhead_Inverse 0x7f0800c6
+int style TextAppearance_AppCompat_Title 0x7f0800c7
+int style TextAppearance_AppCompat_Title_Inverse 0x7f0800c8
+int style TextAppearance_AppCompat_Widget_ActionBar_Menu 0x7f0800c9
+int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x7f0800ca
+int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x7f0800cb
+int style TextAppearance_AppCompat_Widget_ActionBar_Title 0x7f0800cc
+int style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x7f0800cd
+int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x7f0800ce
+int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse 0x7f0800cf
+int style TextAppearance_AppCompat_Widget_ActionMode_Title 0x7f0800d0
+int style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse 0x7f0800d1
+int style TextAppearance_AppCompat_Widget_Button 0x7f0800d2
+int style TextAppearance_AppCompat_Widget_Button_Inverse 0x7f0800d3
+int style TextAppearance_AppCompat_Widget_DropDownItem 0x7f0800d4
+int style TextAppearance_AppCompat_Widget_PopupMenu_Large 0x7f0800d5
+int style TextAppearance_AppCompat_Widget_PopupMenu_Small 0x7f0800d6
+int style TextAppearance_AppCompat_Widget_Switch 0x7f0800d7
+int style TextAppearance_AppCompat_Widget_TextView_SpinnerItem 0x7f0800d8
+int style TextAppearance_StatusBar_EventContent 0x7f08001c
+int style TextAppearance_StatusBar_EventContent_Info 0x7f08001d
+int style TextAppearance_StatusBar_EventContent_Line2 0x7f08001e
+int style TextAppearance_StatusBar_EventContent_Time 0x7f08001f
+int style TextAppearance_StatusBar_EventContent_Title 0x7f080020
+int style TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x7f0800d9
+int style TextAppearance_Widget_AppCompat_Toolbar_Subtitle 0x7f0800da
+int style TextAppearance_Widget_AppCompat_Toolbar_Title 0x7f0800db
+int style Theme_AppCompat 0x7f0800dc
+int style Theme_AppCompat_CompactMenu 0x7f0800dd
+int style Theme_AppCompat_Dialog 0x7f0800de
+int style Theme_AppCompat_Dialog_Alert 0x7f0800df
+int style Theme_AppCompat_Dialog_MinWidth 0x7f0800e0
+int style Theme_AppCompat_DialogWhenLarge 0x7f0800e1
+int style Theme_AppCompat_Light 0x7f0800e2
+int style Theme_AppCompat_Light_DarkActionBar 0x7f0800e3
+int style Theme_AppCompat_Light_Dialog 0x7f0800e4
+int style Theme_AppCompat_Light_Dialog_Alert 0x7f0800e5
+int style Theme_AppCompat_Light_Dialog_MinWidth 0x7f0800e6
+int style Theme_AppCompat_Light_DialogWhenLarge 0x7f0800e7
+int style Theme_AppCompat_Light_NoActionBar 0x7f0800e8
+int style Theme_AppCompat_NoActionBar 0x7f0800e9
+int style ThemeOverlay_AppCompat 0x7f0800ea
+int style ThemeOverlay_AppCompat_ActionBar 0x7f0800eb
+int style ThemeOverlay_AppCompat_Dark 0x7f0800ec
+int style ThemeOverlay_AppCompat_Dark_ActionBar 0x7f0800ed
+int style ThemeOverlay_AppCompat_Light 0x7f0800ee
+int style Widget_AppCompat_ActionBar 0x7f0800ef
+int style Widget_AppCompat_ActionBar_Solid 0x7f0800f0
+int style Widget_AppCompat_ActionBar_TabBar 0x7f0800f1
+int style Widget_AppCompat_ActionBar_TabText 0x7f0800f2
+int style Widget_AppCompat_ActionBar_TabView 0x7f0800f3
+int style Widget_AppCompat_ActionButton 0x7f0800f4
+int style Widget_AppCompat_ActionButton_CloseMode 0x7f0800f5
+int style Widget_AppCompat_ActionButton_Overflow 0x7f0800f6
+int style Widget_AppCompat_ActionMode 0x7f0800f7
+int style Widget_AppCompat_ActivityChooserView 0x7f0800f8
+int style Widget_AppCompat_AutoCompleteTextView 0x7f0800f9
+int style Widget_AppCompat_Button 0x7f0800fa
+int style Widget_AppCompat_Button_Borderless 0x7f0800fb
+int style Widget_AppCompat_Button_Borderless_Colored 0x7f0800fc
+int style Widget_AppCompat_Button_ButtonBar_AlertDialog 0x7f0800fd
+int style Widget_AppCompat_Button_Colored 0x7f0800fe
+int style Widget_AppCompat_Button_Small 0x7f0800ff
+int style Widget_AppCompat_ButtonBar 0x7f080100
+int style Widget_AppCompat_ButtonBar_AlertDialog 0x7f080101
+int style Widget_AppCompat_CompoundButton_CheckBox 0x7f080102
+int style Widget_AppCompat_CompoundButton_RadioButton 0x7f080103
+int style Widget_AppCompat_CompoundButton_Switch 0x7f080104
+int style Widget_AppCompat_DrawerArrowToggle 0x7f080105
+int style Widget_AppCompat_DropDownItem_Spinner 0x7f080106
+int style Widget_AppCompat_EditText 0x7f080107
+int style Widget_AppCompat_ImageButton 0x7f080108
+int style Widget_AppCompat_Light_ActionBar 0x7f080109
+int style Widget_AppCompat_Light_ActionBar_Solid 0x7f08010a
+int style Widget_AppCompat_Light_ActionBar_Solid_Inverse 0x7f08010b
+int style Widget_AppCompat_Light_ActionBar_TabBar 0x7f08010c
+int style Widget_AppCompat_Light_ActionBar_TabBar_Inverse 0x7f08010d
+int style Widget_AppCompat_Light_ActionBar_TabText 0x7f08010e
+int style Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x7f08010f
+int style Widget_AppCompat_Light_ActionBar_TabView 0x7f080110
+int style Widget_AppCompat_Light_ActionBar_TabView_Inverse 0x7f080111
+int style Widget_AppCompat_Light_ActionButton 0x7f080112
+int style Widget_AppCompat_Light_ActionButton_CloseMode 0x7f080113
+int style Widget_AppCompat_Light_ActionButton_Overflow 0x7f080114
+int style Widget_AppCompat_Light_ActionMode_Inverse 0x7f080115
+int style Widget_AppCompat_Light_ActivityChooserView 0x7f080116
+int style Widget_AppCompat_Light_AutoCompleteTextView 0x7f080117
+int style Widget_AppCompat_Light_DropDownItem_Spinner 0x7f080118
+int style Widget_AppCompat_Light_ListPopupWindow 0x7f080119
+int style Widget_AppCompat_Light_ListView_DropDown 0x7f08011a
+int style Widget_AppCompat_Light_PopupMenu 0x7f08011b
+int style Widget_AppCompat_Light_PopupMenu_Overflow 0x7f08011c
+int style Widget_AppCompat_Light_SearchView 0x7f08011d
+int style Widget_AppCompat_Light_Spinner_DropDown_ActionBar 0x7f08011e
+int style Widget_AppCompat_ListPopupWindow 0x7f08011f
+int style Widget_AppCompat_ListView 0x7f080120
+int style Widget_AppCompat_ListView_DropDown 0x7f080121
+int style Widget_AppCompat_ListView_Menu 0x7f080122
+int style Widget_AppCompat_PopupMenu 0x7f080123
+int style Widget_AppCompat_PopupMenu_Overflow 0x7f080124
+int style Widget_AppCompat_PopupWindow 0x7f080125
+int style Widget_AppCompat_ProgressBar 0x7f080126
+int style Widget_AppCompat_ProgressBar_Horizontal 0x7f080127
+int style Widget_AppCompat_RatingBar 0x7f080128
+int style Widget_AppCompat_SearchView 0x7f080129
+int style Widget_AppCompat_SearchView_ActionBar 0x7f08012a
+int style Widget_AppCompat_SeekBar 0x7f08012b
+int style Widget_AppCompat_Spinner 0x7f08012c
+int style Widget_AppCompat_Spinner_DropDown 0x7f08012d
+int style Widget_AppCompat_Spinner_DropDown_ActionBar 0x7f08012e
+int style Widget_AppCompat_Spinner_Underlined 0x7f08012f
+int style Widget_AppCompat_TextView_SpinnerItem 0x7f080130
+int style Widget_AppCompat_Toolbar 0x7f080131
+int style Widget_AppCompat_Toolbar_Button_Navigation 0x7f080132
+int[] styleable ActionBar { 0x7f010001, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006, 0x7f010007, 0x7f010008, 0x7f010009, 0x7f01000a, 0x7f01000b, 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f, 0x7f010010, 0x7f010011, 0x7f010012, 0x7f010013, 0x7f010014, 0x7f010015, 0x7f010016, 0x7f010017, 0x7f010018, 0x7f010019, 0x7f01001a, 0x7f01001b, 0x7f01007c }
 int styleable ActionBar_background 10
 int styleable ActionBar_backgroundSplit 12
 int styleable ActionBar_backgroundStacked 11
+int styleable ActionBar_contentInsetEnd 21
+int styleable ActionBar_contentInsetLeft 22
+int styleable ActionBar_contentInsetRight 23
+int styleable ActionBar_contentInsetStart 20
 int styleable ActionBar_customNavigationLayout 13
 int styleable ActionBar_displayOptions 3
 int styleable ActionBar_divider 9
+int styleable ActionBar_elevation 24
 int styleable ActionBar_height 0
+int styleable ActionBar_hideOnContentScroll 19
+int styleable ActionBar_homeAsUpIndicator 26
 int styleable ActionBar_homeLayout 14
 int styleable ActionBar_icon 7
 int styleable ActionBar_indeterminateProgressStyle 16
 int styleable ActionBar_itemPadding 18
 int styleable ActionBar_logo 8
 int styleable ActionBar_navigationMode 2
+int styleable ActionBar_popupTheme 25
 int styleable ActionBar_progressBarPadding 17
 int styleable ActionBar_progressBarStyle 15
 int styleable ActionBar_subtitle 4
@@ -492,32 +929,62 @@ int styleable ActionBar_title 1
 int styleable ActionBar_titleTextStyle 5
 int[] styleable ActionBarLayout { 0x010100b3 }
 int styleable ActionBarLayout_android_layout_gravity 0
-int[] styleable ActionBarWindow { 0x7f010050, 0x7f010051, 0x7f010052, 0x7f010053, 0x7f010054, 0x7f010055, 0x7f010056 }
-int styleable ActionBarWindow_windowActionBar 0
-int styleable ActionBarWindow_windowActionBarOverlay 1
-int styleable ActionBarWindow_windowFixedHeightMajor 6
-int styleable ActionBarWindow_windowFixedHeightMinor 4
-int styleable ActionBarWindow_windowFixedWidthMajor 3
-int styleable ActionBarWindow_windowFixedWidthMinor 5
-int styleable ActionBarWindow_windowSplitActionBar 2
 int[] styleable ActionMenuItemView { 0x0101013f }
 int styleable ActionMenuItemView_android_minWidth 0
 int[] styleable ActionMenuView { }
-int[] styleable ActionMode { 0x7f010020, 0x7f010042, 0x7f010043, 0x7f010047, 0x7f010049 }
+int[] styleable ActionMode { 0x7f010001, 0x7f010007, 0x7f010008, 0x7f01000c, 0x7f01000e, 0x7f01001c }
 int styleable ActionMode_background 3
 int styleable ActionMode_backgroundSplit 4
+int styleable ActionMode_closeItemLayout 5
 int styleable ActionMode_height 0
 int styleable ActionMode_subtitleTextStyle 2
 int styleable ActionMode_titleTextStyle 1
-int[] styleable ActivityChooserView { 0x7f010057, 0x7f010058 }
+int[] styleable ActivityChooserView { 0x7f01001d, 0x7f01001e }
 int styleable ActivityChooserView_expandActivityOverflowButtonDrawable 1
 int styleable ActivityChooserView_initialActivityCount 0
-int[] styleable CompatTextView { 0x7f010059 }
-int styleable CompatTextView_textAllCaps 0
-int[] styleable LinearLayoutICS { 0x7f010046, 0x7f01005a, 0x7f01005b }
-int styleable LinearLayoutICS_divider 0
-int styleable LinearLayoutICS_dividerPadding 2
-int styleable LinearLayoutICS_showDividers 1
+int[] styleable AlertDialog { 0x010100f2, 0x7f01001f, 0x7f010020, 0x7f010021, 0x7f010022, 0x7f010023 }
+int styleable AlertDialog_android_layout 0
+int styleable AlertDialog_buttonPanelSideLayout 1
+int styleable AlertDialog_listItemLayout 5
+int styleable AlertDialog_listLayout 2
+int styleable AlertDialog_multiChoiceItemLayout 3
+int styleable AlertDialog_singleChoiceItemLayout 4
+int[] styleable AppCompatTextView { 0x01010034, 0x7f010024 }
+int styleable AppCompatTextView_android_textAppearance 0
+int styleable AppCompatTextView_textAllCaps 1
+int[] styleable ButtonBarLayout { 0x7f010025 }
+int styleable ButtonBarLayout_allowStacking 0
+int[] styleable CompoundButton { 0x01010107, 0x7f010026, 0x7f010027 }
+int styleable CompoundButton_android_button 0
+int styleable CompoundButton_buttonTint 1
+int styleable CompoundButton_buttonTintMode 2
+int[] styleable DrawerArrowToggle { 0x7f010028, 0x7f010029, 0x7f01002a, 0x7f01002b, 0x7f01002c, 0x7f01002d, 0x7f01002e, 0x7f01002f }
+int styleable DrawerArrowToggle_arrowHeadLength 4
+int styleable DrawerArrowToggle_arrowShaftLength 5
+int styleable DrawerArrowToggle_barLength 6
+int styleable DrawerArrowToggle_color 0
+int styleable DrawerArrowToggle_drawableSize 2
+int styleable DrawerArrowToggle_gapBetweenBars 3
+int styleable DrawerArrowToggle_spinBars 1
+int styleable DrawerArrowToggle_thickness 7
+int[] styleable LinearLayoutCompat { 0x010100af, 0x010100c4, 0x01010126, 0x01010127, 0x01010128, 0x7f01000b, 0x7f010030, 0x7f010031, 0x7f010032 }
+int styleable LinearLayoutCompat_android_baselineAligned 2
+int styleable LinearLayoutCompat_android_baselineAlignedChildIndex 3
+int styleable LinearLayoutCompat_android_gravity 0
+int styleable LinearLayoutCompat_android_orientation 1
+int styleable LinearLayoutCompat_android_weightSum 4
+int styleable LinearLayoutCompat_divider 5
+int styleable LinearLayoutCompat_dividerPadding 8
+int styleable LinearLayoutCompat_measureWithLargestChild 6
+int styleable LinearLayoutCompat_showDividers 7
+int[] styleable LinearLayoutCompat_Layout { 0x010100b3, 0x010100f4, 0x010100f5, 0x01010181 }
+int styleable LinearLayoutCompat_Layout_android_layout_gravity 0
+int styleable LinearLayoutCompat_Layout_android_layout_height 2
+int styleable LinearLayoutCompat_Layout_android_layout_weight 3
+int styleable LinearLayoutCompat_Layout_android_layout_width 1
+int[] styleable ListPopupWindow { 0x010102ac, 0x010102ad }
+int styleable ListPopupWindow_android_dropDownHorizontalOffset 0
+int styleable ListPopupWindow_android_dropDownVerticalOffset 1
 int[] styleable MenuGroup { 0x0101000e, 0x010100d0, 0x01010194, 0x010101de, 0x010101df, 0x010101e0 }
 int styleable MenuGroup_android_checkableBehavior 5
 int styleable MenuGroup_android_enabled 0
@@ -525,7 +992,7 @@ int styleable MenuGroup_android_id 1
 int styleable MenuGroup_android_menuCategory 3
 int styleable MenuGroup_android_orderInCategory 4
 int styleable MenuGroup_android_visible 2
-int[] styleable MenuItem { 0x01010002, 0x0101000e, 0x010100d0, 0x01010106, 0x01010194, 0x010101de, 0x010101df, 0x010101e1, 0x010101e2, 0x010101e3, 0x010101e4, 0x010101e5, 0x0101026f, 0x7f01005c, 0x7f01005d, 0x7f01005e, 0x7f01005f }
+int[] styleable MenuItem { 0x01010002, 0x0101000e, 0x010100d0, 0x01010106, 0x01010194, 0x010101de, 0x010101df, 0x010101e1, 0x010101e2, 0x010101e3, 0x010101e4, 0x010101e5, 0x0101026f, 0x7f010033, 0x7f010034, 0x7f010035, 0x7f010036 }
 int styleable MenuItem_actionLayout 14
 int styleable MenuItem_actionProviderClass 16
 int styleable MenuItem_actionViewClass 15
@@ -543,40 +1010,212 @@ int styleable MenuItem_android_title 7
 int styleable MenuItem_android_titleCondensed 8
 int styleable MenuItem_android_visible 4
 int styleable MenuItem_showAsAction 13
-int[] styleable MenuView { 0x010100ae, 0x0101012c, 0x0101012d, 0x0101012e, 0x0101012f, 0x01010130, 0x01010131, 0x01010435 }
+int[] styleable MenuView { 0x010100ae, 0x0101012c, 0x0101012d, 0x0101012e, 0x0101012f, 0x01010130, 0x01010131, 0x7f010037 }
 int styleable MenuView_android_headerBackground 4
 int styleable MenuView_android_horizontalDivider 2
 int styleable MenuView_android_itemBackground 5
 int styleable MenuView_android_itemIconDisabledAlpha 6
 int styleable MenuView_android_itemTextAppearance 1
-int styleable MenuView_android_preserveIconSpacing 7
 int styleable MenuView_android_verticalDivider 3
 int styleable MenuView_android_windowAnimationStyle 0
-int[] styleable SearchView { 0x0101011f, 0x01010220, 0x01010264, 0x7f010060, 0x7f010061 }
-int styleable SearchView_android_imeOptions 2
-int styleable SearchView_android_inputType 1
-int styleable SearchView_android_maxWidth 0
-int styleable SearchView_iconifiedByDefault 3
-int styleable SearchView_queryHint 4
-int[] styleable Spinner { 0x010100af, 0x01010175, 0x01010176, 0x01010262, 0x010102ac, 0x010102ad, 0x7f010062, 0x7f010063, 0x7f010064, 0x7f010065 }
-int styleable Spinner_android_dropDownHorizontalOffset 4
-int styleable Spinner_android_dropDownSelector 1
-int styleable Spinner_android_dropDownVerticalOffset 5
-int styleable Spinner_android_dropDownWidth 3
-int styleable Spinner_android_gravity 0
-int styleable Spinner_android_popupBackground 2
-int styleable Spinner_disableChildrenWhenDisabled 9
-int styleable Spinner_popupPromptView 8
-int styleable Spinner_prompt 6
-int styleable Spinner_spinnerMode 7
-int[] styleable Theme { 0x7f010066, 0x7f010067, 0x7f010068, 0x7f010069, 0x7f01006a, 0x7f01006b }
-int styleable Theme_actionDropDownStyle 0
-int styleable Theme_dropdownListPreferredItemHeight 1
-int styleable Theme_listChoiceBackgroundIndicator 5
-int styleable Theme_panelMenuListTheme 4
-int styleable Theme_panelMenuListWidth 3
-int styleable Theme_popupMenuStyle 2
-int[] styleable View { 0x010100da, 0x7f01006c, 0x7f01006d }
-int styleable View_android_focusable 0
-int styleable View_paddingEnd 2
-int styleable View_paddingStart 1
+int styleable MenuView_preserveIconSpacing 7
+int[] styleable PopupWindow { 0x01010176, 0x7f010038 }
+int styleable PopupWindow_android_popupBackground 0
+int styleable PopupWindow_overlapAnchor 1
+int[] styleable PopupWindowBackgroundState { 0x7f010039 }
+int styleable PopupWindowBackgroundState_state_above_anchor 0
+int[] styleable SearchView { 0x010100da, 0x0101011f, 0x01010220, 0x01010264, 0x7f01003a, 0x7f01003b, 0x7f01003c, 0x7f01003d, 0x7f01003e, 0x7f01003f, 0x7f010040, 0x7f010041, 0x7f010042, 0x7f010043, 0x7f010044, 0x7f010045, 0x7f010046 }
+int styleable SearchView_android_focusable 0
+int styleable SearchView_android_imeOptions 3
+int styleable SearchView_android_inputType 2
+int styleable SearchView_android_maxWidth 1
+int styleable SearchView_closeIcon 8
+int styleable SearchView_commitIcon 13
+int styleable SearchView_defaultQueryHint 7
+int styleable SearchView_goIcon 9
+int styleable SearchView_iconifiedByDefault 5
+int styleable SearchView_layout 4
+int styleable SearchView_queryBackground 15
+int styleable SearchView_queryHint 6
+int styleable SearchView_searchHintIcon 11
+int styleable SearchView_searchIcon 10
+int styleable SearchView_submitBackground 16
+int styleable SearchView_suggestionRowLayout 14
+int styleable SearchView_voiceIcon 12
+int[] styleable Spinner { 0x01010176, 0x0101017b, 0x01010262, 0x7f01001b }
+int styleable Spinner_android_dropDownWidth 2
+int styleable Spinner_android_popupBackground 0
+int styleable Spinner_android_prompt 1
+int styleable Spinner_popupTheme 3
+int[] styleable SwitchCompat { 0x01010124, 0x01010125, 0x01010142, 0x7f010047, 0x7f010048, 0x7f010049, 0x7f01004a, 0x7f01004b, 0x7f01004c, 0x7f01004d }
+int styleable SwitchCompat_android_textOff 1
+int styleable SwitchCompat_android_textOn 0
+int styleable SwitchCompat_android_thumb 2
+int styleable SwitchCompat_showText 9
+int styleable SwitchCompat_splitTrack 8
+int styleable SwitchCompat_switchMinWidth 6
+int styleable SwitchCompat_switchPadding 7
+int styleable SwitchCompat_switchTextAppearance 5
+int styleable SwitchCompat_thumbTextPadding 4
+int styleable SwitchCompat_track 3
+int[] styleable TextAppearance { 0x01010095, 0x01010096, 0x01010097, 0x01010098, 0x01010161, 0x01010162, 0x01010163, 0x01010164, 0x7f010024 }
+int styleable TextAppearance_android_shadowColor 4
+int styleable TextAppearance_android_shadowDx 5
+int styleable TextAppearance_android_shadowDy 6
+int styleable TextAppearance_android_shadowRadius 7
+int styleable TextAppearance_android_textColor 3
+int styleable TextAppearance_android_textSize 0
+int styleable TextAppearance_android_textStyle 2
+int styleable TextAppearance_android_typeface 1
+int styleable TextAppearance_textAllCaps 8
+int[] styleable Theme { 0x01010057, 0x010100ae, 0x7f01004e, 0x7f01004f, 0x7f010050, 0x7f010051, 0x7f010052, 0x7f010053, 0x7f010054, 0x7f010055, 0x7f010056, 0x7f010057, 0x7f010058, 0x7f010059, 0x7f01005a, 0x7f01005b, 0x7f01005c, 0x7f01005d, 0x7f01005e, 0x7f01005f, 0x7f010060, 0x7f010061, 0x7f010062, 0x7f010063, 0x7f010064, 0x7f010065, 0x7f010066, 0x7f010067, 0x7f010068, 0x7f010069, 0x7f01006a, 0x7f01006b, 0x7f01006c, 0x7f01006d, 0x7f01006e, 0x7f01006f, 0x7f010070, 0x7f010071, 0x7f010072, 0x7f010073, 0x7f010074, 0x7f010075, 0x7f010076, 0x7f010077, 0x7f010078, 0x7f010079, 0x7f01007a, 0x7f01007b, 0x7f01007c, 0x7f01007d, 0x7f01007e, 0x7f01007f, 0x7f010080, 0x7f010081, 0x7f010082, 0x7f010083, 0x7f010084, 0x7f010085, 0x7f010086, 0x7f010087, 0x7f010088, 0x7f010089, 0x7f01008a, 0x7f01008b, 0x7f01008c, 0x7f01008d, 0x7f01008e, 0x7f01008f, 0x7f010090, 0x7f010091, 0x7f010092, 0x7f010093, 0x7f010094, 0x7f010095, 0x7f010096, 0x7f010097, 0x7f010098, 0x7f010099, 0x7f01009a, 0x7f01009b, 0x7f01009c, 0x7f01009d, 0x7f01009e, 0x7f01009f, 0x7f0100a0, 0x7f0100a1, 0x7f0100a2, 0x7f0100a3, 0x7f0100a4, 0x7f0100a5, 0x7f0100a6, 0x7f0100a7, 0x7f0100a8, 0x7f0100a9, 0x7f0100aa, 0x7f0100ab, 0x7f0100ac, 0x7f0100ad, 0x7f0100ae, 0x7f0100af, 0x7f0100b0, 0x7f0100b1, 0x7f0100b2, 0x7f0100b3, 0x7f0100b4, 0x7f0100b5, 0x7f0100b6, 0x7f0100b7, 0x7f0100b8, 0x7f0100b9 }
+int styleable Theme_actionBarDivider 23
+int styleable Theme_actionBarItemBackground 24
+int styleable Theme_actionBarPopupTheme 17
+int styleable Theme_actionBarSize 22
+int styleable Theme_actionBarSplitStyle 19
+int styleable Theme_actionBarStyle 18
+int styleable Theme_actionBarTabBarStyle 13
+int styleable Theme_actionBarTabStyle 12
+int styleable Theme_actionBarTabTextStyle 14
+int styleable Theme_actionBarTheme 20
+int styleable Theme_actionBarWidgetTheme 21
+int styleable Theme_actionButtonStyle 49
+int styleable Theme_actionDropDownStyle 45
+int styleable Theme_actionMenuTextAppearance 25
+int styleable Theme_actionMenuTextColor 26
+int styleable Theme_actionModeBackground 29
+int styleable Theme_actionModeCloseButtonStyle 28
+int styleable Theme_actionModeCloseDrawable 31
+int styleable Theme_actionModeCopyDrawable 33
+int styleable Theme_actionModeCutDrawable 32
+int styleable Theme_actionModeFindDrawable 37
+int styleable Theme_actionModePasteDrawable 34
+int styleable Theme_actionModePopupWindowStyle 39
+int styleable Theme_actionModeSelectAllDrawable 35
+int styleable Theme_actionModeShareDrawable 36
+int styleable Theme_actionModeSplitBackground 30
+int styleable Theme_actionModeStyle 27
+int styleable Theme_actionModeWebSearchDrawable 38
+int styleable Theme_actionOverflowButtonStyle 15
+int styleable Theme_actionOverflowMenuStyle 16
+int styleable Theme_activityChooserViewStyle 57
+int styleable Theme_alertDialogButtonGroupStyle 92
+int styleable Theme_alertDialogCenterButtons 93
+int styleable Theme_alertDialogStyle 91
+int styleable Theme_alertDialogTheme 94
+int styleable Theme_android_windowAnimationStyle 1
+int styleable Theme_android_windowIsFloating 0
+int styleable Theme_autoCompleteTextViewStyle 99
+int styleable Theme_borderlessButtonStyle 54
+int styleable Theme_buttonBarButtonStyle 51
+int styleable Theme_buttonBarNegativeButtonStyle 97
+int styleable Theme_buttonBarNeutralButtonStyle 98
+int styleable Theme_buttonBarPositiveButtonStyle 96
+int styleable Theme_buttonBarStyle 50
+int styleable Theme_buttonStyle 100
+int styleable Theme_buttonStyleSmall 101
+int styleable Theme_checkboxStyle 102
+int styleable Theme_checkedTextViewStyle 103
+int styleable Theme_colorAccent 84
+int styleable Theme_colorButtonNormal 88
+int styleable Theme_colorControlActivated 86
+int styleable Theme_colorControlHighlight 87
+int styleable Theme_colorControlNormal 85
+int styleable Theme_colorPrimary 82
+int styleable Theme_colorPrimaryDark 83
+int styleable Theme_colorSwitchThumbNormal 89
+int styleable Theme_controlBackground 90
+int styleable Theme_dialogPreferredPadding 43
+int styleable Theme_dialogTheme 42
+int styleable Theme_dividerHorizontal 56
+int styleable Theme_dividerVertical 55
+int styleable Theme_dropDownListViewStyle 74
+int styleable Theme_dropdownListPreferredItemHeight 46
+int styleable Theme_editTextBackground 63
+int styleable Theme_editTextColor 62
+int styleable Theme_editTextStyle 104
+int styleable Theme_homeAsUpIndicator 48
+int styleable Theme_imageButtonStyle 64
+int styleable Theme_listChoiceBackgroundIndicator 81
+int styleable Theme_listDividerAlertDialog 44
+int styleable Theme_listPopupWindowStyle 75
+int styleable Theme_listPreferredItemHeight 69
+int styleable Theme_listPreferredItemHeightLarge 71
+int styleable Theme_listPreferredItemHeightSmall 70
+int styleable Theme_listPreferredItemPaddingLeft 72
+int styleable Theme_listPreferredItemPaddingRight 73
+int styleable Theme_panelBackground 78
+int styleable Theme_panelMenuListTheme 80
+int styleable Theme_panelMenuListWidth 79
+int styleable Theme_popupMenuStyle 60
+int styleable Theme_popupWindowStyle 61
+int styleable Theme_radioButtonStyle 105
+int styleable Theme_ratingBarStyle 106
+int styleable Theme_searchViewStyle 68
+int styleable Theme_seekBarStyle 107
+int styleable Theme_selectableItemBackground 52
+int styleable Theme_selectableItemBackgroundBorderless 53
+int styleable Theme_spinnerDropDownItemStyle 47
+int styleable Theme_spinnerStyle 108
+int styleable Theme_switchStyle 109
+int styleable Theme_textAppearanceLargePopupMenu 40
+int styleable Theme_textAppearanceListItem 76
+int styleable Theme_textAppearanceListItemSmall 77
+int styleable Theme_textAppearanceSearchResultSubtitle 66
+int styleable Theme_textAppearanceSearchResultTitle 65
+int styleable Theme_textAppearanceSmallPopupMenu 41
+int styleable Theme_textColorAlertDialogListItem 95
+int styleable Theme_textColorSearchUrl 67
+int styleable Theme_toolbarNavigationButtonStyle 59
+int styleable Theme_toolbarStyle 58
+int styleable Theme_windowActionBar 2
+int styleable Theme_windowActionBarOverlay 4
+int styleable Theme_windowActionModeOverlay 5
+int styleable Theme_windowFixedHeightMajor 9
+int styleable Theme_windowFixedHeightMinor 7
+int styleable Theme_windowFixedWidthMajor 6
+int styleable Theme_windowFixedWidthMinor 8
+int styleable Theme_windowMinWidthMajor 10
+int styleable Theme_windowMinWidthMinor 11
+int styleable Theme_windowNoTitle 3
+int[] styleable Toolbar { 0x010100af, 0x01010140, 0x7f010003, 0x7f010006, 0x7f01000a, 0x7f010016, 0x7f010017, 0x7f010018, 0x7f010019, 0x7f01001b, 0x7f0100ba, 0x7f0100bb, 0x7f0100bc, 0x7f0100bd, 0x7f0100be, 0x7f0100bf, 0x7f0100c0, 0x7f0100c1, 0x7f0100c2, 0x7f0100c3, 0x7f0100c4, 0x7f0100c5, 0x7f0100c6, 0x7f0100c7, 0x7f0100c8 }
+int styleable Toolbar_android_gravity 0
+int styleable Toolbar_android_minHeight 1
+int styleable Toolbar_collapseContentDescription 19
+int styleable Toolbar_collapseIcon 18
+int styleable Toolbar_contentInsetEnd 6
+int styleable Toolbar_contentInsetLeft 7
+int styleable Toolbar_contentInsetRight 8
+int styleable Toolbar_contentInsetStart 5
+int styleable Toolbar_logo 4
+int styleable Toolbar_logoDescription 22
+int styleable Toolbar_maxButtonHeight 17
+int styleable Toolbar_navigationContentDescription 21
+int styleable Toolbar_navigationIcon 20
+int styleable Toolbar_popupTheme 9
+int styleable Toolbar_subtitle 3
+int styleable Toolbar_subtitleTextAppearance 11
+int styleable Toolbar_subtitleTextColor 24
+int styleable Toolbar_title 2
+int styleable Toolbar_titleMarginBottom 16
+int styleable Toolbar_titleMarginEnd 14
+int styleable Toolbar_titleMarginStart 13
+int styleable Toolbar_titleMarginTop 15
+int styleable Toolbar_titleMargins 12
+int styleable Toolbar_titleTextAppearance 10
+int styleable Toolbar_titleTextColor 23
+int[] styleable View { 0x01010000, 0x010100da, 0x7f0100c9, 0x7f0100ca, 0x7f0100cb }
+int styleable View_android_focusable 1
+int styleable View_android_theme 0
+int styleable View_paddingEnd 3
+int styleable View_paddingStart 2
+int styleable View_theme 4
+int[] styleable ViewBackgroundHelper { 0x010100d4, 0x7f0100cc, 0x7f0100cd }
+int styleable ViewBackgroundHelper_android_background 0
+int styleable ViewBackgroundHelper_backgroundTint 1
+int styleable ViewBackgroundHelper_backgroundTintMode 2
+int[] styleable ViewStubCompat { 0x010100d0, 0x010100f2, 0x010100f3 }
+int styleable ViewStubCompat_android_id 0
+int styleable ViewStubCompat_android_inflatedId 2
+int styleable ViewStubCompat_android_layout 1
diff --git a/libs/android-support-appcompat-v7-exploded-aar/README.txt b/libs/android-support-appcompat-v7-exploded-aar/README.txt
new file mode 100644 (file)
index 0000000..8e8de05
--- /dev/null
@@ -0,0 +1,10 @@
+Library Project including compatibility ActionBar.
+
+This can be used by an Android project to provide
+access to ActionBar on applications running on API 7+.
+
+There is technically no source, but the src folder is necessary
+to ensure that the build system works.  The content is actually
+located in libs/android-support-v7-appcompat.jar.
+The accompanying resources must also be included in the application.
+
diff --git a/libs/android-support-appcompat-v7-exploded-aar/assets/.gitignore b/libs/android-support-appcompat-v7-exploded-aar/assets/.gitignore
deleted file mode 100644 (file)
index 86d0cb2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# Ignore everything in this directory
-*
-# Except this file
-!.gitignore
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v4.jar b/libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v4.jar
new file mode 100644 (file)
index 0000000..aa0b1a5
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v4.jar differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v7-appcompat.jar b/libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v7-appcompat.jar
new file mode 100644 (file)
index 0000000..f9ad396
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v7-appcompat.jar differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/libs/appcompat-v7-19.1.0.jar b/libs/android-support-appcompat-v7-exploded-aar/libs/appcompat-v7-19.1.0.jar
deleted file mode 100644 (file)
index 07883a3..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/libs/appcompat-v7-19.1.0.jar and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/libs/support-v4-19.1.0.jar b/libs/android-support-appcompat-v7-exploded-aar/libs/support-v4-19.1.0.jar
deleted file mode 100644 (file)
index d0b8535..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/libs/support-v4-19.1.0.jar and /dev/null differ
index dfa4dd0..b2ef7dc 100644 (file)
@@ -11,5 +11,5 @@
 #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
 
 # Project target.
-target=android-16
+target=android-23
 android.library=true
index 8e67231..62a06d3 100644 (file)
@@ -17,4 +17,4 @@
 <alpha xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:fromAlpha="0.0" android:toAlpha="1.0"
-       android:duration="@android:integer/config_mediumAnimTime" /><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/anim/abc_fade_in.xml -->
\ No newline at end of file
+       android:duration="@android:integer/config_mediumAnimTime" /><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/anim/abc_fade_in.xml -->
\ No newline at end of file
index 166a99b..a4ab6aa 100644 (file)
@@ -17,4 +17,4 @@
 <alpha xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:fromAlpha="1.0" android:toAlpha="0.0"
-       android:duration="@android:integer/config_mediumAnimTime" /><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/anim/abc_fade_out.xml -->
\ No newline at end of file
+       android:duration="@android:integer/config_mediumAnimTime" /><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/anim/abc_fade_out.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_grow_fade_in_from_bottom.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_grow_fade_in_from_bottom.xml
new file mode 100644 (file)
index 0000000..6941d0b
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* //device/apps/common/res/anim/fade_in.xml
+**
+** Copyright 2014, 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.
+*/
+-->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false">
+    <scale     android:interpolator="@android:anim/decelerate_interpolator"
+              android:fromXScale="0.9" android:toXScale="1.0"
+              android:fromYScale="0.9" android:toYScale="1.0"
+              android:pivotX="50%" android:pivotY="100%"
+              android:duration="@integer/abc_config_activityDefaultDur" />
+    <alpha     android:interpolator="@android:anim/decelerate_interpolator"
+              android:fromAlpha="0.0" android:toAlpha="1.0"
+              android:duration="@integer/abc_config_activityShortDur" />
+</set><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/anim/abc_grow_fade_in_from_bottom.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_popup_enter.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_popup_enter.xml
new file mode 100644 (file)
index 0000000..490c976
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+     android:shareInterpolator="false" >
+    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
+           android:interpolator="@android:anim/decelerate_interpolator"
+           android:duration="@integer/abc_config_activityShortDur" />
+</set><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/anim/abc_popup_enter.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_popup_exit.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_popup_exit.xml
new file mode 100644 (file)
index 0000000..713355c
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 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.
+-->
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+     android:shareInterpolator="false" >
+    <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
+           android:interpolator="@android:anim/decelerate_interpolator"
+           android:duration="@integer/abc_config_activityShortDur" />
+</set><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/anim/abc_popup_exit.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_shrink_fade_out_from_bottom.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_shrink_fade_out_from_bottom.xml
new file mode 100644 (file)
index 0000000..6a47a5e
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 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.
+  -->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false">
+    <scale     android:interpolator="@android:anim/decelerate_interpolator"
+              android:fromXScale="1.0" android:toXScale="0.9"
+              android:fromYScale="1.0" android:toYScale="0.9"
+              android:pivotX="50%" android:pivotY="100%"
+              android:duration="@integer/abc_config_activityDefaultDur" />
+    <alpha     android:interpolator="@android:anim/decelerate_interpolator"
+              android:fromAlpha="1.0" android:toAlpha="0.0"
+              android:duration="@integer/abc_config_activityShortDur" />
+</set><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/anim/abc_shrink_fade_out_from_bottom.xml -->
\ No newline at end of file
index 0a25ef9..a0f5f98 100644 (file)
@@ -17,4 +17,4 @@
            android:interpolator="@android:anim/decelerate_interpolator"
            android:fromYDelta="50%p" android:toYDelta="0"
            android:duration="@android:integer/config_mediumAnimTime"/>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/anim/abc_slide_in_bottom.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/anim/abc_slide_in_bottom.xml -->
\ No newline at end of file
index b1a3ef7..26b5eab 100644 (file)
@@ -16,4 +16,4 @@
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
            android:interpolator="@android:anim/decelerate_interpolator"
            android:fromYDelta="-50%p" android:toYDelta="0"
-           android:duration="@android:integer/config_mediumAnimTime"/><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/anim/abc_slide_in_top.xml -->
\ No newline at end of file
+           android:duration="@android:integer/config_mediumAnimTime"/><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/anim/abc_slide_in_top.xml -->
\ No newline at end of file
index 0a05fd4..d222f1f 100644 (file)
@@ -16,4 +16,4 @@
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
            android:interpolator="@android:anim/accelerate_interpolator"
            android:fromYDelta="0" android:toYDelta="50%p"
-           android:duration="@android:integer/config_mediumAnimTime"/><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/anim/abc_slide_out_bottom.xml -->
\ No newline at end of file
+           android:duration="@android:integer/config_mediumAnimTime"/><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/anim/abc_slide_out_bottom.xml -->
\ No newline at end of file
index 73a2cfd..56ffd1a 100644 (file)
@@ -16,4 +16,4 @@
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
            android:interpolator="@android:anim/accelerate_interpolator"
            android:fromYDelta="0" android:toYDelta="-50%p"
-           android:duration="@android:integer/config_mediumAnimTime"/><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/anim/abc_slide_out_top.xml -->
\ No newline at end of file
+           android:duration="@android:integer/config_mediumAnimTime"/><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/anim/abc_slide_out_top.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color-v11/abc_background_cache_hint_selector_material_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color-v11/abc_background_cache_hint_selector_material_dark.xml
new file mode 100644 (file)
index 0000000..00b3dbe
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_accelerated="false" android:color="@color/background_material_dark" />
+    <item android:color="@android:color/transparent" />
+</selector>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color-v11/abc_background_cache_hint_selector_material_dark.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color-v11/abc_background_cache_hint_selector_material_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color-v11/abc_background_cache_hint_selector_material_light.xml
new file mode 100644 (file)
index 0000000..7748146
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_accelerated="false" android:color="@color/background_material_light" />
+    <item android:color="@android:color/transparent" />
+</selector>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color-v11/abc_background_cache_hint_selector_material_light.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color-v23/abc_color_highlight_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color-v23/abc_color_highlight_material.xml
new file mode 100644 (file)
index 0000000..cffdbe4
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_checked="true"
+          android:state_enabled="true"
+          android:alpha="@dimen/highlight_alpha_material_colored"
+          android:color="?android:attr/colorControlActivated" />
+    <item android:color="?android:attr/colorControlHighlight" />
+</selector><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color-v23/abc_color_highlight_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_background_cache_hint_selector_material_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_background_cache_hint_selector_material_dark.xml
new file mode 100644 (file)
index 0000000..6210a09
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@color/background_material_dark" />
+</selector>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color/abc_background_cache_hint_selector_material_dark.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_background_cache_hint_selector_material_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_background_cache_hint_selector_material_light.xml
new file mode 100644 (file)
index 0000000..21039eb
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@color/background_material_light" />
+</selector>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color/abc_background_cache_hint_selector_material_light.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_disable_only_material_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_disable_only_material_dark.xml
new file mode 100644 (file)
index 0000000..a4d9c37
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false" android:color="@color/bright_foreground_disabled_material_dark"/>
+    <item android:color="@color/bright_foreground_material_dark"/>
+</selector>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color/abc_primary_text_disable_only_material_dark.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_disable_only_material_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_disable_only_material_light.xml
new file mode 100644 (file)
index 0000000..bb5ce2f
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false" android:color="@color/bright_foreground_disabled_material_light"/>
+    <item android:color="@color/bright_foreground_material_light"/>
+</selector>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color/abc_primary_text_disable_only_material_light.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_material_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_material_dark.xml
new file mode 100644 (file)
index 0000000..8c9779b
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false" android:color="@color/primary_text_disabled_material_dark"/>
+    <item android:color="@color/primary_text_default_material_dark"/>
+</selector>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color/abc_primary_text_material_dark.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_material_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_material_light.xml
new file mode 100644 (file)
index 0000000..4dc65b3
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false" android:color="@color/primary_text_disabled_material_light"/>
+    <item android:color="@color/primary_text_default_material_light"/>
+</selector>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color/abc_primary_text_material_light.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_search_url_text.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_search_url_text.xml
new file mode 100644 (file)
index 0000000..3a5e9fd
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_pressed="true" android:color="@color/abc_search_url_text_pressed"/>
+    <item android:state_selected="true" android:color="@color/abc_search_url_text_selected"/>
+    <item android:color="@color/abc_search_url_text_normal"/>
+</selector><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color/abc_search_url_text.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_search_url_text_holo.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_search_url_text_holo.xml
deleted file mode 100644 (file)
index 42aa346..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true" android:color="@color/abc_search_url_text_pressed"/>
-    <item android:state_selected="true" android:color="@color/abc_search_url_text_selected"/>
-    <item android:color="@color/abc_search_url_text_normal"/> <!-- not selected -->
-</selector><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/color/abc_search_url_text_holo.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_secondary_text_material_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_secondary_text_material_dark.xml
new file mode 100644 (file)
index 0000000..3447887
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false" android:color="@color/secondary_text_disabled_material_dark"/>
+    <item android:color="@color/secondary_text_default_material_dark"/>
+</selector>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color/abc_secondary_text_material_dark.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_secondary_text_material_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_secondary_text_material_light.xml
new file mode 100644 (file)
index 0000000..6f14398
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false" android:color="@color/secondary_text_disabled_material_light"/>
+    <item android:color="@color/secondary_text_default_material_light"/>
+</selector>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color/abc_secondary_text_material_light.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/switch_thumb_material_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/switch_thumb_material_dark.xml
new file mode 100644 (file)
index 0000000..4179a27
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false" android:color="@color/switch_thumb_disabled_material_dark"/>
+    <item android:color="@color/switch_thumb_normal_material_dark"/>
+</selector><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color/switch_thumb_material_dark.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/switch_thumb_material_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/switch_thumb_material_light.xml
new file mode 100644 (file)
index 0000000..e832306
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false" android:color="@color/switch_thumb_disabled_material_light"/>
+    <item android:color="@color/switch_thumb_normal_material_light"/>
+</selector><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/color/switch_thumb_material_light.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_solid_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_solid_dark_holo.9.png
deleted file mode 100644 (file)
index 769463b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_solid_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_solid_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_solid_light_holo.9.png
deleted file mode 100644 (file)
index 7305047..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_solid_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_transparent_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_transparent_dark_holo.9.png
deleted file mode 100644 (file)
index 712a551..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_transparent_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_transparent_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_transparent_light_holo.9.png
deleted file mode 100644 (file)
index bf3b943..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_bottom_transparent_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_holo_dark.9.png
deleted file mode 100644 (file)
index 6c14157..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_holo_light.9.png
deleted file mode 100644 (file)
index f4ff16b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..4d9f861
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_solid_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_solid_dark_holo.9.png
deleted file mode 100644 (file)
index cbbaec5..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_solid_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_solid_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_solid_light_holo.9.png
deleted file mode 100644 (file)
index af917e5..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_solid_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_solid_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_solid_dark_holo.9.png
deleted file mode 100644 (file)
index 0520e5a..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_solid_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_solid_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_solid_light_holo.9.png
deleted file mode 100644 (file)
index e3e3f93..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_solid_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_transparent_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_transparent_dark_holo.9.png
deleted file mode 100644 (file)
index 1e39572..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_transparent_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_transparent_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_transparent_light_holo.9.png
deleted file mode 100644 (file)
index a16db85..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_stacked_transparent_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_transparent_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_transparent_dark_holo.9.png
deleted file mode 100644 (file)
index 0eff695..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_transparent_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_transparent_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_transparent_light_holo.9.png
deleted file mode 100644 (file)
index 219b170..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_transparent_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_000.png
new file mode 100644 (file)
index 0000000..9911008
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_015.png
new file mode 100644 (file)
index 0000000..69ff9dd
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_015.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_000.png
new file mode 100644 (file)
index 0000000..9218981
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_015.png
new file mode 100644 (file)
index 0000000..a588576
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_015.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_off_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_off_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..b184dbc
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_off_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_on_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_on_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..6549c52
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_on_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00001.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00001.9.png
new file mode 100644 (file)
index 0000000..88f1767
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00001.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00012.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00012.9.png
new file mode 100644 (file)
index 0000000..d5e1a00
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00012.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_bottom_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_bottom_holo_dark.9.png
deleted file mode 100644 (file)
index 1d836f6..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_bottom_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_bottom_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_bottom_holo_light.9.png
deleted file mode 100644 (file)
index 5818666..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_bottom_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_holo_dark.9.png
deleted file mode 100644 (file)
index 564fb34..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_holo_light.9.png
deleted file mode 100644 (file)
index ae21b76..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..2264398
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_holo_dark.png
deleted file mode 100644 (file)
index 897a1c1..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_holo_light.png
deleted file mode 100644 (file)
index 0c89f71..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..f61e8e3
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_cab_done_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_cab_done_holo_dark.png
deleted file mode 100644 (file)
index d8662e3..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_cab_done_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_cab_done_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_cab_done_holo_light.png
deleted file mode 100644 (file)
index ed03f62..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_cab_done_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_disabled.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_disabled.png
deleted file mode 100644 (file)
index d97c342..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_disabled.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..0fd1556
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_normal.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_normal.png
deleted file mode 100644 (file)
index 33ad8d4..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_normal.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_search_api_disabled_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_search_api_disabled_holo_light.png
deleted file mode 100644 (file)
index 3edbd74..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_search_api_disabled_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_search_api_holo_light.png
deleted file mode 100644 (file)
index 90db01b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_holo_dark.png
deleted file mode 100644 (file)
index 83f36a9..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_holo_light.png
deleted file mode 100644 (file)
index a3cc21e..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..65ccd8f
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go.png
deleted file mode 100644 (file)
index 97b825e..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go_search_api_holo_light.png
deleted file mode 100644 (file)
index 7e1ba2a..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..b9ff1db
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..70eb073
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_cut_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..e78bcaf
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_cut_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..9a87820
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png
deleted file mode 100644 (file)
index 2abc458..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_light.png
deleted file mode 100644 (file)
index bb6aef1..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_paste_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_paste_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..8610c50
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_paste_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_selectall_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_selectall_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..2d971a9
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_selectall_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_holo_dark.png
deleted file mode 100644 (file)
index 6f747c8..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_holo_light.png
deleted file mode 100644 (file)
index 682b2fd..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..ee40812
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search.png
deleted file mode 100644 (file)
index bf8bd66..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search_api_holo_light.png
deleted file mode 100644 (file)
index 72e207b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..b9baa0c
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search.png
deleted file mode 100644 (file)
index 66d14ae..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search_api_holo_light.png
deleted file mode 100644 (file)
index 3481c98..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..a87d2cd
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_holo_dark.9.png
deleted file mode 100644 (file)
index 986ab0b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_holo_light.9.png
deleted file mode 100644 (file)
index 0279e17..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..1e571f5
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_mtrl_alpha.9.png differ
index 5552708..c09ec90 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_focused_holo.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_focused_holo.9.png differ
index 4ea7afa..62fbd2c 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_longpressed_holo.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_longpressed_holo.9.png differ
index 5654cd6..2f6ef91 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png differ
index 5654cd6..863ce95 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_pressed_holo_light.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_pressed_holo_light.9.png differ
index f6fd30d..b6d4677 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png differ
index ca8e9a2..e01c739 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_dropdown_panel_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_dropdown_panel_holo_dark.9.png
deleted file mode 100644 (file)
index 72ee35f..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_dropdown_panel_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_dropdown_panel_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_dropdown_panel_holo_light.9.png
deleted file mode 100644 (file)
index 0d1f9bf..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_dropdown_panel_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_holo_dark.9.png
deleted file mode 100644 (file)
index 465ee6d..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_holo_light.9.png
deleted file mode 100644 (file)
index 76a5c53..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_mtrl_mult.9.png
new file mode 100644 (file)
index 0000000..2cf413c
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_mtrl_mult.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_popup_background_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_popup_background_mtrl_mult.9.png
new file mode 100644 (file)
index 0000000..9d8451a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_popup_background_mtrl_mult.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_control_off_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_control_off_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..4efe298
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_control_off_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_control_to_pressed_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_control_to_pressed_mtrl_000.png
new file mode 100644 (file)
index 0000000..543dec3
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_control_to_pressed_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_control_to_pressed_mtrl_005.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_control_to_pressed_mtrl_005.png
new file mode 100644 (file)
index 0000000..9930b3a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_control_to_pressed_mtrl_005.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_primary_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_primary_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..4cfb1a7
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_primary_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_track_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..32ddf7a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_scrubber_track_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_default_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_default_holo_dark.9.png
deleted file mode 100644 (file)
index 88f8765..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_default_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_default_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_default_holo_light.9.png
deleted file mode 100644 (file)
index fa68a13..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_default_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_disabled_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_disabled_holo_dark.9.png
deleted file mode 100644 (file)
index 78c63cb..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_disabled_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_disabled_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_disabled_holo_light.9.png
deleted file mode 100644 (file)
index e13a9f8..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_disabled_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_focused_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_focused_holo_dark.9.png
deleted file mode 100644 (file)
index 26d2e16..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_focused_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_focused_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_focused_holo_light.9.png
deleted file mode 100644 (file)
index 00ae92a..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_focused_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_pressed_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_pressed_holo_dark.9.png
deleted file mode 100644 (file)
index dc20a8d..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_pressed_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_pressed_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_pressed_holo_light.9.png
deleted file mode 100644 (file)
index 272a2a1..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_ab_pressed_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_mtrl_am_alpha.9.png
new file mode 100644 (file)
index 0000000..9de0263
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_mtrl_am_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_switch_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_switch_track_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..6ad9b1d
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_switch_track_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_indicator_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_indicator_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..4b0b10a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_indicator_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_selected_focused_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_selected_focused_holo.9.png
deleted file mode 100644 (file)
index 673e3bf..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_selected_focused_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_selected_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_selected_holo.9.png
deleted file mode 100644 (file)
index d57df98..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_selected_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_selected_pressed_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_selected_pressed_holo.9.png
deleted file mode 100644 (file)
index 6278eef..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_selected_pressed_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_unselected_pressed_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_unselected_pressed_holo.9.png
deleted file mode 100644 (file)
index aadc6f8..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_unselected_pressed_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_activated_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..5b13bc1
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_activated_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_default_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..0078bf6
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_default_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_activated_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..a74ab26
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_activated_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_holo_dark.9.png
deleted file mode 100644 (file)
index 70c0e73..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_holo_light.9.png
deleted file mode 100644 (file)
index 36e71d8..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..6282df4
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_default_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_default_holo_dark.9.png
deleted file mode 100644 (file)
index 4be4af5..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_default_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_default_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_default_holo_light.9.png
deleted file mode 100644 (file)
index e72193f..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_default_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_selected_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_selected_holo_dark.9.png
deleted file mode 100644 (file)
index 8f20b9d..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_selected_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_selected_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_selected_holo_light.9.png
deleted file mode 100644 (file)
index 04f657e..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_right_selected_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_selected_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_selected_holo_dark.9.png
deleted file mode 100644 (file)
index 99309ef..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_selected_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_selected_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_selected_holo_light.9.png
deleted file mode 100644 (file)
index 9bde7fb..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_selected_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_ab_back_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..2e1062f
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_ab_back_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..a262b0c
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_cut_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..9ed43ca
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_cut_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_spinner_mtrl_am_alpha.9.png
new file mode 100644 (file)
index 0000000..4cd8a27
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_spinner_mtrl_am_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_ab_back_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..e300b7c
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_ab_back_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..05b1e11
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_cut_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..aa7b323
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_cut_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_spinner_mtrl_am_alpha.9.png
new file mode 100644 (file)
index 0000000..d02a5da
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_spinner_mtrl_am_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..a188f2f
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..e95ba94
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_cut_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..87bf8d3
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_cut_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_spinner_mtrl_am_alpha.9.png
new file mode 100644 (file)
index 0000000..b097e48
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_spinner_mtrl_am_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..de37158
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..ac86165
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..8b2adf6
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_spinner_mtrl_am_alpha.9.png
new file mode 100644 (file)
index 0000000..0b89504
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_spinner_mtrl_am_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..7dc6934
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..884cd12
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..90fe333
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png
new file mode 100644 (file)
index 0000000..930630d
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_solid_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_solid_dark_holo.9.png
deleted file mode 100644 (file)
index b229367..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_solid_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_solid_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_solid_light_holo.9.png
deleted file mode 100644 (file)
index 0706c8a..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_solid_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_transparent_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_transparent_dark_holo.9.png
deleted file mode 100644 (file)
index d814d02..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_transparent_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_transparent_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_transparent_light_holo.9.png
deleted file mode 100644 (file)
index b139c8e..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_bottom_transparent_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_holo_dark.9.png
deleted file mode 100644 (file)
index ed4ba34..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_holo_light.9.png
deleted file mode 100644 (file)
index 8f10bd5..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..fa0ed8f
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_solid_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_solid_dark_holo.9.png
deleted file mode 100644 (file)
index 743d00b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_solid_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_solid_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_solid_light_holo.9.png
deleted file mode 100644 (file)
index 17c1fb9..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_solid_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_solid_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_solid_dark_holo.9.png
deleted file mode 100644 (file)
index 007a4b2..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_solid_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_solid_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_solid_light_holo.9.png
deleted file mode 100644 (file)
index ad6e1a4..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_solid_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_transparent_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_transparent_dark_holo.9.png
deleted file mode 100644 (file)
index 0ad6c88..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_transparent_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_transparent_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_transparent_light_holo.9.png
deleted file mode 100644 (file)
index 19b50ab..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_stacked_transparent_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_transparent_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_transparent_dark_holo.9.png
deleted file mode 100644 (file)
index ad980b1..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_transparent_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_transparent_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_transparent_light_holo.9.png
deleted file mode 100644 (file)
index 60e6c52..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_transparent_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_000.png
new file mode 100644 (file)
index 0000000..7a9fcbc
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_015.png
new file mode 100644 (file)
index 0000000..3b052e5
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_015.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_000.png
new file mode 100644 (file)
index 0000000..96a8693
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_015.png
new file mode 100644 (file)
index 0000000..827d634
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_015.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_off_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_off_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..0908475
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_off_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_on_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_on_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..a5a437f
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_on_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00001.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00001.9.png
new file mode 100644 (file)
index 0000000..d890a62
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00001.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00012.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00012.9.png
new file mode 100644 (file)
index 0000000..0620439
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00012.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_bottom_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_bottom_holo_dark.9.png
deleted file mode 100644 (file)
index d8f1c8b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_bottom_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_bottom_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_bottom_holo_light.9.png
deleted file mode 100644 (file)
index 31e4989..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_bottom_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_holo_dark.9.png
deleted file mode 100644 (file)
index 7c2cbe5..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_holo_light.9.png
deleted file mode 100644 (file)
index 30cbdc1..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..038e000
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_holo_dark.png
deleted file mode 100644 (file)
index df2d3d1..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_holo_light.png
deleted file mode 100644 (file)
index b2aa9c2..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..8043d4c
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_cab_done_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_cab_done_holo_dark.png
deleted file mode 100644 (file)
index a17b6a7..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_cab_done_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_cab_done_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_cab_done_holo_light.png
deleted file mode 100644 (file)
index b28b3b5..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_cab_done_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_disabled.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_disabled.png
deleted file mode 100644 (file)
index 79228ba..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_disabled.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..e80681a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_normal.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_normal.png
deleted file mode 100644 (file)
index 86944a8..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_normal.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_search_api_disabled_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_search_api_disabled_holo_light.png
deleted file mode 100644 (file)
index c0bdf06..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_search_api_disabled_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_search_api_holo_light.png
deleted file mode 100644 (file)
index 15b86cb..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_holo_dark.png
deleted file mode 100644 (file)
index 844c99c..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_holo_light.png
deleted file mode 100644 (file)
index 86c170e..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..9603e76
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go.png
deleted file mode 100644 (file)
index bf19833..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go_search_api_holo_light.png
deleted file mode 100644 (file)
index 8518498..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..44c1423
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..80c0695
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_cut_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..3966d6a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_cut_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..017e45e
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png
deleted file mode 100644 (file)
index ba704b6..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_light.png
deleted file mode 100644 (file)
index 01d6816..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_paste_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_paste_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..ec0cff4
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_paste_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_selectall_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_selectall_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..966938b
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_selectall_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_holo_dark.png
deleted file mode 100644 (file)
index 6bf21e3..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_holo_light.png
deleted file mode 100644 (file)
index 70fe31a..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..d05f969
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search.png
deleted file mode 100644 (file)
index 4be72f1..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search_api_holo_light.png
deleted file mode 100644 (file)
index f2e26f8..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..451818c
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search.png
deleted file mode 100644 (file)
index 73c6be6..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search_api_holo_light.png
deleted file mode 100644 (file)
index 71d838e..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..a216da1
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_holo_dark.9.png
deleted file mode 100644 (file)
index 986ab0b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_holo_light.9.png
deleted file mode 100644 (file)
index 0279e17..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..1e571f5
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_mtrl_alpha.9.png differ
index 00f05d8..addb54a 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_focused_holo.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_focused_holo.9.png differ
index 3bf8e03..5fcd5b2 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_longpressed_holo.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_longpressed_holo.9.png differ
index 6e77525..251b989 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png differ
index 6e77525..01efec0 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_pressed_holo_light.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_pressed_holo_light.9.png differ
index 92da2f0..f1d1b61 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png differ
index 42cb646..10851f6 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_dropdown_panel_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_dropdown_panel_holo_dark.9.png
deleted file mode 100644 (file)
index 31dc342..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_dropdown_panel_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_dropdown_panel_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_dropdown_panel_holo_light.9.png
deleted file mode 100644 (file)
index 755c145..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_dropdown_panel_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_holo_dark.9.png
deleted file mode 100644 (file)
index 3677994..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_holo_light.9.png
deleted file mode 100644 (file)
index 02b25f0..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_mtrl_mult.9.png
new file mode 100644 (file)
index 0000000..fe0ec49
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_mtrl_mult.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_popup_background_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_popup_background_mtrl_mult.9.png
new file mode 100644 (file)
index 0000000..5f55cd5
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_popup_background_mtrl_mult.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_control_off_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_control_off_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..10df639
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_control_off_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_control_to_pressed_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_control_to_pressed_mtrl_000.png
new file mode 100644 (file)
index 0000000..f83b1ef
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_control_to_pressed_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_control_to_pressed_mtrl_005.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_control_to_pressed_mtrl_005.png
new file mode 100644 (file)
index 0000000..e9efb20
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_control_to_pressed_mtrl_005.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_primary_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_primary_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..a4ab0a1
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_primary_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_track_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..db9e172
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_scrubber_track_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_default_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_default_holo_dark.9.png
deleted file mode 100644 (file)
index 8d75946..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_default_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_default_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_default_holo_light.9.png
deleted file mode 100644 (file)
index 716560b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_default_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_disabled_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_disabled_holo_dark.9.png
deleted file mode 100644 (file)
index c3ba89c..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_disabled_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_disabled_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_disabled_holo_light.9.png
deleted file mode 100644 (file)
index 67c5358..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_disabled_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_focused_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_focused_holo_dark.9.png
deleted file mode 100644 (file)
index c015f43..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_focused_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_focused_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_focused_holo_light.9.png
deleted file mode 100644 (file)
index 487edc2..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_focused_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_pressed_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_pressed_holo_dark.9.png
deleted file mode 100644 (file)
index 2fa15e7..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_pressed_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_pressed_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_pressed_holo_light.9.png
deleted file mode 100644 (file)
index a964b22..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_ab_pressed_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_mtrl_am_alpha.9.png
new file mode 100644 (file)
index 0000000..ed75cb8
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_mtrl_am_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_switch_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_switch_track_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..00c81fc
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_switch_track_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_indicator_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_indicator_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..12b0a79
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_indicator_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_selected_focused_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_selected_focused_holo.9.png
deleted file mode 100644 (file)
index c9972e7..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_selected_focused_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_selected_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_selected_holo.9.png
deleted file mode 100644 (file)
index 587337c..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_selected_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_selected_pressed_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_selected_pressed_holo.9.png
deleted file mode 100644 (file)
index 155c4fc..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_selected_pressed_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_unselected_pressed_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_unselected_pressed_holo.9.png
deleted file mode 100644 (file)
index b1223fe..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_unselected_pressed_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_activated_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..3ffa251
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_activated_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_default_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..0eb61f1
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_default_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_activated_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..0c766f3
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_activated_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_holo_dark.9.png
deleted file mode 100644 (file)
index 081657e..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_holo_light.9.png
deleted file mode 100644 (file)
index 3f312b4..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..4f66d7a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_default_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_default_holo_dark.9.png
deleted file mode 100644 (file)
index b086fae..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_default_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_default_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_default_holo_light.9.png
deleted file mode 100644 (file)
index 73c336a..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_default_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_selected_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_selected_holo_dark.9.png
deleted file mode 100644 (file)
index 726e0ff..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_selected_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_selected_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_selected_holo_light.9.png
deleted file mode 100644 (file)
index 726e0ff..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_right_selected_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_selected_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_selected_holo_dark.9.png
deleted file mode 100644 (file)
index 1767c16..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_selected_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_selected_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_selected_holo_light.9.png
deleted file mode 100644 (file)
index 1767c16..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_selected_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-v21/abc_action_bar_item_background_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-v21/abc_action_bar_item_background_material.xml
new file mode 100644 (file)
index 0000000..ec1f793
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+        android:color="?android:attr/colorControlHighlight"/><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable-v21/abc_action_bar_item_background_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-v21/abc_btn_colored_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-v21/abc_btn_colored_material.xml
new file mode 100644 (file)
index 0000000..af5b3d3
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+       android:insetLeft="@dimen/abc_button_inset_horizontal_material"
+       android:insetTop="@dimen/abc_button_inset_vertical_material"
+       android:insetRight="@dimen/abc_button_inset_horizontal_material"
+       android:insetBottom="@dimen/abc_button_inset_vertical_material">
+    <ripple android:color="?android:attr/colorControlHighlight">
+        <item>
+            <!-- As we can't use themed ColorStateLists in L, we'll use a Drawable selector which
+                 changes the shape's fill color. -->
+            <selector>
+                <item android:state_enabled="false">
+                    <shape android:shape="rectangle">
+                        <corners android:radius="@dimen/abc_control_corner_material"/>
+                        <solid android:color="?android:attr/colorButtonNormal"/>
+                        <padding android:left="@dimen/abc_button_padding_horizontal_material"
+                                 android:top="@dimen/abc_button_padding_vertical_material"
+                                 android:right="@dimen/abc_button_padding_horizontal_material"
+                                 android:bottom="@dimen/abc_button_padding_vertical_material"/>
+                    </shape>
+                </item>
+                <item>
+                    <shape android:shape="rectangle">
+                        <corners android:radius="@dimen/abc_control_corner_material"/>
+                        <solid android:color="?android:attr/colorAccent"/>
+                        <padding android:left="@dimen/abc_button_padding_horizontal_material"
+                                 android:top="@dimen/abc_button_padding_vertical_material"
+                                 android:right="@dimen/abc_button_padding_horizontal_material"
+                                 android:bottom="@dimen/abc_button_padding_vertical_material"/>
+                    </shape>
+                </item>
+            </selector>
+        </item>
+    </ripple>
+</inset><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable-v21/abc_btn_colored_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-v23/abc_control_background_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-v23/abc_control_background_material.xml
new file mode 100644 (file)
index 0000000..a24c900
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+        android:color="@color/abc_color_highlight_material"
+        android:radius="20dp" /><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable-v23/abc_control_background_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_solid_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_solid_dark_holo.9.png
deleted file mode 100644 (file)
index 5753346..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_solid_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_solid_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_solid_light_holo.9.png
deleted file mode 100644 (file)
index 8155fe8..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_solid_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_transparent_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_transparent_dark_holo.9.png
deleted file mode 100644 (file)
index 6cee9a1..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_transparent_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_transparent_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_transparent_light_holo.9.png
deleted file mode 100644 (file)
index fa4d76a..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_bottom_transparent_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_holo_dark.9.png
deleted file mode 100644 (file)
index 55099d4..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_holo_light.9.png
deleted file mode 100644 (file)
index 3c4701f..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..6284eaa
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_solid_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_solid_dark_holo.9.png
deleted file mode 100644 (file)
index 6622cba..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_solid_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_solid_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_solid_light_holo.9.png
deleted file mode 100644 (file)
index c427297..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_solid_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_solid_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_solid_dark_holo.9.png
deleted file mode 100644 (file)
index a0d9c1b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_solid_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_solid_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_solid_light_holo.9.png
deleted file mode 100644 (file)
index d36f99f..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_solid_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_transparent_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_transparent_dark_holo.9.png
deleted file mode 100644 (file)
index 5ad475d..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_transparent_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_transparent_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_transparent_light_holo.9.png
deleted file mode 100644 (file)
index 6ade5ee..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_stacked_transparent_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_transparent_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_transparent_dark_holo.9.png
deleted file mode 100644 (file)
index 719b923..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_transparent_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_transparent_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_transparent_light_holo.9.png
deleted file mode 100644 (file)
index 6da264d..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_transparent_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_000.png
new file mode 100644 (file)
index 0000000..4902520
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_015.png
new file mode 100644 (file)
index 0000000..59a683a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_015.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_000.png
new file mode 100644 (file)
index 0000000..03bf49c
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_015.png
new file mode 100644 (file)
index 0000000..342323b
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_015.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_off_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_off_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..c0333f9
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_off_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_on_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_on_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..2f29c39
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_on_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00001.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00001.9.png
new file mode 100644 (file)
index 0000000..a854864
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00001.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00012.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00012.9.png
new file mode 100644 (file)
index 0000000..726b1dc
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00012.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_bottom_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_bottom_holo_dark.9.png
deleted file mode 100644 (file)
index 0bd0980..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_bottom_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_bottom_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_bottom_holo_light.9.png
deleted file mode 100644 (file)
index 43ed26d..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_bottom_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_holo_dark.9.png
deleted file mode 100644 (file)
index 6b31579..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_holo_light.9.png
deleted file mode 100644 (file)
index df0121b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..600178a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_holo_dark.png
deleted file mode 100644 (file)
index 8ded62f..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_holo_light.png
deleted file mode 100644 (file)
index 517e9f7..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..c465e82
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_cab_done_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_cab_done_holo_dark.png
deleted file mode 100644 (file)
index 2e06dd0..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_cab_done_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_cab_done_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_cab_done_holo_light.png
deleted file mode 100644 (file)
index bb19810..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_cab_done_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_disabled.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_disabled.png
deleted file mode 100644 (file)
index e35c5f0..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_disabled.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..76e07f0
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_normal.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_normal.png
deleted file mode 100644 (file)
index f9dee98..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_normal.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_search_api_disabled_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_search_api_disabled_holo_light.png
deleted file mode 100644 (file)
index 7fd7aeb..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_search_api_disabled_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_search_api_holo_light.png
deleted file mode 100644 (file)
index 53cfbd3..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_holo_dark.png
deleted file mode 100644 (file)
index d8faf90..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_holo_light.png
deleted file mode 100644 (file)
index e7c7280..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..1015e1f
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go.png
deleted file mode 100644 (file)
index 1e2dcfa..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go_search_api_holo_light.png
deleted file mode 100644 (file)
index f12eafc..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..b3fa6bc
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..c8a6d25
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_cut_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..3c5e683
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_cut_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..f87733a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png
deleted file mode 100644 (file)
index a92fb1d..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png
deleted file mode 100644 (file)
index 930ca8d..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_paste_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_paste_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..9aabc43
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_paste_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_selectall_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_selectall_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..c039c8e
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_selectall_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_holo_dark.png
deleted file mode 100644 (file)
index 45a0f1d..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_holo_light.png
deleted file mode 100644 (file)
index 528e554..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..b57ee19
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search.png
deleted file mode 100644 (file)
index 998f91b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search_api_holo_light.png
deleted file mode 100644 (file)
index a4cdf1c..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..76f2696
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search.png
deleted file mode 100644 (file)
index c625a36..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search_api_holo_light.png
deleted file mode 100644 (file)
index c332ba0..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..d0385ba
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_holo_dark.9.png
deleted file mode 100644 (file)
index e62f011..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_holo_light.9.png
deleted file mode 100644 (file)
index 65061c0..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..1e571f5
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_mtrl_alpha.9.png differ
index b545f8e..67c25ae 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_focused_holo.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_focused_holo.9.png differ
index eda10e6..17c34a1 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_longpressed_holo.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_longpressed_holo.9.png differ
index e4b3393..988548a 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png differ
index e4b3393..15fcf6a 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png differ
index 88726b6..65275b3 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png differ
index c6a7d4d..5b58e76 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_dark.9.png
deleted file mode 100644 (file)
index abc48f8..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_light.9.png
deleted file mode 100644 (file)
index 48905ed..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_dark.9.png
deleted file mode 100644 (file)
index c1ad023..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_light.9.png
deleted file mode 100644 (file)
index a1e33d6..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png
new file mode 100644 (file)
index 0000000..09d1022
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_popup_background_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_popup_background_mtrl_mult.9.png
new file mode 100644 (file)
index 0000000..b5dd854
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_popup_background_mtrl_mult.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_control_off_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_control_off_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..138f643
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_control_off_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_control_to_pressed_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_control_to_pressed_mtrl_000.png
new file mode 100644 (file)
index 0000000..cd41d74
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_control_to_pressed_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_control_to_pressed_mtrl_005.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_control_to_pressed_mtrl_005.png
new file mode 100644 (file)
index 0000000..8d67525
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_control_to_pressed_mtrl_005.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_primary_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_primary_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..2b4734d
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_primary_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_track_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..805cb29
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_scrubber_track_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_default_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_default_holo_dark.9.png
deleted file mode 100644 (file)
index c43293d..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_default_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_default_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_default_holo_light.9.png
deleted file mode 100644 (file)
index 3dc481e..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_default_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_dark.9.png
deleted file mode 100644 (file)
index 9a7b173..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_light.9.png
deleted file mode 100644 (file)
index 6888fdc..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_focused_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_focused_holo_dark.9.png
deleted file mode 100644 (file)
index 9408b47..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_focused_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_focused_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_focused_holo_light.9.png
deleted file mode 100644 (file)
index 1cb95d1..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_focused_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_dark.9.png
deleted file mode 100644 (file)
index a3c7711..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_light.9.png
deleted file mode 100644 (file)
index 2a21210..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_mtrl_am_alpha.9.png
new file mode 100644 (file)
index 0000000..bcf6b7f
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_mtrl_am_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_switch_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_switch_track_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..f0752d2
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_switch_track_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_indicator_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_indicator_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..2242d2f
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_indicator_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_selected_focused_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_selected_focused_holo.9.png
deleted file mode 100644 (file)
index 03cfb09..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_selected_focused_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_selected_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_selected_holo.9.png
deleted file mode 100644 (file)
index e4229f2..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_selected_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_selected_pressed_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_selected_pressed_holo.9.png
deleted file mode 100644 (file)
index e862cb1..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_selected_pressed_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_unselected_pressed_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_unselected_pressed_holo.9.png
deleted file mode 100644 (file)
index f1eb673..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_unselected_pressed_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_activated_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..8ff3a83
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_activated_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_default_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..e7e693a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_default_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_activated_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..819171a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_activated_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_holo_dark.9.png
deleted file mode 100644 (file)
index 8fdbbf3..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_holo_light.9.png
deleted file mode 100644 (file)
index 4e9ae43..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..4def8c8
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_default_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_default_holo_dark.9.png
deleted file mode 100644 (file)
index 98f4871..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_default_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_default_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_default_holo_light.9.png
deleted file mode 100644 (file)
index 733373e..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_default_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_dark.9.png
deleted file mode 100644 (file)
index 0c6bb03..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_light.9.png
deleted file mode 100644 (file)
index 0c6bb03..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_selected_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_selected_holo_dark.9.png
deleted file mode 100644 (file)
index e5bfd8a..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_selected_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_selected_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_selected_holo_light.9.png
deleted file mode 100644 (file)
index 1743da6..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_selected_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_solid_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_solid_dark_holo.9.png
deleted file mode 100644 (file)
index ba6f005..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_solid_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_solid_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_solid_light_holo.9.png
deleted file mode 100644 (file)
index 7c7eb77..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_solid_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_transparent_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_transparent_dark_holo.9.png
deleted file mode 100644 (file)
index 62aa5d6..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_transparent_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_transparent_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_transparent_light_holo.9.png
deleted file mode 100644 (file)
index 136d8b6..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_bottom_transparent_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_holo_dark.9.png
deleted file mode 100644 (file)
index d8cdf1a..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_holo_light.9.png
deleted file mode 100644 (file)
index a49a207..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..4eae28f
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_solid_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_solid_dark_holo.9.png
deleted file mode 100644 (file)
index 580d122..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_solid_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_solid_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_solid_light_holo.9.png
deleted file mode 100644 (file)
index 55d96e0..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_solid_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_solid_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_solid_dark_holo.9.png
deleted file mode 100644 (file)
index 1e8a9a9..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_solid_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_solid_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_solid_light_holo.9.png
deleted file mode 100644 (file)
index 4bb233f..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_solid_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_transparent_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_transparent_dark_holo.9.png
deleted file mode 100644 (file)
index e1768ab..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_transparent_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_transparent_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_transparent_light_holo.9.png
deleted file mode 100644 (file)
index 83fbbc4..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_stacked_transparent_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_transparent_dark_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_transparent_dark_holo.9.png
deleted file mode 100644 (file)
index 9f0a2e7..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_transparent_dark_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_transparent_light_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_transparent_light_holo.9.png
deleted file mode 100644 (file)
index b959bd9..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_transparent_light_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_000.png
new file mode 100644 (file)
index 0000000..accf80e
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_015.png
new file mode 100644 (file)
index 0000000..8c82ec3
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_015.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_000.png
new file mode 100644 (file)
index 0000000..8fc0a9b
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_015.png
new file mode 100644 (file)
index 0000000..92b712e
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_015.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_off_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_off_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..78bbeba
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_off_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_on_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_on_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..c4ba8e6
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_on_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png
new file mode 100644 (file)
index 0000000..f026a41
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png
new file mode 100644 (file)
index 0000000..c8b9f68
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_bottom_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_bottom_holo_dark.9.png
deleted file mode 100644 (file)
index 087a6d6..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_bottom_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_bottom_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_bottom_holo_light.9.png
deleted file mode 100644 (file)
index 98d5d33..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_bottom_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_holo_dark.9.png
deleted file mode 100644 (file)
index 30db6bf..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_holo_light.9.png
deleted file mode 100644 (file)
index ced92af..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..f6d2f32
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_holo_dark.png
deleted file mode 100644 (file)
index 05cfc9f..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_holo_light.png
deleted file mode 100644 (file)
index b3a6fb4..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..39178bf
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_cab_done_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_cab_done_holo_dark.png
deleted file mode 100644 (file)
index f06cd48..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_cab_done_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_cab_done_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_cab_done_holo_light.png
deleted file mode 100644 (file)
index 40a448e..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_cab_done_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_disabled.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_disabled.png
deleted file mode 100644 (file)
index 3c74adf..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_disabled.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..f54f4f9
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_normal.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_normal.png
deleted file mode 100644 (file)
index 1312732..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_normal.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_search_api_disabled_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_search_api_disabled_holo_light.png
deleted file mode 100644 (file)
index d9eee29..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_search_api_disabled_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_search_api_holo_light.png
deleted file mode 100644 (file)
index 681b981..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_holo_dark.png
deleted file mode 100644 (file)
index 33c81ce..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_holo_light.png
deleted file mode 100644 (file)
index be3c224..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..65cf0c1
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go.png
deleted file mode 100644 (file)
index 622712b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go_search_api_holo_light.png
deleted file mode 100644 (file)
index def0ac4..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..d041623
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..9dff893
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..a1f8c33
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..28a3bbf
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png
deleted file mode 100644 (file)
index c1aa1c2..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png
deleted file mode 100644 (file)
index d856d2b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..29a4e52
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_selectall_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_selectall_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..162ab98
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_selectall_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_holo_dark.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_holo_dark.png
deleted file mode 100644 (file)
index 22ddd92..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_holo_dark.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_holo_light.png
deleted file mode 100644 (file)
index 8148e53..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..a1866ba
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search.png
deleted file mode 100644 (file)
index 08866a6..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search_api_holo_light.png
deleted file mode 100644 (file)
index 4ea3c9d..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..d967ae7
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search.png
deleted file mode 100644 (file)
index f8c50d9..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search_api_holo_light.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search_api_holo_light.png
deleted file mode 100644 (file)
index 0674795..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search_api_holo_light.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..5baef9f
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_holo_dark.9.png
deleted file mode 100644 (file)
index 745e866..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_holo_light.9.png
deleted file mode 100644 (file)
index af30b86..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..987b2bc
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_mtrl_alpha.9.png differ
index 147fc5d..8b050e8 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_focused_holo.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_focused_holo.9.png differ
index 2063d0a..00e370a 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_longpressed_holo.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_longpressed_holo.9.png differ
index 1399f66..719c7b5 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_pressed_holo_dark.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_pressed_holo_dark.9.png differ
index 1399f66..75bd580 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_pressed_holo_light.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_pressed_holo_light.9.png differ
index 175b82c..9cc3666 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_selector_disabled_holo_dark.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_selector_disabled_holo_dark.9.png differ
index aad8a46..224a081 100644 (file)
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_selector_disabled_holo_light.9.png and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_selector_disabled_holo_light.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_dropdown_panel_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_dropdown_panel_holo_dark.9.png
deleted file mode 100644 (file)
index bf98017..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_dropdown_panel_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_dropdown_panel_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_dropdown_panel_holo_light.9.png
deleted file mode 100644 (file)
index 7c72e3e..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_dropdown_panel_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_holo_dark.9.png
deleted file mode 100644 (file)
index 31a4caa..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_holo_light.9.png
deleted file mode 100644 (file)
index f5c18d0..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png
new file mode 100644 (file)
index 0000000..f7f306d
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_popup_background_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_popup_background_mtrl_mult.9.png
new file mode 100644 (file)
index 0000000..ee4bfe7
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_popup_background_mtrl_mult.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_control_off_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_control_off_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..5268745
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_control_off_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_control_to_pressed_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_control_to_pressed_mtrl_000.png
new file mode 100644 (file)
index 0000000..adffc14
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_control_to_pressed_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_control_to_pressed_mtrl_005.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_control_to_pressed_mtrl_005.png
new file mode 100644 (file)
index 0000000..f3d16d5
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_control_to_pressed_mtrl_005.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_primary_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_primary_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..6a82af5
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_primary_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_track_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..c3791fc
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_scrubber_track_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_default_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_default_holo_dark.9.png
deleted file mode 100644 (file)
index d293589..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_default_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_default_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_default_holo_light.9.png
deleted file mode 100644 (file)
index a43e9fe..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_default_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_disabled_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_disabled_holo_dark.9.png
deleted file mode 100644 (file)
index f10f0bf..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_disabled_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_disabled_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_disabled_holo_light.9.png
deleted file mode 100644 (file)
index 4f9a3a6..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_disabled_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_focused_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_focused_holo_dark.9.png
deleted file mode 100644 (file)
index d67dcb3..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_focused_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_focused_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_focused_holo_light.9.png
deleted file mode 100644 (file)
index 0271d6b..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_focused_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_pressed_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_pressed_holo_dark.9.png
deleted file mode 100644 (file)
index 72a760a..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_pressed_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_pressed_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_pressed_holo_light.9.png
deleted file mode 100644 (file)
index a129aab..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_ab_pressed_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_mtrl_am_alpha.9.png
new file mode 100644 (file)
index 0000000..6940b60
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_mtrl_am_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_switch_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_switch_track_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..c74b3fc
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_switch_track_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_indicator_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_indicator_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..eeb74c8
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_indicator_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_selected_focused_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_selected_focused_holo.9.png
deleted file mode 100644 (file)
index cd15b0a..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_selected_focused_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_selected_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_selected_holo.9.png
deleted file mode 100644 (file)
index 05c642a..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_selected_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_selected_pressed_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_selected_pressed_holo.9.png
deleted file mode 100644 (file)
index f857a22..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_selected_pressed_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_unselected_pressed_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_unselected_pressed_holo.9.png
deleted file mode 100644 (file)
index bc856f9..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_unselected_pressed_holo.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_activated_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..4d3d3a4
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_activated_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_default_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..c5acb84
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_default_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_activated_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..30328ae
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_activated_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_holo_dark.9.png
deleted file mode 100644 (file)
index 90932d6..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_holo_light.9.png
deleted file mode 100644 (file)
index ae7b369..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..d4f3650
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_default_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_default_holo_dark.9.png
deleted file mode 100644 (file)
index deba2d5..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_default_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_default_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_default_holo_light.9.png
deleted file mode 100644 (file)
index ab26e8d..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_default_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_selected_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_selected_holo_dark.9.png
deleted file mode 100644 (file)
index 3d5ebca..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_selected_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_selected_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_selected_holo_light.9.png
deleted file mode 100644 (file)
index 3d5ebca..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_right_selected_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_selected_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_selected_holo_dark.9.png
deleted file mode 100644 (file)
index c8c2e6e..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_selected_holo_dark.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_selected_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_selected_holo_light.9.png
deleted file mode 100644 (file)
index ebb7c75..0000000
Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_selected_holo_light.9.png and /dev/null differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_000.png
new file mode 100644 (file)
index 0000000..4dc870e
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_015.png
new file mode 100644 (file)
index 0000000..4e18de2
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_015.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_000.png
new file mode 100644 (file)
index 0000000..5fa3266
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_015.png
new file mode 100644 (file)
index 0000000..c11cb2e
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_015.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png
new file mode 100644 (file)
index 0000000..6fd5bfe
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png
new file mode 100644 (file)
index 0000000..99e68cc
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..16b0f1d
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_clear_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_clear_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..7b2a480
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_clear_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..fe93d87
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..4b2d05a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..16e9e14
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png
new file mode 100644 (file)
index 0000000..129d30f
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_selectall_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_selectall_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..fa6ab02
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_selectall_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_share_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_share_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..77318c7
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_share_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..098c25a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_voice_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_voice_search_api_mtrl_alpha.png
new file mode 100644 (file)
index 0000000..76c4eeb
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_voice_search_api_mtrl_alpha.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_scrubber_control_to_pressed_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_scrubber_control_to_pressed_mtrl_000.png
new file mode 100644 (file)
index 0000000..e5a43bb
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_scrubber_control_to_pressed_mtrl_000.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_scrubber_control_to_pressed_mtrl_005.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_scrubber_control_to_pressed_mtrl_005.png
new file mode 100644 (file)
index 0000000..eeb37c1
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_scrubber_control_to_pressed_mtrl_005.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png
new file mode 100644 (file)
index 0000000..6b8bc0a
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_switch_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_switch_track_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..85c81c1
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_switch_track_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_tab_indicator_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_tab_indicator_mtrl_alpha.9.png
new file mode 100644 (file)
index 0000000..929be19
Binary files /dev/null and b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_tab_indicator_mtrl_alpha.9.png differ
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_borderless_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_borderless_material.xml
new file mode 100644 (file)
index 0000000..8f63c5b
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_focused="true" android:drawable="@drawable/abc_btn_default_mtrl_shape"/>
+    <item android:state_pressed="true" android:drawable="@drawable/abc_btn_default_mtrl_shape"/>
+    <item android:drawable="@android:color/transparent"/>
+</selector>
+
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_btn_borderless_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_check_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_check_material.xml
new file mode 100644 (file)
index 0000000..4b92ef1
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_checked="true" android:drawable="@drawable/abc_btn_check_to_on_mtrl_015" />
+    <item android:drawable="@drawable/abc_btn_check_to_on_mtrl_000" />
+</selector><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_btn_check_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_colored_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_colored_material.xml
new file mode 100644 (file)
index 0000000..96c3050
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<!-- Used as the canonical button shape. -->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/abc_btn_default_mtrl_shape" />
+</layer-list>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_btn_colored_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_default_mtrl_shape.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_default_mtrl_shape.xml
new file mode 100644 (file)
index 0000000..2ed389d
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<!-- Used as the canonical button shape. -->
+
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+       android:insetLeft="@dimen/abc_button_inset_horizontal_material"
+       android:insetTop="@dimen/abc_button_inset_vertical_material"
+       android:insetRight="@dimen/abc_button_inset_horizontal_material"
+       android:insetBottom="@dimen/abc_button_inset_vertical_material">
+    <shape android:shape="rectangle">
+        <corners android:radius="@dimen/abc_control_corner_material" />
+        <solid android:color="@android:color/white" />
+        <padding android:left="@dimen/abc_button_padding_horizontal_material"
+                 android:top="@dimen/abc_button_padding_vertical_material"
+                 android:right="@dimen/abc_button_padding_horizontal_material"
+                 android:bottom="@dimen/abc_button_padding_vertical_material" />
+    </shape>
+</inset>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_btn_default_mtrl_shape.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_radio_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_radio_material.xml
new file mode 100644 (file)
index 0000000..469cd20
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_checked="true" android:drawable="@drawable/abc_btn_radio_to_on_mtrl_015" />
+    <item android:drawable="@drawable/abc_btn_radio_to_on_mtrl_000" />
+</selector><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_btn_radio_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_cab_background_internal_bg.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_cab_background_internal_bg.xml
new file mode 100644 (file)
index 0000000..c33caa3
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<!--
+    A solid rectangle so that we can use a PorterDuff multiply color filter to tint this
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    <solid android:color="@android:color/white" />
+</shape><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_cab_background_internal_bg.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_cab_background_top_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_cab_background_top_material.xml
new file mode 100644 (file)
index 0000000..ebccaf9
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<!-- This is a dummy drawable so that we can refer to the drawable ID -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@android:color/white"/>
+</shape>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_cab_background_top_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_dialog_material_background_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_dialog_material_background_dark.xml
new file mode 100644 (file)
index 0000000..f4be33c
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+       android:insetLeft="16dp"
+       android:insetTop="16dp"
+       android:insetRight="16dp"
+       android:insetBottom="16dp">
+    <shape android:shape="rectangle">
+        <corners android:radius="2dp" />
+        <solid android:color="@color/background_floating_material_dark" />
+    </shape>
+</inset><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_dialog_material_background_dark.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_dialog_material_background_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_dialog_material_background_light.xml
new file mode 100644 (file)
index 0000000..72e053c
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+       android:insetLeft="16dp"
+       android:insetTop="16dp"
+       android:insetRight="16dp"
+       android:insetBottom="16dp">
+    <shape android:shape="rectangle">
+        <corners android:radius="2dp" />
+        <solid android:color="@color/background_floating_material_light" />
+    </shape>
+</inset><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_dialog_material_background_light.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_edit_text_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_edit_text_material.xml
new file mode 100644 (file)
index 0000000..561e386
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+       android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material"
+       android:insetRight="@dimen/abc_edit_text_inset_horizontal_material"
+       android:insetTop="@dimen/abc_edit_text_inset_top_material"
+       android:insetBottom="@dimen/abc_edit_text_inset_bottom_material">
+
+    <selector>
+        <item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
+        <item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
+        <item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/>
+    </selector>
+
+</inset>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_edit_text_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_ic_clear.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_ic_clear.xml
deleted file mode 100644 (file)
index 2bcd171..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_enabled="false"
-        android:drawable="@drawable/abc_ic_clear_disabled" />
-    <item
-         android:drawable="@drawable/abc_ic_clear_normal" />
-</selector>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_ic_clear.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_ic_clear_holo_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_ic_clear_holo_light.xml
deleted file mode 100644 (file)
index eba4fa6..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_enabled="false"
-        android:drawable="@drawable/abc_ic_clear_search_api_disabled_holo_light" />
-    <item
-         android:drawable="@drawable/abc_ic_clear_search_api_holo_light" />
-</selector>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_ic_clear_holo_light.xml -->
\ No newline at end of file
index 92809b7..289e07a 100644 (file)
@@ -24,4 +24,4 @@
     <item android:state_focused="true"                                                             android:drawable="@drawable/abc_list_focused_holo" />
     <item                                                                                          android:drawable="@android:color/transparent" />
 </selector>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_item_background_holo_dark.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_item_background_holo_dark.xml -->
\ No newline at end of file
index b2e2495..bfb2328 100644 (file)
@@ -24,4 +24,4 @@
     <item android:state_focused="true"                                                             android:drawable="@drawable/abc_list_focused_holo" />
     <item                                                                                          android:drawable="@android:color/transparent" />
 </selector>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_item_background_holo_light.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_item_background_holo_light.xml -->
\ No newline at end of file
index 360d907..b4b47da 100644 (file)
@@ -18,4 +18,4 @@
     <item android:drawable="@drawable/abc_list_pressed_holo_dark"  />
     <item android:drawable="@drawable/abc_list_longpressed_holo"  />
 </transition>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_list_selector_background_transition_holo_dark.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_list_selector_background_transition_holo_dark.xml -->
\ No newline at end of file
index a0cf88d..516b78b 100644 (file)
@@ -18,4 +18,4 @@
     <item android:drawable="@drawable/abc_list_pressed_holo_light"  />
     <item android:drawable="@drawable/abc_list_longpressed_holo"  />
 </transition>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_list_selector_background_transition_holo_light.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_list_selector_background_transition_holo_light.xml -->
\ No newline at end of file
index a3e07bd..50bd19f 100644 (file)
@@ -25,4 +25,4 @@
     <item android:state_focused="false"                               android:state_pressed="true" android:drawable="@drawable/abc_list_selector_background_transition_holo_dark" />
     <item android:state_focused="true"                                                             android:drawable="@drawable/abc_list_focused_holo" />
 </selector>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_list_selector_holo_dark.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_list_selector_holo_dark.xml -->
\ No newline at end of file
index d50d387..11badbd 100644 (file)
@@ -26,4 +26,4 @@
     <item android:state_focused="true"                                                             android:drawable="@drawable/abc_list_focused_holo" />
 
 </selector>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_list_selector_holo_light.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_list_selector_holo_light.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_ratingbar_full_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_ratingbar_full_material.xml
new file mode 100644 (file)
index 0000000..608a14a
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@android:id/background"
+        android:drawable="@drawable/abc_btn_rating_star_off_mtrl_alpha" />
+    <item android:id="@android:id/secondaryProgress"
+        android:drawable="@drawable/abc_btn_rating_star_off_mtrl_alpha" />
+    <item android:id="@android:id/progress"
+        android:drawable="@drawable/abc_btn_rating_star_on_mtrl_alpha" />
+</layer-list>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_ratingbar_full_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_search_dropdown_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_search_dropdown_dark.xml
deleted file mode 100644 (file)
index 9c2ceac..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
-    <solid android:color="#F0A0A0A0"/>
-    <stroke android:width="2dp" color="#A00080FF"/>
-    <padding android:left="5dp" android:top="0dp"
-        android:right="5dp" android:bottom="1dp" />
-</shape>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_search_dropdown_dark.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_search_dropdown_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_search_dropdown_light.xml
deleted file mode 100644 (file)
index 8605e74..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
-    <solid android:color="#F0FFFFFF"/>
-    <stroke android:width="1dp" color="#A00080FF"/>
-    <padding android:left="5dp" android:top="0dp"
-        android:right="5dp" android:bottom="1dp" />
-</shape>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_search_dropdown_light.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_seekbar_thumb_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_seekbar_thumb_material.xml
new file mode 100644 (file)
index 0000000..2627437
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+          android:constantSize="true">
+    <item android:state_enabled="false" android:state_pressed="true">
+        <bitmap android:src="@drawable/abc_scrubber_control_off_mtrl_alpha"
+                android:gravity="center"/>
+    </item>
+    <item android:state_enabled="false">
+        <bitmap android:src="@drawable/abc_scrubber_control_off_mtrl_alpha"
+                android:gravity="center"/>
+    </item>
+    <item android:state_pressed="true">
+        <bitmap android:src="@drawable/abc_scrubber_control_to_pressed_mtrl_005"
+                android:gravity="center"/>
+    </item>
+    <item>
+        <bitmap android:src="@drawable/abc_scrubber_control_to_pressed_mtrl_000"
+                android:gravity="center"/>
+    </item>
+</selector><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_seekbar_thumb_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_seekbar_track_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_seekbar_track_material.xml
new file mode 100644 (file)
index 0000000..0065617
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@android:id/background"
+          android:drawable="@drawable/abc_scrubber_track_mtrl_alpha"/>
+    <item android:id="@android:id/secondaryProgress">
+        <scale android:scaleWidth="100%">
+            <selector>
+                <item android:state_enabled="false">
+                    <color android:color="@android:color/transparent"/>
+                </item>
+                <item android:drawable="@drawable/abc_scrubber_primary_mtrl_alpha"/>
+            </selector>
+        </scale>
+    </item>
+    <item android:id="@android:id/progress">
+        <scale android:scaleWidth="100%">
+            <selector>
+                <item android:state_enabled="false">
+                    <color android:color="@android:color/transparent"/>
+                </item>
+                <item android:drawable="@drawable/abc_scrubber_primary_mtrl_alpha"/>
+            </selector>
+        </scale>
+    </item>
+</layer-list><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_seekbar_track_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_spinner_ab_holo_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_spinner_ab_holo_dark.xml
deleted file mode 100644 (file)
index 395b883..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_enabled="false"
-          android:drawable="@drawable/abc_spinner_ab_disabled_holo_dark" />
-    <item android:state_pressed="true"
-          android:drawable="@drawable/abc_spinner_ab_pressed_holo_dark" />
-    <item android:state_pressed="false" android:state_focused="true"
-          android:drawable="@drawable/abc_spinner_ab_focused_holo_dark" />
-    <item android:drawable="@drawable/abc_spinner_ab_default_holo_dark" />
-</selector>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_spinner_ab_holo_dark.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_spinner_ab_holo_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_spinner_ab_holo_light.xml
deleted file mode 100644 (file)
index 77b5288..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_enabled="false"
-          android:drawable="@drawable/abc_spinner_ab_disabled_holo_light" />
-    <item android:state_pressed="true"
-          android:drawable="@drawable/abc_spinner_ab_pressed_holo_light" />
-    <item android:state_pressed="false" android:state_focused="true"
-          android:drawable="@drawable/abc_spinner_ab_focused_holo_light" />
-    <item android:drawable="@drawable/abc_spinner_ab_default_holo_light" />
-</selector>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_spinner_ab_holo_light.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_spinner_textfield_background_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_spinner_textfield_background_material.xml
new file mode 100644 (file)
index 0000000..570fea9
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+       android:insetLeft="@dimen/abc_control_inset_material"
+       android:insetTop="@dimen/abc_control_inset_material"
+       android:insetBottom="@dimen/abc_control_inset_material"
+       android:insetRight="@dimen/abc_control_inset_material">
+    <selector>
+        <item android:state_checked="false" android:state_pressed="false">
+            <layer-list>
+                <item android:drawable="@drawable/abc_textfield_default_mtrl_alpha" />
+                <item android:drawable="@drawable/abc_spinner_mtrl_am_alpha" />
+            </layer-list>
+        </item>
+        <item>
+            <layer-list>
+                <item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha" />
+                <item android:drawable="@drawable/abc_spinner_mtrl_am_alpha" />
+            </layer-list>
+        </item>
+    </selector>
+</inset><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_spinner_textfield_background_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_switch_thumb_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_switch_thumb_material.xml
new file mode 100644 (file)
index 0000000..750fe72
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_checked="true" android:drawable="@drawable/abc_btn_switch_to_on_mtrl_00012" />
+    <item android:drawable="@drawable/abc_btn_switch_to_on_mtrl_00001" />
+</selector><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_switch_thumb_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_tab_indicator_ab_holo.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_tab_indicator_ab_holo.xml
deleted file mode 100644 (file)
index b49757c..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <!-- Non focused states -->
-    <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/transparent" />
-    <item android:state_focused="false" android:state_selected="true"  android:state_pressed="false" android:drawable="@drawable/abc_tab_selected_holo" />
-
-    <!-- Focused states -->
-    <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/abc_list_focused_holo" />
-    <item android:state_focused="true" android:state_selected="true"  android:state_pressed="false" android:drawable="@drawable/abc_tab_selected_focused_holo" />
-
-    <!-- Pressed -->
-    <!--    Non focused states -->
-    <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/abc_list_pressed_holo_dark" />
-    <item android:state_focused="false" android:state_selected="true"  android:state_pressed="true" android:drawable="@drawable/abc_tab_selected_pressed_holo" />
-
-    <!--    Focused states -->
-    <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/abc_tab_unselected_pressed_holo" />
-    <item android:state_focused="true" android:state_selected="true"  android:state_pressed="true" android:drawable="@drawable/abc_tab_selected_pressed_holo" />
-</selector>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_tab_indicator_ab_holo.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_tab_indicator_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_tab_indicator_material.xml
new file mode 100644 (file)
index 0000000..faa54a7
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_selected="true" android:drawable="@drawable/abc_tab_indicator_mtrl_alpha" />
+    <item android:drawable="@android:color/transparent" />
+</selector>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_tab_indicator_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_text_cursor_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_text_cursor_material.xml
new file mode 100644 (file)
index 0000000..bcd2392
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2015 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.
+-->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    <size android:height="2dp"
+          android:width="2dp"/>
+    <solid android:color="@android:color/white"/>
+</shape><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_text_cursor_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_search_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_search_material.xml
new file mode 100644 (file)
index 0000000..9b8d4d6
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/abc_textfield_search_activated_mtrl_alpha"/>
+    <item android:state_enabled="true" android:state_activated="true" android:drawable="@drawable/abc_textfield_search_activated_mtrl_alpha"/>
+    <item android:state_enabled="true" android:drawable="@drawable/abc_textfield_search_default_mtrl_alpha"/>
+    <item android:drawable="@drawable/abc_textfield_search_default_mtrl_alpha"/>
+</selector>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/drawable/abc_textfield_search_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_searchview_holo_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_searchview_holo_dark.xml
deleted file mode 100644 (file)
index 312742b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_focused="true"
-        android:drawable="@drawable/abc_textfield_search_selected_holo_dark" />
-    <item android:drawable="@drawable/abc_textfield_search_default_holo_dark" />
-</selector>
-
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_textfield_searchview_holo_dark.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_searchview_holo_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_searchview_holo_light.xml
deleted file mode 100644 (file)
index 0281f80..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_focused="true"
-        android:drawable="@drawable/abc_textfield_search_selected_holo_light" />
-    <item android:drawable="@drawable/abc_textfield_search_default_holo_light" />
-</selector>
-
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_textfield_searchview_holo_light.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_searchview_right_holo_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_searchview_right_holo_dark.xml
deleted file mode 100644 (file)
index f5df49e..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_focused="true"
-        android:drawable="@drawable/abc_textfield_search_right_selected_holo_dark" />
-    <item android:drawable="@drawable/abc_textfield_search_right_default_holo_dark" />
-</selector>
-
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_textfield_searchview_right_holo_dark.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_searchview_right_holo_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_searchview_right_holo_light.xml
deleted file mode 100644 (file)
index 2a86ad9..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_focused="true"
-        android:drawable="@drawable/abc_textfield_search_right_selected_holo_light" />
-    <item android:drawable="@drawable/abc_textfield_search_right_default_holo_light" />
-</selector>
-
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/drawable/abc_textfield_searchview_right_holo_light.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout-v11/abc_action_bar_decor.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout-v11/abc_action_bar_decor.xml
deleted file mode 100644 (file)
index d8d1a56..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<android.support.v7.internal.widget.NativeActionModeAwareLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/action_bar_root"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical"
-    android:fitsSystemWindows="true">
-
-    <include layout="@layout/abc_action_bar_decor_include" />
-
-</android.support.v7.internal.widget.NativeActionModeAwareLayout>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout-v11/abc_action_bar_decor.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout-v11/abc_simple_decor.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout-v11/abc_simple_decor.xml
deleted file mode 100644 (file)
index d39b70d..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<android.support.v7.internal.widget.NativeActionModeAwareLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/action_bar_root"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:fitsSystemWindows="true">
-
-    <FrameLayout
-        android:id="@id/action_bar_activity_content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:foreground="?android:attr/windowContentOverlay"/>
-
-</android.support.v7.internal.widget.NativeActionModeAwareLayout>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout-v11/abc_simple_decor.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout-v14/abc_activity_chooser_view.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout-v14/abc_activity_chooser_view.xml
deleted file mode 100644 (file)
index 9240ec7..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 2013, 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.
-*/
--->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/activity_chooser_view_content"
-    android:layout_width="wrap_content"
-    android:layout_height="match_parent"
-    android:layout_gravity="center"
-    style="?attr/activityChooserViewStyle">
-
-    <include layout="@layout/abc_activity_chooser_view_include" />
-
-</LinearLayout><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout-v14/abc_activity_chooser_view.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_decor.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_decor.xml
deleted file mode 100644 (file)
index ae317cb..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical"
-    android:fitsSystemWindows="true">
-
-    <include layout="@layout/abc_action_bar_decor_include" />
-
-</LinearLayout>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_action_bar_decor.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_decor_include.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_decor_include.xml
deleted file mode 100644 (file)
index 6b95a23..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<merge xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <android.support.v7.internal.widget.ActionBarContainer
-        android:id="@+id/action_bar_container"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        style="?attr/actionBarStyle">
-
-        <android.support.v7.internal.widget.ActionBarView
-            android:id="@+id/action_bar"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            style="?attr/actionBarStyle" />
-
-        <android.support.v7.internal.widget.ActionBarContextView
-            android:id="@+id/action_context_bar"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:visibility="gone"
-            style="?attr/actionModeStyle" />
-    </android.support.v7.internal.widget.ActionBarContainer>
-
-    <FrameLayout
-        android:id="@id/action_bar_activity_content"
-        android:layout_width="fill_parent"
-        android:layout_height="0dip"
-        android:layout_weight="1"
-        android:foregroundGravity="fill_horizontal|top"
-        android:foreground="?android:attr/windowContentOverlay" />
-
-    <android.support.v7.internal.widget.ActionBarContainer
-        android:id="@+id/split_action_bar"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        style="?attr/actionBarSplitStyle"
-        android:visibility="gone"
-        android:gravity="center" />
-
-</merge>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_action_bar_decor_include.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_decor_overlay.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_decor_overlay.xml
deleted file mode 100644 (file)
index d1868dc..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<android.support.v7.internal.widget.ActionBarOverlayLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/action_bar_overlay_layout"
-        android:layout_width="fill_parent"
-        android:layout_height="fill_parent">
-    <FrameLayout android:id="@id/action_bar_activity_content"
-                 android:layout_width="fill_parent"
-                 android:layout_height="fill_parent"/>
-    <LinearLayout android:id="@+id/top_action_bar"
-                  android:layout_width="fill_parent"
-                  android:layout_height="wrap_content"
-                  android:layout_gravity="top">
-        <android.support.v7.internal.widget.ActionBarContainer android:id="@+id/action_bar_container"
-                                                             android:layout_width="fill_parent"
-                                                             android:layout_height="wrap_content"
-                                                             android:layout_alignParentTop="true"
-                                                             style="?attr/actionBarStyle"
-                                                             android:gravity="top">
-            <android.support.v7.internal.widget.ActionBarView
-                    android:id="@+id/action_bar"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content"
-                    style="?attr/actionBarStyle"/>
-            <android.support.v7.internal.widget.ActionBarContextView
-                    android:id="@+id/action_context_bar"
-                    android:layout_width="fill_parent"
-                    android:layout_height="wrap_content"
-                    android:visibility="gone"
-                    style="?attr/actionModeStyle"/>
-        </android.support.v7.internal.widget.ActionBarContainer>
-        <ImageView android:src="?android:attr/windowContentOverlay"
-                   android:scaleType="fitXY"
-                   android:layout_width="fill_parent"
-                   android:layout_height="wrap_content"/>
-    </LinearLayout>
-    <android.support.v7.internal.widget.ActionBarContainer android:id="@+id/split_action_bar"
-                                                         android:layout_width="fill_parent"
-                                                         android:layout_height="wrap_content"
-                                                         android:layout_gravity="bottom"
-                                                         style="?attr/actionBarSplitStyle"
-                                                         android:visibility="gone"
-                                                         android:gravity="center"/>
-</android.support.v7.internal.widget.ActionBarOverlayLayout>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_action_bar_decor_overlay.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_home.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_home.xml
deleted file mode 100644 (file)
index 2508d97..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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.
--->
-
-<view xmlns:android="http://schemas.android.com/apk/res/android"
-      class="android.support.v7.internal.widget.ActionBarView$HomeView"
-      android:layout_width="wrap_content"
-      android:layout_height="fill_parent"
-      android:background="?attr/actionBarItemBackground">
-    <ImageView android:id="@+id/up"
-               android:src="?attr/homeAsUpIndicator"
-               android:layout_gravity="center_vertical|left"
-               android:visibility="gone"
-               android:layout_width="wrap_content"
-               android:layout_height="wrap_content"
-               android:layout_marginRight="-8dip"/>
-    <ImageView android:id="@id/home"
-               android:layout_width="wrap_content"
-               android:layout_height="wrap_content"
-               android:layout_marginRight="8dip"
-               android:layout_marginTop="@dimen/abc_action_bar_icon_vertical_padding"
-               android:layout_marginBottom="@dimen/abc_action_bar_icon_vertical_padding"
-               android:layout_gravity="center"
-               android:adjustViewBounds="true"
-               android:scaleType="fitCenter"/>
-</view>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_action_bar_home.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_tab.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_tab.xml
deleted file mode 100644 (file)
index 5d0c8f2..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<view xmlns:android="http://schemas.android.com/apk/res/android"
-      class="android.support.v7.internal.widget.ScrollingTabContainerView$TabView"
-      android:layout_width="0dp"
-      android:layout_weight="1"
-      android:layout_height="wrap_content"
-      style="?attr/actionBarTabStyle"/>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_action_bar_tab.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_tabbar.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_tabbar.xml
deleted file mode 100644 (file)
index 42e3600..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<android.support.v7.internal.widget.LinearLayoutICS
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:gravity="center"
-        style="?attr/actionBarTabBarStyle"/>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_action_bar_tabbar.xml -->
\ No newline at end of file
index ef62a94..0906453 100644 (file)
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
-              android:orientation="horizontal"
-              android:paddingRight="8dip"
-              android:background="?attr/actionBarItemBackground"
-              android:enabled="false">
-
-    <ImageView android:id="@+id/up"
-               android:src="?attr/homeAsUpIndicator"
-               android:layout_gravity="center_vertical|left"
-               android:visibility="gone"
-               android:layout_width="wrap_content"
-               android:layout_height="wrap_content"/>
-
-    <LinearLayout android:layout_width="wrap_content"
-                  android:layout_height="wrap_content"
-                  android:layout_gravity="center_vertical|left"
-                  android:orientation="vertical">
-        <TextView android:id="@+id/action_bar_title"
-                  android:layout_width="wrap_content"
-                  android:layout_height="wrap_content"
-                  android:singleLine="true"
-                  android:ellipsize="end"/>
-        <TextView android:id="@+id/action_bar_subtitle"
-                  android:layout_width="wrap_content"
-                  android:layout_height="wrap_content"
-                  android:layout_marginTop="@dimen/abc_action_bar_subtitle_top_margin"
-                  android:layout_marginBottom="@dimen/abc_action_bar_subtitle_bottom_margin"
-                  android:singleLine="true"
-                  android:ellipsize="end"
-                  android:visibility="gone"/>
-    </LinearLayout>
+              android:orientation="vertical"
+              style="@style/RtlOverlay.Widget.AppCompat.ActionBar.TitleItem">
+    <TextView android:id="@+id/action_bar_title"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:singleLine="true"
+              android:ellipsize="end" />
+    <TextView android:id="@+id/action_bar_subtitle"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:layout_marginTop="@dimen/abc_action_bar_subtitle_top_margin_material"
+              android:singleLine="true"
+              android:ellipsize="end"
+              android:visibility="gone" />
 </LinearLayout>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_action_bar_title_item.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_action_bar_title_item.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_up_container.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_up_container.xml
new file mode 100644 (file)
index 0000000..417f668
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="wrap_content"
+              android:layout_height="match_parent"
+              android:background="?attr/actionBarItemBackground"
+              android:gravity="center_vertical"
+              android:enabled="false">
+</LinearLayout>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_action_bar_up_container.xml -->
\ No newline at end of file
index 9e6be64..9f68729 100644 (file)
@@ -20,4 +20,4 @@
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"
               style="?attr/actionBarTabBarStyle">
-</LinearLayout><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_action_bar_view_list_nav_layout.xml -->
\ No newline at end of file
+</LinearLayout><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_action_bar_view_list_nav_layout.xml -->
\ No newline at end of file
index 751c2f6..18feef9 100644 (file)
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 
-<android.support.v7.internal.view.menu.ActionMenuItemView
+<android.support.v7.view.menu.ActionMenuItemView
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
@@ -28,4 +28,4 @@
         android:textAppearance="?attr/actionMenuTextAppearance"
         android:textColor="?attr/actionMenuTextColor"
         style="?attr/actionButtonStyle"/>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_action_menu_item_layout.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_action_menu_item_layout.xml -->
\ No newline at end of file
index ae38e04..ddbd730 100644 (file)
@@ -4,9 +4,9 @@
      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.
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 
-<android.support.v7.internal.view.menu.ActionMenuView
+<android.support.v7.widget.ActionMenuView
         xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         android:layout_width="wrap_content"
@@ -22,4 +22,4 @@
         app:divider="?attr/actionBarDivider"
         app:dividerPadding="12dip"
         android:gravity="center_vertical"/>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_action_menu_layout.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_action_menu_layout.xml -->
\ No newline at end of file
index 4627126..eef2a4d 100644 (file)
 ** limitations under the License.
 */
 -->
-<android.support.v7.internal.widget.ActionBarContextView
+<android.support.v7.widget.ActionBarContextView
         xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="fill_parent"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:visibility="gone"
+        android:theme="?attr/actionBarTheme"
         style="?attr/actionModeStyle"/>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_action_mode_bar.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_action_mode_bar.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_close_item.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_close_item.xml
deleted file mode 100644 (file)
index 2542433..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:id="@+id/action_mode_close_button"
-              android:focusable="true"
-              android:clickable="true"
-              android:paddingLeft="8dip"
-              android:contentDescription="@string/abc_action_mode_done"
-              style="?attr/actionModeCloseButtonStyle"
-              android:layout_width="wrap_content"
-              android:layout_height="fill_parent"
-              android:layout_marginRight="16dip">
-    <ImageView android:layout_width="wrap_content"
-               android:layout_height="wrap_content"
-               android:layout_gravity="center"
-               android:scaleType="fitCenter"
-               android:src="?attr/actionModeCloseDrawable"/>
-</LinearLayout>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_action_mode_close_item.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_close_item_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_close_item_material.xml
new file mode 100644 (file)
index 0000000..38023b7
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<ImageView
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/action_mode_close_button"
+        android:contentDescription="@string/abc_action_mode_done"
+        android:focusable="true"
+        android:clickable="true"
+        android:src="?attr/actionModeCloseDrawable"
+        style="?attr/actionModeCloseButtonStyle"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"/><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_action_mode_close_item_material.xml -->
\ No newline at end of file
index 203377b..6e64721 100644 (file)
 ** limitations under the License.
 */
 -->
-<android.support.v7.internal.widget.LinearLayoutICS
-    xmlns:android="http://schemas.android.com/apk/res/android"
+<view xmlns:android="http://schemas.android.com/apk/res/android"
+    class="android.support.v7.widget.ActivityChooserView$InnerLayout"
     android:id="@+id/activity_chooser_view_content"
     android:layout_width="wrap_content"
     android:layout_height="match_parent"
     android:layout_gravity="center"
     style="?attr/activityChooserViewStyle">
 
-    <include layout="@layout/abc_activity_chooser_view_include" />
+    <FrameLayout
+        android:id="@+id/expand_activities_button"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:focusable="true"
+        android:addStatesFromChildren="true"
+        android:background="?attr/actionBarItemBackground">
 
-</android.support.v7.internal.widget.LinearLayoutICS><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_activity_chooser_view.xml -->
\ No newline at end of file
+        <ImageView android:id="@+id/image"
+            android:layout_width="32dip"
+            android:layout_height="32dip"
+            android:layout_gravity="center"
+            android:layout_marginTop="2dip"
+            android:layout_marginBottom="2dip"
+            android:layout_marginLeft="12dip"
+            android:layout_marginRight="12dip"
+            android:scaleType="fitCenter"
+            android:adjustViewBounds="true" />
+
+    </FrameLayout>
+
+    <FrameLayout
+        android:id="@+id/default_activity_button"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:focusable="true"
+        android:addStatesFromChildren="true"
+        android:background="?attr/actionBarItemBackground">
+
+        <ImageView android:id="@+id/image"
+            android:layout_width="32dip"
+            android:layout_height="32dip"
+            android:layout_gravity="center"
+            android:layout_marginTop="2dip"
+            android:layout_marginBottom="2dip"
+            android:layout_marginLeft="12dip"
+            android:layout_marginRight="12dip"
+            android:scaleType="fitCenter"
+            android:adjustViewBounds="true" />
+
+    </FrameLayout>
+
+</view>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_activity_chooser_view.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_activity_chooser_view_include.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_activity_chooser_view_include.xml
deleted file mode 100644 (file)
index 63685e4..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 2013, 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.
-*/
--->
-<merge
-    xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <FrameLayout
-        android:id="@+id/expand_activities_button"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_gravity="center"
-        android:focusable="true"
-        android:addStatesFromChildren="true"
-        android:background="?attr/actionBarItemBackground">
-
-        <ImageView
-            android:id="@+id/image"
-            android:layout_width="56dip"
-            android:layout_height="36dip"
-            android:layout_gravity="center"
-            android:paddingTop="2dip"
-            android:paddingBottom="2dip"
-            android:paddingLeft="12dip"
-            android:paddingRight="12dip"
-            android:scaleType="fitCenter"
-            android:adjustViewBounds="true" />
-
-    </FrameLayout>
-
-    <FrameLayout
-        android:id="@+id/default_activity_button"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_gravity="center"
-        android:focusable="true"
-        android:addStatesFromChildren="true"
-        android:background="?attr/actionBarItemBackground">
-
-        <ImageView
-            android:id="@+id/image"
-            android:layout_width="56dip"
-            android:layout_height="36dip"
-            android:layout_gravity="center"
-            android:paddingTop="2dip"
-            android:paddingBottom="2dip"
-            android:paddingLeft="12dip"
-            android:paddingRight="12dip"
-            android:scaleType="fitCenter"
-            android:adjustViewBounds="true" />
-
-    </FrameLayout>
-
-</merge><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_activity_chooser_view_include.xml -->
\ No newline at end of file
index cb0e787..7a8fd97 100644 (file)
@@ -49,4 +49,4 @@
 
     </LinearLayout>
 
-</LinearLayout><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_activity_chooser_view_list_item.xml -->
\ No newline at end of file
+</LinearLayout><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_activity_chooser_view_list_item.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_alert_dialog_button_bar_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_alert_dialog_button_bar_material.xml
new file mode 100644 (file)
index 0000000..b9e10cf
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2014 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.
+-->
+
+<android.support.v7.widget.ButtonBarLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/buttonPanel"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layoutDirection="locale"
+    android:orientation="horizontal"
+    android:paddingLeft="12dp"
+    android:paddingRight="12dp"
+    android:paddingTop="4dp"
+    android:paddingBottom="4dp"
+    android:gravity="bottom"
+    app:allowStacking="@bool/abc_allow_stacked_button_bar"
+    style="?attr/buttonBarStyle">
+
+    <Button
+        android:id="@android:id/button3"
+        style="?attr/buttonBarNeutralButtonStyle"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" />
+
+    <android.support.v4.widget.Space
+        android:id="@+id/spacer"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:visibility="invisible" />
+
+    <Button
+        android:id="@android:id/button2"
+        style="?attr/buttonBarNegativeButtonStyle"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" />
+
+    <Button
+        android:id="@android:id/button1"
+        style="?attr/buttonBarPositiveButtonStyle"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" />
+
+</android.support.v7.widget.ButtonBarLayout>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_alert_dialog_button_bar_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_alert_dialog_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_alert_dialog_material.xml
new file mode 100644 (file)
index 0000000..b580408
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/parentPanel"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+    <LinearLayout
+            android:id="@+id/topPanel"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+        <LinearLayout
+                android:id="@+id/title_template"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:gravity="center_vertical"
+                android:paddingLeft="?attr/dialogPreferredPadding"
+                android:paddingRight="?attr/dialogPreferredPadding"
+                android:paddingTop="@dimen/abc_dialog_padding_top_material">
+
+            <ImageView
+                    android:id="@android:id/icon"
+                    android:layout_width="32dip"
+                    android:layout_height="32dip"
+                    android:scaleType="fitCenter"
+                    android:src="@null"
+                    style="@style/RtlOverlay.Widget.AppCompat.DialogTitle.Icon"/>
+
+            <android.support.v7.widget.DialogTitle
+                    android:id="@+id/alertTitle"
+                    style="?attr/android:windowTitleStyle"
+                    android:singleLine="true"
+                    android:ellipsize="end"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:textAlignment="viewStart" />
+
+        </LinearLayout>
+        <!-- If the client uses a customTitle, it will be added here. -->
+    </LinearLayout>
+
+    <FrameLayout
+            android:id="@+id/contentPanel"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:minHeight="48dp">
+
+        <View android:id="@+id/scrollIndicatorUp"
+              android:visibility="gone"
+              android:layout_width="match_parent"
+              android:layout_height="1dp"
+              android:layout_gravity="top"
+              android:background="?attr/colorControlHighlight"/>
+
+        <android.support.v4.widget.NestedScrollView
+                android:id="@+id/scrollView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:clipToPadding="false">
+
+            <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical">
+
+                <TextView
+                        android:id="@android:id/message"
+                        style="@style/TextAppearance.AppCompat.Subhead"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:paddingLeft="?attr/dialogPreferredPadding"
+                        android:paddingTop="@dimen/abc_dialog_padding_top_material"
+                        android:paddingRight="?attr/dialogPreferredPadding"/>
+
+                <View
+                        android:id="@+id/textSpacerNoButtons"
+                        android:visibility="gone"
+                        android:layout_width="0dp"
+                        android:layout_height="@dimen/abc_dialog_padding_top_material"/>
+            </LinearLayout>
+        </android.support.v4.widget.NestedScrollView>
+
+        <View android:id="@+id/scrollIndicatorDown"
+              android:visibility="gone"
+              android:layout_width="match_parent"
+              android:layout_height="1dp"
+              android:layout_gravity="bottom"
+              android:background="?attr/colorControlHighlight"/>
+
+    </FrameLayout>
+
+    <FrameLayout
+            android:id="@+id/customPanel"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:minHeight="48dp">
+
+        <FrameLayout
+                android:id="@+id/custom"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+    </FrameLayout>
+
+    <include layout="@layout/abc_alert_dialog_button_bar_material" />
+
+</LinearLayout><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_alert_dialog_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_dialog_title_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_dialog_title_material.xml
new file mode 100644 (file)
index 0000000..52b5a3d
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<!--
+This is an optimized layout for a screen, with the minimum set of features
+enabled.
+-->
+
+<android.support.v7.widget.FitWindowsLinearLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_height="match_parent"
+        android:layout_width="match_parent"
+        android:orientation="vertical"
+        android:fitsSystemWindows="true">
+
+    <TextView
+            android:id="@+id/title"
+            style="?android:attr/windowTitleStyle"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textAlignment="viewStart"
+            android:paddingLeft="?attr/dialogPreferredPadding"
+            android:paddingRight="?attr/dialogPreferredPadding"
+            android:paddingTop="@dimen/abc_dialog_padding_top_material"/>
+
+    <include
+            layout="@layout/abc_screen_content_include"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"/>
+
+</android.support.v7.widget.FitWindowsLinearLayout><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_dialog_title_material.xml -->
\ No newline at end of file
index fb85509..86064ca 100644 (file)
@@ -14,9 +14,9 @@
      limitations under the License.
 -->
 
-<android.support.v7.internal.view.menu.ExpandedMenuView
+<android.support.v7.view.menu.ExpandedMenuView
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/expanded_menu"
         android:layout_width="?attr/panelMenuListWidth"
-        android:layout_height="wrap_content"/>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_expanded_menu_layout.xml -->
\ No newline at end of file
+        android:layout_height="wrap_content" />
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_expanded_menu_layout.xml -->
\ No newline at end of file
index 22f1e98..be8bd01 100644 (file)
@@ -24,4 +24,4 @@
           android:duplicateParentState="true"/>
 
 
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_list_menu_item_checkbox.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_list_menu_item_checkbox.xml -->
\ No newline at end of file
index 2aeae67..f479d15 100644 (file)
@@ -26,4 +26,4 @@
            android:scaleType="centerInside"
            android:duplicateParentState="true"/>
 
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_list_menu_item_icon.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_list_menu_item_icon.xml -->
\ No newline at end of file
index acc40ff..f6d6896 100644 (file)
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 
-<android.support.v7.internal.view.menu.ListMenuItemView
+<android.support.v7.view.menu.ListMenuItemView
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="?attr/listPreferredItemHeightSmall">
     <RelativeLayout
             android:layout_width="0dip"
             android:layout_weight="1"
-            android:layout_marginLeft="?attr/listPreferredItemPaddingLeft"
-            android:layout_marginRight="?attr/listPreferredItemPaddingRight"
             android:layout_height="wrap_content"
             android:layout_gravity="center_vertical"
+            android:layout_marginLeft="?attr/listPreferredItemPaddingLeft"
+            android:layout_marginRight="?attr/listPreferredItemPaddingRight"
             android:duplicateParentState="true">
 
         <TextView
-                android:id="@+id/title"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_alignParentTop="true"
-                android:textAppearance="?attr/textAppearanceListItemSmall"
-                android:singleLine="true"
-                android:duplicateParentState="true"
-                android:ellipsize="marquee"
-                android:fadingEdge="horizontal" />
+            android:id="@+id/title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignParentTop="true"
+            android:layout_alignParentLeft="true"
+            android:textAppearance="?attr/textAppearanceListItemSmall"
+            android:singleLine="true"
+            android:duplicateParentState="true"
+            android:ellipsize="marquee"
+            android:fadingEdge="horizontal" />
 
         <TextView
-                android:id="@+id/shortcut"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_below="@id/title"
-                android:textAppearance="?android:attr/textAppearanceSmall"
-                android:singleLine="true"
-                android:duplicateParentState="true" />
+            android:id="@+id/shortcut"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/title"
+            android:layout_alignParentLeft="true"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:singleLine="true"
+            android:duplicateParentState="true" />
 
     </RelativeLayout>
 
     <!-- Checkbox, and/or radio button will be inserted here. -->
 
-</android.support.v7.internal.view.menu.ListMenuItemView>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_list_menu_item_layout.xml -->
\ No newline at end of file
+</android.support.v7.view.menu.ListMenuItemView>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_list_menu_item_layout.xml -->
\ No newline at end of file
index 9124850..547d8a7 100644 (file)
@@ -22,4 +22,4 @@
              android:focusable="false"
              android:clickable="false"
              android:duplicateParentState="true"/>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_list_menu_item_radio.xml -->
\ No newline at end of file
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_list_menu_item_radio.xml -->
\ No newline at end of file
index ceec5ce..9086bfb 100644 (file)
@@ -4,9 +4,9 @@
      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.
      limitations under the License.
 -->
 
-<android.support.v7.internal.view.menu.ListMenuItemView
+<android.support.v7.view.menu.ListMenuItemView
         xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="fill_parent"
+        android:layout_width="match_parent"
         android:layout_height="?attr/dropdownListPreferredItemHeight"
         android:minWidth="196dip"
-        android:paddingRight="16dip">
+        style="@style/RtlOverlay.Widget.AppCompat.PopupMenuItem">
 
     <!-- Icon will be inserted here. -->
 
             android:layout_weight="1"
             android:layout_height="wrap_content"
             android:layout_gravity="center_vertical"
-            android:layout_marginLeft="16dip"
-            android:duplicateParentState="true">
+            android:duplicateParentState="true"
+            style="@style/RtlOverlay.Widget.AppCompat.PopupMenuItem.InternalGroup">
 
         <TextView
                 android:id="@+id/title"
-                android:layout_width="fill_parent"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_alignParentTop="true"
-                android:layout_alignParentLeft="true"
                 android:textAppearance="?attr/textAppearanceLargePopupMenu"
                 android:singleLine="true"
                 android:duplicateParentState="true"
                 android:ellipsize="marquee"
-                android:fadingEdge="horizontal"/>
+                android:fadingEdge="horizontal"
+                style="@style/RtlOverlay.Widget.AppCompat.PopupMenuItem.Text" />
 
         <TextView
                 android:id="@+id/shortcut"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_below="@id/title"
-                android:layout_alignParentLeft="true"
                 android:textAppearance="?attr/textAppearanceSmallPopupMenu"
                 android:singleLine="true"
-                android:duplicateParentState="true"/>
+                android:duplicateParentState="true"
+                style="@style/RtlOverlay.Widget.AppCompat.PopupMenuItem.Text" />
 
     </RelativeLayout>
 
     <!-- Checkbox, and/or radio button will be inserted here. -->
 
-</android.support.v7.internal.view.menu.ListMenuItemView>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_popup_menu_item_layout.xml -->
\ No newline at end of file
+</android.support.v7.view.menu.ListMenuItemView>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_popup_menu_item_layout.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_screen_content_include.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_screen_content_include.xml
new file mode 100644 (file)
index 0000000..030a7e5
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <android.support.v7.widget.ContentFrameLayout
+            android:id="@id/action_bar_activity_content"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:foregroundGravity="fill_horizontal|top"
+            android:foreground="?android:attr/windowContentOverlay" />
+
+</merge>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_screen_content_include.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_screen_simple.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_screen_simple.xml
new file mode 100644 (file)
index 0000000..17ca3ff
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 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.
+-->
+
+<android.support.v7.widget.FitWindowsLinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/action_bar_root"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:fitsSystemWindows="true">
+
+    <android.support.v7.widget.ViewStubCompat
+        android:id="@+id/action_mode_bar_stub"
+        android:inflatedId="@+id/action_mode_bar"
+        android:layout="@layout/abc_action_mode_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+
+    <include layout="@layout/abc_screen_content_include" />
+
+</android.support.v7.widget.FitWindowsLinearLayout>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_screen_simple.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_screen_simple_overlay_action_mode.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_screen_simple_overlay_action_mode.xml
new file mode 100644 (file)
index 0000000..c2a3901
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2014, 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.
+*/
+
+This is an optimized layout for a screen, with the minimum set of features
+enabled.
+-->
+
+<android.support.v7.widget.FitWindowsFrameLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/action_bar_root"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:fitsSystemWindows="true">
+
+    <include layout="@layout/abc_screen_content_include" />
+
+    <android.support.v7.widget.ViewStubCompat
+            android:id="@+id/action_mode_bar_stub"
+            android:inflatedId="@+id/action_mode_bar"
+            android:layout="@layout/abc_action_mode_bar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content" />
+
+</android.support.v7.widget.FitWindowsFrameLayout><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_screen_simple_overlay_action_mode.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_screen_toolbar.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_screen_toolbar.xml
new file mode 100644 (file)
index 0000000..93ceb11
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<android.support.v7.widget.ActionBarOverlayLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:app="http://schemas.android.com/apk/res-auto"
+        android:id="@+id/decor_content_parent"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:fitsSystemWindows="true">
+
+    <include layout="@layout/abc_screen_content_include"/>
+
+    <android.support.v7.widget.ActionBarContainer
+            android:id="@+id/action_bar_container"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignParentTop="true"
+            style="?attr/actionBarStyle"
+            android:touchscreenBlocksFocus="true"
+            android:gravity="top">
+
+        <android.support.v7.widget.Toolbar
+                android:id="@+id/action_bar"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                app:navigationContentDescription="@string/abc_action_bar_up_description"
+                style="?attr/toolbarStyle"/>
+
+        <android.support.v7.widget.ActionBarContextView
+                android:id="@+id/action_context_bar"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:visibility="gone"
+                android:theme="?attr/actionBarTheme"
+                style="?attr/actionModeStyle"/>
+
+    </android.support.v7.widget.ActionBarContainer>
+
+</android.support.v7.widget.ActionBarOverlayLayout>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_screen_toolbar.xml -->
\ No newline at end of file
index 4e5c3da..03f26a0 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 /*
- * Copyright (C) 2013 The Android Open Source Project
+ * Copyright (C) 2014 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.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 -->
 
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                android:paddingLeft="@dimen/abc_dropdownitem_text_padding_left"
-                android:paddingRight="4dip"
                 android:layout_width="match_parent"
-                android:layout_height="?attr/searchResultListItemHeight" >
+                android:layout_height="58dip"
+                style="@style/RtlOverlay.Widget.AppCompat.Search.DropDown">
 
     <!-- Icons come first in the layout, since their placement doesn't depend on
          the placement of the text views. -->
-    <ImageView android:id="@android:id/icon1"
+    <ImageView
+               android:id="@android:id/icon1"
                android:layout_width="@dimen/abc_dropdownitem_icon_width"
                android:layout_height="48dip"
                android:scaleType="centerInside"
-               android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_alignParentBottom="true"
-               android:visibility="invisible" />
+               android:visibility="invisible"
+               style="@style/RtlOverlay.Widget.AppCompat.Search.DropDown.Icon1" />
 
-    <ImageView android:id="@+id/edit_query"
+    <ImageView
+               android:id="@+id/edit_query"
                android:layout_width="48dip"
                android:layout_height="48dip"
                android:scaleType="centerInside"
-               android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:layout_alignParentBottom="true"
-               android:src="?attr/searchViewEditQuery"
-               android:background="?attr/searchViewEditQueryBackground"
-               android:visibility="gone" />
+               android:background="?attr/selectableItemBackground"
+               android:visibility="gone"
+               style="@style/RtlOverlay.Widget.AppCompat.Search.DropDown.Query" />
 
-    <ImageView android:id="@android:id/icon2"
+    <ImageView
+               android:id="@id/android:icon2"
                android:layout_width="48dip"
                android:layout_height="48dip"
                android:scaleType="centerInside"
                android:layout_alignWithParentIfMissing="true"
-               android:layout_toLeftOf="@id/edit_query"
                android:layout_alignParentTop="true"
                android:layout_alignParentBottom="true"
-               android:visibility="gone" />
+               android:visibility="gone"
+               style="@style/RtlOverlay.Widget.AppCompat.Search.DropDown.Icon2" />
 
 
     <!-- The subtitle comes before the title, since the height of the title depends on whether the
@@ -67,8 +67,6 @@
               android:layout_height="29dip"
               android:paddingBottom="4dip"
               android:gravity="top"
-              android:layout_toRightOf="@android:id/icon1"
-              android:layout_toLeftOf="@android:id/icon2"
               android:layout_alignWithParentIfMissing="true"
               android:layout_alignParentBottom="true"
               android:visibility="gone" />
@@ -82,8 +80,7 @@
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:layout_centerVertical="true"
-              android:layout_toRightOf="@android:id/icon1"
-              android:layout_toLeftOf="@android:id/icon2"
               android:layout_above="@android:id/text2" />
 
-</RelativeLayout><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_search_dropdown_item_icons_2line.xml -->
\ No newline at end of file
+</RelativeLayout>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_search_dropdown_item_icons_2line.xml -->
\ No newline at end of file
index ec6a88b..12a86e4 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 /*
- * Copyright (C) 2013 The Android Open Source Project
+ * Copyright (C) 2014 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.
  */
 
 -->
-<LinearLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/search_bar"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="horizontal"
-        >
+        android:orientation="horizontal">
 
     <!-- This is actually used for the badge icon *or* the badge label (or neither) -->
     <TextView
@@ -35,8 +33,7 @@
             android:drawablePadding="0dip"
             android:textAppearance="?android:attr/textAppearanceMedium"
             android:textColor="?android:attr/textColorPrimary"
-            android:visibility="gone"
-            />
+            android:visibility="gone" />
 
     <ImageView
             android:id="@+id/search_button"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
             android:layout_gravity="center_vertical"
-            android:src="?attr/searchViewSearchIcon"
             android:focusable="true"
-            android:contentDescription="@string/abc_searchview_description_search"
-            />
+            android:contentDescription="@string/abc_searchview_description_search" />
 
     <LinearLayout
             android:id="@+id/search_edit_frame"
             android:layout_marginBottom="4dip"
             android:layout_marginLeft="8dip"
             android:layout_marginRight="8dip"
-            android:orientation="horizontal">
+            android:orientation="horizontal"
+            android:layoutDirection="locale">
 
         <ImageView
                 android:id="@+id/search_mag_icon"
                 android:layout_width="@dimen/abc_dropdownitem_icon_width"
                 android:layout_height="wrap_content"
                 android:scaleType="centerInside"
-                android:layout_marginLeft="@dimen/abc_dropdownitem_text_padding_left"
                 android:layout_gravity="center_vertical"
-                android:src="?attr/searchViewSearchIcon"
                 android:visibility="gone"
-                />
+                style="@style/RtlOverlay.Widget.AppCompat.SearchView.MagIcon" />
 
         <!-- Inner layout contains the app icon, button(s) and EditText -->
         <LinearLayout
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
                 android:layout_gravity="center_vertical"
-                android:orientation="horizontal"
-                android:background="?attr/searchViewTextField">
+                android:orientation="horizontal">
 
             <view class="android.support.v7.widget.SearchView$SearchAutoComplete"
-                  style="?attr/searchViewAutoCompleteTextView"
                   android:id="@+id/search_src_text"
                   android:layout_height="36dip"
                   android:layout_width="0dp"
                   android:dropDownHeight="wrap_content"
                   android:dropDownAnchor="@id/search_edit_frame"
                   android:dropDownVerticalOffset="0dip"
-                  android:dropDownHorizontalOffset="0dip"
-                  android:contentDescription="@string/abc_searchview_description_query"
-                    />
+                  android:dropDownHorizontalOffset="0dip" />
 
             <ImageView
                     android:id="@+id/search_close_btn"
                     android:paddingLeft="8dip"
                     android:paddingRight="8dip"
                     android:layout_gravity="center_vertical"
-                    android:background="?attr/selectableItemBackground"
-                    android:src="?attr/searchViewCloseIcon"
+                    android:background="?attr/selectableItemBackgroundBorderless"
                     android:focusable="true"
-                    android:contentDescription="@string/abc_searchview_description_clear"
-                    />
+                    android:contentDescription="@string/abc_searchview_description_clear" />
 
         </LinearLayout>
 
                 android:id="@+id/submit_area"
                 android:orientation="horizontal"
                 android:layout_width="wrap_content"
-                android:layout_height="match_parent"
-                android:background="?attr/searchViewTextFieldRight">
+                android:layout_height="match_parent">
 
             <ImageView
                     android:id="@+id/search_go_btn"
                     android:layout_gravity="center_vertical"
                     android:paddingLeft="16dip"
                     android:paddingRight="16dip"
-                    android:background="?attr/selectableItemBackground"
-                    android:src="?attr/searchViewGoIcon"
+                    android:background="?attr/selectableItemBackgroundBorderless"
                     android:visibility="gone"
                     android:focusable="true"
-                    android:contentDescription="@string/abc_searchview_description_submit"
-                    />
+                    android:contentDescription="@string/abc_searchview_description_submit" />
 
             <ImageView
                     android:id="@+id/search_voice_btn"
                     android:layout_gravity="center_vertical"
                     android:paddingLeft="16dip"
                     android:paddingRight="16dip"
-                    android:src="?attr/searchViewVoiceIcon"
-                    android:background="?attr/selectableItemBackground"
+                    android:background="?attr/selectableItemBackgroundBorderless"
                     android:visibility="gone"
                     android:focusable="true"
-                    android:contentDescription="@string/abc_searchview_description_voice"
-                    />
+                    android:contentDescription="@string/abc_searchview_description_voice" />
         </LinearLayout>
     </LinearLayout>
-
-</LinearLayout><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_search_view.xml -->
\ No newline at end of file
+</LinearLayout>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_search_view.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_select_dialog_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_select_dialog_material.xml
new file mode 100644 (file)
index 0000000..2016fb9
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 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.
+-->
+
+<!--
+    This layout file is used by the AlertDialog when displaying a list of items.
+    This layout file is inflated and used as the ListView to display the items.
+    Assign an ID so its state will be saved/restored.
+-->
+<ListView xmlns:android="http://schemas.android.com/apk/res/android"
+      android:id="@+id/select_dialog_listview"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:cacheColorHint="@null"
+      android:divider="?attr/listDividerAlertDialog"
+      android:scrollbars="vertical"
+      android:overScrollMode="ifContentScrolls"
+      android:fadingEdge="none"
+      android:paddingTop="@dimen/abc_dialog_list_padding_vertical_material"
+      android:paddingBottom="@dimen/abc_dialog_list_padding_vertical_material"
+      android:clipToPadding="false"
+      style="@style/Widget.AppCompat.ListView" /><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/abc_select_dialog_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_simple_decor.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_simple_decor.xml
deleted file mode 100644 (file)
index 7d6c490..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/action_bar_root"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:fitsSystemWindows="true">
-
-    <FrameLayout
-        android:id="@id/action_bar_activity_content"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:foreground="?android:attr/windowContentOverlay"/>
-
-</LinearLayout>
-<!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/abc_simple_decor.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_media_action.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_media_action.xml
new file mode 100644 (file)
index 0000000..bd991fc
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+
+<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
+    style="?android:attr/borderlessButtonStyle"
+    android:id="@+id/action0"
+    android:layout_width="48dp"
+    android:layout_height="match_parent"
+    android:layout_marginLeft="2dp"
+    android:layout_marginRight="2dp"
+    android:layout_weight="1"
+    android:gravity="center"/><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/notification_media_action.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_media_cancel_action.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_media_cancel_action.xml
new file mode 100644 (file)
index 0000000..8bb7065
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2015 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
+  -->
+
+<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
+    style="?android:attr/borderlessButtonStyle"
+    android:id="@+id/cancel_action"
+    android:layout_width="48dp"
+    android:layout_height="match_parent"
+    android:layout_marginLeft="2dp"
+    android:layout_marginRight="2dp"
+    android:layout_weight="1"
+    android:src="@drawable/abc_ic_clear_mtrl_alpha"
+    android:gravity="center"
+    android:visibility="gone"/><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/notification_media_cancel_action.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_big_media.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_big_media.xml
new file mode 100644 (file)
index 0000000..6a7f7e2
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2015 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
+  -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/status_bar_latest_event_content"
+    android:layout_width="match_parent"
+    android:layout_height="128dp"
+    >
+    <ImageView android:id="@+id/icon"
+        android:layout_width="@dimen/notification_large_icon_width"
+        android:layout_height="@dimen/notification_large_icon_height"
+        android:scaleType="centerCrop"
+        />
+    <include layout="@layout/notification_media_cancel_action"
+        android:layout_width="48dp"
+        android:layout_height="48dp"
+        android:layout_marginLeft="2dp"
+        android:layout_marginRight="2dp"
+        android:layout_alignParentRight="true"/>
+    <include layout="@layout/notification_template_lines"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="fill_vertical"
+        android:layout_marginLeft="@dimen/notification_large_icon_width"
+        android:layout_marginStart="@dimen/notification_large_icon_width"
+        android:layout_toLeftOf="@id/cancel_action"
+        android:layout_toStartOf="@id/cancel_action"/>
+    <LinearLayout
+        android:id="@+id/media_actions"
+        android:layout_width="match_parent"
+        android:layout_height="48dp"
+        android:layout_alignParentBottom="true"
+        android:layout_marginLeft="12dp"
+        android:layout_marginRight="12dp"
+        android:orientation="horizontal"
+        android:layoutDirection="ltr"
+        >
+        <!-- media buttons will be added here -->
+    </LinearLayout>
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:layout_above="@id/media_actions"
+        android:id="@+id/action_divider"
+        android:background="?android:attr/dividerHorizontal" />
+</RelativeLayout>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/notification_template_big_media.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_big_media_narrow.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_big_media_narrow.xml
new file mode 100644 (file)
index 0000000..0227567
--- /dev/null
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2015 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
+  -->
+
+<!-- Layout to be used with only max 3 actions. It has a much larger picture at the left side-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/status_bar_latest_event_content"
+    android:layout_width="match_parent"
+    android:layout_height="128dp"
+    >
+    <ImageView android:id="@+id/icon"
+        android:layout_width="128dp"
+        android:layout_height="128dp"
+        android:scaleType="centerCrop"
+        />
+
+    <include layout="@layout/notification_media_cancel_action"
+        android:layout_width="48dp"
+        android:layout_height="48dp"
+        android:layout_marginLeft="2dp"
+        android:layout_marginRight="2dp"
+        android:layout_alignParentRight="true"
+        android:layout_alignParentEnd="true"/>
+
+    <include layout="@layout/notification_template_lines"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="128dp"
+        android:layout_marginStart="128dp"
+        android:layout_toLeftOf="@id/cancel_action"
+        android:layout_toStartOf="@id/cancel_action"/>
+
+    <LinearLayout
+        android:id="@+id/media_actions"
+        android:layout_width="match_parent"
+        android:layout_height="48dp"
+        android:layout_toRightOf="@id/icon"
+        android:layout_toEndOf="@id/icon"
+        android:layout_alignParentBottom="true"
+        android:layout_marginLeft="12dp"
+        android:layout_marginRight="12dp"
+        android:orientation="horizontal"
+        android:layoutDirection="ltr"
+        >
+        <!-- media buttons will be added here -->
+    </LinearLayout>
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:layout_toRightOf="@id/icon"
+        android:layout_toEndOf="@id/icon"
+        android:layout_above="@id/media_actions"
+        android:id="@+id/action_divider"
+        android:background="?android:attr/dividerHorizontal" />
+</RelativeLayout>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/notification_template_big_media_narrow.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_lines.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_lines.xml
new file mode 100644 (file)
index 0000000..363bf5f
--- /dev/null
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2015 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
+  -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:paddingRight="8dp"
+    android:paddingEnd="8dp"
+    android:paddingTop="2dp"
+    android:paddingBottom="2dp"
+    >
+    <LinearLayout
+        android:id="@+id/line1"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:paddingTop="6dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginStart="8dp"
+        android:orientation="horizontal"
+        >
+        <TextView android:id="@+id/title"
+            android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Title"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:ellipsize="marquee"
+            android:fadingEdge="horizontal"
+            android:layout_weight="1"
+            />
+        <include
+            layout="@layout/notification_template_part_time"
+            android:id="@+id/time"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_weight="0"
+            android:visibility="gone"
+            />
+        <include
+            layout="@layout/notification_template_part_chronometer"
+            android:id="@+id/chronometer"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_weight="0"
+            android:visibility="gone"
+            />
+    </LinearLayout>
+    <TextView android:id="@+id/text2"
+        android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Line2"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="-2dp"
+        android:layout_marginBottom="-2dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginStart="8dp"
+        android:singleLine="true"
+        android:fadingEdge="horizontal"
+        android:ellipsize="marquee"
+        android:visibility="gone"
+        />
+    <LinearLayout
+        android:id="@+id/line3"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:gravity="center_vertical"
+        android:layout_marginLeft="8dp"
+        android:layout_marginStart="8dp"
+        >
+        <TextView android:id="@+id/text"
+            android:textAppearance="@style/TextAppearance.StatusBar.EventContent"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:layout_gravity="center"
+            android:singleLine="true"
+            android:ellipsize="marquee"
+            android:fadingEdge="horizontal"
+            />
+        <TextView android:id="@+id/info"
+            android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Info"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_weight="0"
+            android:singleLine="true"
+            android:gravity="center"
+            android:paddingLeft="8dp"
+            android:paddingStart="8dp"
+            />
+    </LinearLayout>
+</LinearLayout><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/notification_template_lines.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_media.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_media.xml
new file mode 100644 (file)
index 0000000..060dbb0
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2015 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
+  -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/status_bar_latest_event_content"
+    android:layout_width="match_parent"
+    android:layout_height="64dp"
+    android:orientation="horizontal"
+    >
+    <ImageView android:id="@+id/icon"
+        android:layout_width="@dimen/notification_large_icon_width"
+        android:layout_height="@dimen/notification_large_icon_width"
+        android:scaleType="centerCrop"
+        />
+    <include layout="@layout/notification_template_lines"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"/>
+    <LinearLayout
+        android:id="@+id/media_actions"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_gravity="center_vertical|end"
+        android:orientation="horizontal"
+        android:layoutDirection="ltr"
+        >
+        <!-- media buttons will be added here -->
+    </LinearLayout>
+    <include layout="@layout/notification_media_cancel_action"
+        android:layout_width="48dp"
+        android:layout_height="match_parent"
+        android:layout_marginRight="6dp"
+        android:layout_marginEnd="6dp"/>
+    <ImageView android:id="@+id/end_padder"
+        android:layout_width="6dp"
+        android:layout_height="match_parent"
+        />
+</LinearLayout>
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/notification_template_media.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_part_chronometer.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_part_chronometer.xml
new file mode 100644 (file)
index 0000000..0a01124
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2015 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
+  -->
+
+<Chronometer android:id="@+id/chronometer" xmlns:android="http://schemas.android.com/apk/res/android"
+    android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Time"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center"
+    android:layout_weight="0"
+    android:singleLine="true"
+    android:gravity="center"
+    android:paddingLeft="8dp"
+    android:paddingStart="8dp"
+    />
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/notification_template_part_chronometer.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_part_time.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/notification_template_part_time.xml
new file mode 100644 (file)
index 0000000..2dbdb6b
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2015 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
+  -->
+
+<DateTimeView android:id="@+id/time" xmlns:android="http://schemas.android.com/apk/res/android"
+    android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Time"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center"
+    android:layout_weight="0"
+    android:singleLine="true"
+    android:gravity="center"
+    android:paddingLeft="8dp"
+    android:paddingStart="8dp"
+    />
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/notification_template_part_time.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/select_dialog_item_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/select_dialog_item_material.xml
new file mode 100644 (file)
index 0000000..8d2116d
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2014 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.
+-->
+
+<!--
+    This layout file is used by the AlertDialog when displaying a list of items.
+    This layout file is inflated and used as the TextView to display individual
+    items.
+-->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?attr/listPreferredItemHeightSmall"
+    android:textAppearance="?attr/textAppearanceListItemSmall"
+    android:textColor="?attr/textColorAlertDialogListItem"
+    android:gravity="center_vertical"
+    android:paddingLeft="?attr/listPreferredItemPaddingLeft"
+    android:paddingRight="?attr/listPreferredItemPaddingRight"
+    android:ellipsize="marquee" />
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/select_dialog_item_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/select_dialog_multichoice_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/select_dialog_multichoice_material.xml
new file mode 100644 (file)
index 0000000..4f20ba4
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2014 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.
+-->
+
+<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
+                 android:id="@android:id/text1"
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"
+                 android:minHeight="?attr/listPreferredItemHeightSmall"
+                 android:textAppearance="?android:attr/textAppearanceMedium"
+                 android:textColor="?attr/textColorAlertDialogListItem"
+                 android:gravity="center_vertical"
+                 android:paddingLeft="@dimen/abc_select_dialog_padding_start_material"
+                 android:paddingRight="?attr/dialogPreferredPadding"
+                 android:paddingStart="@dimen/abc_select_dialog_padding_start_material"
+                 android:paddingEnd="?attr/dialogPreferredPadding"
+                 android:drawableLeft="?android:attr/listChoiceIndicatorMultiple"
+                 android:drawableStart="?android:attr/listChoiceIndicatorMultiple"
+                 android:drawablePadding="20dp"
+                 android:ellipsize="marquee" />
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/select_dialog_multichoice_material.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/select_dialog_singlechoice_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/select_dialog_singlechoice_material.xml
new file mode 100644 (file)
index 0000000..3a0f626
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2014 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.
+-->
+
+<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
+                 android:id="@android:id/text1"
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"
+                 android:minHeight="?attr/listPreferredItemHeightSmall"
+                 android:textAppearance="?android:attr/textAppearanceMedium"
+                 android:textColor="?attr/textColorAlertDialogListItem"
+                 android:gravity="center_vertical"
+                 android:paddingLeft="@dimen/abc_select_dialog_padding_start_material"
+                 android:paddingRight="?attr/dialogPreferredPadding"
+                 android:paddingStart="@dimen/abc_select_dialog_padding_start_material"
+                 android:paddingEnd="?attr/dialogPreferredPadding"
+                 android:drawableLeft="?android:attr/listChoiceIndicatorSingle"
+                 android:drawableStart="?android:attr/listChoiceIndicatorSingle"
+                 android:drawablePadding="20dp"
+                 android:ellipsize="marquee" />
+<!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/select_dialog_singlechoice_material.xml -->
\ No newline at end of file
index cdfa2f4..aa63acd 100644 (file)
@@ -22,4 +22,4 @@
           android:singleLine="true"
           android:layout_width="match_parent"
           android:layout_height="?attr/dropdownListPreferredItemHeight"
-          android:ellipsize="marquee"/><!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/layout/support_simple_spinner_dropdown_item.xml -->
\ No newline at end of file
+          android:ellipsize="marquee"/><!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/layout/support_simple_spinner_dropdown_item.xml -->
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-af/values-af.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-af/values-af.xml
new file mode 100644 (file)
index 0000000..a1aa78c
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-af/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navigeer tuis"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navigeer op"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Nog opsies"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Klaar"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Sien alles"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Kies \'n program"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"AF"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"AAN"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Soek …"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Vee navraag uit"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Soeknavraag"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Soek"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Dien navraag in"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Stemsoektog"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Deel met"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Deel met %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Vou in"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-af/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-af/values.xml
deleted file mode 100644 (file)
index e13cb3a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-af/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navigeer tuis"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navigeer op"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Nog opsies"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Klaar"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Sien alles"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Kies \'n program"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Vee navraag uit"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Soeknavraag"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Soek"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Dien navraag in"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Stemsoektog"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Deel met"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Deel met %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-am/values-am.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-am/values-am.xml
new file mode 100644 (file)
index 0000000..596be4c
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-am/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"ወደ መነሻ ይዳስሱ"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s፣ %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s፣ %2$s፣ %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"ወደ ላይ ይዳስሱ"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"ተጨማሪ አማራጮች"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"ተከናውኗል"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"ሁሉንም ይመልከቱ"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"መተግበሪያ ይምረጡ"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ጠፍቷል"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"በርቷል"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"ፈልግ…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"መጠይቅ አጽዳ"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"የፍለጋ ጥያቄ"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"ፍለጋ"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"መጠይቅ ያስረክቡ"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"የድምፅ ፍለጋ"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"ከሚከተለው ጋር ያጋሩ"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"ከ%s ጋር ያጋሩ"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"ሰብስብ"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-am/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-am/values.xml
deleted file mode 100644 (file)
index aedf4c1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-am/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"ወደ መነሻ ይዳስሱ"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"ወደ ላይ ይዳስሱ"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"ተጨማሪ አማራጮች"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"ተከናውኗል"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"ሁሉንም ይመልከቱ"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"መተግበሪያ ይምረጡ"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"መጠይቅ አጽዳ"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"የፍለጋ ጥያቄ"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"ፍለጋ"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"መጠይቅ ያስረክቡ"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"የድምፅ ፍለጋ"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"ከሚከተለው ጋር ያጋሩ"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"ከ%s ጋር ያጋሩ"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ar/values-ar.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ar/values-ar.xml
new file mode 100644 (file)
index 0000000..a74314f
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ar/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"التنقل إلى الشاشة الرئيسية"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s، %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s، %2$s، %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"التنقل إلى أعلى"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"خيارات إضافية"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"تم"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"عرض الكل"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"اختيار تطبيق"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"إيقاف"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"تشغيل"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"بحث…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"محو طلب البحث"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"طلب البحث"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"بحث"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"إرسال طلب البحث"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"البحث الصوتي"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"مشاركة مع"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"‏مشاركة مع %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"تصغير"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"+999"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ar/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ar/values.xml
deleted file mode 100644 (file)
index d50b625..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-ar/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"التنقل إلى الشاشة الرئيسية"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"التنقل إلى أعلى"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"خيارات إضافية"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"تم"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"عرض الكل"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"اختيار تطبيق"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"محو طلب البحث"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"طلب البحث"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"بحث"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"إرسال طلب البحث"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"البحث الصوتي"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"مشاركة مع"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"مشاركة مع %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-az-rAZ/values-az-rAZ.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-az-rAZ/values-az-rAZ.xml
new file mode 100644 (file)
index 0000000..a243400
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-az-rAZ/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Evə get"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Yuxarı get"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Daha çox seçim"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Hazırdır"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Hamısına baxın"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Tətbiq seçin"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"DEAKTİV"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"AKTİV"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Axtarış..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Sorğunu təmizlə"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Axtarış sorğusu"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Axtarış"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Sorğunu göndərin"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Səsli axtarış"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Bununla paylaşın"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Dağıt"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-bg/values-bg.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-bg/values-bg.xml
new file mode 100644 (file)
index 0000000..65573fa
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-bg/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Придвижване към „Начало“"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"„%1$s“ – %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"„%1$s“, „%2$s“ – %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Придвижване нагоре"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Още опции"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Готово"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Вижте всички"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Изберете приложение"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ИЗКЛ."</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ВКЛ."</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Търсете…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Изчистване на заявката"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Заявка за търсене"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Търсене"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Изпращане на заявката"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Гласово търсене"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Споделяне със:"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Споделяне със: %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Свиване"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-bg/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-bg/values.xml
deleted file mode 100644 (file)
index f778293..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-bg/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Придвижване към „Начало“"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Придвижване нагоре"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Още опции"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Готово"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Вижте всички"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Изберете приложение"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Изчистване на заявката"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Заявка за търсене"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Търсене"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Изпращане на заявката"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Гласово търсене"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Споделяне със:"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Споделяне със: %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-bn-rBD/values-bn-rBD.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-bn-rBD/values-bn-rBD.xml
new file mode 100644 (file)
index 0000000..2752881
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-bn-rBD/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"হোম এ নেভিগেট করুন"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"উপরের দিকে নেভিগেট করুন"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"আরো বিকল্প"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"সম্পন্ন হয়েছে"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"সবগুলো দেখুন"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"একটি অ্যাপ্লিকেশান চয়ন করুন"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"বন্ধ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"চালু"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"অনুসন্ধান..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"ক্যোয়ারী সাফ করুন"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"ক্যোয়ারী অনুসন্ধান করুন"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"অনুসন্ধান করুন"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"ক্যোয়ারী জমা দিন"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"ভয়েস অনুসন্ধান"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"এর সাথে ভাগ করুন"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s এর সাথে ভাগ করুন"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"সঙ্কুচিত করুন"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"৯৯৯+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ca/values-ca.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ca/values-ca.xml
new file mode 100644 (file)
index 0000000..945029d
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ca/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navega a la pàgina d\'inici"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navega cap a dalt"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Més opcions"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Fet"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Mostra\'ls tots"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Selecciona una aplicació"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"DESACTIVAT"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ACTIVAT"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Cerca..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Esborra la consulta"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Consulta de cerca"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Cerca"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Envia la consulta"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Cerca per veu"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Comparteix amb"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Comparteix amb %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Replega"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"+999"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ca/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ca/values.xml
deleted file mode 100644 (file)
index 8f58144..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-ca/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navega a la pàgina d\'inici"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navega cap a dalt"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Més opcions"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Fet"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Mostra\'ls tots"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Selecciona una aplicació"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Esborra la consulta"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Consulta de cerca"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Cerca"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Envia la consulta"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Cerca per veu"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Comparteix amb"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Comparteix amb %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-cs/values-cs.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-cs/values-cs.xml
new file mode 100644 (file)
index 0000000..7d57dfa
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-cs/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Přejít na plochu"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s – %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s – %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Přejít nahoru"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Více možností"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Hotovo"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Zobrazit vše"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Vybrat aplikaci"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"VYPNUTO"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ZAPNUTO"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Vyhledat…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Smazat dotaz"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Vyhledávací dotaz"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Hledat"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Odeslat dotaz"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Hlasové vyhledávání"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Sdílet pomocí"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Sdílet pomocí %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Sbalit"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-cs/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-cs/values.xml
deleted file mode 100644 (file)
index e70f536..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-cs/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Přejít na plochu"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Přejít nahoru"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Více možností"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Hotovo"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Zobrazit vše"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Vybrat aplikaci"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Smazat dotaz"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Vyhledávací dotaz"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Hledat"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Odeslat dotaz"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Hlasové vyhledávání"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Sdílet pomocí"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Sdílet pomocí %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-da/values-da.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-da/values-da.xml
new file mode 100644 (file)
index 0000000..a0983ce
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-da/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Naviger hjem"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Naviger op"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Flere muligheder"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Luk"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Se alle"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Vælg en app"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"FRA"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"TIL"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Søg…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Ryd forespørgslen"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Søgeforespørgsel"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Søg"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Indsend forespørgslen"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Talesøgning"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Del med"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Del med %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Skjul"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-da/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-da/values.xml
deleted file mode 100644 (file)
index 39d165b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-da/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Naviger hjem"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Naviger op"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Flere muligheder"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Luk"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Se alle"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Vælg en app"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Ryd forespørgslen"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Søgeforespørgsel"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Søg"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Indsend forespørgslen"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Stemmesøgning"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Del med"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Del med %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-de/values-de.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-de/values-de.xml
new file mode 100644 (file)
index 0000000..17ddbfc
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-de/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Zur Startseite"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s: %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s: %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Nach oben"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Weitere Optionen"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Fertig"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Alle ansehen"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"App auswählen"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"Aus"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"An"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Suchen…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Suchanfrage löschen"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Suchanfrage"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Suchen"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Suchanfrage senden"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Sprachsuche"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Freigeben für"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Freigeben für %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Minimieren"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-de/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-de/values.xml
deleted file mode 100644 (file)
index 8944055..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-de/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Zur Startseite"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Nach oben"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Weitere Optionen"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Fertig"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Alle ansehen"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"App auswählen"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Suchanfrage löschen"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Suchanfrage"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Suchen"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Suchanfrage senden"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Sprachsuche"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Freigeben für"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Freigeben für %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-el/values-el.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-el/values-el.xml
new file mode 100644 (file)
index 0000000..5ab4650
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-el/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Πλοήγηση στην αρχική σελίδα"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Πλοήγηση προς τα επάνω"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Περισσότερες επιλογές"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Τέλος"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Προβολή όλων"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Επιλέξτε κάποια εφαρμογή"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ΑΠΕΝΕΡΓΟΠΟΙΗΣΗ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ΕΝΕΡΓΟΠΟΙΗΣΗ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Αναζήτηση…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Διαγραφή ερωτήματος"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Ερώτημα αναζήτησης"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Αναζήτηση"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Υποβολή ερωτήματος"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Φωνητική αναζήτηση"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Κοινή χρήση με"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Κοινή χρήση με %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Σύμπτυξη"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-el/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-el/values.xml
deleted file mode 100644 (file)
index bd3a77b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-el/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Πλοήγηση στην αρχική σελίδα"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Πλοήγηση προς τα επάνω"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Περισσότερες επιλογές"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Τέλος"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Προβολή όλων"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Επιλέξτε κάποια εφαρμογή"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Διαγραφή ερωτήματος"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Ερώτημα αναζήτησης"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Αναζήτηση"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Υποβολή ερωτήματος"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Φωνητική αναζήτηση"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Κοινή χρήση με"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Κοινή χρήση με %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-en-rAU/values-en-rAU.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-en-rAU/values-en-rAU.xml
new file mode 100644 (file)
index 0000000..1551158
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-en-rAU/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navigate home"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navigate up"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"More options"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Done"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"See all"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Choose an app"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"OFF"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ON"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Search…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Clear query"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Search query"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Search"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Submit query"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Voice search"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Share with"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Share with %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Collapse"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-en-rGB/values-en-rGB.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-en-rGB/values-en-rGB.xml
new file mode 100644 (file)
index 0000000..7f07e79
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-en-rGB/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navigate home"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navigate up"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"More options"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Done"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"See all"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Choose an app"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"OFF"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ON"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Search…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Clear query"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Search query"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Search"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Submit query"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Voice search"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Share with"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Share with %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Collapse"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-en-rGB/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-en-rGB/values.xml
deleted file mode 100644 (file)
index f972e2c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-en-rGB/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navigate home"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navigate up"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"More options"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Finished"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"See all"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Choose an app"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Clear query"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Search query"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Search"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Submit query"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Voice search"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Share with"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Share with %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-en-rIN/values-en-rIN.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-en-rIN/values-en-rIN.xml
new file mode 100644 (file)
index 0000000..96ea893
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-en-rIN/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navigate home"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navigate up"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"More options"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Done"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"See all"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Choose an app"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"OFF"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ON"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Search…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Clear query"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Search query"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Search"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Submit query"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Voice search"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Share with"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Share with %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Collapse"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-en-rIN/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-en-rIN/values.xml
deleted file mode 100644 (file)
index 7a7a5dc..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-en-rIN/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navigate home"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navigate up"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"More options"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Finished"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"See all"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Choose an app"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Clear query"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Search query"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Search"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Submit query"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Voice search"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Share with"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Share with %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-es-rUS/values-es-rUS.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-es-rUS/values-es-rUS.xml
new file mode 100644 (file)
index 0000000..48fdcec
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-es-rUS/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navegar a la página principal"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navegar hacia arriba"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Más opciones"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Listo"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Ver todo"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Elige una aplicación."</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"DESACTIVAR"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ACTIVAR"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Buscar…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Eliminar la consulta"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Consulta de búsqueda"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Búsqueda"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Enviar consulta"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Búsqueda por voz"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Compartir con"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Compartir con %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Contraer"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-es-rUS/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-es-rUS/values.xml
deleted file mode 100644 (file)
index 4169a4b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-es-rUS/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navegar a la página principal"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navegar hacia arriba"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Más opciones"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Listo"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Ver todo"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Elige una aplicación."</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Eliminar la consulta"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Consulta de búsqueda"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Búsqueda"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Enviar consulta"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Búsqueda por voz"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Compartir con"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Compartir con %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-es/values-es.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-es/values-es.xml
new file mode 100644 (file)
index 0000000..711cf21
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-es/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Ir a la pantalla de inicio"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Desplazarse hacia arriba"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Más opciones"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Listo"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Ver todo"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Seleccionar una aplicación"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"NO"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"SÍ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Buscar…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Borrar consulta"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Consulta"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Buscar"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Enviar consulta"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Búsqueda por voz"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Compartir con"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Compartir con %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Contraer"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"+999"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-es/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-es/values.xml
deleted file mode 100644 (file)
index aa376b6..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-es/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Ir a la pantalla de inicio"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Desplazarse hacia arriba"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Más opciones"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Listo"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Ver todo"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Seleccionar una aplicación"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Borrar consulta"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Consulta"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Buscar"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Enviar consulta"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Búsqueda por voz"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Compartir con"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Compartir con %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-et-rEE/values-et-rEE.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-et-rEE/values-et-rEE.xml
new file mode 100644 (file)
index 0000000..ab28b65
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-et-rEE/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navigeerimine avaekraanile"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navigeerimine üles"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Rohkem valikuid"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Valmis"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Kuva kõik"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Valige rakendus"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"VÄLJAS"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"SEES"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Otsige …"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Päringu tühistamine"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Otsingupäring"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Otsing"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Päringu esitamine"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Häälotsing"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Jagamine:"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Jagamine kasutajaga %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Ahendamine"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-et-rEE/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-et-rEE/values.xml
deleted file mode 100644 (file)
index f1f8e9e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-et-rEE/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navigeerimine avaekraanile"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navigeerimine üles"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Rohkem valikuid"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Valmis"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Kuva kõik"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Valige rakendus"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Päringu tühistamine"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Otsingupäring"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Otsing"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Päringu esitamine"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Häälotsing"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Jagamine:"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Jagamine kasutajaga %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-eu-rES/values-eu-rES.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-eu-rES/values-eu-rES.xml
new file mode 100644 (file)
index 0000000..f3a6060
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-eu-rES/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Joan orri nagusira"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Joan gora"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Aukera gehiago"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Eginda"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Ikusi guztiak"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Aukeratu aplikazio bat"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"DESAKTIBATUTA"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"AKTIBATUTA"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Bilatu…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Garbitu kontsulta"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Bilaketa-kontsulta"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Bilatu"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Bidali kontsulta"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Ahots bidezko bilaketa"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Partekatu hauekin"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Partekatu %s erabiltzailearekin"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Tolestu"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-fa/values-fa.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-fa/values-fa.xml
new file mode 100644 (file)
index 0000000..a460baf
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-fa/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"پیمایش به صفحه اصلی"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"‏%1$s‏، %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"‏%1$s‏، %2$s‏، %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"پیمایش به بالا"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"گزینه‌های بیشتر"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"تمام"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"مشاهده همه"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"انتخاب برنامه"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"خاموش"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"روشن"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"جستجو…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"پاک کردن عبارت جستجو"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"عبارت جستجو"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"جستجو"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"ارسال عبارت جستجو"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"جستجوی شفاهی"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"اشتراک‌گذاری با"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"‏اشتراک‌گذاری با %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"کوچک کردن"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"۹۹۹+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-fa/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-fa/values.xml
deleted file mode 100644 (file)
index 1e163bc..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-fa/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"پیمایش به صفحه اصلی"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"پیمایش به بالا"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"گزینه‌های بیشتر"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"انجام شد"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"مشاهده همه"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"انتخاب برنامه"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"پاک کردن عبارت جستجو"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"عبارت جستجو"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"جستجو"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"ارسال عبارت جستجو"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"جستجوی شفاهی"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"اشتراک‌گذاری با"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"اشتراک‌گذاری با %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-fi/values-fi.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-fi/values-fi.xml
new file mode 100644 (file)
index 0000000..f07e2d7
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-fi/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Siirry etusivulle"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Siirry ylös"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Lisää"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Valmis"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Näytä kaikki"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Valitse sovellus"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"POIS KÄYTÖSTÄ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"KÄYTÖSSÄ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Haku…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Tyhjennä kysely"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Hakulauseke"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Haku"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Lähetä kysely"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Puhehaku"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Jakaminen:"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Jakaminen: %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Kutista"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-fi/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-fi/values.xml
deleted file mode 100644 (file)
index 4b73201..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-fi/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Siirry etusivulle"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Siirry ylös"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Lisää"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Valmis"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Näytä kaikki"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Valitse sovellus"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Tyhjennä kysely"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Hakulauseke"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Haku"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Lähetä kysely"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Puhehaku"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Jakaminen:"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Jakaminen: %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-fr-rCA/values-fr-rCA.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-fr-rCA/values-fr-rCA.xml
new file mode 100644 (file)
index 0000000..2c83347
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-fr-rCA/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Revenir à l\'accueil"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Revenir en haut de la page"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Plus d\'options"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Terminé"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Voir toutes les chaînes"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Sélectionnez une application"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"DÉSACTIVÉ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ACTIVÉ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Recherche en cours..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Effacer la requête"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Requête de recherche"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Rechercher"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Envoyer la requête"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Recherche vocale"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Partager"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Partager avec %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Réduire"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">">999"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-fr-rCA/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-fr-rCA/values.xml
deleted file mode 100644 (file)
index 758d47c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-fr-rCA/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Revenir à l\'accueil"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Revenir en haut de la page"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Plus d\'options"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Terminé"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Voir toutes les chaînes"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Sélectionnez une application"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Effacer la requête"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Requête de recherche"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Rechercher"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Envoyer la requête"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Recherche vocale"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Partager avec"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Partager avec %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-fr/values-fr.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-fr/values-fr.xml
new file mode 100644 (file)
index 0000000..8b2c81f
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-fr/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Revenir à l\'accueil"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Revenir en haut de la page"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Plus d\'options"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"OK"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Tout afficher"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Sélectionner une application"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"DÉSACTIVÉ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ACTIVÉ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Rechercher…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Effacer la requête"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Requête de recherche"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Rechercher"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Envoyer la requête"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Recherche vocale"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Partager avec"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Partager avec %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Réduire"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">">999"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-fr/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-fr/values.xml
deleted file mode 100644 (file)
index 7fd03d4..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-fr/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Revenir à l\'accueil"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Revenir en haut de la page"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Plus d\'options"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"OK"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Tout afficher"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Sélectionner une application"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Effacer la requête"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Requête de recherche"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Rechercher"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Envoyer la requête"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Recherche vocale"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Partager avec"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Partager avec %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-gl-rES/values-gl-rES.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-gl-rES/values-gl-rES.xml
new file mode 100644 (file)
index 0000000..0b0c3a0
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-gl-rES/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Ir á páxina de inicio"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Desprazarse cara arriba"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Máis opcións"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Feito"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Ver todas"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Escoller unha aplicación"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"DESACTIVAR"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ACTIVAR"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Buscar…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Borrar consulta"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Consulta de busca"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Buscar"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Enviar consulta"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Busca de voz"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Compartir con"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Compartir con %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Contraer"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">">999"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-gu-rIN/values-gu-rIN.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-gu-rIN/values-gu-rIN.xml
new file mode 100644 (file)
index 0000000..73cc38f
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-gu-rIN/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"હોમ પર નેવિગેટ કરો"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"ઉપર નેવિગેટ કરો"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"વધુ વિકલ્પો"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"થઈ ગયું"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"બધું જુઓ"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"એક એપ્લિકેશન પસંદ કરો"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"બંધ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ચાલુ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"શોધો…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"ક્વેરી સાફ કરો"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"શોધ ક્વેરી"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"શોધો"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"ક્વેરી સબમિટ કરો"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"વૉઇસ શોધ"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"આની સાથે શેર કરો"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s સાથે શેર કરો"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"સંકુચિત કરો"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-h320dp/values-h320dp.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-h320dp/values-h320dp.xml
new file mode 100644 (file)
index 0000000..9af3cd4
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-h320dp/bools.xml -->
+    <eat-comment/>
+    <bool name="abc_allow_stacked_button_bar">true</bool>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-h720dp/values-h720dp.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-h720dp/values-h720dp.xml
new file mode 100644 (file)
index 0000000..a6a48e6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-h720dp/dimens.xml -->
+    <eat-comment/>
+    <dimen name="abc_alert_dialog_button_bar_height">54dip</dimen>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-hdpi/values-hdpi.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-hdpi/values-hdpi.xml
new file mode 100644 (file)
index 0000000..e4cb864
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-hdpi/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.Widget.AppCompat.DrawerArrowToggle" parent="Base.Widget.AppCompat.DrawerArrowToggle.Common">
+          <item name="barLength">18.66dp</item>
+          <item name="gapBetweenBars">3.33dp</item>
+          <item name="drawableSize">24dp</item>
+     </style>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-hi/values-hi.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-hi/values-hi.xml
new file mode 100644 (file)
index 0000000..dcd1f13
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-hi/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"मुख्यपृष्ठ पर नेविगेट करें"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"ऊपर नेविगेट करें"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"अधिक विकल्प"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"पूर्ण"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"सभी देखें"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"कोई एप्‍लिकेशन चुनें"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"बंद"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"चालू"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"खोजा जा रहा है…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"क्‍वेरी साफ़ करें"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"खोज क्वेरी"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"खोजें"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"क्वेरी सबमिट करें"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"ध्वनि खोज"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"इसके द्वारा साझा करें"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s के साथ साझा करें"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"संक्षिप्त करें"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-hi/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-hi/values.xml
deleted file mode 100644 (file)
index f82ea36..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-hi/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"मुखपृष्ठ पर नेविगेट करें"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"ऊपर नेविगेट करें"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"अधिक विकल्प"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"पूर्ण"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"सभी देखें"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"कोई एप्‍लिकेशन चुनें"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"क्‍वेरी साफ़ करें"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"खोज क्वेरी"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"खोजें"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"क्वेरी सबमिट करें"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"ध्वनि खोज"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"इसके द्वारा साझा करें"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s के साथ साझा करें"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-hr/values-hr.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-hr/values-hr.xml
new file mode 100644 (file)
index 0000000..9f4b437
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-hr/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Idi na početnu"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Idi gore"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Dodatne opcije"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Gotovo"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Prikaži sve"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Odabir aplikacije"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ISKLJUČENO"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"UKLJUČENO"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Pretražite…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Izbriši upit"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Upit za pretraživanje"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Pretraživanje"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Pošalji upit"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Glasovno pretraživanje"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Dijeljenje sa"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Dijeljenje sa: %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Sažmi"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-hr/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-hr/values.xml
deleted file mode 100644 (file)
index 146eb20..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-hr/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Idi na početnu"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Idi gore"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Dodatne opcije"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Gotovo"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Prikaži sve"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Odabir aplikacije"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Izbriši upit"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Upit za pretraživanje"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Pretraživanje"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Pošalji upit"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Glasovno pretraživanje"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Dijeljenje sa"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Dijeljenje sa: %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-hu/values-hu.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-hu/values-hu.xml
new file mode 100644 (file)
index 0000000..0b6aaf9
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-hu/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Ugrás a főoldalra"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Felfelé mozgatás"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"További lehetőségek"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Kész"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Összes megtekintése"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Válasszon ki egy alkalmazást"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"KI"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"BE"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Keresés…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Lekérdezés törlése"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Keresési lekérdezés"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Keresés"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Lekérdezés küldése"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Hangalapú keresés"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Megosztás a következővel:"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Megosztás a következővel: %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Összecsukás"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-hu/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-hu/values.xml
deleted file mode 100644 (file)
index c21c498..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-hu/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Ugrás a főoldalra"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Felfelé mozgatás"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"További lehetőségek"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Kész"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Összes megtekintése"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Válasszon ki egy alkalmazást"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Lekérdezés törlése"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Keresési lekérdezés"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Keresés"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Lekérdezés küldése"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Hangalapú keresés"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Megosztás a következővel:"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Megosztás a következővel: %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-hy-rAM/values-hy-rAM.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-hy-rAM/values-hy-rAM.xml
new file mode 100644 (file)
index 0000000..f0f924d
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-hy-rAM/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Ուղղվել տուն"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Ուղղվել վերև"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Այլ ընտրանքներ"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Կատարված է"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Տեսնել բոլորը"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Ընտրել ծրագիր"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ԱՆՋԱՏՎԱԾ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ՄԻԱՑՎԱԾ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Որոնում..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Մաքրել հարցումը"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Որոնման հարցում"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Որոնել"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Ուղարկել հարցումը"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Ձայնային որոնում"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Տարածել"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Տարածել ըստ %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Թաքցնել"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-hy-rAM/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-hy-rAM/values.xml
deleted file mode 100644 (file)
index bd2ac0f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-hy-rAM/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Ուղղվել տուն"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Ուղղվել վերև"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Այլ ընտրանքներ"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Կատարված է"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Տեսնել բոլորը"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Ընտրել ծրագիր"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Մաքրել հարցումը"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Որոնման հարցում"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Որոնել"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Ուղարկել հարցումը"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Ձայնային որոնում"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Տարածել"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Տարածել ըստ %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-in/values-in.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-in/values-in.xml
new file mode 100644 (file)
index 0000000..9dfbb73
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-in/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navigasi ke beranda"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navigasi naik"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Opsi lain"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Selesai"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Lihat semua"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Pilih aplikasi"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"NONAKTIF"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"AKTIF"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Telusuri..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Hapus kueri"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Kueri penelusuran"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Telusuri"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Kirim kueri"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Penelusuran suara"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Bagikan dengan"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Bagikan dengan %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Ciutkan"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-in/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-in/values.xml
deleted file mode 100644 (file)
index 317fe68..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-in/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navigasi ke beranda"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navigasi naik"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Opsi lain"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Selesai"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Lihat semua"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Pilih aplikasi"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Hapus kueri"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Kueri penelusuran"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Telusuri"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Kirim kueri"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Penelusuran suara"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Bagikan dengan"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Bagikan dengan %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-is-rIS/values-is-rIS.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-is-rIS/values-is-rIS.xml
new file mode 100644 (file)
index 0000000..3ff92dd
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-is-rIS/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Fara heim"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Fara upp"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Fleiri valkostir"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Lokið"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Sjá allt"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Veldu forrit"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"SLÖKKT"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"KVEIKT"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Leita…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Hreinsa fyrirspurn"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Leitarfyrirspurn"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Leita"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Senda fyrirspurn"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Raddleit"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Deila með"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Deila með %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Minnka"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-it/values-it.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-it/values-it.xml
new file mode 100644 (file)
index 0000000..52ea0a2
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-it/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Vai alla home page"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Vai in alto"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Altre opzioni"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Fine"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Visualizza tutte"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Scegli un\'applicazione"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"OFF"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ON"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Cerca…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Cancella query"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Query di ricerca"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Cerca"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Invia query"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Ricerca vocale"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Condividi con"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Condividi con %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Comprimi"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-it/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-it/values.xml
deleted file mode 100644 (file)
index faaa868..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-it/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Vai alla home page"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Vai in alto"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Altre opzioni"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Fine"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Visualizza tutte"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Scegli un\'applicazione"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Cancella query"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Query di ricerca"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Cerca"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Invia query"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Ricerca vocale"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Condividi con"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Condividi con %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-iw/values-iw.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-iw/values-iw.xml
new file mode 100644 (file)
index 0000000..578999c
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-iw/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"נווט לדף הבית"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"‏%1$s‏, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"‏%1$s‏, %2$s‏, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"נווט למעלה"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"עוד אפשרויות"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"בוצע"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"ראה הכל"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"בחר אפליקציה"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"כבוי"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"פועל"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"חפש…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"מחק שאילתה"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"שאילתת חיפוש"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"חפש"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"שלח שאילתה"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"חיפוש קולי"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"שתף עם"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"‏שתף עם %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"כווץ"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"‎999+‎"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-iw/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-iw/values.xml
deleted file mode 100644 (file)
index 91d945b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-iw/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"נווט לדף הבית"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"נווט למעלה"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"עוד אפשרויות"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"בוצע"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"ראה הכול"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"בחר אפליקציה"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"מחק שאילתה"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"שאילתת חיפוש"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"חפש"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"שלח שאילתה"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"חיפוש קולי"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"שתף עם"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"שתף עם %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ja/values-ja.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ja/values-ja.xml
new file mode 100644 (file)
index 0000000..c6ca7fc
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ja/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"ホームへ移動"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s、%2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s、%2$s、%3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"上へ移動"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"その他のオプション"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"完了"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"すべて表示"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"アプリの選択"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"OFF"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ON"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"検索…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"検索キーワードを削除"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"検索キーワード"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"検索"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"検索キーワードを送信"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"音声検索"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"共有"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%sと共有"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"折りたたむ"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ja/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ja/values.xml
deleted file mode 100644 (file)
index b020cde..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-ja/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"ホームへ移動"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"上へ移動"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"その他のオプション"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"完了"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"すべて表示"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"アプリの選択"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"検索キーワードを削除"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"検索キーワード"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"検索"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"検索キーワードを送信"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"音声検索"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"共有"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%sと共有"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ka-rGE/values-ka-rGE.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ka-rGE/values-ka-rGE.xml
new file mode 100644 (file)
index 0000000..8bbb60e
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ka-rGE/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"მთავარზე ნავიგაცია"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"ზემოთ ნავიგაცია"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"მეტი ვარიანტები"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"დასრულდა"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"ყველას ნახვა"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"აპის არჩევა"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"გამორთულია"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ჩართულია"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"ძიება..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"მოთხოვნის გასუფთავება"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"ძიების მოთხოვნა"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"ძიება"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"მოთხოვნის გადაგზავნა"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"ხმოვანი ძიება"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"გაზიარება:"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s-თან გაზიარება"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"აკეცვა"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ka-rGE/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ka-rGE/values.xml
deleted file mode 100644 (file)
index 6ff2310..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-ka-rGE/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"მთავარზე ნავიგაცია"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"ზემოთ ნავიგაცია"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"მეტი ვარიანტები"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"დასრულდა"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"ყველას ნახვა"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"აპის არჩევა"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"მოთხოვნის გასუფთავება"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"ძიების მოთხოვნა"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"ძიება"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"მოთხოვნის გადაგზავნა"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"ხმოვანი ძიება"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"გაზიარება:"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s-თან გაზიარება"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-kk-rKZ/values-kk-rKZ.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-kk-rKZ/values-kk-rKZ.xml
new file mode 100644 (file)
index 0000000..43f90d6
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-kk-rKZ/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Негізгі бетте қозғалу"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Жоғары қозғалу"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Басқа опциялар"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Дайын"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Барлығын көру"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Қолданбаны таңдау"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ӨШІРУЛІ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ҚОСУЛЫ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Іздеу…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Сұрақты жою"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Сұрақты іздеу"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Іздеу"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Сұрақты жіберу"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Дауыс арқылы іздеу"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Бөлісу"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s бөлісу"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Тасалау"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-km-rKH/values-km-rKH.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-km-rKH/values-km-rKH.xml
new file mode 100644 (file)
index 0000000..c710d05
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-km-rKH/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"រកមើល​ទៅ​ដើម"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"រកមើល​ឡើងលើ"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"ជម្រើស​ច្រើន​ទៀត"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"រួចរាល់"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"មើល​ទាំងអស់"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"ជ្រើស​កម្មវិធី​​"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"បិទ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"បើក"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"ស្វែងរក…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"សម្អាត​សំណួរ"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"ស្វែងរក​សំណួរ"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"ស្វែងរក"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"ដាក់​​​ស្នើ​សំណួរ"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"ការស្វែងរក​សំឡេង"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"ចែករំលែក​ជាមួយ"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"ចែករំលែក​ជាមួយ %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"បង្រួម"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-km-rKH/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-km-rKH/values.xml
deleted file mode 100644 (file)
index 780228c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-km-rKH/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"រកមើល​ទៅ​ដើម"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"រកមើល​ឡើងលើ"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"ជម្រើស​ច្រើន​ទៀត"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"រួចរាល់"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"មើល​ទាំងអស់"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"ជ្រើស​កម្មវិធី"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"សម្អាត​សំណួរ"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"ស្វែងរក​សំណួរ"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"ស្វែងរក"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"ដាក់​​​ស្នើ​សំណួរ"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"ការស្វែងរក​សំឡេង"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"ចែករំលែក​ជាមួយ"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"ចែករំលែក​ជាមួយ %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-kn-rIN/values-kn-rIN.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-kn-rIN/values-kn-rIN.xml
new file mode 100644 (file)
index 0000000..822a836
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-kn-rIN/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"ಮುಖಪುಟವನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿ"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"ಮೇಲಕ್ಕೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿ"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"ಮುಗಿದಿದೆ"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"ಎಲ್ಲವನ್ನೂ ನೋಡಿ"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"ಒಂದು ಅಪ್ಲಿಕೇಶನ್ ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ಆಫ್"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ಆನ್"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"ಹುಡುಕಿ…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"ಪ್ರಶ್ನೆಯನ್ನು ತೆರವುಗೊಳಿಸು"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"ಪ್ರಶ್ನೆಯನ್ನು ಹುಡುಕಿ"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"ಹುಡುಕು"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"ಪ್ರಶ್ನೆಯನ್ನು ಸಲ್ಲಿಸು"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"ಧ್ವನಿ ಹುಡುಕಾಟ"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"ಇವರೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಿ"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಿ"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"ಸಂಕುಚಿಸು"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ko/values-ko.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ko/values-ko.xml
new file mode 100644 (file)
index 0000000..47ce7d6
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ko/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"홈 탐색"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"위로 탐색"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"옵션 더보기"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"완료"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"전체 보기"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"앱 선택"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"사용 안함"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"사용"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"검색..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"검색어 삭제"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"검색어"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"검색"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"검색어 보내기"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"음성 검색"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"공유 대상"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s와(과) 공유"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"접기"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ko/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ko/values.xml
deleted file mode 100644 (file)
index 5a2aef4..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-ko/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"홈 탐색"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"위로 탐색"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"옵션 더보기"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"완료"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"전체 보기"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"앱 선택"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"검색어 삭제"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"검색어"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"검색"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"검색어 보내기"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"음성 검색"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"공유 대상"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s와(과) 공유"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ky-rKG/values-ky-rKG.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ky-rKG/values-ky-rKG.xml
new file mode 100644 (file)
index 0000000..cb0acd7
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ky-rKG/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Үйгө багыттоо"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Жогору"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Көбүрөөк мүмкүнчүлүктөр"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Даяр"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Бардыгын көрүү"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Колдонмо тандоо"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ӨЧҮК"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"КҮЙҮК"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Издөө…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Талаптарды тазалоо"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Издөө талаптары"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Издөө"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Талап жөнөтүү"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Үн аркылуу издөө"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Бөлүшүү"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s аркылуу бөлүшүү"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Жыйнап коюу"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-land/values-land.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-land/values-land.xml
new file mode 100644 (file)
index 0000000..049bf2a
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-land/bools.xml -->
+    <eat-comment/>
+    <bool name="abc_action_bar_embed_tabs_pre_jb">true</bool>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-land/config.xml -->
+    <eat-comment/>
+    <bool name="abc_config_allowActionMenuItemTextWithIcon">true</bool>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-land/dimens_material.xml -->
+    <eat-comment/>
+    <dimen name="abc_action_bar_default_height_material">48dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-land/dimens.xml -->
+    <eat-comment/>
+    <dimen name="abc_action_bar_progress_bar_size">32dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-land/dimens_material.xml -->
+    <eat-comment/>
+    <dimen name="abc_text_size_subtitle_material_toolbar">12dp</dimen>
+    <dimen name="abc_text_size_title_material_toolbar">14dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-land/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-land/values.xml
deleted file mode 100644 (file)
index 5920099..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-land/bools.xml -->
-    <eat-comment />
-
-    <bool name="abc_action_bar_embed_tabs_pre_jb">true</bool>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-land/config.xml -->
-    <eat-comment />
-
-    <bool name="abc_config_allowActionMenuItemTextWithIcon">true</bool>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-land/bools.xml -->
-    <eat-comment />
-
-    <bool name="abc_split_action_bar_is_narrow">false</bool>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-land/dimens.xml -->
-    <eat-comment />
-
-    <dimen name="abc_action_bar_default_height">40dip</dimen>
-    <dimen name="abc_action_bar_icon_vertical_padding">4dip</dimen>
-    <dimen name="abc_action_bar_progress_bar_size">32dp</dimen>
-    <dimen name="abc_action_bar_subtitle_bottom_margin">4dip</dimen>
-    <dimen name="abc_action_bar_subtitle_text_size">12dp</dimen>
-    <dimen name="abc_action_bar_subtitle_top_margin">-2dp</dimen>
-    <dimen name="abc_action_bar_title_text_size">16dp</dimen>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-large-v14/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-large-v14/values.xml
deleted file mode 100644 (file)
index e328f29..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-large-v14/themes_base.xml -->
-    <eat-comment />
-
-    <style name="Theme.Base.AppCompat.DialogWhenLarge" parent="Theme.Base.AppCompat.DialogWhenLarge.Base" />
-
-    <style name="Theme.Base.AppCompat.Light.DialogWhenLarge" parent="Theme.Base.AppCompat.Light.DialogWhenLarge.Base" />
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-large/values-large.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-large/values-large.xml
new file mode 100644 (file)
index 0000000..494d6e1
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-large/bools.xml -->
+    <eat-comment/>
+    <bool name="abc_action_bar_embed_tabs_pre_jb">true</bool>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-large/config.xml -->
+    <eat-comment/>
+    <bool name="abc_config_allowActionMenuItemTextWithIcon">true</bool>
+    <dimen name="abc_config_prefDialogWidth">440dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-large/dimens.xml -->
+    <eat-comment/>
+    <item name="abc_dialog_fixed_height_major" type="dimen">60%</item>
+    <item name="abc_dialog_fixed_height_minor" type="dimen">90%</item>
+    <item name="abc_dialog_fixed_width_major" type="dimen">60%</item>
+    <item name="abc_dialog_fixed_width_minor" type="dimen">90%</item>
+    <item name="abc_dialog_min_width_major" type="dimen">55%</item>
+    <item name="abc_dialog_min_width_minor" type="dimen">80%</item>
+    <dimen name="abc_search_view_text_min_width">192dip</dimen>
+    <integer name="abc_max_action_buttons">4</integer>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-large/themes_base.xml -->
+    <eat-comment/>
+    <style name="Base.Theme.AppCompat.DialogWhenLarge" parent="Base.Theme.AppCompat.Dialog.FixedSize"/>
+    <style name="Base.Theme.AppCompat.Light.DialogWhenLarge" parent="Base.Theme.AppCompat.Light.Dialog.FixedSize"/>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-large/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-large/values.xml
deleted file mode 100644 (file)
index 9bb5533..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-large/bools.xml -->
-    <eat-comment />
-
-    <bool name="abc_action_bar_embed_tabs_pre_jb">true</bool>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-large/config.xml -->
-    <eat-comment />
-
-    <bool name="abc_config_allowActionMenuItemTextWithIcon">true</bool>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-large/bools.xml -->
-    <eat-comment />
-
-    <bool name="abc_split_action_bar_is_narrow">false</bool>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-large/config.xml -->
-    <eat-comment />
-
-    <dimen name="abc_config_prefDialogWidth">440dp</dimen>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-large/dimens.xml -->
-    <eat-comment />
-
-    <dimen name="abc_search_view_text_min_width">192dip</dimen>
-
-    <item name="dialog_fixed_height_major" type="dimen">60%</item>
-    <item name="dialog_fixed_height_minor" type="dimen">90%</item>
-    <item name="dialog_fixed_width_major" type="dimen">60%</item>
-    <item name="dialog_fixed_width_minor" type="dimen">90%</item>
-
-    <integer name="abc_max_action_buttons">4</integer>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-large/themes_base.xml -->
-    <eat-comment />
-
-    <style name="Theme.Base.AppCompat.DialogWhenLarge" parent="Theme.Base.AppCompat.Dialog.FixedSize" />
-
-    <style name="Theme.Base.AppCompat.Light.DialogWhenLarge" parent="Theme.Base.AppCompat.Dialog.Light.FixedSize" />
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ldltr-v21/values-ldltr-v21.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ldltr-v21/values-ldltr-v21.xml
new file mode 100644 (file)
index 0000000..94966b7
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ldltr-v21/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.Widget.AppCompat.Spinner.Underlined" parent="android:Widget.Material.Spinner.Underlined"/>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ldrtl-v23/values-ldrtl-v23.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ldrtl-v23/values-ldrtl-v23.xml
new file mode 100644 (file)
index 0000000..d154387
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ldrtl-v23/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.Widget.AppCompat.Spinner.Underlined" parent="android:Widget.Material.Spinner.Underlined"/>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-lo-rLA/values-lo-rLA.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-lo-rLA/values-lo-rLA.xml
new file mode 100644 (file)
index 0000000..5f59edc
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-lo-rLA/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"ກັບໄປໜ້າຫຼັກ"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"ຂຶ້ນເທິງ"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"ໂຕເລືອກອື່ນ"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"ແລ້ວໆ"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"ເບິ່ງທັງຫມົດ"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"ເລືອກແອັບຯ"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ປິດ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ເປີດ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"ຊອກຫາ"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"ລຶບຂໍ້ຄວາມຊອກຫາ"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"ຊອກຫາ"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"ຊອກຫາ"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"ສົ່ງການຊອກຫາ"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"ຊອກຫາດ້ວຍສຽງ"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"ແບ່ງປັນກັບ"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"ແບ່ງ​ປັນ​ກັບ​ %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"ຫຍໍ້"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-lo-rLA/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-lo-rLA/values.xml
deleted file mode 100644 (file)
index 681c976..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-lo-rLA/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"ກັບໄປໜ້າຫຼັກ"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"ຂຶ້ນເທິງ"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"ໂຕເລືອກອື່ນ"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"ແລ້ວໆ"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"ເບິ່ງທັງຫມົດ"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"ເລືອກແອັບຯ"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"ລຶບຂໍ້ຄວາມຊອກຫາ"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"ຊອກຫາ"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"ຊອກຫາ"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"ສົ່ງການຊອກຫາ"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"ຊອກຫາດ້ວຍສຽງ"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"ແບ່ງປັນກັບ"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"ແບ່ງ​ປັນ​ກັບ​ %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-lt/values-lt.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-lt/values-lt.xml
new file mode 100644 (file)
index 0000000..81f0414
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-lt/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Eiti į pagrindinį puslapį"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Eiti į viršų"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Daugiau parinkčių"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Atlikta"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Peržiūrėti viską"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Pasirinkti programą"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"IŠJUNGTI"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ĮJUNGTI"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Ieškoti..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Išvalyti užklausą"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Paieškos užklausa"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Paieška"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Pateikti užklausą"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Paieška balsu"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Bendrinti naudojant"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Bendrinti naudojant „%s“"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Sutraukti"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-lt/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-lt/values.xml
deleted file mode 100644 (file)
index 6ebab10..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-lt/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Eiti į pagrindinį puslapį"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Eiti į viršų"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Daugiau parinkčių"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Atlikta"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Peržiūrėti viską"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Pasirinkti programą"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Išvalyti užklausą"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Paieškos užklausa"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Paieška"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Pateikti užklausą"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Paieška balsu"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Bendrinti naudojant"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Bendrinti naudojant „%s“"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-lv/values-lv.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-lv/values-lv.xml
new file mode 100644 (file)
index 0000000..fb64576
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-lv/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Pārvietoties uz sākuma ekrānu"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s: %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s: %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Pārvietoties augšup"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Vairāk opciju"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Gatavs"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Skatīt visu"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Izvēlieties lietotni"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"IZSLĒGTS"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"IESLĒGTS"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Meklējiet…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Notīrīt vaicājumu"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Meklēšanas vaicājums"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Meklēt"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Iesniegt vaicājumu"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Meklēšana ar balsi"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Kopīgot ar:"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Kopīgot ar %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Sakļaut"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-lv/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-lv/values.xml
deleted file mode 100644 (file)
index a5a52a1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-lv/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Pārvietoties uz sākuma ekrānu"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Pārvietoties augšup"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Vairāk opciju"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Gatavs"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Skatīt visu"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Izvēlieties lietotni"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Notīrīt vaicājumu"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Meklēšanas vaicājums"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Meklēt"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Iesniegt vaicājumu"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Meklēšana ar balsi"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Kopīgot ar:"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Kopīgot ar %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-mk-rMK/values-mk-rMK.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-mk-rMK/values-mk-rMK.xml
new file mode 100644 (file)
index 0000000..397bb5c
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-mk-rMK/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Движи се кон дома"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Движи се нагоре"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Повеќе опции"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Готово"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Види ги сите"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Избери апликација"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ИСКЛУЧЕНО"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ВКЛУЧЕНО"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Пребарување…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Исчисти барање"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Пребарај барање"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Пребарај"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Поднеси барање"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Гласовно пребарување"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Сподели со"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Собери"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ml-rIN/values-ml-rIN.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ml-rIN/values-ml-rIN.xml
new file mode 100644 (file)
index 0000000..c12ec2c
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ml-rIN/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"ഹോമിലേക്ക് നാവിഗേറ്റുചെയ്യുക"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"മുകളിലേക്ക് നാവിഗേറ്റുചെയ്യുക"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"കൂടുതല്‍ ഓപ്‌ഷനുകള്‍"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"പൂർത്തിയാക്കി"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"എല്ലാം കാണുക"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"ഒരു അപ്ലിക്കേഷൻ തിരഞ്ഞെടുക്കുക"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ഓഫ്"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ഓൺ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"തിരയുക…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"അന്വേഷണം മായ്‌ക്കുക"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"തിരയൽ അന്വേഷണം"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"തിരയൽ"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"അന്വേഷണം സമർപ്പിക്കുക"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"ശബ്ദ തിരയൽ"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"ഇവരുമായി പങ്കിടുക"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s എന്നതുമായി പങ്കിടുക"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"ചുരുക്കുക"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-mn-rMN/values-mn-rMN.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-mn-rMN/values-mn-rMN.xml
new file mode 100644 (file)
index 0000000..33787d2
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-mn-rMN/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Нүүр хуудас руу шилжих"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Дээш шилжих"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Нэмэлт сонголтууд"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Дууссан"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Бүгдийг харах"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Апп сонгох"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ИДЭВХГҮЙ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ИДЭВХТЭЙ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Хайх..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Асуулгыг цэвэрлэх"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Хайх асуулга"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Хайх"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Асуулгыг илгээх"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Дуут хайлт"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Хуваалцах"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s-тай хуваалцах"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Хумих"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-mn-rMN/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-mn-rMN/values.xml
deleted file mode 100644 (file)
index 7c2f527..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-mn-rMN/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Нүүр хуудас руу шилжих"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Дээш шилжих"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Нэмэлт сонголтууд"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Дууссан"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Бүгдийг харах"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Апп сонгох"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Асуулгыг цэвэрлэх"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Хайх асуулга"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Хайх"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Асуулгыг илгээх"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Дуут хайлт"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Хуваалцах"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s-тай хуваалцах"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-mr-rIN/values-mr-rIN.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-mr-rIN/values-mr-rIN.xml
new file mode 100644 (file)
index 0000000..e524276
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-mr-rIN/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"मुख्‍यपृष्‍ठ नेव्‍हिगेट करा"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"वर नेव्‍हिगेट करा"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"अधिक पर्याय"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"पूर्ण झाले"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"सर्व पहा"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"एक अ‍ॅप निवडा"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"बंद"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"चालू"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"शोधा…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"क्‍वेरी स्‍पष्‍ट करा"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"शोध क्वेरी"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"शोध"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"क्वेरी सबमिट करा"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"व्हॉइस शोध"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"यांच्यासह सामायिक करा"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s सह सामायिक करा"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"संक्षिप्त करा"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ms-rMY/values-ms-rMY.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ms-rMY/values-ms-rMY.xml
new file mode 100644 (file)
index 0000000..254ee5e
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ms-rMY/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navigasi skrin utama"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navigasi ke atas"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Lagi pilihan"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Selesai"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Lihat semua"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Pilih apl"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"MATI"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"HIDUP"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Cari…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Kosongkan pertanyaan"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Pertanyaan carian"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Cari"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Serah pertanyaan"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Carian suara"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Kongsi dengan"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Kongsi dengan %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Runtuhkan"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ms-rMY/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ms-rMY/values.xml
deleted file mode 100644 (file)
index e99760c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-ms-rMY/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navigasi skrin utama"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navigasi ke atas"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Lagi pilihan"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Selesai"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Lihat semua"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Pilih apl"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Kosongkan pertanyaan"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Pertanyaan carian"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Cari"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Serah pertanyaan"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Carian suara"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Kongsi dengan"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Kongsi dengan %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-my-rMM/values-my-rMM.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-my-rMM/values-my-rMM.xml
new file mode 100644 (file)
index 0000000..5cdf768
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-my-rMM/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"မူလနေရာကို သွားရန်"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s၊ %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s ၊ %2$s ၊ %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"အပေါ်သို့သွားရန်"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"ပိုမိုရွေးချယ်စရာများ"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"ပြီးဆုံးပါပြီ"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"အားလုံးကို ကြည့်ရန်"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"အပလီကေးရှင်း တစ်ခုခုကို ရွေးချယ်ပါ"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ပိတ်"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ဖွင့်"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"ရှာဖွေပါ..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"ရှာစရာ အချက်အလက်များ ရှင်းလင်းရန်"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"ရှာစရာ အချက်အလက်နေရာ"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"ရှာဖွေရန်"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"ရှာဖွေစရာ အချက်အလက်ကို အတည်ပြုရန်"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"အသံဖြင့် ရှာဖွေခြင်း"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"မျှဝေဖို့ ရွေးပါ"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s ကို မျှဝေပါရန်"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"ခေါက်ရန်"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"၉၉၉+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-nb/values-nb.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-nb/values-nb.xml
new file mode 100644 (file)
index 0000000..53f0c27
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-nb/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Gå til startsiden"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s – %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s – %2$s – %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Gå opp"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Flere alternativer"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Ferdig"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Se alle"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Velg en app"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"AV"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"PÅ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Søk …"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Slett søket"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Søkeord"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Søk"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Utfør søket"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Talesøk"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Del med"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Del med %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Skjul"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-nb/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-nb/values.xml
deleted file mode 100644 (file)
index 6328eb7..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-nb/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Gå til startsiden"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Gå opp"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Flere alternativer"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Fullført"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Se alle"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Velg en app"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Slett søket"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Søkeord"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Søk"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Utfør søket"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Talesøk"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Del med"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Del med %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ne-rNP/values-ne-rNP.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ne-rNP/values-ne-rNP.xml
new file mode 100644 (file)
index 0000000..3a6b1db
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ne-rNP/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"गृह खोज्नुहोस्"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"माथि खोज्नुहोस्"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"थप विकल्पहरू"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"सम्पन्न भयो"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"सबै हेर्नुहोस्"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"एउटा अनुप्रयोग छान्नुहोस्"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"निष्क्रिय पार्नुहोस्"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"सक्रिय गर्नुहोस्"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"खोज्नुहोस्..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"प्रश्‍न हटाउनुहोस्"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"जिज्ञासाको खोज गर्नुहोस्"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"खोज्नुहोस्"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"जिज्ञासा पेस गर्नुहोस्"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"भ्वाइस खोजी"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"साझेदारी गर्नुहोस्..."</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s सँग साझेदारी गर्नुहोस्"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"संक्षिप्त पार्नुहोस्"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"९९९+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-nl/values-nl.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-nl/values-nl.xml
new file mode 100644 (file)
index 0000000..a70fb73
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-nl/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navigeren naar startpositie"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Omhoog navigeren"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Meer opties"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Gereed"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Alles weergeven"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Een app selecteren"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"UIT"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"AAN"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Zoeken…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Zoekopdracht wissen"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Zoekopdracht"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Zoeken"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Zoekopdracht verzenden"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Gesproken zoekopdracht"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Delen met"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Delen met %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Samenvouwen"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-nl/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-nl/values.xml
deleted file mode 100644 (file)
index 45a2324..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-nl/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navigeren naar startpositie"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Omhoog navigeren"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Meer opties"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Gereed"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Alles weergeven"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Een app selecteren"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Zoekopdracht wissen"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Zoekopdracht"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Zoeken"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Zoekopdracht verzenden"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Gesproken zoekopdracht"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Delen met"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Delen met %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-pa-rIN/values-pa-rIN.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-pa-rIN/values-pa-rIN.xml
new file mode 100644 (file)
index 0000000..a3a94cc
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-pa-rIN/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"ਹੋਮ ਨੈਵੀਗੇਟ ਕਰੋ"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"ਉੱਪਰ ਨੈਵੀਗੇਟ ਕਰੋ"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"ਹੋਰ ਚੋਣਾਂ"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"ਹੋ ਗਿਆ"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"ਸਭ ਦੇਖੋ"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"ਇੱਕ ਐਪ ਚੁਣੋ"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ਬੰਦ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ਤੇ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"ਖੋਜ…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"ਸਵਾਲ ਹਟਾਓ"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"ਸਵਾਲ ਖੋਜੋ"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"ਖੋਜੋ"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"ਸਵਾਲ ਪ੍ਰਸਤੁਤ ਕਰੋ"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"ਵੌਇਸ ਖੋਜ"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"ਇਸ ਨਾਲ ਸ਼ੇਅਰ ਕਰੋ"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s ਨਾਲ ਸ਼ੇਅਰ ਕਰੋ"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"ਨਸ਼ਟ ਕਰੋ"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-pl/values-pl.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-pl/values-pl.xml
new file mode 100644 (file)
index 0000000..ac798e1
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-pl/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Przejdź do strony głównej"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Przejdź wyżej"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Więcej opcji"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Gotowe"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Zobacz wszystkie"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Wybierz aplikację"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"WYŁ."</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"WŁ."</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Szukaj…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Wyczyść zapytanie"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Wyszukiwane hasło"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Szukaj"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Wyślij zapytanie"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Wyszukiwanie głosowe"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Udostępnij dla"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Udostępnij dla %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Zwiń"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-pl/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-pl/values.xml
deleted file mode 100644 (file)
index 3fc94a0..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-pl/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Przejdź do strony głównej"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Przejdź wyżej"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Więcej opcji"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Gotowe"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Zobacz wszystkie"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Wybierz aplikację"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Wyczyść zapytanie"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Wyszukiwane hasło"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Szukaj"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Wyślij zapytanie"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Wyszukiwanie głosowe"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Udostępnij dla"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Udostępnij dla %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-port/values-port.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-port/values-port.xml
new file mode 100644 (file)
index 0000000..0da5fdb
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-port/bools.xml -->
+    <eat-comment/>
+    <bool name="abc_action_bar_embed_tabs">false</bool>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-pt-rBR/values-pt-rBR.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-pt-rBR/values-pt-rBR.xml
new file mode 100644 (file)
index 0000000..948f401
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-pt-rBR/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navegar para a página inicial"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navegar para cima"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Mais opções"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Concluído"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Ver tudo"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Selecione um app"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"DESATIVAR"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ATIVAR"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Pesquisar..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Limpar consulta"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Consulta de pesquisa"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Pesquisar"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Enviar consulta"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Pesquisa por voz"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Compartilhar com"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Compartilhar com %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Recolher"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-pt-rPT/values-pt-rPT.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-pt-rPT/values-pt-rPT.xml
new file mode 100644 (file)
index 0000000..1577c96
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-pt-rPT/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navegar para a página inicial"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navegar para cima"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Mais opções"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Concluído"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Ver tudo"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Escolher uma aplicação"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"DESATIVADO"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ATIVADO"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Pesquisar..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Limpar consulta"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Consulta de pesquisa"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Pesquisar"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Enviar consulta"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Pesquisa por voz"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Partilhar com"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Partilhar com %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Reduzir"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"+999"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-pt-rPT/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-pt-rPT/values.xml
deleted file mode 100644 (file)
index a298840..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-pt-rPT/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navegar para a página inicial"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navegar para cima"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Mais opções"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Concluído"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Ver tudo"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Escolher uma aplicação"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Limpar consulta"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Consulta de pesquisa"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Pesquisar"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Enviar consulta"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Pesquisa por voz"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Partilhar com"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Partilhar com %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-pt/values-pt.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-pt/values-pt.xml
new file mode 100644 (file)
index 0000000..87cba1a
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-pt/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navegar para a página inicial"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navegar para cima"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Mais opções"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Concluído"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Ver tudo"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Selecione um app"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"DESATIVAR"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ATIVAR"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Pesquisar..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Limpar consulta"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Consulta de pesquisa"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Pesquisar"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Enviar consulta"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Pesquisa por voz"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Compartilhar com"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Compartilhar com %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Recolher"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-pt/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-pt/values.xml
deleted file mode 100644 (file)
index e90f014..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-pt/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navegar para a página inicial"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navegar para cima"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Mais opções"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Concluído"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Ver tudo"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Selecione um aplicativo"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Limpar consulta"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Consulta de pesquisa"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Pesquisar"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Enviar consulta"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Pesquisa por voz"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Compartilhar com"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Compartilhar com %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ro/values-ro.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ro/values-ro.xml
new file mode 100644 (file)
index 0000000..c7d6d76
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ro/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Navigați la ecranul de pornire"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navigați în sus"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Mai multe opțiuni"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Terminat"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Afișați-le pe toate"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Alegeți o aplicație"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"DEZACTIVAȚI"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ACTIVAȚI"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Căutați…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Ștergeți interogarea"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Interogare de căutare"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Căutați"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Trimiteți interogarea"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Căutare vocală"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Trimiteți la"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Trimiteți la %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Restrângeți"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"˃999"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ro/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ro/values.xml
deleted file mode 100644 (file)
index 0183d9a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-ro/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Navigați la ecranul de pornire"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navigați în sus"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Mai multe opțiuni"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Terminat"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Afișați-le pe toate"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Alegeți o aplicaţie"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Ștergeți interogarea"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Interogare de căutare"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Căutați"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Trimiteți interogarea"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Căutare vocală"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Trimiteți la"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Trimiteți la %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ru/values-ru.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ru/values-ru.xml
new file mode 100644 (file)
index 0000000..36853fc
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ru/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Перейти на главный экран"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Перейти вверх"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Другие параметры"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Готово"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Показать все"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Выбрать приложение"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ОТКЛ."</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ВКЛ."</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Поиск"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Удалить запрос"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Поисковый запрос"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Поиск"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Отправить запрос"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Голосовой поиск"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Открыть доступ"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Открыть доступ пользователю %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Свернуть"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">">999"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ru/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ru/values.xml
deleted file mode 100644 (file)
index c177af8..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-ru/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Перейти на главный экран"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Перейти вверх"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Другие параметры"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Готово"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Показать все"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Выбрать приложение"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Удалить запрос"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Поисковый запрос"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Поиск"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Отправить запрос"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Голосовой поиск"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Открыть доступ"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Открыть доступ пользователю %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-si-rLK/values-si-rLK.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-si-rLK/values-si-rLK.xml
new file mode 100644 (file)
index 0000000..f2b844e
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-si-rLK/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"ගෙදරට සංචාලනය කරන්න"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"ඉහලට සංචාලනය කරන්න"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"තවත් විකල්ප"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"අවසාන වූ"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"සියල්ල බලන්න"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"යෙදුමක් තෝරන්න"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ක්‍රියාවිරහිතයි"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ක්‍රියාත්මකයි"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"සොයන්න..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"විමසුම හිස් කරන්න"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"සෙවුම් විමසුම"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"සෙවීම"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"විමසුම යොමු කරන්න"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"හඬ සෙවීම"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"සමඟ බෙදාගන්න"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s සමඟ බෙදාගන්න"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"හකුළන්න"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sk/values-sk.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sk/values-sk.xml
new file mode 100644 (file)
index 0000000..53cf60b
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-sk/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Prejsť na plochu"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Prejsť hore"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Ďalšie možnosti"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Hotovo"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Zobraziť všetko"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Zvoľte aplikáciu"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"VYP."</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ZAP."</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Vyhľadať…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Vymazať dopyt"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Vyhľadávací dopyt"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Hľadať"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Odoslať dopyt"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Hlasové vyhľadávanie"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Zdieľať pomocou"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Zdieľať pomocou %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Zbaliť"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sk/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sk/values.xml
deleted file mode 100644 (file)
index cd0a5dc..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-sk/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Prejsť na plochu"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Prejsť hore"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Ďalšie možnosti"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Hotovo"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Zobraziť všetko"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Zvoľte aplikáciu"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Vymazať dopyt"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Vyhľadávací dopyt"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Hľadať"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Odoslať dopyt"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Hlasové vyhľadávanie"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Zdieľať pomocou"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Zdieľať pomocou %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sl/values-sl.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sl/values-sl.xml
new file mode 100644 (file)
index 0000000..c145faf
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-sl/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Krmarjenje domov"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Krmarjenje navzgor"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Več možnosti"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Končano"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Pokaži vse"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Izbira aplikacije"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"IZKLOPLJENO"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"VKLOPLJENO"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Iskanje …"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Izbris poizvedbe"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Iskalna poizvedba"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Iskanje"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Pošiljanje poizvedbe"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Glasovno iskanje"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Deljenje z"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Deljenje z:"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Strni"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sl/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sl/values.xml
deleted file mode 100644 (file)
index bf2cc0f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-sl/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Krmarjenje domov"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Krmarjenje navzgor"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Več možnosti"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Končano"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Pokaži vse"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Izbira aplikacije"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Izbris poizvedbe"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Iskalna poizvedba"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Iskanje"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Pošiljanje poizvedbe"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Glasovno iskanje"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Deljenje z"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Deljenje z:"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sq-rAL/values-sq-rAL.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sq-rAL/values-sq-rAL.xml
new file mode 100644 (file)
index 0000000..6435809
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-sq-rAL/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Orientohu për në shtëpi"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Ngjitu lart"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Opsione të tjera"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"U krye!"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Shikoji të gjitha"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Zgjidh një aplikacion"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"JOAKTIV"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"AKTIV"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Kërko..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Pastro pyetjen"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Kërko pyetjen"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Kërko"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Dërgo pyetjen"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Kërkim me zë"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Shpërnda publikisht me"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Shpërnda publikisht me %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Shpalos"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sr/values-sr.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sr/values-sr.xml
new file mode 100644 (file)
index 0000000..f9e2e52
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-sr/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Одлазак на Почетну"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Кретање нагоре"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Још опција"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Готово"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Прикажи све"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Избор апликације"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ИСКЉУЧИ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"УКЉУЧИ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Претражите..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Брисање упита"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Упит за претрагу"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Претрага"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Слање упита"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Гласовна претрага"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Дели са"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Дели са апликацијом %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Скупи"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">">999"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sr/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sr/values.xml
deleted file mode 100644 (file)
index 9fddc7a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-sr/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Одлазак на Почетну"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Кретање нагоре"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Још опција"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Готово"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Прикажи све"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Избор апликације"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Брисање упита"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Упит за претрагу"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Претрага"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Слање упита"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Гласовна претрага"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Дели са"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Дели са апликацијом %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sv/values-sv.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sv/values-sv.xml
new file mode 100644 (file)
index 0000000..5b6ed25
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-sv/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Visa startsidan"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Navigera uppåt"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Fler alternativ"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Klart"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Visa alla"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Välj en app"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"AV"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"PÅ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Sök …"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Ta bort frågan"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Sökfråga"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Sök"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Skicka fråga"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Röstsökning"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Dela med"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Dela med %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Komprimera"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">">999"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sv/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sv/values.xml
deleted file mode 100644 (file)
index 4f22475..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-sv/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Visa startsidan"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Navigera uppåt"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Fler alternativ"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Klart"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Visa alla"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Välj en app"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Ta bort frågan"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Sökfråga"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Sök"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Skicka fråga"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Röstsökning"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Dela med"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Dela med %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sw/values-sw.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sw/values-sw.xml
new file mode 100644 (file)
index 0000000..c0cbb1e
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-sw/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Nenda mwanzo"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Nenda juu"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Chaguo zaidi"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Nimemaliza"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Angalia zote"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Chagua programu"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"IMEZIMWA"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"IMEWASHWA"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Tafuta…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Futa hoja"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Hoja ya utafutaji"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Tafuta"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Wasilisha hoja"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Tafuta kwa kutamka"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Shiriki na:"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Shiriki na %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Kunja"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sw/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sw/values.xml
deleted file mode 100644 (file)
index 89b0746..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-sw/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Nenda mwanzo"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Nenda juu"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Chaguo zaidi"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Nimemaliza"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Angalia zote"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Chagua programu"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Futa hoja"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Hoja ya utafutaji"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Tafuta"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Wasilisha hoja"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Tafuta kwa kutamka"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Shiriki na:"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Shiriki na %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sw600dp/values-sw600dp.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sw600dp/values-sw600dp.xml
new file mode 100644 (file)
index 0000000..feacb42
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-sw600dp/dimens.xml -->
+    <eat-comment/>
+    <dimen name="abc_action_bar_content_inset_material">24dp</dimen>
+    <dimen name="abc_action_bar_default_height_material">64dp</dimen>
+    <dimen name="abc_action_bar_default_padding_end_material">8dp</dimen>
+    <dimen name="abc_action_bar_default_padding_start_material">8dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-sw600dp/config.xml -->
+    <eat-comment/>
+    <dimen name="abc_config_prefDialogWidth">580dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-sw600dp/dimens.xml -->
+    <eat-comment/>
+    <dimen name="abc_text_size_subtitle_material_toolbar">16dp</dimen>
+    <dimen name="abc_text_size_title_material_toolbar">20dp</dimen>
+    <integer name="abc_max_action_buttons">5</integer>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-sw600dp/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-sw600dp/values.xml
deleted file mode 100644 (file)
index 00add9d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-sw600dp/dimens.xml -->
-    <eat-comment />
-
-    <dimen name="abc_action_bar_default_height">56dip</dimen>
-    <dimen name="abc_action_bar_icon_vertical_padding">4dip</dimen>
-    <dimen name="abc_action_bar_subtitle_bottom_margin">9dip</dimen>
-    <dimen name="abc_action_bar_subtitle_text_size">14dp</dimen>
-    <dimen name="abc_action_bar_subtitle_top_margin">-3dp</dimen>
-    <dimen name="abc_action_bar_title_text_size">18dp</dimen>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-sw600dp/config.xml -->
-    <eat-comment />
-
-    <dimen name="abc_config_prefDialogWidth">580dp</dimen>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-sw600dp/dimens.xml -->
-    <eat-comment />
-
-    <integer name="abc_max_action_buttons">5</integer>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ta-rIN/values-ta-rIN.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ta-rIN/values-ta-rIN.xml
new file mode 100644 (file)
index 0000000..b92b2c6
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ta-rIN/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"முகப்பிற்கு வழிசெலுத்து"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"மேலே வழிசெலுத்து"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"மேலும் விருப்பங்கள்"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"முடிந்தது"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"எல்லாம் காட்டு"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"பயன்பாட்டைத் தேர்வுசெய்க"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"முடக்கு"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"இயக்கு"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"தேடு..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"வினவலை அழி"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"தேடல் வினவல்"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"தேடு"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"வினவலைச் சமர்ப்பி"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"குரல் தேடல்"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"இதனுடன் பகிர்"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s உடன் பகிர்"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"சுருக்கு"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-te-rIN/values-te-rIN.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-te-rIN/values-te-rIN.xml
new file mode 100644 (file)
index 0000000..1da8af4
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-te-rIN/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"హోమ్‌కు నావిగేట్ చేయండి"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"పైకి నావిగేట్ చేయండి"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"మరిన్ని ఎంపికలు"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"పూర్తయింది"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"అన్నీ చూడండి"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"అనువర్తనాన్ని ఎంచుకోండి"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ఆఫ్ చేయి"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"ఆన్ చేయి"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"శోధించు..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"ప్రశ్నను క్లియర్ చేయి"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"ప్రశ్న శోధించండి"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"శోధించు"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"ప్రశ్నని సమర్పించు"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"వాయిస్ శోధన"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"వీరితో భాగస్వామ్యం చేయి"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%sతో భాగస్వామ్యం చేయి"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"కుదించండి"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-th/values-th.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-th/values-th.xml
new file mode 100644 (file)
index 0000000..3e6eb76
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-th/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"นำทางไปหน้าแรก"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"นำทางขึ้น"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"ตัวเลือกอื่น"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"เสร็จสิ้น"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"ดูทั้งหมด"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"เลือกแอป"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ปิด"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"เปิด"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"ค้นหา…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"ล้างข้อความค้นหา"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"ข้อความค้นหา"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"ค้นหา"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"ส่งข้อความค้นหา"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"ค้นหาด้วยเสียง"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"แชร์กับ"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"แชร์กับ %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"ยุบ"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-th/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-th/values.xml
deleted file mode 100644 (file)
index 5524e9c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-th/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"นำทางไปหน้าแรก"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"นำทางขึ้น"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"ตัวเลือกอื่น"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"เสร็จสิ้น"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"ดูทั้งหมด"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"เลือกแอป"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"ล้างข้อความค้นหา"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"ข้อความค้นหา"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"ค้นหา"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"ส่งข้อความค้นหา"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"ค้นหาด้วยเสียง"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"แชร์กับ"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"แชร์กับ %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-tl/values-tl.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-tl/values-tl.xml
new file mode 100644 (file)
index 0000000..b792a7f
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-tl/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Mag-navigate patungo sa home"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Mag-navigate pataas"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Higit pang mga opsyon"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Tapos na"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Tingnan lahat"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Pumili ng isang app"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"I-OFF"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"I-ON"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Maghanap…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"I-clear ang query"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Query sa paghahanap"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Maghanap"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Isumite ang query"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Paghahanap gamit ang boses"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Ibahagi sa/kay"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Ibahagi sa/kay %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"I-collapse"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-tl/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-tl/values.xml
deleted file mode 100644 (file)
index 5874cd4..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-tl/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Mag-navigate patungo sa home"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Mag-navigate pataas"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Higit pang mga opsyon"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Tapos na"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Tingnan lahat"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Pumili ng isang app"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"I-clear ang query"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Query sa paghahanap"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Maghanap"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Isumite ang query"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Paghahanap gamit ang boses"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Ibahagi sa/kay"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Ibahagi sa/kay %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-tr/values-tr.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-tr/values-tr.xml
new file mode 100644 (file)
index 0000000..bb2cb72
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-tr/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Ana ekrana git"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Yukarı git"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Diğer seçenekler"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Tamamlandı"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Tümünü göster"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Bir uygulama seçin"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"KAPAT"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"AÇ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Ara…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Sorguyu temizle"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Arama sorgusu"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Ara"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Sorguyu gönder"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Sesli arama"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Şununla paylaş"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"%s ile paylaş"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Daralt"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-tr/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-tr/values.xml
deleted file mode 100644 (file)
index f5528ee..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-tr/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Ana ekrana git"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Yukarı git"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Diğer seçenekler"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Tamamlandı"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Tümünü göster"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Bir uygulama seçin"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Sorguyu temizle"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Arama sorgusu"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Ara"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Sorguyu gönder"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Sesli arama"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Şununla paylaş"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"%s ile paylaş"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-uk/values-uk.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-uk/values-uk.xml
new file mode 100644 (file)
index 0000000..b095ae6
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-uk/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Перейти на головний"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Перейти вгору"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Інші опції"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Готово"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Переглянути всі"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Вибрати програму"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"ВИМК."</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"УВІМК."</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Пошук…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Очистити запит"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Пошуковий запит"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Пошук"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Надіслати запит"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Голосовий пошук"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Надіслати через"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Надіслати через %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Згорнути"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-uk/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-uk/values.xml
deleted file mode 100644 (file)
index c0107bf..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-uk/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Перейти на головний"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Перейти вгору"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Інші опції"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Готово"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Переглянути всі"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Вибрати програму"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Очистити запит"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Пошуковий запит"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Пошук"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Надіслати запит"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Голосовий пошук"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Надіслати через"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Надіслати через %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-ur-rPK/values-ur-rPK.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-ur-rPK/values-ur-rPK.xml
new file mode 100644 (file)
index 0000000..48bc68f
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-ur-rPK/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"ہوم پر نیویگیٹ کریں"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"اوپر نیویگیٹ کریں"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"مزید اختیارات"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"ہو گیا"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"سبھی دیکھیں"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"ایک ایپ منتخب کریں"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"آف"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"آن"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"تلاش کریں…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"استفسار صاف کریں"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"استفسار تلاش کریں"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"تلاش کریں"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"استفسار جمع کرائیں"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"صوتی تلاش"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"اشتراک کریں مع"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"‏%s کے ساتھ اشتراک کریں"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"سکیڑیں"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"‎999+‎"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-uz-rUZ/values-uz-rUZ.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-uz-rUZ/values-uz-rUZ.xml
new file mode 100644 (file)
index 0000000..e780894
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-uz-rUZ/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Boshiga o‘tish"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Yuqoriga o‘tish"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Qo‘shimcha sozlamalar"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Tayyor"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Barchasini ko‘rish"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Dastur tanlang"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"O‘CHIQ"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"YONIQ"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Qidirish…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"So‘rovni tozalash"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"So‘rovni izlash"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Qidirish"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"So‘rov yaratish"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Ovozli qidiruv"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Bo‘lishish:"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Yig‘ish"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-v11/values-v11.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-v11/values-v11.xml
new file mode 100644 (file)
index 0000000..7d90af5
--- /dev/null
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v11/styles_base_text.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Inverse">
+        <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
+        <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
+        <item name="android:textColorHighlight">?android:attr/textColorHighlightInverse</item>
+        <item name="android:textColorLink">?android:attr/textColorLinkInverse</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Large.Inverse">
+        <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
+        <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
+        <item name="android:textColorHighlight">?android:attr/textColorHighlightInverse</item>
+        <item name="android:textColorLink">?android:attr/textColorLinkInverse</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Medium.Inverse">
+        <item name="android:textColor">?android:attr/textColorSecondaryInverse</item>
+        <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
+        <item name="android:textColorHighlight">?android:attr/textColorHighlightInverse</item>
+        <item name="android:textColorLink">?android:attr/textColorLinkInverse</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Small.Inverse">
+        <item name="android:textColor">?android:attr/textColorTertiaryInverse</item>
+        <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
+        <item name="android:textColorHighlight">?android:attr/textColorHighlightInverse</item>
+        <item name="android:textColorLink">?android:attr/textColorLinkInverse</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Subhead.Inverse">
+        <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
+        <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
+        <item name="android:textColorHighlight">?android:attr/textColorHighlightInverse</item>
+        <item name="android:textColorLink">?android:attr/textColorLinkInverse</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Title.Inverse">
+        <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
+        <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
+        <item name="android:textColorHighlight">?android:attr/textColorHighlightInverse</item>
+        <item name="android:textColorLink">?android:attr/textColorLinkInverse</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v11/themes_base.xml -->
+    <eat-comment/>
+    <style name="Base.Theme.AppCompat.Dialog" parent="Base.V11.Theme.AppCompat.Dialog"/>
+    <style name="Base.Theme.AppCompat.Light.Dialog" parent="Base.V11.Theme.AppCompat.Light.Dialog"/>
+    <style name="Base.V11.Theme.AppCompat.Dialog" parent="Base.V7.Theme.AppCompat.Dialog">
+        <item name="android:buttonBarStyle">@style/Widget.AppCompat.ButtonBar.AlertDialog</item>
+        <item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item>
+        <item name="android:windowCloseOnTouchOutside">@bool/abc_config_closeDialogWhenTouchOutside</item>
+    </style>
+    <style name="Base.V11.Theme.AppCompat.Light.Dialog" parent="Base.V7.Theme.AppCompat.Light.Dialog">
+        <item name="android:buttonBarStyle">@style/Widget.AppCompat.ButtonBar.AlertDialog</item>
+        <item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item>
+        <item name="android:windowCloseOnTouchOutside">@bool/abc_config_closeDialogWhenTouchOutside</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v11/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.Widget.AppCompat.ProgressBar" parent="android:Widget.Holo.ProgressBar">
+    </style>
+    <style name="Base.Widget.AppCompat.ProgressBar.Horizontal" parent="android:Widget.Holo.ProgressBar.Horizontal">
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v11/themes_base.xml -->
+    <eat-comment/>
+    <style name="Platform.AppCompat" parent="Platform.V11.AppCompat"/>
+    <style name="Platform.AppCompat.Light" parent="Platform.V11.AppCompat.Light"/>
+    <style name="Platform.V11.AppCompat" parent="android:Theme.Holo">
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowActionBar">false</item>
+
+        <item name="android:buttonBarStyle">?attr/buttonBarStyle</item>
+        <item name="android:buttonBarButtonStyle">?attr/buttonBarButtonStyle</item>
+
+        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
+
+        <!-- Window colors -->
+        <item name="android:colorForeground">@color/foreground_material_dark</item>
+        <item name="android:colorForegroundInverse">@color/foreground_material_light</item>
+        <item name="android:colorBackground">@color/background_material_dark</item>
+        <item name="android:colorBackgroundCacheHint">@color/abc_background_cache_hint_selector_material_dark</item>
+        <item name="android:disabledAlpha">@dimen/abc_disabled_alpha_material_dark</item>
+        <item name="android:backgroundDimAmount">0.6</item>
+        <item name="android:windowBackground">@color/background_material_dark</item>
+
+        <!-- Text colors -->
+        <item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item>
+        <item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_light</item>
+        <item name="android:textColorPrimaryDisableOnly">@color/abc_primary_text_disable_only_material_dark</item>
+        <item name="android:textColorSecondary">@color/abc_secondary_text_material_dark</item>
+        <item name="android:textColorSecondaryInverse">@color/abc_secondary_text_material_light</item>
+        <item name="android:textColorTertiary">@color/abc_secondary_text_material_dark</item>
+        <item name="android:textColorTertiaryInverse">@color/abc_secondary_text_material_light</item>
+        <item name="android:textColorHint">@color/hint_foreground_material_dark</item>
+        <item name="android:textColorHintInverse">@color/hint_foreground_material_light</item>
+        <item name="android:textColorHighlight">@color/highlighted_text_material_dark</item>
+        <item name="android:textColorHighlightInverse">@color/highlighted_text_material_light</item>
+        <item name="android:textColorLink">?attr/colorAccent</item>
+        <item name="android:textColorLinkInverse">?attr/colorAccent</item>
+        <item name="android:textColorAlertDialogListItem">@color/abc_primary_text_material_dark</item>
+
+        <!-- Text styles -->
+        <item name="android:textAppearance">@style/TextAppearance.AppCompat</item>
+        <item name="android:textAppearanceInverse">@style/TextAppearance.AppCompat.Inverse</item>
+        <item name="android:textAppearanceLarge">@style/TextAppearance.AppCompat.Large</item>
+        <item name="android:textAppearanceLargeInverse">@style/TextAppearance.AppCompat.Large.Inverse</item>
+        <item name="android:textAppearanceMedium">@style/TextAppearance.AppCompat.Medium</item>
+        <item name="android:textAppearanceMediumInverse">@style/TextAppearance.AppCompat.Medium.Inverse</item>
+        <item name="android:textAppearanceSmall">@style/TextAppearance.AppCompat.Small</item>
+        <item name="android:textAppearanceSmallInverse">@style/TextAppearance.AppCompat.Small.Inverse</item>
+
+        <item name="android:listChoiceIndicatorSingle">@drawable/abc_btn_radio_material</item>
+        <item name="android:listChoiceIndicatorMultiple">@drawable/abc_btn_check_material</item>
+
+        <item name="android:actionModeCutDrawable">?actionModeCutDrawable</item>
+        <item name="android:actionModeCopyDrawable">?actionModeCopyDrawable</item>
+        <item name="android:actionModePasteDrawable">?actionModePasteDrawable</item>
+    </style>
+    <style name="Platform.V11.AppCompat.Light" parent="android:Theme.Holo.Light">
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowActionBar">false</item>
+
+        <item name="android:buttonBarStyle">?attr/buttonBarStyle</item>
+        <item name="android:buttonBarButtonStyle">?attr/buttonBarButtonStyle</item>
+
+        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
+
+        <!-- Window colors -->
+        <item name="android:colorForeground">@color/foreground_material_light</item>
+        <item name="android:colorForegroundInverse">@color/foreground_material_dark</item>
+        <item name="android:colorBackground">@color/background_material_light</item>
+        <item name="android:colorBackgroundCacheHint">@color/abc_background_cache_hint_selector_material_light</item>
+        <item name="android:disabledAlpha">@dimen/abc_disabled_alpha_material_light</item>
+        <item name="android:backgroundDimAmount">0.6</item>
+        <item name="android:windowBackground">@color/background_material_light</item>
+
+        <!-- Text colors -->
+        <item name="android:textColorPrimary">@color/abc_primary_text_material_light</item>
+        <item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_dark</item>
+        <item name="android:textColorSecondary">@color/abc_secondary_text_material_light</item>
+        <item name="android:textColorSecondaryInverse">@color/abc_secondary_text_material_dark</item>
+        <item name="android:textColorTertiary">@color/abc_secondary_text_material_light</item>
+        <item name="android:textColorTertiaryInverse">@color/abc_secondary_text_material_dark</item>
+        <item name="android:textColorPrimaryDisableOnly">@color/abc_primary_text_disable_only_material_light</item>
+        <item name="android:textColorPrimaryInverseDisableOnly">@color/abc_primary_text_disable_only_material_dark</item>
+        <item name="android:textColorHint">@color/hint_foreground_material_light</item>
+        <item name="android:textColorHintInverse">@color/hint_foreground_material_dark</item>
+        <item name="android:textColorHighlight">@color/highlighted_text_material_light</item>
+        <item name="android:textColorHighlightInverse">@color/highlighted_text_material_dark</item>
+        <item name="android:textColorLink">?attr/colorAccent</item>
+        <item name="android:textColorLinkInverse">?attr/colorAccent</item>
+        <item name="android:textColorAlertDialogListItem">@color/abc_primary_text_material_light</item>
+
+        <!-- Text styles -->
+        <item name="android:textAppearance">@style/TextAppearance.AppCompat</item>
+        <item name="android:textAppearanceInverse">@style/TextAppearance.AppCompat.Inverse</item>
+        <item name="android:textAppearanceLarge">@style/TextAppearance.AppCompat.Large</item>
+        <item name="android:textAppearanceLargeInverse">@style/TextAppearance.AppCompat.Large.Inverse</item>
+        <item name="android:textAppearanceMedium">@style/TextAppearance.AppCompat.Medium</item>
+        <item name="android:textAppearanceMediumInverse">@style/TextAppearance.AppCompat.Medium.Inverse</item>
+        <item name="android:textAppearanceSmall">@style/TextAppearance.AppCompat.Small</item>
+        <item name="android:textAppearanceSmallInverse">@style/TextAppearance.AppCompat.Small.Inverse</item>
+
+        <item name="android:listChoiceIndicatorSingle">@drawable/abc_btn_radio_material</item>
+        <item name="android:listChoiceIndicatorMultiple">@drawable/abc_btn_check_material</item>
+
+        <item name="android:actionModeCutDrawable">?actionModeCutDrawable</item>
+        <item name="android:actionModeCopyDrawable">?actionModeCopyDrawable</item>
+        <item name="android:actionModePasteDrawable">?actionModePasteDrawable</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v11/styles_base.xml -->
+    <eat-comment/>
+    <style name="Platform.Widget.AppCompat.Spinner" parent="android:Widget.Holo.Spinner"/>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-v11/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-v11/values.xml
deleted file mode 100644 (file)
index eb01025..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-v11/themes_base.xml -->
-    <eat-comment />
-
-    <style name="Theme.Base" parent="android:Theme.Holo">
-        <item name="android:windowNoTitle">true</item>
-        <item name="android:windowActionBar">false</item>
-
-        <!--
-            A native Action Mode could be displayed (for text selection, etc) so we need to ensure
-            that it is positioned correctly, so we request windowActionModeOverlay so that it
-            displays over the compat Action Bar.
-        -->
-        <item name="android:windowActionModeOverlay">true</item>
-
-        <!-- Attributes populated from the framework to be read by apps -->
-        <item name="buttonBarStyle">?android:attr/buttonBarStyle</item>
-        <item name="buttonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
-        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
-    </style>
-
-    <style name="Theme.Base.AppCompat.Dialog.FixedSize" parent="android:Theme.Holo.Dialog">
-        <item name="windowFixedWidthMajor">@dimen/dialog_fixed_width_major</item>
-        <item name="windowFixedWidthMinor">@dimen/dialog_fixed_width_minor</item>
-        <item name="windowFixedHeightMajor">@dimen/dialog_fixed_height_major</item>
-        <item name="windowFixedHeightMinor">@dimen/dialog_fixed_height_minor</item>
-        <item name="windowActionBar">false</item>
-
-        <!-- Attributes populated from the framework to be read by apps -->
-        <item name="buttonBarStyle">?android:attr/buttonBarStyle</item>
-        <item name="buttonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
-        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
-    </style>
-
-    <style name="Theme.Base.AppCompat.Dialog.Light.FixedSize" parent="android:Theme.Holo.Light.Dialog">
-        <item name="windowFixedWidthMajor">@dimen/dialog_fixed_width_major</item>
-        <item name="windowFixedWidthMinor">@dimen/dialog_fixed_width_minor</item>
-        <item name="windowFixedHeightMajor">@dimen/dialog_fixed_height_major</item>
-        <item name="windowFixedHeightMinor">@dimen/dialog_fixed_height_minor</item>
-        <item name="windowActionBar">false</item>
-
-        <!-- Attributes populated from the framework to be read by apps -->
-        <item name="buttonBarStyle">?android:attr/buttonBarStyle</item>
-        <item name="buttonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
-        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
-    </style>
-
-    <style name="Theme.Base.Light" parent="android:Theme.Holo.Light">
-        <item name="android:windowNoTitle">true</item>
-        <item name="android:windowActionBar">false</item>
-
-        <!--
-            A native Action Mode could be displayed (for text selection, etc) so we need to ensure
-            that it is positioned correctly, so we request windowActionModeOverlay so that it
-            displays over the compat Action Bar.
-        -->
-        <item name="android:windowActionModeOverlay">true</item>
-
-        <!-- Attributes populated from the framework to be read by apps -->
-        <item name="buttonBarStyle">?android:attr/buttonBarStyle</item>
-        <item name="buttonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
-        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
-    </style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-v11/styles_base.xml -->
-    <eat-comment />
-
-    <style name="Widget.AppCompat.Base.AutoCompleteTextView" parent="android:Widget.Holo.AutoCompleteTextView"></style>
-
-    <style name="Widget.AppCompat.Base.ProgressBar" parent="android:Widget.Holo.ProgressBar"></style>
-
-    <style name="Widget.AppCompat.Base.ProgressBar.Horizontal" parent="android:Widget.Holo.ProgressBar.Horizontal"></style>
-
-    <style name="Widget.AppCompat.Light.Base.AutoCompleteTextView" parent="android:Widget.Holo.Light.AutoCompleteTextView"></style>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-v12/values-v12.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-v12/values-v12.xml
new file mode 100644 (file)
index 0000000..615cb04
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v12/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.V12.Widget.AppCompat.AutoCompleteTextView" parent="Base.V7.Widget.AppCompat.AutoCompleteTextView">
+        <item name="android:textCursorDrawable">@drawable/abc_text_cursor_material</item>
+    </style>
+    <style name="Base.V12.Widget.AppCompat.EditText" parent="Base.V7.Widget.AppCompat.EditText">
+        <item name="android:textCursorDrawable">@drawable/abc_text_cursor_material</item>
+    </style>
+    <style name="Base.Widget.AppCompat.AutoCompleteTextView" parent="Base.V12.Widget.AppCompat.AutoCompleteTextView"/>
+    <style name="Base.Widget.AppCompat.EditText" parent="Base.V12.Widget.AppCompat.EditText"/>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-v14/values-v14.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-v14/values-v14.xml
new file mode 100644 (file)
index 0000000..8394466
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v14/styles_base_text.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Button">
+        <item name="android:textSize">@dimen/abc_text_size_button_material</item>
+        <item name="android:textAllCaps">true</item>
+        <item name="android:textColor">?android:textColorPrimary</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v14/themes_base.xml -->
+    <eat-comment/>
+    <style name="Platform.AppCompat" parent="Platform.V14.AppCompat"/>
+    <style name="Platform.AppCompat.Light" parent="Platform.V14.AppCompat.Light"/>
+    <style name="Platform.V14.AppCompat" parent="Platform.V11.AppCompat">
+        <item name="android:actionModeSelectAllDrawable">?actionModeSelectAllDrawable</item>
+
+        <item name="android:listPreferredItemPaddingLeft">@dimen/abc_list_item_padding_horizontal_material</item>
+        <item name="android:listPreferredItemPaddingRight">@dimen/abc_list_item_padding_horizontal_material</item>
+    </style>
+    <style name="Platform.V14.AppCompat.Light" parent="Platform.V11.AppCompat.Light">
+        <item name="android:actionModeSelectAllDrawable">?actionModeSelectAllDrawable</item>
+
+        <item name="android:listPreferredItemPaddingLeft">@dimen/abc_list_item_padding_horizontal_material</item>
+        <item name="android:listPreferredItemPaddingRight">@dimen/abc_list_item_padding_horizontal_material</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v14/styles.xml -->
+    <eat-comment/>
+    <style name="TextAppearance.StatusBar.EventContent" parent="@android:style/TextAppearance.StatusBar.EventContent"/>
+    <style name="TextAppearance.StatusBar.EventContent.Info"/>
+    <style name="TextAppearance.StatusBar.EventContent.Line2">
+        <item name="android:textSize">@dimen/notification_subtext_size</item>
+    </style>
+    <style name="TextAppearance.StatusBar.EventContent.Time"/>
+    <style name="TextAppearance.StatusBar.EventContent.Title" parent="@android:style/TextAppearance.StatusBar.EventContent.Title"/>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-v14/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-v14/values.xml
deleted file mode 100644 (file)
index a0d3a48..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-v14/styles_base.xml -->
-    <eat-comment />
-
-    <style name="TextAppearance.AppCompat.Base.SearchResult.Subtitle" parent="@android:TextAppearance.Holo.SearchResult.Subtitle"></style>
-
-    <style name="TextAppearance.AppCompat.Base.SearchResult.Title" parent="@android:TextAppearance.Holo.SearchResult.Title"></style>
-
-    <style name="TextAppearance.AppCompat.Base.Widget.PopupMenu.Large" parent="android:TextAppearance.Holo.Widget.PopupMenu.Large"></style>
-
-    <style name="TextAppearance.AppCompat.Base.Widget.PopupMenu.Small" parent="android:TextAppearance.Holo.Widget.PopupMenu.Small"></style>
-
-    <style name="TextAppearance.AppCompat.Light.Base.SearchResult.Subtitle" parent="@android:TextAppearance.Holo.SearchResult.Subtitle"></style>
-
-    <style name="TextAppearance.AppCompat.Light.Base.SearchResult.Title" parent="@android:TextAppearance.Holo.SearchResult.Title"></style>
-
-    <style name="TextAppearance.AppCompat.Light.Base.Widget.PopupMenu.Large" parent="android:TextAppearance.Holo.Widget.PopupMenu.Large"></style>
-
-    <style name="TextAppearance.AppCompat.Light.Base.Widget.PopupMenu.Small" parent="android:TextAppearance.Holo.Widget.PopupMenu.Small"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionBar.Menu" parent="android:TextAppearance.Holo.Widget.ActionBar.Menu"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionBar.Subtitle" parent="android:TextAppearance.Holo.Widget.ActionBar.Subtitle"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionBar.Subtitle.Inverse" parent="android:TextAppearance.Holo.Widget.ActionBar.Subtitle.Inverse"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionBar.Title" parent="android:TextAppearance.Holo.Widget.ActionBar.Title"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionBar.Title.Inverse" parent="android:TextAppearance.Holo.Widget.ActionBar.Title.Inverse"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionMode.Subtitle" parent="android:TextAppearance.Holo.Widget.ActionMode.Subtitle"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionMode.Subtitle.Inverse" parent="android:TextAppearance.Holo.Widget.ActionMode.Subtitle.Inverse"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionMode.Title" parent="android:TextAppearance.Holo.Widget.ActionMode.Title"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionMode.Title.Inverse" parent="android:TextAppearance.Holo.Widget.ActionMode.Title.Inverse"></style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-v14/themes_base.xml -->
-    <eat-comment />
-
-    <style name="Theme.Base.AppCompat" parent="android:Theme.Holo">
-
-        <!-- Copy system flag values for our use -->
-        <item name="windowActionBar">?android:attr/windowActionBar</item>
-        <item name="actionBarSize">?android:attr/actionBarSize</item>
-        <item name="actionBarItemBackground">?android:attr/actionBarItemBackground</item>
-        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
-        <item name="actionButtonStyle">?android:attr/actionButtonStyle</item>
-        <item name="dividerVertical">?android:attr/dividerVertical</item>
-        <item name="dividerHorizontal">?android:attr/dividerHorizontal</item>
-        <item name="actionBarWidgetTheme">@null</item>
-        <item name="android:actionBarWidgetTheme">?attr/actionBarWidgetTheme</item>
-
-        <!-- Required for use of support_simple_spinner_dropdown_item.xml -->
-        <item name="listPreferredItemHeight">?android:attr/listPreferredItemHeight</item>
-        <item name="listPreferredItemHeightSmall">?android:attr/listPreferredItemHeightSmall</item>
-        <item name="listPreferredItemHeightLarge">?android:attr/listPreferredItemHeightLarge</item>
-        <item name="listPreferredItemPaddingLeft">?android:attr/listPreferredItemPaddingLeft</item>
-        <item name="listPreferredItemPaddingRight">?android:attr/listPreferredItemPaddingRight</item>
-
-        <!-- Attributes populated from the framework to be read by apps -->
-        <item name="buttonBarStyle">?android:attr/buttonBarStyle</item>
-        <item name="buttonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
-    </style>
-
-    <style name="Theme.Base.AppCompat.DialogWhenLarge" parent="Theme.Base.AppCompat.DialogWhenLarge.Base" />
-
-    <style name="Theme.Base.AppCompat.DialogWhenLarge.Base" parent="android:Theme.Holo.DialogWhenLarge">
-
-        <!-- Copy system flag values for our use -->
-        <item name="windowActionBar">?android:attr/windowActionBar</item>
-        <item name="actionBarSize">?android:attr/actionBarSize</item>
-        <item name="actionBarItemBackground">?android:attr/actionBarItemBackground</item>
-        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
-        <item name="actionButtonStyle">?android:attr/actionButtonStyle</item>
-        <item name="dividerVertical">?android:attr/dividerVertical</item>
-        <item name="dividerHorizontal">?android:attr/dividerHorizontal</item>
-        <item name="actionBarWidgetTheme">@null</item>
-        <item name="android:actionBarWidgetTheme">?attr/actionBarWidgetTheme</item>
-
-        <!-- Required for use of support_simple_spinner_dropdown_item.xml -->
-        <item name="listPreferredItemHeight">?android:attr/listPreferredItemHeight</item>
-        <item name="listPreferredItemHeightSmall">?android:attr/listPreferredItemHeightSmall</item>
-        <item name="listPreferredItemHeightLarge">?android:attr/listPreferredItemHeightLarge</item>
-        <item name="listPreferredItemPaddingLeft">?android:attr/listPreferredItemPaddingLeft</item>
-        <item name="listPreferredItemPaddingRight">?android:attr/listPreferredItemPaddingRight</item>
-
-        <!-- Attributes populated from the framework to be read by apps -->
-        <item name="buttonBarStyle">?android:attr/buttonBarStyle</item>
-        <item name="buttonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
-    </style>
-
-    <style name="Theme.Base.AppCompat.Light" parent="android:Theme.Holo.Light">
-
-        <!-- Copy system flag values for our use -->
-        <item name="windowActionBar">?android:attr/windowActionBar</item>
-        <item name="actionBarSize">?android:attr/actionBarSize</item>
-        <item name="actionBarItemBackground">?android:attr/actionBarItemBackground</item>
-        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
-        <item name="actionButtonStyle">?android:attr/actionButtonStyle</item>
-        <item name="dividerVertical">?android:attr/dividerVertical</item>
-        <item name="dividerHorizontal">?android:attr/dividerHorizontal</item>
-        <item name="actionBarWidgetTheme">@null</item>
-        <item name="android:actionBarWidgetTheme">?attr/actionBarWidgetTheme</item>
-
-        <!-- Required for use of support_simple_spinner_dropdown_item.xml -->
-        <item name="listPreferredItemHeight">?android:attr/listPreferredItemHeight</item>
-        <item name="listPreferredItemHeightSmall">?android:attr/listPreferredItemHeightSmall</item>
-        <item name="listPreferredItemHeightLarge">?android:attr/listPreferredItemHeightLarge</item>
-        <item name="listPreferredItemPaddingLeft">?android:attr/listPreferredItemPaddingLeft</item>
-        <item name="listPreferredItemPaddingRight">?android:attr/listPreferredItemPaddingRight</item>
-
-        <!-- Attributes populated from the framework to be read by apps -->
-        <item name="buttonBarStyle">?android:attr/buttonBarStyle</item>
-        <item name="buttonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
-    </style>
-
-    <style name="Theme.Base.AppCompat.Light.DarkActionBar" parent="android:Theme.Holo.Light.DarkActionBar">
-
-        <!-- Copy system flag values for our use -->
-        <item name="windowActionBar">?android:attr/windowActionBar</item>
-        <item name="actionBarSize">?android:attr/actionBarSize</item>
-        <item name="actionBarItemBackground">?android:attr/actionBarItemBackground</item>
-        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
-        <item name="actionButtonStyle">?android:attr/actionButtonStyle</item>
-        <item name="dividerVertical">?android:attr/dividerVertical</item>
-        <item name="dividerHorizontal">?android:attr/dividerHorizontal</item>
-        <item name="actionBarWidgetTheme">@style/Theme.AppCompat</item>
-        <item name="android:actionBarWidgetTheme">?attr/actionBarWidgetTheme</item>
-
-        <!-- Required for use of support_simple_spinner_dropdown_item.xml -->
-        <item name="listPreferredItemHeight">?android:attr/listPreferredItemHeight</item>
-        <item name="listPreferredItemHeightSmall">?android:attr/listPreferredItemHeightSmall</item>
-        <item name="listPreferredItemHeightLarge">?android:attr/listPreferredItemHeightLarge</item>
-        <item name="listPreferredItemPaddingLeft">?android:attr/listPreferredItemPaddingLeft</item>
-        <item name="listPreferredItemPaddingRight">?android:attr/listPreferredItemPaddingRight</item>
-
-        <!-- Attributes populated from the framework to be read by apps -->
-        <item name="buttonBarStyle">?android:attr/buttonBarStyle</item>
-        <item name="buttonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
-    </style>
-
-    <style name="Theme.Base.AppCompat.Light.DialogWhenLarge" parent="Theme.Base.AppCompat.Light.DialogWhenLarge.Base" />
-
-    <style name="Theme.Base.AppCompat.Light.DialogWhenLarge.Base" parent="android:Theme.Holo.Light.DialogWhenLarge">
-
-        <!-- Copy system flag values for our use -->
-        <item name="windowActionBar">?android:attr/windowActionBar</item>
-        <item name="actionBarSize">?android:attr/actionBarSize</item>
-        <item name="actionBarItemBackground">?android:attr/actionBarItemBackground</item>
-        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
-        <item name="actionButtonStyle">?android:attr/actionButtonStyle</item>
-        <item name="dividerVertical">?android:attr/dividerVertical</item>
-        <item name="dividerHorizontal">?android:attr/dividerHorizontal</item>
-        <item name="actionBarWidgetTheme">@null</item>
-        <item name="android:actionBarWidgetTheme">?attr/actionBarWidgetTheme</item>
-
-        <!-- Required for use of support_simple_spinner_dropdown_item.xml -->
-        <item name="listPreferredItemHeight">?android:attr/listPreferredItemHeight</item>
-        <item name="listPreferredItemHeightSmall">?android:attr/listPreferredItemHeightSmall</item>
-        <item name="listPreferredItemHeightLarge">?android:attr/listPreferredItemHeightLarge</item>
-        <item name="listPreferredItemPaddingLeft">?android:attr/listPreferredItemPaddingLeft</item>
-        <item name="listPreferredItemPaddingRight">?android:attr/listPreferredItemPaddingRight</item>
-
-        <!-- Attributes populated from the framework to be read by apps -->
-        <item name="buttonBarStyle">?android:attr/buttonBarStyle</item>
-        <item name="buttonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
-    </style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-v14/styles_base.xml -->
-    <eat-comment />
-
-    <style name="Widget.AppCompat.Base.ActionBar" parent="android:Widget.Holo.ActionBar"></style>
-
-    <style name="Widget.AppCompat.Base.ActionBar.Solid" parent="android:Widget.Holo.ActionBar.Solid"></style>
-
-    <style name="Widget.AppCompat.Base.ActionBar.TabBar" parent="android:Widget.Holo.ActionBar.TabBar"></style>
-
-    <style name="Widget.AppCompat.Base.ActionBar.TabText" parent="android:Widget.Holo.ActionBar.TabText"></style>
-
-    <style name="Widget.AppCompat.Base.ActionBar.TabView" parent="android:Widget.Holo.ActionBar.TabView"></style>
-
-    <style name="Widget.AppCompat.Base.ActionButton" parent="android:Widget.Holo.ActionButton"></style>
-
-    <style name="Widget.AppCompat.Base.ActionButton.CloseMode" parent="android:Widget.Holo.ActionButton.CloseMode"></style>
-
-    <style name="Widget.AppCompat.Base.ActionButton.Overflow" parent="android:Widget.Holo.ActionButton.Overflow"></style>
-
-    <style name="Widget.AppCompat.Base.ActivityChooserView" parent="">
-        <item name="android:gravity">center</item>
-        <item name="android:background">@drawable/abc_ab_share_pack_holo_dark</item>
-        <item name="android:divider">?attr/dividerVertical</item>
-        <item name="android:showDividers">middle</item>
-        <item name="android:dividerPadding">6dip</item>
-    </style>
-
-    <style name="Widget.AppCompat.Base.DropDownItem.Spinner" parent="android:Widget.Holo.DropDownItem.Spinner" />
-
-    <style name="Widget.AppCompat.Base.ListPopupWindow" parent="android:Widget.Holo.ListPopupWindow"></style>
-
-    <style name="Widget.AppCompat.Base.ListView.DropDown" parent="android:Widget.Holo.ListView.DropDown" />
-
-    <style name="Widget.AppCompat.Base.ListView.Menu" parent="android:Widget.ListView.Menu" />
-
-    <style name="Widget.AppCompat.Base.PopupMenu" parent="android:Widget.Holo.PopupMenu"></style>
-
-    <style name="Widget.AppCompat.Base.Spinner" parent="android:Widget.Holo.Spinner" />
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar" parent="android:Widget.Holo.Light.ActionBar"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.Solid" parent="android:Widget.Holo.Light.ActionBar.Solid"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.Solid.Inverse" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.TabBar" parent="android:Widget.Holo.Light.ActionBar.TabBar"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.TabBar.Inverse" parent="android:Widget.Holo.Light.ActionBar.TabBar.Inverse"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.TabText" parent="android:Widget.Holo.Light.ActionBar.TabText"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.TabText.Inverse" parent="android:Widget.Holo.Light.ActionBar.TabText.Inverse"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.TabView" parent="android:Widget.Holo.Light.ActionBar.TabView"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.TabView.Inverse" parent="android:Widget.Holo.Light.ActionBar.TabView.Inverse"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionButton" parent="android:Widget.Holo.Light.ActionButton"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionButton.CloseMode" parent="android:Widget.Holo.Light.ActionButton.CloseMode"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionButton.Overflow" parent="android:Widget.Holo.Light.ActionButton.Overflow"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionMode.Inverse" parent="android:Widget.Holo.Light.ActionMode.Inverse"></style>
-
-    <style name="Widget.AppCompat.Light.Base.DropDownItem.Spinner" parent="android:Widget.Holo.Light.DropDownItem.Spinner" />
-
-    <style name="Widget.AppCompat.Light.Base.ListPopupWindow" parent="android:Widget.Holo.Light.ListPopupWindow"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ListView.DropDown" parent="android:Widget.Holo.ListView.DropDown" />
-
-    <style name="Widget.AppCompat.Light.Base.PopupMenu" parent="android:Widget.Holo.Light.PopupMenu"></style>
-
-    <style name="Widget.AppCompat.Light.Base.Spinner" parent="android:Widget.Holo.Light.Spinner" />
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-v17/values-v17.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-v17/values-v17.xml
new file mode 100644 (file)
index 0000000..edd739f
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v17/styles_rtl.xml -->
+    <eat-comment/>
+    <style name="RtlOverlay.DialogWindowTitle.AppCompat" parent="Base.DialogWindowTitle.AppCompat">
+        <item name="android:textAlignment">viewStart</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.ActionBar.TitleItem" parent="android:Widget">
+        <item name="android:layout_gravity">center_vertical|start</item>
+        <item name="android:paddingEnd">8dp</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.DialogTitle.Icon" parent="android:Widget">
+        <item name="android:layout_marginEnd">8dp</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.PopupMenuItem" parent="android:Widget">
+        <item name="android:paddingEnd">16dp</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.PopupMenuItem.InternalGroup" parent="android:Widget">
+        <item name="android:layout_marginStart">16dp</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.PopupMenuItem.Text" parent="android:Widget">
+        <item name="android:layout_alignParentStart">true</item>
+        <item name="android:textAlignment">viewStart</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.Search.DropDown" parent="android:Widget">
+        <item name="android:paddingStart">@dimen/abc_dropdownitem_text_padding_left</item>
+        <item name="android:paddingEnd">4dp</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.Search.DropDown.Icon1" parent="android:Widget">
+        <item name="android:layout_alignParentStart">true</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.Search.DropDown.Icon2" parent="android:Widget">
+        <item name="android:layout_toStartOf">@id/edit_query</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.Search.DropDown.Query" parent="android:Widget">
+        <item name="android:layout_alignParentEnd">true</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.Search.DropDown.Text" parent="Base.Widget.AppCompat.DropDownItem.Spinner">
+        <item name="android:layout_toStartOf">@android:id/icon2</item>
+        <item name="android:layout_toEndOf">@android:id/icon1</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.SearchView.MagIcon" parent="android:Widget">
+        <item name="android:layout_marginStart">@dimen/abc_dropdownitem_text_padding_left</item>
+    </style>
+    <style name="RtlUnderlay.Widget.AppCompat.ActionButton" parent="android:Widget">
+        <item name="android:paddingStart">12dp</item>
+        <item name="android:paddingEnd">12dp</item>
+    </style>
+    <style name="RtlUnderlay.Widget.AppCompat.ActionButton.Overflow" parent="Base.Widget.AppCompat.ActionButton">
+        <item name="android:paddingStart">@dimen/abc_action_bar_overflow_padding_start_material</item>
+        <item name="android:paddingEnd">@dimen/abc_action_bar_overflow_padding_end_material</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-v18/values-v18.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-v18/values-v18.xml
new file mode 100644 (file)
index 0000000..2941d8d
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v18/dimens.xml -->
+    <eat-comment/>
+    <dimen name="abc_switch_padding">0px</dimen>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-v21/values-v21.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-v21/values-v21.xml
new file mode 100644 (file)
index 0000000..a507cd9
--- /dev/null
@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/styles_base_text.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat" parent="android:TextAppearance.Material"/>
+    <style name="Base.TextAppearance.AppCompat.Body1" parent="android:TextAppearance.Material.Body1"/>
+    <style name="Base.TextAppearance.AppCompat.Body2" parent="android:TextAppearance.Material.Body2"/>
+    <style name="Base.TextAppearance.AppCompat.Button" parent="android:TextAppearance.Material.Button"/>
+    <style name="Base.TextAppearance.AppCompat.Caption" parent="android:TextAppearance.Material.Caption"/>
+    <style name="Base.TextAppearance.AppCompat.Display1" parent="android:TextAppearance.Material.Display1"/>
+    <style name="Base.TextAppearance.AppCompat.Display2" parent="android:TextAppearance.Material.Display2"/>
+    <style name="Base.TextAppearance.AppCompat.Display3" parent="android:TextAppearance.Material.Display3"/>
+    <style name="Base.TextAppearance.AppCompat.Display4" parent="android:TextAppearance.Material.Display4"/>
+    <style name="Base.TextAppearance.AppCompat.Headline" parent="android:TextAppearance.Material.Headline"/>
+    <style name="Base.TextAppearance.AppCompat.Inverse" parent="android:TextAppearance.Material.Inverse"/>
+    <style name="Base.TextAppearance.AppCompat.Large" parent="android:TextAppearance.Material.Large"/>
+    <style name="Base.TextAppearance.AppCompat.Large.Inverse" parent="android:TextAppearance.Material.Large.Inverse"/>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Light.Widget.PopupMenu.Large" parent="android:TextAppearance.Material.Widget.PopupMenu.Large">
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Light.Widget.PopupMenu.Small" parent="android:TextAppearance.Material.Widget.PopupMenu.Small">
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/styles_base_text.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Medium" parent="android:TextAppearance.Material.Medium"/>
+    <style name="Base.TextAppearance.AppCompat.Medium.Inverse" parent="android:TextAppearance.Material.Medium.Inverse"/>
+    <style name="Base.TextAppearance.AppCompat.Menu" parent="android:TextAppearance.Material.Menu"/>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.SearchResult.Subtitle" parent="android:TextAppearance.Material.SearchResult.Subtitle">
+    </style>
+    <style name="Base.TextAppearance.AppCompat.SearchResult.Title" parent="android:TextAppearance.Material.SearchResult.Title">
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/styles_base_text.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Small" parent="android:TextAppearance.Material.Small"/>
+    <style name="Base.TextAppearance.AppCompat.Small.Inverse" parent="android:TextAppearance.Material.Small.Inverse"/>
+    <style name="Base.TextAppearance.AppCompat.Subhead" parent="android:TextAppearance.Material.Subhead"/>
+    <style name="Base.TextAppearance.AppCompat.Title" parent="android:TextAppearance.Material.Title"/>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Menu" parent="android:TextAppearance.Material.Widget.ActionBar.Menu">
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Subtitle" parent="android:TextAppearance.Material.Widget.ActionBar.Subtitle">
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse" parent="android:TextAppearance.Material.Widget.ActionBar.Subtitle.Inverse">
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Title" parent="android:TextAppearance.Material.Widget.ActionBar.Title">
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse" parent="android:TextAppearance.Material.Widget.ActionBar.Title.Inverse">
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionMode.Subtitle" parent="android:TextAppearance.Material.Widget.ActionMode.Subtitle">
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionMode.Title" parent="android:TextAppearance.Material.Widget.ActionMode.Title">
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/styles_base_text.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Widget.Button" parent="android:TextAppearance.Material.Widget.Button"/>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Widget.PopupMenu.Large" parent="android:TextAppearance.Material.Widget.PopupMenu.Large">
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Widget.PopupMenu.Small" parent="android:TextAppearance.Material.Widget.PopupMenu.Small">
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/styles_base_text.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Widget.Switch" parent="android:TextAppearance.Material.Button"/>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Widget.TextView.SpinnerItem" parent="android:TextAppearance.Material.Widget.TextView.SpinnerItem"/>
+    <style name="Base.TextAppearance.Widget.AppCompat.Toolbar.Subtitle" parent="android:TextAppearance.Material.Widget.ActionBar.Subtitle">
+    </style>
+    <style name="Base.TextAppearance.Widget.AppCompat.Toolbar.Title" parent="android:TextAppearance.Material.Widget.ActionBar.Title">
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/themes_base.xml -->
+    <eat-comment/>
+    <style name="Base.Theme.AppCompat" parent="Base.V21.Theme.AppCompat"/>
+    <style name="Base.Theme.AppCompat.Dialog" parent="Base.V21.Theme.AppCompat.Dialog"/>
+    <style name="Base.Theme.AppCompat.Light" parent="Base.V21.Theme.AppCompat.Light"/>
+    <style name="Base.Theme.AppCompat.Light.Dialog" parent="Base.V21.Theme.AppCompat.Light.Dialog"/>
+    <style name="Base.V21.Theme.AppCompat" parent="Base.V7.Theme.AppCompat">
+        <!-- Action Bar styling attributes -->
+        <item name="actionBarSize">?android:attr/actionBarSize</item>
+        <item name="actionBarDivider">?android:attr/actionBarDivider</item>
+        <item name="actionBarItemBackground">@drawable/abc_action_bar_item_background_material</item>
+        <item name="actionButtonStyle">?android:attr/actionButtonStyle</item>
+        <item name="actionModeBackground">?android:attr/actionModeBackground</item>
+        <item name="actionModeCloseDrawable">?android:attr/actionModeCloseDrawable</item>
+        <item name="actionOverflowButtonStyle">?android:attr/actionOverflowButtonStyle</item>
+        <item name="homeAsUpIndicator">?android:attr/homeAsUpIndicator</item>
+
+        <!-- For PopupMenu -->
+        <item name="listPreferredItemHeightSmall">?android:attr/listPreferredItemHeightSmall</item>
+        <item name="textAppearanceLargePopupMenu">?android:attr/textAppearanceLargePopupMenu</item>
+        <item name="textAppearanceSmallPopupMenu">?android:attr/textAppearanceSmallPopupMenu</item>
+
+        <!-- General view attributes -->
+        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
+        <item name="selectableItemBackgroundBorderless">?android:attr/selectableItemBackgroundBorderless</item>
+        <item name="borderlessButtonStyle">?android:borderlessButtonStyle</item>
+        <item name="dividerHorizontal">?android:attr/dividerHorizontal</item>
+        <item name="dividerVertical">?android:attr/dividerVertical</item>
+        <item name="editTextBackground">?android:attr/editTextBackground</item>
+        <item name="editTextColor">?android:attr/editTextColor</item>
+        <item name="listChoiceBackgroundIndicator">?android:attr/listChoiceBackgroundIndicator</item>
+
+        <!-- Copy the platform default styles for the AppCompat widgets -->
+        <item name="buttonStyle">?android:attr/buttonStyle</item>
+        <item name="buttonStyleSmall">?android:attr/buttonStyleSmall</item>
+        <item name="checkboxStyle">?android:attr/checkboxStyle</item>
+        <item name="checkedTextViewStyle">?android:attr/checkedTextViewStyle</item>
+        <item name="radioButtonStyle">?android:attr/radioButtonStyle</item>
+        <item name="ratingBarStyle">?android:attr/ratingBarStyle</item>
+        <item name="spinnerStyle">?android:attr/spinnerStyle</item>
+
+        <!-- Copy our color theme attributes to the framework -->
+        <item name="android:colorPrimary">?attr/colorPrimary</item>
+        <item name="android:colorPrimaryDark">?attr/colorPrimaryDark</item>
+        <item name="android:colorAccent">?attr/colorAccent</item>
+        <item name="android:colorControlNormal">?attr/colorControlNormal</item>
+        <item name="android:colorControlActivated">?attr/colorControlActivated</item>
+        <item name="android:colorControlHighlight">?attr/colorControlHighlight</item>
+        <item name="android:colorButtonNormal">?attr/colorButtonNormal</item>
+    </style>
+    <style name="Base.V21.Theme.AppCompat.Dialog" parent="Base.V11.Theme.AppCompat.Dialog">
+        <item name="android:windowElevation">@dimen/abc_floating_window_z</item>
+    </style>
+    <style name="Base.V21.Theme.AppCompat.Light" parent="Base.V7.Theme.AppCompat.Light">
+        <!-- Action Bar styling attributes -->
+        <item name="actionBarSize">?android:attr/actionBarSize</item>
+        <item name="actionBarDivider">?android:attr/actionBarDivider</item>
+        <item name="actionBarItemBackground">@drawable/abc_action_bar_item_background_material</item>
+        <item name="actionButtonStyle">?android:attr/actionButtonStyle</item>
+        <item name="actionModeBackground">?android:attr/actionModeBackground</item>
+        <item name="actionModeCloseDrawable">?android:attr/actionModeCloseDrawable</item>
+        <item name="actionOverflowButtonStyle">?android:attr/actionOverflowButtonStyle</item>
+        <item name="homeAsUpIndicator">?android:attr/homeAsUpIndicator</item>
+
+        <!-- For PopupMenu -->
+        <item name="listPreferredItemHeightSmall">?android:attr/listPreferredItemHeightSmall</item>
+        <item name="textAppearanceLargePopupMenu">?android:attr/textAppearanceLargePopupMenu</item>
+        <item name="textAppearanceSmallPopupMenu">?android:attr/textAppearanceSmallPopupMenu</item>
+
+        <!-- General view attributes -->
+        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
+        <item name="selectableItemBackgroundBorderless">?android:attr/selectableItemBackgroundBorderless</item>
+        <item name="borderlessButtonStyle">?android:borderlessButtonStyle</item>
+        <item name="dividerHorizontal">?android:attr/dividerHorizontal</item>
+        <item name="dividerVertical">?android:attr/dividerVertical</item>
+        <item name="editTextBackground">?android:attr/editTextBackground</item>
+        <item name="editTextColor">?android:attr/editTextColor</item>
+        <item name="listChoiceBackgroundIndicator">?android:attr/listChoiceBackgroundIndicator</item>
+
+        <!-- Copy the platform default styles for the AppCompat widgets -->
+        <item name="buttonStyle">?android:attr/buttonStyle</item>
+        <item name="buttonStyleSmall">?android:attr/buttonStyleSmall</item>
+        <item name="checkboxStyle">?android:attr/checkboxStyle</item>
+        <item name="checkedTextViewStyle">?android:attr/checkedTextViewStyle</item>
+        <item name="radioButtonStyle">?android:attr/radioButtonStyle</item>
+        <item name="ratingBarStyle">?android:attr/ratingBarStyle</item>
+        <item name="spinnerStyle">?android:attr/spinnerStyle</item>
+
+        <!-- Copy our color theme attributes to the framework -->
+        <item name="android:colorPrimary">?attr/colorPrimary</item>
+        <item name="android:colorPrimaryDark">?attr/colorPrimaryDark</item>
+        <item name="android:colorAccent">?attr/colorAccent</item>
+        <item name="android:colorControlNormal">?attr/colorControlNormal</item>
+        <item name="android:colorControlActivated">?attr/colorControlActivated</item>
+        <item name="android:colorControlHighlight">?attr/colorControlHighlight</item>
+        <item name="android:colorButtonNormal">?attr/colorButtonNormal</item>
+    </style>
+    <style name="Base.V21.Theme.AppCompat.Light.Dialog" parent="Base.V11.Theme.AppCompat.Light.Dialog">
+        <item name="android:windowElevation">@dimen/abc_floating_window_z</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.Widget.AppCompat.ActionBar.TabText" parent="android:Widget.Material.ActionBar.TabText">
+    </style>
+    <style name="Base.Widget.AppCompat.ActionBar.TabView" parent="android:Widget.Material.ActionBar.TabView">
+    </style>
+    <style name="Base.Widget.AppCompat.ActionButton" parent="android:Widget.Material.ActionButton">
+    </style>
+    <style name="Base.Widget.AppCompat.ActionButton.CloseMode" parent="android:Widget.Material.ActionButton.CloseMode">
+        <item name="android:minWidth">56dp</item>
+    </style>
+    <style name="Base.Widget.AppCompat.ActionButton.Overflow" parent="android:Widget.Material.ActionButton.Overflow">
+    </style>
+    <style name="Base.Widget.AppCompat.AutoCompleteTextView" parent="android:Widget.Material.AutoCompleteTextView">
+        <item name="android:background">?attr/editTextBackground</item>
+    </style>
+    <style name="Base.Widget.AppCompat.Button" parent="android:Widget.Material.Button"/>
+    <style name="Base.Widget.AppCompat.Button.Borderless" parent="android:Widget.Material.Button.Borderless"/>
+    <style name="Base.Widget.AppCompat.Button.Borderless.Colored" parent="android:Widget.Material.Button.Borderless.Colored"/>
+    <style name="Base.Widget.AppCompat.Button.Small" parent="android:Widget.Material.Button.Small"/>
+    <style name="Base.Widget.AppCompat.ButtonBar" parent="android:Widget.Material.ButtonBar"/>
+    <style name="Base.Widget.AppCompat.CompoundButton.CheckBox" parent="android:Widget.Material.CompoundButton.CheckBox"/>
+    <style name="Base.Widget.AppCompat.CompoundButton.RadioButton" parent="android:Widget.Material.CompoundButton.RadioButton"/>
+    <style name="Base.Widget.AppCompat.DropDownItem.Spinner" parent="android:Widget.Material.DropDownItem.Spinner"/>
+    <style name="Base.Widget.AppCompat.EditText" parent="android:Widget.Material.EditText">
+        <item name="android:background">?attr/editTextBackground</item>
+    </style>
+    <style name="Base.Widget.AppCompat.ImageButton" parent="android:Widget.Material.ImageButton"/>
+    <style name="Base.Widget.AppCompat.Light.ActionBar.TabText" parent="android:Widget.Material.Light.ActionBar.TabText">
+    </style>
+    <style name="Base.Widget.AppCompat.Light.ActionBar.TabText.Inverse" parent="android:Widget.Material.Light.ActionBar.TabText">
+    </style>
+    <style name="Base.Widget.AppCompat.Light.ActionBar.TabView" parent="android:Widget.Material.Light.ActionBar.TabView">
+    </style>
+    <style name="Base.Widget.AppCompat.Light.PopupMenu" parent="android:Widget.Material.Light.PopupMenu">
+    </style>
+    <style name="Base.Widget.AppCompat.Light.PopupMenu.Overflow">
+        <item name="android:dropDownHorizontalOffset">-4dip</item>
+        <item name="android:overlapAnchor">true</item>
+    </style>
+    <style name="Base.Widget.AppCompat.ListPopupWindow" parent="android:Widget.Material.ListPopupWindow">
+    </style>
+    <style name="Base.Widget.AppCompat.ListView" parent="android:Widget.Material.ListView"/>
+    <style name="Base.Widget.AppCompat.ListView.DropDown" parent="android:Widget.Material.ListView.DropDown"/>
+    <style name="Base.Widget.AppCompat.ListView.Menu"/>
+    <style name="Base.Widget.AppCompat.PopupMenu" parent="android:Widget.Material.PopupMenu">
+    </style>
+    <style name="Base.Widget.AppCompat.PopupMenu.Overflow">
+        <item name="android:dropDownHorizontalOffset">-4dip</item>
+        <item name="android:overlapAnchor">true</item>
+    </style>
+    <style name="Base.Widget.AppCompat.ProgressBar" parent="android:Widget.Material.ProgressBar">
+    </style>
+    <style name="Base.Widget.AppCompat.ProgressBar.Horizontal" parent="android:Widget.Material.ProgressBar.Horizontal">
+    </style>
+    <style name="Base.Widget.AppCompat.RatingBar" parent="android:Widget.Material.RatingBar"/>
+    <style name="Base.Widget.AppCompat.SeekBar" parent="android:Widget.Material.SeekBar"/>
+    <style name="Base.Widget.AppCompat.Spinner" parent="android:Widget.Material.Spinner"/>
+    <style name="Base.Widget.AppCompat.TextView.SpinnerItem" parent="android:Widget.Material.TextView.SpinnerItem"/>
+    <style name="Base.Widget.AppCompat.Toolbar.Button.Navigation" parent="android:Widget.Material.Toolbar.Button.Navigation">
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/themes_base.xml -->
+    <eat-comment/>
+    <style name="Platform.AppCompat" parent="android:Theme.Material">
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowActionBar">false</item>
+
+        <item name="android:buttonBarStyle">?attr/buttonBarStyle</item>
+        <item name="android:buttonBarButtonStyle">?attr/buttonBarButtonStyle</item>
+    </style>
+    <style name="Platform.AppCompat.Light" parent="android:Theme.Material.Light">
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowActionBar">false</item>
+
+        <item name="android:buttonBarStyle">?attr/buttonBarStyle</item>
+        <item name="android:buttonBarButtonStyle">?attr/buttonBarButtonStyle</item>
+    </style>
+    <style name="Platform.ThemeOverlay.AppCompat" parent="">
+        <!-- Copy our color theme attributes to the framework -->
+        <item name="android:colorPrimary">?attr/colorPrimary</item>
+        <item name="android:colorPrimaryDark">?attr/colorPrimaryDark</item>
+        <item name="android:colorAccent">?attr/colorAccent</item>
+        <item name="android:colorControlNormal">?attr/colorControlNormal</item>
+        <item name="android:colorControlActivated">?attr/colorControlActivated</item>
+        <item name="android:colorControlHighlight">?attr/colorControlHighlight</item>
+        <item name="android:colorButtonNormal">?attr/colorButtonNormal</item>
+    </style>
+    <style name="Platform.ThemeOverlay.AppCompat.Dark"/>
+    <style name="Platform.ThemeOverlay.AppCompat.Light"/>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-v22/values-v22.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-v22/values-v22.xml
new file mode 100644 (file)
index 0000000..31f45f0
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v22/themes_base.xml -->
+    <eat-comment/>
+    <style name="Base.Theme.AppCompat" parent="Base.V22.Theme.AppCompat"/>
+    <style name="Base.Theme.AppCompat.Light" parent="Base.V22.Theme.AppCompat.Light"/>
+    <style name="Base.V22.Theme.AppCompat" parent="Base.V21.Theme.AppCompat">
+        <item name="actionModeShareDrawable">?android:attr/actionModeShareDrawable</item>
+    </style>
+    <style name="Base.V22.Theme.AppCompat.Light" parent="Base.V21.Theme.AppCompat.Light">
+        <item name="actionModeShareDrawable">?android:attr/actionModeShareDrawable</item>
+    </style>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-v23/values-v23.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-v23/values-v23.xml
new file mode 100644 (file)
index 0000000..ba5599a
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v23/styles_base_text.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Widget.Button.Inverse" parent="android:TextAppearance.Material.Widget.Button.Inverse"/>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v23/themes_base.xml -->
+    <eat-comment/>
+    <style name="Base.Theme.AppCompat" parent="Base.V23.Theme.AppCompat"/>
+    <style name="Base.Theme.AppCompat.Light" parent="Base.V23.Theme.AppCompat.Light"/>
+    <style name="Base.V23.Theme.AppCompat" parent="Base.V22.Theme.AppCompat">
+        <!-- We can use the platform drawable on v23+ -->
+        <item name="actionBarItemBackground">?android:attr/actionBarItemBackground</item>
+        <!-- We can use the platform styles on v23+ -->
+        <item name="actionMenuTextColor">?android:attr/actionMenuTextColor</item>
+        <item name="actionMenuTextAppearance">?android:attr/actionMenuTextAppearance</item>
+
+        <item name="controlBackground">@drawable/abc_control_background_material</item>
+    </style>
+    <style name="Base.V23.Theme.AppCompat.Light" parent="Base.V22.Theme.AppCompat.Light">
+        <!-- We can use the platform drawable on v23+ -->
+        <item name="actionBarItemBackground">?android:attr/actionBarItemBackground</item>
+        <!-- We can use the platform styles on v23+ -->
+        <item name="actionMenuTextColor">?android:attr/actionMenuTextColor</item>
+        <item name="actionMenuTextAppearance">?android:attr/actionMenuTextAppearance</item>
+
+        <item name="controlBackground">@drawable/abc_control_background_material</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-v23/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.Widget.AppCompat.Button.Colored" parent="android:Widget.Material.Button.Colored"/>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-vi/values-vi.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-vi/values-vi.xml
new file mode 100644 (file)
index 0000000..e44f53e
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-vi/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Điều hướng về trang chủ"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Điều hướng lên trên"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Thêm tùy chọn"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Xong"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Xem tất cả"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Chọn một ứng dụng"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"TẮT"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"BẬT"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Tìm kiếm…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Xóa truy vấn"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Tìm kiếm truy vấn"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Tìm kiếm"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Gửi truy vấn"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Tìm kiếm bằng giọng nói"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Chia sẻ với"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Chia sẻ với %s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Thu gọn"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-vi/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-vi/values.xml
deleted file mode 100644 (file)
index 637fda6..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-vi/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Điều hướng về trang chủ"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Điều hướng lên trên"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Thêm tùy chọn"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Xong"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Xem tất cả"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Chọn một ứng dụng"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Xóa truy vấn"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Tìm kiếm truy vấn"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Tìm kiếm"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Gửi truy vấn"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Tìm kiếm bằng giọng nói"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Chia sẻ với"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Chia sẻ với %s"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-w360dp/values-w360dp.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-w360dp/values-w360dp.xml
new file mode 100644 (file)
index 0000000..bf9ea8e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-w360dp/dimens.xml -->
+    <eat-comment/>
+    <integer name="abc_max_action_buttons">3</integer>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-w360dp/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-w360dp/values.xml
deleted file mode 100644 (file)
index ea368ec..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-w360dp/dimens.xml -->
-    <eat-comment />
-
-    <integer name="abc_max_action_buttons">3</integer>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-w480dp/values-w480dp.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-w480dp/values-w480dp.xml
new file mode 100644 (file)
index 0000000..931f587
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-w480dp/bools.xml -->
+    <eat-comment/>
+    <bool name="abc_action_bar_embed_tabs_pre_jb">true</bool>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-w480dp/config.xml -->
+    <eat-comment/>
+    <bool name="abc_config_allowActionMenuItemTextWithIcon">true</bool>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-w480dp/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-w480dp/values.xml
deleted file mode 100644 (file)
index a42bed5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-w480dp/bools.xml -->
-    <eat-comment />
-
-    <bool name="abc_action_bar_embed_tabs_pre_jb">true</bool>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-w480dp/config.xml -->
-    <eat-comment />
-
-    <bool name="abc_config_allowActionMenuItemTextWithIcon">true</bool>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-w480dp/bools.xml -->
-    <eat-comment />
-
-    <bool name="abc_split_action_bar_is_narrow">false</bool>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-w500dp/values-w500dp.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-w500dp/values-w500dp.xml
new file mode 100644 (file)
index 0000000..2c36d72
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-w500dp/dimens.xml -->
+    <eat-comment/>
+    <integer name="abc_max_action_buttons">4</integer>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-w500dp/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-w500dp/values.xml
deleted file mode 100644 (file)
index 21e6bfe..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-w500dp/dimens.xml -->
-    <eat-comment />
-
-    <integer name="abc_max_action_buttons">4</integer>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-w600dp/values-w600dp.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-w600dp/values-w600dp.xml
new file mode 100644 (file)
index 0000000..18951b9
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-w600dp/dimens.xml -->
+    <eat-comment/>
+    <dimen name="abc_search_view_text_min_width">192dip</dimen>
+    <integer name="abc_max_action_buttons">5</integer>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-w600dp/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-w600dp/values.xml
deleted file mode 100644 (file)
index 02a32cf..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-w600dp/dimens.xml -->
-    <eat-comment />
-
-    <dimen name="abc_action_bar_default_height">56dip</dimen>
-    <dimen name="abc_action_bar_icon_vertical_padding">4dip</dimen>
-    <dimen name="abc_action_bar_subtitle_bottom_margin">9dip</dimen>
-    <dimen name="abc_action_bar_subtitle_text_size">14dp</dimen>
-    <dimen name="abc_action_bar_subtitle_top_margin">-3dp</dimen>
-    <dimen name="abc_action_bar_title_text_size">18dp</dimen>
-    <dimen name="abc_action_button_min_width">64dip</dimen>
-    <dimen name="abc_search_view_text_min_width">192dip</dimen>
-
-    <integer name="abc_max_action_buttons">5</integer>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-w720dp/values-w720dp.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-w720dp/values-w720dp.xml
new file mode 100644 (file)
index 0000000..bae39f3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-w720dp/bools.xml -->
+    <eat-comment/>
+    <bool name="abc_action_bar_expanded_action_views_exclusive">false</bool>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-w720dp/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-w720dp/values.xml
deleted file mode 100644 (file)
index 30c63f8..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-w720dp/bools.xml -->
-    <eat-comment />
-
-    <bool name="abc_action_bar_expanded_action_views_exclusive">false</bool>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-xlarge-land/values-xlarge-land.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-xlarge-land/values-xlarge-land.xml
new file mode 100644 (file)
index 0000000..90aca73
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-xlarge-land/dimens.xml -->
+    <eat-comment/>
+    <dimen name="abc_search_view_text_min_width">256dip</dimen>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-xlarge/values-xlarge.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-xlarge/values-xlarge.xml
new file mode 100644 (file)
index 0000000..98b5228
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-xlarge/bools.xml -->
+    <eat-comment/>
+    <bool name="abc_action_bar_expanded_action_views_exclusive">false</bool>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-xlarge/dimens.xml -->
+    <eat-comment/>
+    <item name="abc_dialog_fixed_height_major" type="dimen">60%</item>
+    <item name="abc_dialog_fixed_height_minor" type="dimen">90%</item>
+    <item name="abc_dialog_fixed_width_major" type="dimen">50%</item>
+    <item name="abc_dialog_fixed_width_minor" type="dimen">70%</item>
+    <item name="abc_dialog_min_width_major" type="dimen">45%</item>
+    <item name="abc_dialog_min_width_minor" type="dimen">72%</item>
+    <dimen name="abc_search_view_text_min_width">192dip</dimen>
+    <integer name="abc_max_action_buttons">5</integer>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-xlarge/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-xlarge/values.xml
deleted file mode 100644 (file)
index 1f6daae..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-xlarge/bools.xml -->
-    <eat-comment />
-
-    <bool name="abc_action_bar_expanded_action_views_exclusive">false</bool>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-xlarge/dimens.xml -->
-    <eat-comment />
-
-    <dimen name="abc_action_bar_default_height">56dip</dimen>
-    <dimen name="abc_action_bar_icon_vertical_padding">4dip</dimen>
-    <dimen name="abc_action_bar_subtitle_bottom_margin">9dip</dimen>
-    <dimen name="abc_action_bar_subtitle_text_size">14dp</dimen>
-    <dimen name="abc_action_bar_subtitle_top_margin">-3dp</dimen>
-    <dimen name="abc_action_bar_title_text_size">18dp</dimen>
-    <dimen name="abc_action_button_min_width">64dip</dimen>
-    <dimen name="abc_search_view_text_min_width">192dip</dimen>
-
-    <item name="dialog_fixed_height_major" type="dimen">60%</item>
-    <item name="dialog_fixed_height_minor" type="dimen">90%</item>
-    <item name="dialog_fixed_width_major" type="dimen">50%</item>
-    <item name="dialog_fixed_width_minor" type="dimen">70%</item>
-
-    <integer name="abc_max_action_buttons">5</integer>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rCN/values-zh-rCN.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rCN/values-zh-rCN.xml
new file mode 100644 (file)
index 0000000..1aaeba8
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-zh-rCN/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"转到主屏幕"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s:%2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s - %2$s:%3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"转到上一层级"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"更多选项"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"完成"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"查看全部"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"选择应用"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"关闭"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"开启"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"搜索…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"清除查询"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"搜索查询"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"搜索"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"提交查询"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"语音搜索"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"分享方式"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"通过%s分享"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"收起"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rCN/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rCN/values.xml
deleted file mode 100644 (file)
index db9e2aa..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-zh-rCN/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"转到主屏幕"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"转到上一层级"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"更多选项"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"完成"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"查看全部"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"选择应用"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"清除查询"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"搜索查询"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"搜索"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"提交查询"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"语音搜索"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"分享方式"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"通过%s分享"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rHK/values-zh-rHK.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rHK/values-zh-rHK.xml
new file mode 100644 (file)
index 0000000..ae295a3
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-zh-rHK/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"瀏覽主頁"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s:%2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s (%2$s):%3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"向上瀏覽"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"更多選項"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"完成"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"顯示全部"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"選擇應用程式"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"關閉"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"開啟"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"搜尋…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"清除查詢"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"搜尋查詢"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"搜尋"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"提交查詢"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"語音搜尋"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"分享對象"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"與「%s」分享"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"收合"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999 +"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rHK/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rHK/values.xml
deleted file mode 100644 (file)
index 0b3300d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-zh-rHK/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"瀏覽主頁"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"向上瀏覽"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"更多選項"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"完成"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"顯示全部"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"選擇應用程式"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"清除查詢"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"搜尋查詢"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"搜尋"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"提交查詢"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"語音搜尋"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"分享對象"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"與「%s」分享"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rTW/values-zh-rTW.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rTW/values-zh-rTW.xml
new file mode 100644 (file)
index 0000000..04677a2
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-zh-rTW/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"瀏覽首頁"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s:%2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s - %2$s:%3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"向上瀏覽"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"更多選項"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"完成"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"查看全部"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"選擇應用程式"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"關閉"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"開啟"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"搜尋…"</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"清除查詢"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"搜尋查詢"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"搜尋"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"提交查詢"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"語音搜尋"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"選擇分享對象"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"與「%s」分享"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"收合"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rTW/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-zh-rTW/values.xml
deleted file mode 100644 (file)
index 212cc49..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-zh-rTW/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"瀏覽首頁"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"向上瀏覽"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"更多選項"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"完成"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"查看全部"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"選擇應用程式"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"清除查詢"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"搜尋查詢"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"搜尋"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"提交查詢"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"語音搜尋"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"選擇分享對象"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"與「%s」分享"</string>
-
-</resources>
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-zu/values-zu.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-zu/values-zu.xml
new file mode 100644 (file)
index 0000000..803a59d
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values-zu/strings.xml -->
+    <eat-comment/>
+    <string msgid="4600421777120114993" name="abc_action_bar_home_description">"Zulazulela ekhaya"</string>
+    <string msgid="1397052879051804371" name="abc_action_bar_home_description_format">"%1$s, %2$s"</string>
+    <string msgid="6623331958280229229" name="abc_action_bar_home_subtitle_description_format">"%1$s, %2$s, %3$s"</string>
+    <string msgid="1594238315039666878" name="abc_action_bar_up_description">"Zulazulela phezulu"</string>
+    <string msgid="3588849162933574182" name="abc_action_menu_overflow_description">"Izinketho eziningi"</string>
+    <string msgid="4076576682505996667" name="abc_action_mode_done">"Kwenziwe"</string>
+    <string msgid="7468859129482906941" name="abc_activity_chooser_view_see_all">"Buka konke"</string>
+    <string msgid="2031811694353399454" name="abc_activitychooserview_choose_application">"Khetha uhlelo lokusebenza"</string>
+    <string msgid="121134116657445385" name="abc_capital_off">"VALIWE"</string>
+    <string msgid="3405795526292276155" name="abc_capital_on">"VULIWE"</string>
+    <string msgid="7723749260725869598" name="abc_search_hint">"Iyasesha..."</string>
+    <string msgid="3691816814315814921" name="abc_searchview_description_clear">"Sula inkinga"</string>
+    <string msgid="2550479030709304392" name="abc_searchview_description_query">"Umbuzo wosesho"</string>
+    <string msgid="8264924765203268293" name="abc_searchview_description_search">"Sesha"</string>
+    <string msgid="8928215447528550784" name="abc_searchview_description_submit">"Hambisa umbuzo"</string>
+    <string msgid="893419373245838918" name="abc_searchview_description_voice">"Ukusesha ngezwi"</string>
+    <string msgid="3421042268587513524" name="abc_shareactionprovider_share_with">"Yabelana no-"</string>
+    <string msgid="7165123711973476752" name="abc_shareactionprovider_share_with_application">"Yabelana no-%s"</string>
+    <string msgid="1603543279005712093" name="abc_toolbar_collapse_description">"Goqa"</string>
+    <string msgid="2869576371154716097" name="status_bar_notification_info_overflow">"999+"</string>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/values-zu/values.xml b/libs/android-support-appcompat-v7-exploded-aar/res/values-zu/values.xml
deleted file mode 100644 (file)
index 982977a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values-zu/strings.xml -->
-    <eat-comment />
-
-    <string name="abc_action_bar_home_description" msgid="4600421777120114993">"Zulazulela ekhaya"</string>
-    <string name="abc_action_bar_up_description" msgid="1594238315039666878">"Zulazulela phezulu"</string>
-    <string name="abc_action_menu_overflow_description" msgid="3588849162933574182">"Izinketho eziningi"</string>
-    <string name="abc_action_mode_done" msgid="4076576682505996667">"Kwenziwe"</string>
-    <string name="abc_activity_chooser_view_see_all" msgid="7468859129482906941">"Buka konke"</string>
-    <string name="abc_activitychooserview_choose_application" msgid="2031811694353399454">"Khetha uhlelo lokusebenza"</string>
-    <string name="abc_searchview_description_clear" msgid="3691816814315814921">"Sula inkinga"</string>
-    <string name="abc_searchview_description_query" msgid="2550479030709304392">"Umbuzo wosesho"</string>
-    <string name="abc_searchview_description_search" msgid="8264924765203268293">"Sesha"</string>
-    <string name="abc_searchview_description_submit" msgid="8928215447528550784">"Hambisa umbuzo"</string>
-    <string name="abc_searchview_description_voice" msgid="893419373245838918">"Ukusesha ngezwi"</string>
-    <string name="abc_shareactionprovider_share_with" msgid="3421042268587513524">"Yabelana no-"</string>
-    <string name="abc_shareactionprovider_share_with_application" msgid="7165123711973476752">"Yabelana no-%s"</string>
-
-</resources>
index c2c89dc..e07ec26 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/attrs.xml -->
-    <eat-comment />
-
-    <attr name="actionBarDivider" format="reference" />
-    <attr name="actionBarItemBackground" format="reference" />
-    <attr name="actionBarSize" format="dimension" />
-    <attr name="actionBarSplitStyle" format="reference" />
-    <attr name="actionBarStyle" format="reference" />
-    <attr name="actionBarTabBarStyle" format="reference" />
-    <attr name="actionBarTabStyle" format="reference" />
-    <attr name="actionBarTabTextStyle" format="reference" />
-    <attr name="actionBarWidgetTheme" format="reference" />
-    <attr name="actionButtonStyle" format="reference" />
-    <attr name="actionMenuTextAppearance" format="reference" />
-    <attr name="actionMenuTextColor" format="color|reference" />
-    <attr name="actionModeBackground" format="reference" />
-    <attr name="actionModeCloseButtonStyle" format="reference" />
-    <attr name="actionModeCloseDrawable" format="reference" />
-    <attr name="actionModeCopyDrawable" format="reference" />
-    <attr name="actionModeCutDrawable" format="reference" />
-    <attr name="actionModeFindDrawable" format="reference" />
-    <attr name="actionModePasteDrawable" format="reference" />
-    <attr name="actionModePopupWindowStyle" format="reference" />
-    <attr name="actionModeSelectAllDrawable" format="reference" />
-    <attr name="actionModeShareDrawable" format="reference" />
-    <attr name="actionModeSplitBackground" format="reference" />
-    <attr name="actionModeStyle" format="reference" />
-    <attr name="actionModeWebSearchDrawable" format="reference" />
-    <attr name="actionOverflowButtonStyle" format="reference" />
-    <attr name="activityChooserViewStyle" format="reference" />
-    <attr name="buttonBarButtonStyle" format="reference" />
-    <attr name="buttonBarStyle" format="reference" />
-    <attr name="dividerHorizontal" format="reference" />
-    <attr name="dividerVertical" format="reference" />
-    <attr name="dropDownListViewStyle" format="reference" />
-    <attr name="height" format="dimension" />
-    <attr name="homeAsUpIndicator" format="reference" />
-    <attr name="isLightTheme" format="boolean" />
-    <attr name="listPopupWindowStyle" format="reference" />
-    <attr name="listPreferredItemHeight" format="dimension" />
-    <attr name="listPreferredItemHeightLarge" format="dimension" />
-    <attr name="listPreferredItemHeightSmall" format="dimension" />
-    <attr name="listPreferredItemPaddingLeft" format="dimension" />
-    <attr name="listPreferredItemPaddingRight" format="dimension" />
-    <attr name="searchDropdownBackground" format="reference" />
-    <attr name="searchResultListItemHeight" format="dimension" />
-    <attr name="searchViewAutoCompleteTextView" format="reference" />
-    <attr name="searchViewCloseIcon" format="reference" />
-    <attr name="searchViewEditQuery" format="reference" />
-    <attr name="searchViewEditQueryBackground" format="reference" />
-    <attr name="searchViewGoIcon" format="reference" />
-    <attr name="searchViewSearchIcon" format="reference" />
-    <attr name="searchViewTextField" format="reference" />
-    <attr name="searchViewTextFieldRight" format="reference" />
-    <attr name="searchViewVoiceIcon" format="reference" />
-    <attr name="selectableItemBackground" format="reference" />
-    <attr name="spinnerDropDownItemStyle" format="reference" />
-    <attr name="spinnerStyle" format="reference" />
-    <attr name="textAppearanceLargePopupMenu" format="reference" />
-    <attr name="textAppearanceListItem" format="reference" />
-    <attr name="textAppearanceListItemSmall" format="reference" />
-    <attr name="textAppearanceSearchResultSubtitle" format="reference" />
-    <attr name="textAppearanceSearchResultTitle" format="reference" />
-    <attr name="textAppearanceSmallPopupMenu" format="reference" />
-    <attr name="textColorSearchUrl" format="reference|color" />
-    <attr name="title" format="string" />
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/bools.xml -->
-    <eat-comment />
-
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/attrs.xml -->
+    <eat-comment/>
+    <attr format="reference" name="drawerArrowStyle"/>
+    <attr format="dimension" name="height"/>
+    <attr format="boolean" name="isLightTheme"/>
+    <attr format="string" name="title"/>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/bools.xml -->
+    <eat-comment/>
+    <bool name="abc_action_bar_embed_tabs">true</bool>
     <bool name="abc_action_bar_embed_tabs_pre_jb">false</bool>
     <bool name="abc_action_bar_expanded_action_views_exclusive">true</bool>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/config.xml -->
-    <eat-comment />
-
+    <bool name="abc_allow_stacked_button_bar">false</bool>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/config.xml -->
+    <eat-comment/>
     <bool name="abc_config_actionMenuItemAllCaps">true</bool>
     <bool name="abc_config_allowActionMenuItemTextWithIcon">false</bool>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/bools.xml -->
-    <eat-comment />
-
+    <bool name="abc_config_closeDialogWhenTouchOutside">true</bool>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/bools.xml -->
+    <eat-comment/>
     <bool name="abc_config_showMenuShortcutsWhenKeyboardPresent">false</bool>
-    <bool name="abc_split_action_bar_is_narrow">true</bool>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/colors.xml -->
-    <eat-comment />
-
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/colors.xml -->
+    <eat-comment/>
+    <color name="abc_input_method_navigation_guard">@android:color/black</color>
     <color name="abc_search_url_text_normal">#7fa87f</color>
     <color name="abc_search_url_text_pressed">@android:color/black</color>
     <color name="abc_search_url_text_selected">@android:color/black</color>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/attrs.xml -->
-    <eat-comment />
-
-    <declare-styleable name="ActionBar">
-
-        <!-- The type of navigation to use. -->
-        <attr name="navigationMode">
-
-            <!-- Normal static title text -->
-            <enum name="normal" value="0" />
-            <!-- The action bar will use a selection list for navigation. -->
-            <enum name="listMode" value="1" />
-            <!-- The action bar will use a series of horizontal tabs for navigation. -->
-            <enum name="tabMode" value="2" />
-        </attr>
-        <!-- Options affecting how the action bar is displayed. -->
-        <attr name="displayOptions">
-            <flag name="useLogo" value="0x1" />
-            <flag name="showHome" value="0x2" />
-            <flag name="homeAsUp" value="0x4" />
-            <flag name="showTitle" value="0x8" />
-            <flag name="showCustom" value="0x10" />
-            <flag name="disableHome" value="0x20" />
-        </attr>
-        <!-- Specifies title text used for navigationMode="normal" -->
-        <attr name="title" />
-        <!-- Specifies subtitle text used for navigationMode="normal" -->
-        <attr name="subtitle" format="string" />
-        <!-- Specifies a style to use for title text. -->
-        <attr name="titleTextStyle" format="reference" />
-        <!-- Specifies a style to use for subtitle text. -->
-        <attr name="subtitleTextStyle" format="reference" />
-        <!-- Specifies the drawable used for the application icon. -->
-        <attr name="icon" format="reference" />
-        <!-- Specifies the drawable used for the application logo. -->
-        <attr name="logo" format="reference" />
-        <!-- Specifies the drawable used for item dividers. -->
-        <attr name="divider" format="reference" />
-        <!-- Specifies a background drawable for the action bar. -->
-        <attr name="background" format="reference" />
-        <!-- Specifies a background drawable for a second stacked row of the action bar. -->
-        <attr name="backgroundStacked" format="reference|color" />
-        <!-- Specifies a background drawable for the bottom component of a split action bar. -->
-        <attr name="backgroundSplit" format="reference|color" />
-        <!-- Specifies a layout for custom navigation. Overrides navigationMode. -->
-        <attr name="customNavigationLayout" format="reference" />
-        <!-- Specifies a fixed height. -->
-        <attr name="height" />
-        <!-- Specifies a layout to use for the "home" section of the action bar. -->
-        <attr name="homeLayout" format="reference" />
-        <!-- Specifies a style resource to use for an embedded progress bar. -->
-        <attr name="progressBarStyle" format="reference" />
-        <!-- Specifies a style resource to use for an indeterminate progress spinner. -->
-        <attr name="indeterminateProgressStyle" format="reference" />
-        <!-- Specifies the horizontal padding on either end for an embedded progress bar. -->
-        <attr name="progressBarPadding" format="dimension" />
-        <!--
-             Specifies padding that should be applied to the left and right sides of
-             system-provided items in the bar.
-        -->
-        <attr name="itemPadding" format="dimension" />
-    </declare-styleable>
-    <declare-styleable name="ActionBarLayout">
-        <attr name="android:layout_gravity" />
-    </declare-styleable>
-    <declare-styleable name="ActionBarWindow">
-        <attr name="windowActionBar" format="boolean" />
-        <attr name="windowActionBarOverlay" format="boolean" />
-        <attr name="windowSplitActionBar" format="boolean" />
-
-        <!--
-             A fixed width for the window along the major axis of the screen,
-             that is, when in landscape. Can be either an absolute dimension
-             or a fraction of the screen size in that dimension.
-        -->
-        <attr name="windowFixedWidthMajor" format="dimension|fraction" />
-        <!--
-             A fixed height for the window along the minor axis of the screen,
-             that is, when in landscape. Can be either an absolute dimension
-             or a fraction of the screen size in that dimension.
-        -->
-        <attr name="windowFixedHeightMinor" format="dimension|fraction" />
-
-        <!--
-             A fixed width for the window along the minor axis of the screen,
-             that is, when in portrait. Can be either an absolute dimension
-             or a fraction of the screen size in that dimension.
-        -->
-        <attr name="windowFixedWidthMinor" format="dimension|fraction" />
-        <!--
-             A fixed height for the window along the major axis of the screen,
-             that is, when in portrait. Can be either an absolute dimension
-             or a fraction of the screen size in that dimension.
-        -->
-        <attr name="windowFixedHeightMajor" format="dimension|fraction" />
-    </declare-styleable>
-    <declare-styleable name="ActionMenuItemView">
-        <attr name="android:minWidth" />
-    </declare-styleable>
-    <declare-styleable name="ActionMenuView">
-        <!-- Size of padding on either end of a divider. -->
-    </declare-styleable>
-    <declare-styleable name="ActionMode">
-
-        <!-- Specifies a style to use for title text. -->
-        <attr name="titleTextStyle" />
-        <!-- Specifies a style to use for subtitle text. -->
-        <attr name="subtitleTextStyle" />
-        <!-- Specifies a background for the action mode bar. -->
-        <attr name="background" />
-        <!-- Specifies a background for the split action mode bar. -->
-        <attr name="backgroundSplit" />
-        <!-- Specifies a fixed height for the action mode bar. -->
-        <attr name="height" />
-    </declare-styleable>
-    <declare-styleable name="ActivityChooserView">
-
-        <!-- The maximal number of items initially shown in the activity list. -->
-        <attr name="initialActivityCount" format="string" />
-        <!--
-             The drawable to show in the button for expanding the activities overflow popup.
-             <strong>Note:</strong> Clients would like to set this drawable
-             as a clue about the action the chosen activity will perform. For
-             example, if share activity is to be chosen the drawable should
-             give a clue that sharing is to be performed.
-        -->
-        <attr name="expandActivityOverflowButtonDrawable" format="reference" />
-    </declare-styleable>
-    <declare-styleable name="CompatTextView">
-
-        <!-- Present the text in ALL CAPS. This may use a small-caps form when available. -->
-        <attr name="textAllCaps" format="reference|boolean" />
-    </declare-styleable>
-    <declare-styleable name="LinearLayoutICS">
-
-        <!-- Drawable to use as a vertical divider between buttons. -->
-        <attr name="divider" />
-        <!-- Setting for which dividers to show. -->
-        <attr name="showDividers">
-            <flag name="none" value="0" />
-            <flag name="beginning" value="1" />
-            <flag name="middle" value="2" />
-            <flag name="end" value="4" />
-        </attr>
-        <!-- Size of padding on either end of a divider. -->
-        <attr name="dividerPadding" format="dimension" />
-    </declare-styleable>
-    <declare-styleable name="MenuGroup">
-
-        <!-- The ID of the group. -->
-        <attr name="android:id" />
-
-        <!--
-             The category applied to all items within this group.
-             (This will be or'ed with the orderInCategory attribute.)
-        -->
-        <attr name="android:menuCategory" />
-
-        <!--
-             The order within the category applied to all items within this group.
-             (This will be or'ed with the category attribute.)
-        -->
-        <attr name="android:orderInCategory" />
-
-        <!-- Whether the items are capable of displaying a check mark. -->
-        <attr name="android:checkableBehavior" />
-
-        <!-- Whether the items are shown/visible. -->
-        <attr name="android:visible" />
-
-        <!-- Whether the items are enabled. -->
-        <attr name="android:enabled" />
-    </declare-styleable>
-    <declare-styleable name="MenuItem">
-
-        <!-- The ID of the item. -->
-        <attr name="android:id" />
-
-        <!--
-             The category applied to the item.
-             (This will be or'ed with the orderInCategory attribute.)
-        -->
-        <attr name="android:menuCategory" />
-
-        <!--
-             The order within the category applied to the item.
-             (This will be or'ed with the category attribute.)
-        -->
-        <attr name="android:orderInCategory" />
-
-        <!-- The title associated with the item. -->
-        <attr name="android:title" />
-
-        <!--
-             The condensed title associated with the item.  This is used in situations where the
-             normal title may be too long to be displayed.
-        -->
-        <attr name="android:titleCondensed" />
-
-        <!--
-             The icon associated with this item.  This icon will not always be shown, so
-             the title should be sufficient in describing this item.
-        -->
-        <attr name="android:icon" />
-
-        <!--
-             The alphabetic shortcut key.  This is the shortcut when using a keyboard
-             with alphabetic keys.
-        -->
-        <attr name="android:alphabeticShortcut" />
-
-        <!--
-             The numeric shortcut key.  This is the shortcut when using a numeric (e.g., 12-key)
-             keyboard.
-        -->
-        <attr name="android:numericShortcut" />
-
-        <!-- Whether the item is capable of displaying a check mark. -->
-        <attr name="android:checkable" />
-
-        <!--
-             Whether the item is checked.  Note that you must first have enabled checking with
-             the checkable attribute or else the check mark will not appear.
-        -->
-        <attr name="android:checked" />
-
-        <!-- Whether the item is shown/visible. -->
-        <attr name="android:visible" />
-
-        <!-- Whether the item is enabled. -->
-        <attr name="android:enabled" />
-
-        <!--
-             Name of a method on the Context used to inflate the menu that will be
-             called when the item is clicked.
-        -->
-        <attr name="android:onClick" />
-
-        <!-- How this item should display in the Action Bar, if present. -->
-        <attr name="showAsAction">
-
-            <!--
-                 Never show this item in an action bar, show it in the overflow menu instead.
-                 Mutually exclusive with "ifRoom" and "always".
-            -->
-            <flag name="never" value="0" />
-            <!--
-                 Show this item in an action bar if there is room for it as determined
-                 by the system. Favor this option over "always" where possible.
-                 Mutually exclusive with "never" and "always".
-            -->
-            <flag name="ifRoom" value="1" />
-            <!--
-                 Always show this item in an actionbar, even if it would override
-                 the system's limits of how much stuff to put there. This may make
-                 your action bar look bad on some screens. In most cases you should
-                 use "ifRoom" instead. Mutually exclusive with "ifRoom" and "never".
-            -->
-            <flag name="always" value="2" />
-            <!--
-                 When this item is shown as an action in the action bar, show a text
-                 label with it even if it has an icon representation.
-            -->
-            <flag name="withText" value="4" />
-            <!--
-                 This item's action view collapses to a normal menu
-                 item. When expanded, the action view takes over a
-                 larger segment of its container.
-            -->
-            <flag name="collapseActionView" value="8" />
-        </attr>
-
-        <!--
-             An optional layout to be used as an action view.
-             See {@link android.view.MenuItem#setActionView(android.view.View)}
-             for more info.
-        -->
-        <attr name="actionLayout" format="reference" />
-
-        <!--
-             The name of an optional View class to instantiate and use as an
-             action view. See {@link android.view.MenuItem#setActionView(android.view.View)}
-             for more info.
-        -->
-        <attr name="actionViewClass" format="string" />
-
-        <!--
-             The name of an optional ActionProvider class to instantiate an action view
-             and perform operations such as default action for that menu item.
-             See {@link android.view.MenuItem#setActionProvider(android.view.ActionProvider)}
-             for more info.
-        -->
-        <attr name="actionProviderClass" format="string" />
-    </declare-styleable>
-    <declare-styleable name="MenuView">
-
-        <!-- Default appearance of menu item text. -->
-        <attr name="android:itemTextAppearance" />
-        <!-- Default horizontal divider between rows of menu items. -->
-        <attr name="android:horizontalDivider" />
-        <!-- Default vertical divider between menu items. -->
-        <attr name="android:verticalDivider" />
-        <!-- Default background for the menu header. -->
-        <attr name="android:headerBackground" />
-        <!-- Default background for each menu item. -->
-        <attr name="android:itemBackground" />
-        <!-- Default animations for the menu. -->
-        <attr name="android:windowAnimationStyle" />
-        <!-- Default disabled icon alpha for each menu item that shows an icon. -->
-        <attr name="android:itemIconDisabledAlpha" />
-        <!-- Whether space should be reserved in layout when an icon is missing. -->
-        <attr name="android:preserveIconSpacing" />
-    </declare-styleable>
-    <declare-styleable name="SearchView">
-
-        <!--
-             The default state of the SearchView. If true, it will be iconified when not in
-             use and expanded when clicked.
-        -->
-        <attr name="iconifiedByDefault" format="boolean" />
-        <!-- An optional maximum width of the SearchView. -->
-        <attr name="android:maxWidth" />
-        <!-- An optional query hint string to be displayed in the empty query field. -->
-        <attr name="queryHint" format="string" />
-        <!-- The IME options to set on the query text field. -->
-        <attr name="android:imeOptions" />
-        <!-- The input type to set on the query text field. -->
-        <attr name="android:inputType" />
-    </declare-styleable>
-    <declare-styleable name="Spinner">
-
-        <!-- The prompt to display when the spinner's dialog is shown. -->
-        <attr name="prompt" format="reference" />
-        <!-- Display mode for spinner options. -->
-        <attr name="spinnerMode" format="enum">
-
-            <!-- Spinner options will be presented to the user as a dialog window. -->
-            <enum name="dialog" value="0" />
-            <!--
-                 Spinner options will be presented to the user as an inline dropdown
-                 anchored to the spinner widget itself.
-            -->
-            <enum name="dropdown" value="1" />
-        </attr>
-        <!-- List selector to use for spinnerMode="dropdown" display. -->
-        <attr name="android:dropDownSelector" />
-        <!-- Background drawable to use for the dropdown in spinnerMode="dropdown". -->
-        <attr name="android:popupBackground" />
-        <!--
-             Vertical offset from the spinner widget for positioning the dropdown in
-             spinnerMode="dropdown".
-        -->
-        <attr name="android:dropDownVerticalOffset" />
-        <!--
-             Horizontal offset from the spinner widget for positioning the dropdown
-             in spinnerMode="dropdown".
-        -->
-        <attr name="android:dropDownHorizontalOffset" />
-        <!-- Width of the dropdown in spinnerMode="dropdown". -->
-        <attr name="android:dropDownWidth" />
-        <!--
-             Reference to a layout to use for displaying a prompt in the dropdown for
-             spinnerMode="dropdown". This layout must contain a TextView with the id
-             {@code @android:id/text1} to be populated with the prompt text.
-        -->
-        <attr name="popupPromptView" format="reference" />
-        <!-- Gravity setting for positioning the currently selected item. -->
-        <attr name="android:gravity" />
-        <!--
-             Whether this spinner should mark child views as enabled/disabled when
-             the spinner itself is enabled/disabled.
-        -->
-        <attr name="disableChildrenWhenDisabled" format="boolean" />
-    </declare-styleable>
-    <declare-styleable name="Theme">
-
-        <!-- Default ActionBar dropdown style. -->
-        <attr name="actionDropDownStyle" format="reference" />
-        <!-- The preferred item height for dropdown lists. -->
-        <attr name="dropdownListPreferredItemHeight" format="dimension" />
-        <!-- Default PopupMenu style. -->
-        <attr name="popupMenuStyle" format="reference" />
-
-        <!-- ============ -->
-        <!-- Panel styles -->
-        <!-- ============ -->
-        <eat-comment />
-
-        <!-- Default Panel Menu width. -->
-        <attr name="panelMenuListWidth" format="dimension" />
-
-        <!-- Default Panel Menu style. -->
-        <attr name="panelMenuListTheme" format="reference" />
-
-        <!-- Drawable used as a background for selected list items. -->
-        <attr name="listChoiceBackgroundIndicator" format="reference" />
-    </declare-styleable>
-    <declare-styleable name="View">
-
-        <!-- Sets the padding, in pixels, of the start edge; see {@link android.R.attr#padding}. -->
-        <attr name="paddingStart" format="dimension" />
-        <!-- Sets the padding, in pixels, of the end edge; see {@link android.R.attr#padding}. -->
-        <attr name="paddingEnd" format="dimension" />
-
-        <!--
-             Boolean that controls whether a view can take focus.  By default the user can not
-             move focus to a view; by setting this attribute to true the view is
-             allowed to take focus.  This value does not impact the behavior of
-             directly calling {@link android.view.View#requestFocus}, which will
-             always request focus regardless of this view.  It only impacts where
-             focus navigation will try to move focus.
-        -->
-        <attr name="android:focusable" />
-    </declare-styleable>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/dimens.xml -->
-    <eat-comment />
-
-    <dimen name="abc_action_bar_default_height">48dip</dimen>
-    <dimen name="abc_action_bar_icon_vertical_padding">8dip</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/colors_material.xml -->
+    <eat-comment/>
+    <color name="accent_material_dark">@color/material_deep_teal_200</color>
+    <color name="accent_material_light">@color/material_deep_teal_500</color>
+    <color name="background_floating_material_dark">@color/material_grey_800</color>
+    <color name="background_floating_material_light">@android:color/white</color>
+    <color name="background_material_dark">@color/material_grey_850</color>
+    <color name="background_material_light">@color/material_grey_50</color>
+    <color name="bright_foreground_disabled_material_dark">#80ffffff</color>
+    <color name="bright_foreground_disabled_material_light">#80000000</color>
+    <color name="bright_foreground_inverse_material_dark">@color/bright_foreground_material_light</color>
+    <color name="bright_foreground_inverse_material_light">@color/bright_foreground_material_dark</color>
+    <color name="bright_foreground_material_dark">@android:color/white</color>
+    <color name="bright_foreground_material_light">@android:color/black</color>
+    <color name="button_material_dark">#ff5a595b</color>
+    <color name="button_material_light">#ffd6d7d7</color>
+    <color name="dim_foreground_disabled_material_dark">#80bebebe</color>
+    <color name="dim_foreground_disabled_material_light">#80323232</color>
+    <color name="dim_foreground_material_dark">#ffbebebe</color>
+    <color name="dim_foreground_material_light">#ff323232</color>
+    <color name="foreground_material_dark">@android:color/white</color>
+    <color name="foreground_material_light">@android:color/black</color>
+    <color name="highlighted_text_material_dark">#6680cbc4</color>
+    <color name="highlighted_text_material_light">#66009688</color>
+    <color name="hint_foreground_material_dark">@color/bright_foreground_disabled_material_dark</color>
+    <color name="hint_foreground_material_light">@color/bright_foreground_disabled_material_light</color>
+    <color name="material_blue_grey_800">#ff37474f</color>
+    <color name="material_blue_grey_900">#ff263238</color>
+    <color name="material_blue_grey_950">#ff21272b</color>
+    <color name="material_deep_teal_200">#ff80cbc4</color>
+    <color name="material_deep_teal_500">#ff009688</color>
+    <color name="material_grey_100">#fff5f5f5</color>
+    <color name="material_grey_300">#ffe0e0e0</color>
+    <color name="material_grey_50">#fffafafa</color>
+    <color name="material_grey_600">#ff757575</color>
+    <color name="material_grey_800">#ff424242</color>
+    <color name="material_grey_850">#ff303030</color>
+    <color name="material_grey_900">#ff212121</color>
+    <color name="primary_dark_material_dark">@android:color/black</color>
+    <color name="primary_dark_material_light">@color/material_grey_600</color>
+    <color name="primary_material_dark">@color/material_grey_900</color>
+    <color name="primary_material_light">@color/material_grey_100</color>
+    <color name="primary_text_default_material_dark">#ffffffff</color>
+    <color name="primary_text_default_material_light">#de000000</color>
+    <color name="primary_text_disabled_material_dark">#4Dffffff</color>
+    <color name="primary_text_disabled_material_light">#39000000</color>
+    <color name="ripple_material_dark">#33ffffff</color>
+    <color name="ripple_material_light">#1f000000</color>
+    <color name="secondary_text_default_material_dark">#b3ffffff</color>
+    <color name="secondary_text_default_material_light">#8a000000</color>
+    <color name="secondary_text_disabled_material_dark">#36ffffff</color>
+    <color name="secondary_text_disabled_material_light">#24000000</color>
+    <color name="switch_thumb_disabled_material_dark">#ff616161</color>
+    <color name="switch_thumb_disabled_material_light">#ffbdbdbd</color>
+    <color name="switch_thumb_normal_material_dark">#ffbdbdbd</color>
+    <color name="switch_thumb_normal_material_light">#fff1f1f1</color>
+    <declare-styleable name="ActionBar"><attr name="navigationMode"><enum name="normal" value="0"/><enum name="listMode" value="1"/><enum name="tabMode" value="2"/></attr><attr name="displayOptions"><flag name="none" value="0"/><flag name="useLogo" value="0x1"/><flag name="showHome" value="0x2"/><flag name="homeAsUp" value="0x4"/><flag name="showTitle" value="0x8"/><flag name="showCustom" value="0x10"/><flag name="disableHome" value="0x20"/></attr><attr name="title"/><attr format="string" name="subtitle"/><attr format="reference" name="titleTextStyle"/><attr format="reference" name="subtitleTextStyle"/><attr format="reference" name="icon"/><attr format="reference" name="logo"/><attr format="reference" name="divider"/><attr format="reference" name="background"/><attr format="reference|color" name="backgroundStacked"/><attr format="reference|color" name="backgroundSplit"/><attr format="reference" name="customNavigationLayout"/><attr name="height"/><attr format="reference" name="homeLayout"/><attr format="reference" name="progressBarStyle"/><attr format="reference" name="indeterminateProgressStyle"/><attr format="dimension" name="progressBarPadding"/><attr name="homeAsUpIndicator"/><attr format="dimension" name="itemPadding"/><attr format="boolean" name="hideOnContentScroll"/><attr format="dimension" name="contentInsetStart"/><attr format="dimension" name="contentInsetEnd"/><attr format="dimension" name="contentInsetLeft"/><attr format="dimension" name="contentInsetRight"/><attr format="dimension" name="elevation"/><attr format="reference" name="popupTheme"/></declare-styleable>
+    <declare-styleable name="ActionBarLayout"><attr name="android:layout_gravity"/></declare-styleable>
+    <declare-styleable name="ActionMenuItemView"><attr name="android:minWidth"/></declare-styleable>
+    <declare-styleable name="ActionMenuView"/>
+    <declare-styleable name="ActionMode"><attr name="titleTextStyle"/><attr name="subtitleTextStyle"/><attr name="background"/><attr name="backgroundSplit"/><attr name="height"/><attr format="reference" name="closeItemLayout"/></declare-styleable>
+    <declare-styleable name="ActivityChooserView"><attr format="string" name="initialActivityCount"/><attr format="reference" name="expandActivityOverflowButtonDrawable"/></declare-styleable>
+    <declare-styleable name="AlertDialog"><attr name="android:layout"/><attr format="reference" name="buttonPanelSideLayout"/><attr format="reference" name="listLayout"/><attr format="reference" name="multiChoiceItemLayout"/><attr format="reference" name="singleChoiceItemLayout"/><attr format="reference" name="listItemLayout"/></declare-styleable>
+    <declare-styleable name="AppCompatTextView"><attr format="reference|boolean" name="textAllCaps"/><attr name="android:textAppearance"/></declare-styleable>
+    <declare-styleable name="ButtonBarLayout"><attr format="boolean" name="allowStacking"/></declare-styleable>
+    <declare-styleable name="CompoundButton"><attr name="android:button"/><attr format="color" name="buttonTint"/><attr name="buttonTintMode"><enum name="src_over" value="3"/><enum name="src_in" value="5"/><enum name="src_atop" value="9"/><enum name="multiply" value="14"/><enum name="screen" value="15"/></attr></declare-styleable>
+    <declare-styleable name="DrawerArrowToggle"><attr format="color" name="color"/><attr format="boolean" name="spinBars"/><attr format="dimension" name="drawableSize"/><attr format="dimension" name="gapBetweenBars"/><attr format="dimension" name="arrowHeadLength"/><attr format="dimension" name="arrowShaftLength"/><attr format="dimension" name="barLength"/><attr format="dimension" name="thickness"/></declare-styleable>
+    <declare-styleable name="LinearLayoutCompat"><attr name="android:orientation"/><attr name="android:gravity"/><attr name="android:baselineAligned"/><attr name="android:baselineAlignedChildIndex"/><attr name="android:weightSum"/><attr format="boolean" name="measureWithLargestChild"/><attr name="divider"/><attr name="showDividers"><flag name="none" value="0"/><flag name="beginning" value="1"/><flag name="middle" value="2"/><flag name="end" value="4"/></attr><attr format="dimension" name="dividerPadding"/></declare-styleable>
+    <declare-styleable name="LinearLayoutCompat_Layout"><attr name="android:layout_width"/><attr name="android:layout_height"/><attr name="android:layout_weight"/><attr name="android:layout_gravity"/></declare-styleable>
+    <declare-styleable name="ListPopupWindow"><attr name="android:dropDownVerticalOffset"/><attr name="android:dropDownHorizontalOffset"/></declare-styleable>
+    <declare-styleable name="MenuGroup"><attr name="android:id"/><attr name="android:menuCategory"/><attr name="android:orderInCategory"/><attr name="android:checkableBehavior"/><attr name="android:visible"/><attr name="android:enabled"/></declare-styleable>
+    <declare-styleable name="MenuItem"><attr name="android:id"/><attr name="android:menuCategory"/><attr name="android:orderInCategory"/><attr name="android:title"/><attr name="android:titleCondensed"/><attr name="android:icon"/><attr name="android:alphabeticShortcut"/><attr name="android:numericShortcut"/><attr name="android:checkable"/><attr name="android:checked"/><attr name="android:visible"/><attr name="android:enabled"/><attr name="android:onClick"/><attr name="showAsAction"><flag name="never" value="0"/><flag name="ifRoom" value="1"/><flag name="always" value="2"/><flag name="withText" value="4"/><flag name="collapseActionView" value="8"/></attr><attr format="reference" name="actionLayout"/><attr format="string" name="actionViewClass"/><attr format="string" name="actionProviderClass"/></declare-styleable>
+    <declare-styleable name="MenuView"><attr name="android:itemTextAppearance"/><attr name="android:horizontalDivider"/><attr name="android:verticalDivider"/><attr name="android:headerBackground"/><attr name="android:itemBackground"/><attr name="android:windowAnimationStyle"/><attr name="android:itemIconDisabledAlpha"/><attr format="boolean" name="preserveIconSpacing"/></declare-styleable>
+    <declare-styleable name="PopupWindow"><attr format="boolean" name="overlapAnchor"/><attr name="android:popupBackground"/></declare-styleable>
+    <declare-styleable name="PopupWindowBackgroundState"><attr format="boolean" name="state_above_anchor"/></declare-styleable>
+    <declare-styleable name="SearchView"><attr format="reference" name="layout"/><attr format="boolean" name="iconifiedByDefault"/><attr name="android:maxWidth"/><attr format="string" name="queryHint"/><attr format="string" name="defaultQueryHint"/><attr name="android:imeOptions"/><attr name="android:inputType"/><attr format="reference" name="closeIcon"/><attr format="reference" name="goIcon"/><attr format="reference" name="searchIcon"/><attr format="reference" name="searchHintIcon"/><attr format="reference" name="voiceIcon"/><attr format="reference" name="commitIcon"/><attr format="reference" name="suggestionRowLayout"/><attr format="reference" name="queryBackground"/><attr format="reference" name="submitBackground"/><attr name="android:focusable"/></declare-styleable>
+    <declare-styleable name="Spinner"><attr name="android:prompt"/><attr name="popupTheme"/><attr name="android:popupBackground"/><attr name="android:dropDownWidth"/></declare-styleable>
+    <declare-styleable name="SwitchCompat"><attr name="android:thumb"/><attr format="reference" name="track"/><attr name="android:textOn"/><attr name="android:textOff"/><attr format="dimension" name="thumbTextPadding"/><attr format="reference" name="switchTextAppearance"/><attr format="dimension" name="switchMinWidth"/><attr format="dimension" name="switchPadding"/><attr format="boolean" name="splitTrack"/><attr format="boolean" name="showText"/></declare-styleable>
+    <declare-styleable name="TextAppearance"><attr name="android:textSize"/><attr name="android:textColor"/><attr name="android:textStyle"/><attr name="android:typeface"/><attr name="textAllCaps"/><attr name="android:shadowColor"/><attr name="android:shadowDy"/><attr name="android:shadowDx"/><attr name="android:shadowRadius"/></declare-styleable>
+    <declare-styleable name="Theme"><attr format="boolean" name="windowActionBar"/><attr format="boolean" name="windowNoTitle"/><attr format="boolean" name="windowActionBarOverlay"/><attr format="boolean" name="windowActionModeOverlay"/><attr format="dimension|fraction" name="windowFixedWidthMajor"/><attr format="dimension|fraction" name="windowFixedHeightMinor"/><attr format="dimension|fraction" name="windowFixedWidthMinor"/><attr format="dimension|fraction" name="windowFixedHeightMajor"/><attr format="dimension|fraction" name="windowMinWidthMajor"/><attr format="dimension|fraction" name="windowMinWidthMinor"/><attr name="android:windowIsFloating"/><attr name="android:windowAnimationStyle"/><attr format="reference" name="actionBarTabStyle"/><attr format="reference" name="actionBarTabBarStyle"/><attr format="reference" name="actionBarTabTextStyle"/><attr format="reference" name="actionOverflowButtonStyle"/><attr format="reference" name="actionOverflowMenuStyle"/><attr format="reference" name="actionBarPopupTheme"/><attr format="reference" name="actionBarStyle"/><attr format="reference" name="actionBarSplitStyle"/><attr format="reference" name="actionBarTheme"/><attr format="reference" name="actionBarWidgetTheme"/><attr format="dimension" name="actionBarSize"><enum name="wrap_content" value="0"/></attr><attr format="reference" name="actionBarDivider"/><attr format="reference" name="actionBarItemBackground"/><attr format="reference" name="actionMenuTextAppearance"/><attr format="color|reference" name="actionMenuTextColor"/><attr format="reference" name="actionModeStyle"/><attr format="reference" name="actionModeCloseButtonStyle"/><attr format="reference" name="actionModeBackground"/><attr format="reference" name="actionModeSplitBackground"/><attr format="reference" name="actionModeCloseDrawable"/><attr format="reference" name="actionModeCutDrawable"/><attr format="reference" name="actionModeCopyDrawable"/><attr format="reference" name="actionModePasteDrawable"/><attr format="reference" name="actionModeSelectAllDrawable"/><attr format="reference" name="actionModeShareDrawable"/><attr format="reference" name="actionModeFindDrawable"/><attr format="reference" name="actionModeWebSearchDrawable"/><attr format="reference" name="actionModePopupWindowStyle"/><attr format="reference" name="textAppearanceLargePopupMenu"/><attr format="reference" name="textAppearanceSmallPopupMenu"/><attr format="reference" name="dialogTheme"/><attr format="dimension" name="dialogPreferredPadding"/><attr format="reference" name="listDividerAlertDialog"/><attr format="reference" name="actionDropDownStyle"/><attr format="dimension" name="dropdownListPreferredItemHeight"/><attr format="reference" name="spinnerDropDownItemStyle"/><attr format="reference" name="homeAsUpIndicator"/><attr format="reference" name="actionButtonStyle"/><attr format="reference" name="buttonBarStyle"/><attr format="reference" name="buttonBarButtonStyle"/><attr format="reference" name="selectableItemBackground"/><attr format="reference" name="selectableItemBackgroundBorderless"/><attr format="reference" name="borderlessButtonStyle"/><attr format="reference" name="dividerVertical"/><attr format="reference" name="dividerHorizontal"/><attr format="reference" name="activityChooserViewStyle"/><attr format="reference" name="toolbarStyle"/><attr format="reference" name="toolbarNavigationButtonStyle"/><attr format="reference" name="popupMenuStyle"/><attr format="reference" name="popupWindowStyle"/><attr format="reference|color" name="editTextColor"/><attr format="reference" name="editTextBackground"/><attr format="reference" name="imageButtonStyle"/><attr format="reference" name="textAppearanceSearchResultTitle"/><attr format="reference" name="textAppearanceSearchResultSubtitle"/><attr format="reference|color" name="textColorSearchUrl"/><attr format="reference" name="searchViewStyle"/><attr format="dimension" name="listPreferredItemHeight"/><attr format="dimension" name="listPreferredItemHeightSmall"/><attr format="dimension" name="listPreferredItemHeightLarge"/><attr format="dimension" name="listPreferredItemPaddingLeft"/><attr format="dimension" name="listPreferredItemPaddingRight"/><attr format="reference" name="dropDownListViewStyle"/><attr format="reference" name="listPopupWindowStyle"/><attr format="reference" name="textAppearanceListItem"/><attr format="reference" name="textAppearanceListItemSmall"/><attr format="reference" name="panelBackground"/><attr format="dimension" name="panelMenuListWidth"/><attr format="reference" name="panelMenuListTheme"/><attr format="reference" name="listChoiceBackgroundIndicator"/><attr format="color" name="colorPrimary"/><attr format="color" name="colorPrimaryDark"/><attr format="color" name="colorAccent"/><attr format="color" name="colorControlNormal"/><attr format="color" name="colorControlActivated"/><attr format="color" name="colorControlHighlight"/><attr format="color" name="colorButtonNormal"/><attr format="color" name="colorSwitchThumbNormal"/><attr format="reference" name="controlBackground"/><attr format="reference" name="alertDialogStyle"/><attr format="reference" name="alertDialogButtonGroupStyle"/><attr format="boolean" name="alertDialogCenterButtons"/><attr format="reference" name="alertDialogTheme"/><attr format="reference|color" name="textColorAlertDialogListItem"/><attr format="reference" name="buttonBarPositiveButtonStyle"/><attr format="reference" name="buttonBarNegativeButtonStyle"/><attr format="reference" name="buttonBarNeutralButtonStyle"/><attr format="reference" name="autoCompleteTextViewStyle"/><attr format="reference" name="buttonStyle"/><attr format="reference" name="buttonStyleSmall"/><attr format="reference" name="checkboxStyle"/><attr format="reference" name="checkedTextViewStyle"/><attr format="reference" name="editTextStyle"/><attr format="reference" name="radioButtonStyle"/><attr format="reference" name="ratingBarStyle"/><attr format="reference" name="seekBarStyle"/><attr format="reference" name="spinnerStyle"/><attr format="reference" name="switchStyle"/></declare-styleable>
+    <declare-styleable name="Toolbar"><attr format="reference" name="titleTextAppearance"/><attr format="reference" name="subtitleTextAppearance"/><attr name="title"/><attr name="subtitle"/><attr name="android:gravity"/><attr format="dimension" name="titleMargins"/><attr format="dimension" name="titleMarginStart"/><attr format="dimension" name="titleMarginEnd"/><attr format="dimension" name="titleMarginTop"/><attr format="dimension" name="titleMarginBottom"/><attr name="contentInsetStart"/><attr name="contentInsetEnd"/><attr name="contentInsetLeft"/><attr name="contentInsetRight"/><attr format="dimension" name="maxButtonHeight"/><attr format="reference" name="collapseIcon"/><attr format="string" name="collapseContentDescription"/><attr name="popupTheme"/><attr format="reference" name="navigationIcon"/><attr format="string" name="navigationContentDescription"/><attr name="android:minHeight"/><attr name="logo"/><attr format="string" name="logoDescription"/><attr format="color" name="titleTextColor"/><attr format="color" name="subtitleTextColor"/></declare-styleable>
+    <declare-styleable name="View"><attr format="dimension" name="paddingStart"/><attr format="dimension" name="paddingEnd"/><attr name="android:focusable"/><attr format="reference" name="theme"/><attr name="android:theme"/></declare-styleable>
+    <declare-styleable name="ViewBackgroundHelper"><attr name="android:background"/><attr format="color" name="backgroundTint"/><attr name="backgroundTintMode"><enum name="src_over" value="3"/><enum name="src_in" value="5"/><enum name="src_atop" value="9"/><enum name="multiply" value="14"/><enum name="screen" value="15"/></attr></declare-styleable>
+    <declare-styleable name="ViewStubCompat"><attr name="android:layout"/><attr name="android:inflatedId"/><attr name="android:id"/></declare-styleable>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens_material.xml -->
+    <eat-comment/>
+    <dimen name="abc_action_bar_content_inset_material">16dp</dimen>
+    <dimen name="abc_action_bar_default_height_material">56dp</dimen>
+    <dimen name="abc_action_bar_default_padding_end_material">0dp</dimen>
+    <dimen name="abc_action_bar_default_padding_start_material">0dp</dimen>
+    <dimen name="abc_action_bar_icon_vertical_padding_material">16dp</dimen>
+    <dimen name="abc_action_bar_overflow_padding_end_material">10dp</dimen>
+    <dimen name="abc_action_bar_overflow_padding_start_material">6dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens.xml -->
+    <eat-comment/>
     <dimen name="abc_action_bar_progress_bar_size">40dp</dimen>
     <dimen name="abc_action_bar_stacked_max_height">48dp</dimen>
     <dimen name="abc_action_bar_stacked_tab_max_width">180dp</dimen>
-    <dimen name="abc_action_bar_subtitle_bottom_margin">5dip</dimen>
-    <dimen name="abc_action_bar_subtitle_text_size">14dp</dimen>
-    <dimen name="abc_action_bar_subtitle_top_margin">-3dp</dimen>
-    <dimen name="abc_action_bar_title_text_size">18dp</dimen>
-    <dimen name="abc_action_button_min_width">56dip</dimen>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/config.xml -->
-    <eat-comment />
-
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens_material.xml -->
+    <eat-comment/>
+    <dimen name="abc_action_bar_subtitle_bottom_margin_material">5dp</dimen>
+    <dimen name="abc_action_bar_subtitle_top_margin_material">-3dp</dimen>
+    <dimen name="abc_action_button_min_height_material">48dp</dimen>
+    <dimen name="abc_action_button_min_width_material">48dp</dimen>
+    <dimen name="abc_action_button_min_width_overflow_material">36dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens.xml -->
+    <eat-comment/>
+    <dimen name="abc_alert_dialog_button_bar_height">48dp</dimen>
+    <dimen name="abc_button_inset_horizontal_material">@dimen/abc_control_inset_material</dimen>
+    <dimen name="abc_button_inset_vertical_material">6dp</dimen>
+    <dimen name="abc_button_padding_horizontal_material">8dp</dimen>
+    <dimen name="abc_button_padding_vertical_material">@dimen/abc_control_padding_material</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/config.xml -->
+    <eat-comment/>
     <dimen name="abc_config_prefDialogWidth">320dp</dimen>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/dimens.xml -->
-    <eat-comment />
-
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens.xml -->
+    <eat-comment/>
+    <dimen name="abc_control_corner_material">2dp</dimen>
+    <dimen name="abc_control_inset_material">4dp</dimen>
+    <dimen name="abc_control_padding_material">4dp</dimen>
+    <item name="abc_dialog_fixed_height_major" type="dimen">80%</item>
+    <item name="abc_dialog_fixed_height_minor" type="dimen">100%</item>
+    <item name="abc_dialog_fixed_width_major" type="dimen">320dp</item>
+    <item name="abc_dialog_fixed_width_minor" type="dimen">320dp</item>
+    <dimen name="abc_dialog_list_padding_vertical_material">8dp</dimen>
+    <item name="abc_dialog_min_width_major" type="dimen">65%</item>
+    <item name="abc_dialog_min_width_minor" type="dimen">95%</item>
+    <dimen name="abc_dialog_padding_material">24dp</dimen>
+    <dimen name="abc_dialog_padding_top_material">18dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens_material.xml -->
+    <eat-comment/>
+    <item format="float" name="abc_disabled_alpha_material_dark" type="dimen">0.30</item>
+    <item format="float" name="abc_disabled_alpha_material_light" type="dimen">0.26</item>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens.xml -->
+    <eat-comment/>
     <dimen name="abc_dropdownitem_icon_width">32dip</dimen>
     <dimen name="abc_dropdownitem_text_padding_left">8dip</dimen>
     <dimen name="abc_dropdownitem_text_padding_right">8dip</dimen>
+    <dimen name="abc_edit_text_inset_bottom_material">7dp</dimen>
+    <dimen name="abc_edit_text_inset_horizontal_material">4dp</dimen>
+    <dimen name="abc_edit_text_inset_top_material">10dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens_material.xml -->
+    <eat-comment/>
+    <dimen name="abc_floating_window_z">16dp</dimen>
+    <dimen name="abc_list_item_padding_horizontal_material">@dimen/abc_action_bar_content_inset_material</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens.xml -->
+    <eat-comment/>
     <dimen name="abc_panel_menu_list_width">296dp</dimen>
     <dimen name="abc_search_view_preferred_width">320dip</dimen>
     <dimen name="abc_search_view_text_min_width">160dip</dimen>
-
-    <item name="dialog_fixed_height_major" type="dimen">80%</item>
-    <item name="dialog_fixed_height_minor" type="dimen">100%</item>
-    <item name="dialog_fixed_width_major" type="dimen">320dp</item>
-    <item name="dialog_fixed_width_minor" type="dimen">320dp</item>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/ids.xml -->
-    <eat-comment />
-
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens_material.xml -->
+    <eat-comment/>
+    <dimen name="abc_seekbar_track_background_height_material">2dp</dimen>
+    <dimen name="abc_seekbar_track_progress_height_material">2dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens.xml -->
+    <eat-comment/>
+    <dimen name="abc_select_dialog_padding_start_material">20dp</dimen>
+    <dimen name="abc_switch_padding">3dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens_material.xml -->
+    <eat-comment/>
+    <dimen name="abc_text_size_body_1_material">14sp</dimen>
+    <dimen name="abc_text_size_body_2_material">14sp</dimen>
+    <dimen name="abc_text_size_button_material">14sp</dimen>
+    <dimen name="abc_text_size_caption_material">12sp</dimen>
+    <dimen name="abc_text_size_display_1_material">34sp</dimen>
+    <dimen name="abc_text_size_display_2_material">45sp</dimen>
+    <dimen name="abc_text_size_display_3_material">56sp</dimen>
+    <dimen name="abc_text_size_display_4_material">112sp</dimen>
+    <dimen name="abc_text_size_headline_material">24sp</dimen>
+    <dimen name="abc_text_size_large_material">22sp</dimen>
+    <dimen name="abc_text_size_medium_material">18sp</dimen>
+    <dimen name="abc_text_size_menu_material">16sp</dimen>
+    <dimen name="abc_text_size_small_material">14sp</dimen>
+    <dimen name="abc_text_size_subhead_material">16sp</dimen>
+    <dimen name="abc_text_size_subtitle_material_toolbar">16dp</dimen>
+    <dimen name="abc_text_size_title_material">20sp</dimen>
+    <dimen name="abc_text_size_title_material_toolbar">20dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/colors_material.xml -->
+    <eat-comment/>
+    <item format="float" name="disabled_alpha_material_dark" type="dimen">0.30</item>
+    <item format="float" name="disabled_alpha_material_light" type="dimen">0.26</item>
+    <item format="float" name="highlight_alpha_material_colored" type="dimen">0.26</item>
+    <item format="float" name="highlight_alpha_material_dark" type="dimen">0.20</item>
+    <item format="float" name="highlight_alpha_material_light" type="dimen">0.12</item>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens.xml -->
+    <eat-comment/>
+    <dimen name="notification_large_icon_height">64dp</dimen>
+    <dimen name="notification_large_icon_width">64dp</dimen>
+    <dimen name="notification_subtext_size">12dp</dimen>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/colors.xml -->
+    <eat-comment/>
+    <drawable name="notification_template_icon_bg">#3333B5E5</drawable>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/ids.xml -->
+    <eat-comment/>
     <item name="action_bar_activity_content" type="id"/>
+    <item name="action_bar_spinner" type="id"/>
     <item name="action_menu_divider" type="id"/>
     <item name="action_menu_presenter" type="id"/>
     <item name="home" type="id"/>
     <item name="progress_circular" type="id"/>
     <item name="progress_horizontal" type="id"/>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/dimens.xml -->
-    <eat-comment />
-
+    <item name="split_action_bar" type="id"/>
+    <item name="up" type="id"/>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/config.xml -->
+    <eat-comment/>
+    <integer name="abc_config_activityDefaultDur">220</integer>
+    <integer name="abc_config_activityShortDur">150</integer>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/dimens.xml -->
+    <eat-comment/>
     <integer name="abc_max_action_buttons">2</integer>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/strings.xml -->
-    <eat-comment />
-
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/config.xml -->
+    <eat-comment/>
+    <integer name="cancel_button_image_alpha">127</integer>
+    <integer name="status_bar_notification_info_maxnum">999</integer>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/strings.xml -->
+    <eat-comment/>
     <string name="abc_action_bar_home_description">Navigate home</string>
+    <string name="abc_action_bar_home_description_format">%1$s, %2$s</string>
+    <string name="abc_action_bar_home_subtitle_description_format">%1$s, %2$s, %3$s</string>
     <string name="abc_action_bar_up_description">Navigate up</string>
     <string name="abc_action_menu_overflow_description">More options</string>
     <string name="abc_action_mode_done">Done</string>
     <string name="abc_activity_chooser_view_see_all">See all</string>
     <string name="abc_activitychooserview_choose_application">Choose an app</string>
+    <string name="abc_capital_off">OFF</string>
+    <string name="abc_capital_on">ON</string>
+    <string name="abc_search_hint">Search…</string>
     <string name="abc_searchview_description_clear">Clear query</string>
     <string name="abc_searchview_description_query">Search query</string>
     <string name="abc_searchview_description_search">Search</string>
     <string name="abc_searchview_description_voice">Voice search</string>
     <string name="abc_shareactionprovider_share_with">Share with</string>
     <string name="abc_shareactionprovider_share_with_application">Share with %s</string>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/styles_base.xml -->
-    <eat-comment />
-
-    <style name="TextAppearance.AppCompat.Base.CompactMenu.Dialog" parent="android:TextAppearance.Medium">
-        <item name="android:textColor">@android:color/primary_text_light</item>
+    <string name="abc_toolbar_collapse_description">Collapse</string>
+    <string name="status_bar_notification_info_overflow">999+</string>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles.xml -->
+    <eat-comment/>
+    <style name="AlertDialog.AppCompat" parent="Base.AlertDialog.AppCompat"/>
+    <style name="AlertDialog.AppCompat.Light" parent="Base.AlertDialog.AppCompat.Light"/>
+    <style name="Animation.AppCompat.Dialog" parent="Base.Animation.AppCompat.Dialog"/>
+    <style name="Animation.AppCompat.DropDownUp" parent="Base.Animation.AppCompat.DropDownUp"/>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.AlertDialog.AppCompat" parent="android:Widget">
+        <item name="android:layout">@layout/abc_alert_dialog_material</item>
+        <item name="listLayout">@layout/abc_select_dialog_material</item>
+        <item name="listItemLayout">@layout/select_dialog_item_material</item>
+        <item name="multiChoiceItemLayout">@layout/select_dialog_multichoice_material</item>
+        <item name="singleChoiceItemLayout">@layout/select_dialog_singlechoice_material</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Base.SearchResult" parent="">
-        <item name="android:textStyle">normal</item>
+    <style name="Base.AlertDialog.AppCompat.Light" parent="Base.AlertDialog.AppCompat"/>
+    <style name="Base.Animation.AppCompat.Dialog" parent="android:Animation">
+        <item name="android:windowEnterAnimation">@anim/abc_popup_enter</item>
+        <item name="android:windowExitAnimation">@anim/abc_popup_exit</item>
+    </style>
+    <style name="Base.Animation.AppCompat.DropDownUp" parent="android:Animation">
+        <item name="android:windowEnterAnimation">@anim/abc_grow_fade_in_from_bottom</item>
+        <item name="android:windowExitAnimation">@anim/abc_shrink_fade_out_from_bottom</item>
+    </style>
+    <style name="Base.DialogWindowTitle.AppCompat" parent="android:Widget">
+        <item name="android:maxLines">1</item>
+        <item name="android:scrollHorizontally">true</item>
+        <item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item>
+    </style>
+    <style name="Base.DialogWindowTitleBackground.AppCompat" parent="android:Widget">
+        <item name="android:background">@null</item>
+        <item name="android:paddingLeft">?attr/dialogPreferredPadding</item>
+        <item name="android:paddingRight">?attr/dialogPreferredPadding</item>
+        <item name="android:paddingTop">@dimen/abc_dialog_padding_top_material</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles_base_text.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat" parent="android:TextAppearance">
         <item name="android:textColor">?android:textColorPrimary</item>
         <item name="android:textColorHint">?android:textColorHint</item>
+        <item name="android:textColorHighlight">?android:textColorHighlight</item>
+        <item name="android:textColorLink">?android:textColorLink</item>
+        <item name="android:textSize">@dimen/abc_text_size_body_1_material</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Base.SearchResult.Subtitle">
-        <item name="android:textSize">14sp</item>
+    <style name="Base.TextAppearance.AppCompat.Body1">
+        <item name="android:textSize">@dimen/abc_text_size_body_1_material</item>
+        <item name="android:textColor">?android:textColorPrimary</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Body2">
+        <item name="android:textSize">@dimen/abc_text_size_body_2_material</item>
+        <item name="android:textColor">?android:textColorPrimary</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Button">
+        <item name="android:textSize">@dimen/abc_text_size_button_material</item>
+        <item name="textAllCaps">true</item>
+        <item name="android:textColor">?android:textColorPrimary</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Caption">
+        <item name="android:textSize">@dimen/abc_text_size_caption_material</item>
         <item name="android:textColor">?android:textColorSecondary</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Base.SearchResult.Title">
-        <item name="android:textSize">18sp</item>
+    <style name="Base.TextAppearance.AppCompat.Display1">
+        <item name="android:textSize">@dimen/abc_text_size_display_1_material</item>
+        <item name="android:textColor">?android:textColorSecondary</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Base.Widget.PopupMenu.Large" parent="android:TextAppearance.Widget">
-        <item name="android:textColor">?android:attr/textColorPrimaryDisableOnly</item>
-        <item name="android:textSize">18sp</item>
+    <style name="Base.TextAppearance.AppCompat.Display2">
+        <item name="android:textSize">@dimen/abc_text_size_display_2_material</item>
+        <item name="android:textColor">?android:textColorSecondary</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Base.Widget.PopupMenu.Small" parent="android:TextAppearance.Widget">
-        <item name="android:textColor">?android:attr/textColorPrimaryDisableOnly</item>
-        <item name="android:textSize">14sp</item>
+    <style name="Base.TextAppearance.AppCompat.Display3">
+        <item name="android:textSize">@dimen/abc_text_size_display_3_material</item>
+        <item name="android:textColor">?android:textColorSecondary</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Light.Base.SearchResult" parent="TextAppearance.AppCompat.Base.SearchResult">
+    <style name="Base.TextAppearance.AppCompat.Display4">
+        <item name="android:textSize">@dimen/abc_text_size_display_4_material</item>
+        <item name="android:textColor">?android:textColorSecondary</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Headline">
+        <item name="android:textSize">@dimen/abc_text_size_headline_material</item>
+        <item name="android:textColor">?android:textColorPrimary</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Inverse">
+        <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
+        <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Large">
+        <item name="android:textSize">@dimen/abc_text_size_large_material</item>
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Large.Inverse">
+        <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
+        <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Light.Widget.PopupMenu.Large" parent="TextAppearance.AppCompat.Menu">
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Light.Widget.PopupMenu.Small" parent="TextAppearance.AppCompat.Menu">
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles_base_text.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Medium">
+        <item name="android:textSize">@dimen/abc_text_size_medium_material</item>
+        <item name="android:textColor">?android:attr/textColorSecondary</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Medium.Inverse">
+        <item name="android:textColor">?android:attr/textColorSecondaryInverse</item>
+        <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Menu">
+        <item name="android:textSize">@dimen/abc_text_size_menu_material</item>
+        <item name="android:textColor">?android:textColorPrimary</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.SearchResult" parent="">
+        <item name="android:textStyle">normal</item>
         <item name="android:textColor">?android:textColorPrimary</item>
         <item name="android:textColorHint">?android:textColorHint</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Light.Base.SearchResult.Subtitle">
+    <style name="Base.TextAppearance.AppCompat.SearchResult.Subtitle">
         <item name="android:textSize">14sp</item>
         <item name="android:textColor">?android:textColorSecondary</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Light.Base.SearchResult.Title">
+    <style name="Base.TextAppearance.AppCompat.SearchResult.Title">
         <item name="android:textSize">18sp</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Light.Base.Widget.PopupMenu.Large" parent="TextAppearance.AppCompat.Base.Widget.PopupMenu.Large"></style>
-
-    <style name="TextAppearance.AppCompat.Light.Base.Widget.PopupMenu.Small" parent="TextAppearance.AppCompat.Base.Widget.PopupMenu.Small"></style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/styles.xml -->
-    <eat-comment />
-
-    <style name="TextAppearance.AppCompat.Light.SearchResult.Subtitle" parent="TextAppearance.AppCompat.Light.Base.SearchResult.Subtitle"></style>
-
-    <style name="TextAppearance.AppCompat.Light.SearchResult.Title" parent="TextAppearance.AppCompat.Light.Base.SearchResult.Title"></style>
-
-    <style name="TextAppearance.AppCompat.Light.Widget.PopupMenu.Large" parent="TextAppearance.AppCompat.Light.Base.Widget.PopupMenu.Large"></style>
-
-    <style name="TextAppearance.AppCompat.Light.Widget.PopupMenu.Small" parent="TextAppearance.AppCompat.Light.Base.Widget.PopupMenu.Small"></style>
-
-    <style name="TextAppearance.AppCompat.SearchResult.Subtitle" parent="TextAppearance.AppCompat.Base.SearchResult.Subtitle"></style>
-
-    <style name="TextAppearance.AppCompat.SearchResult.Title" parent="TextAppearance.AppCompat.Base.SearchResult.Title"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.ActionBar.Menu" parent="TextAppearance.AppCompat.Widget.Base.ActionBar.Menu"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.ActionBar.Subtitle" parent="TextAppearance.AppCompat.Widget.Base.ActionBar.Subtitle"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse" parent="TextAppearance.AppCompat.Widget.Base.ActionBar.Subtitle.Inverse"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.ActionBar.Title" parent="TextAppearance.AppCompat.Widget.Base.ActionBar.Title"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse" parent="TextAppearance.AppCompat.Widget.Base.ActionBar.Title.Inverse"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.ActionMode.Subtitle" parent="TextAppearance.AppCompat.Widget.Base.ActionMode.Subtitle"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.ActionMode.Subtitle.Inverse" parent="TextAppearance.AppCompat.Widget.Base.ActionMode.Subtitle.Inverse"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.ActionMode.Title" parent="TextAppearance.AppCompat.Widget.Base.ActionMode.Title"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.ActionMode.Title.Inverse" parent="TextAppearance.AppCompat.Widget.Base.ActionMode.Title.Inverse"></style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/styles_base.xml -->
-    <eat-comment />
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionBar.Menu" parent="android:TextAppearance.Small">
-        <item name="android:textSize">12sp</item>
-        <item name="android:textStyle">bold</item>
-        <item name="android:textColor">?attr/actionMenuTextColor</item>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles_base_text.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Small">
+        <item name="android:textSize">@dimen/abc_text_size_small_material</item>
+        <item name="android:textColor">?android:attr/textColorTertiary</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionBar.Subtitle" parent="android:TextAppearance.Small">
-        <item name="android:textSize">@dimen/abc_action_bar_subtitle_text_size</item>
+    <style name="Base.TextAppearance.AppCompat.Small.Inverse">
+        <item name="android:textColor">?android:attr/textColorTertiaryInverse</item>
+        <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionBar.Subtitle.Inverse" parent="android:TextAppearance.Small.Inverse">
-        <item name="android:textSize">@dimen/abc_action_bar_subtitle_text_size</item>
+    <style name="Base.TextAppearance.AppCompat.Subhead">
+        <item name="android:textSize">@dimen/abc_text_size_subhead_material</item>
+        <item name="android:textColor">?android:textColorPrimary</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionBar.Title" parent="android:TextAppearance.Medium">
-        <item name="android:textSize">@dimen/abc_action_bar_title_text_size</item>
+    <style name="Base.TextAppearance.AppCompat.Subhead.Inverse">
+        <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
+        <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionBar.Title.Inverse" parent="android:TextAppearance.Medium.Inverse">
-        <item name="android:textSize">@dimen/abc_action_bar_title_text_size</item>
+    <style name="Base.TextAppearance.AppCompat.Title">
+        <item name="android:textSize">@dimen/abc_text_size_title_material</item>
+        <item name="android:textColor">?android:textColorPrimary</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionMode.Subtitle" parent="android:TextAppearance.Small">
+    <style name="Base.TextAppearance.AppCompat.Title.Inverse">
+        <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
+        <item name="android:textColorHint">?android:attr/textColorHintInverse</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Menu" parent="TextAppearance.AppCompat.Menu">
+        <item name="android:textColor">?attr/actionMenuTextColor</item>
+        <item name="textAllCaps">@bool/abc_config_actionMenuItemAllCaps</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Subtitle" parent="TextAppearance.AppCompat.Subhead">
+        <item name="android:textSize">@dimen/abc_text_size_subtitle_material_toolbar</item>
         <item name="android:textColor">?android:attr/textColorSecondary</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionMode.Subtitle.Inverse" parent="android:TextAppearance.Small.Inverse">
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse" parent="TextAppearance.AppCompat.Subhead.Inverse">
+        <item name="android:textSize">@dimen/abc_text_size_subtitle_material_toolbar</item>
         <item name="android:textColor">?android:attr/textColorSecondaryInverse</item>
     </style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionMode.Title" parent="android:TextAppearance.Medium"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.ActionMode.Title.Inverse" parent="android:TextAppearance.Medium.Inverse"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.Base.DropDownItem" parent="android:TextAppearance.Small">
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Title" parent="TextAppearance.AppCompat.Title">
+        <item name="android:textSize">@dimen/abc_text_size_title_material_toolbar</item>
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse" parent="TextAppearance.AppCompat.Title.Inverse">
+        <item name="android:textSize">@dimen/abc_text_size_title_material_toolbar</item>
+        <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionMode.Subtitle" parent="TextAppearance.AppCompat.Widget.ActionBar.Subtitle"/>
+    <style name="Base.TextAppearance.AppCompat.Widget.ActionMode.Title" parent="TextAppearance.AppCompat.Widget.ActionBar.Title"/>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles_base_text.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Widget.Button" parent="TextAppearance.AppCompat.Button"/>
+    <style name="Base.TextAppearance.AppCompat.Widget.Button.Inverse" parent="TextAppearance.AppCompat.Button">
+        <item name="android:textColor">?android:textColorPrimaryInverse</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.TextAppearance.AppCompat.Widget.DropDownItem" parent="android:TextAppearance.Small">
         <item name="android:textColor">?android:attr/textColorPrimaryDisableOnly</item>
     </style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/styles.xml -->
-    <eat-comment />
-
-    <style name="TextAppearance.AppCompat.Widget.DropDownItem" parent="TextAppearance.AppCompat.Widget.Base.DropDownItem"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.PopupMenu.Large" parent="TextAppearance.AppCompat.Base.Widget.PopupMenu.Large"></style>
-
-    <style name="TextAppearance.AppCompat.Widget.PopupMenu.Small" parent="TextAppearance.AppCompat.Base.Widget.PopupMenu.Small"></style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/styles_base.xml -->
-    <eat-comment />
-
-    <style name="TextAppearance.Widget.AppCompat.Base.ExpandedMenu.Item" parent="android:TextAppearance.Medium">
+    <style name="Base.TextAppearance.AppCompat.Widget.PopupMenu.Large" parent="TextAppearance.AppCompat.Menu">
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Widget.PopupMenu.Small" parent="TextAppearance.AppCompat.Menu">
+    </style>
+    <style name="Base.TextAppearance.AppCompat.Widget.Switch" parent="TextAppearance.AppCompat.Button"/>
+    <style name="Base.TextAppearance.AppCompat.Widget.TextView.SpinnerItem" parent="TextAppearance.AppCompat.Menu"/>
+    <style name="Base.TextAppearance.Widget.AppCompat.ExpandedMenu.Item" parent="android:TextAppearance.Medium">
         <item name="android:textColor">?android:attr/textColorPrimaryDisableOnly</item>
     </style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/styles.xml -->
-    <eat-comment />
-
-    <style name="TextAppearance.Widget.AppCompat.ExpandedMenu.Item" parent="TextAppearance.Widget.AppCompat.Base.ExpandedMenu.Item"></style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/themes.xml -->
-    <eat-comment />
-
-    <style name="Theme.AppCompat" parent="Theme.Base.AppCompat">
-        <item name="isLightTheme">false</item>
-
-        <!-- Required for use of support_simple_spinner_dropdown_item.xml -->
-        <item name="spinnerDropDownItemStyle">            @style/Widget.AppCompat.DropDownItem.Spinner</item>
-        <item name="dropdownListPreferredItemHeight">?attr/listPreferredItemHeightSmall</item>
-        <item name="searchResultListItemHeight">58dip</item>
-
-        <!-- Popup Menu styles -->
-        <item name="popupMenuStyle">@style/Widget.AppCompat.PopupMenu</item>
-        <item name="textAppearanceLargePopupMenu">            @style/TextAppearance.AppCompat.Widget.PopupMenu.Large</item>
-        <item name="textAppearanceSmallPopupMenu">            @style/TextAppearance.AppCompat.Widget.PopupMenu.Small</item>
-        <item name="listPopupWindowStyle">@style/Widget.AppCompat.ListPopupWindow</item>
-        <item name="dropDownListViewStyle">@style/Widget.AppCompat.ListView.DropDown</item>
-
-        <!-- SearchView attributes -->
-        <item name="searchDropdownBackground">@drawable/abc_search_dropdown_dark</item>
-        <item name="searchViewTextField">@drawable/abc_textfield_searchview_holo_dark</item>
-        <item name="searchViewTextFieldRight">@drawable/abc_textfield_searchview_right_holo_dark</item>
-        <item name="searchViewCloseIcon">@drawable/abc_ic_clear</item>
-        <item name="searchViewSearchIcon">@drawable/abc_ic_search</item>
-        <item name="searchViewGoIcon">@drawable/abc_ic_go</item>
-        <item name="searchViewVoiceIcon">@drawable/abc_ic_voice_search</item>
-        <item name="searchViewEditQuery">@drawable/abc_ic_commit_search_api_holo_dark</item>
-        <item name="searchViewEditQueryBackground">?attr/selectableItemBackground</item>
-        <item name="searchViewAutoCompleteTextView">            @style/Widget.AppCompat.AutoCompleteTextView</item>
-        <item name="textColorSearchUrl">@color/abc_search_url_text_holo</item>
-        <item name="textAppearanceSearchResultTitle">            @style/TextAppearance.AppCompat.SearchResult.Title</item>
-        <item name="textAppearanceSearchResultSubtitle">            @style/TextAppearance.AppCompat.SearchResult.Subtitle</item>
-        <item name="actionModeShareDrawable">@drawable/abc_ic_menu_share_holo_dark</item>
-
-        <!-- ShareActionProvider attributes -->
-        <item name="activityChooserViewStyle">@style/Widget.AppCompat.ActivityChooserView</item>
+    <style name="Base.TextAppearance.Widget.AppCompat.Toolbar.Subtitle" parent="TextAppearance.AppCompat.Widget.ActionBar.Subtitle">
     </style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/themes_base.xml -->
-    <eat-comment />
-
-    <style name="Theme.AppCompat.Base.CompactMenu" parent="">
-        <item name="android:itemTextAppearance">            @style/TextAppearance.Widget.AppCompat.ExpandedMenu.Item</item>
+    <style name="Base.TextAppearance.Widget.AppCompat.Toolbar.Title" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/themes_base.xml -->
+    <eat-comment/>
+    <style name="Base.Theme.AppCompat" parent="Base.V7.Theme.AppCompat">
+    </style>
+    <style name="Base.Theme.AppCompat.CompactMenu" parent="">
+        <item name="android:itemTextAppearance">?android:attr/textAppearanceMedium</item>
         <item name="android:listViewStyle">@style/Widget.AppCompat.ListView.Menu</item>
+        <item name="android:windowAnimationStyle">@style/Animation.AppCompat.DropDownUp</item>
     </style>
-
-    <style name="Theme.AppCompat.Base.CompactMenu.Dialog" parent="">
-        <item name="android:itemTextAppearance">            @style/TextAppearance.AppCompat.Base.CompactMenu.Dialog</item>
-        <item name="android:listViewStyle">@android:style/Widget.ListView.Menu</item>
+    <style name="Base.Theme.AppCompat.Dialog" parent="Base.V7.Theme.AppCompat.Dialog"/>
+    <style name="Base.Theme.AppCompat.Dialog.Alert">
+        <item name="windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
+        <item name="windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>
     </style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/themes.xml -->
-    <eat-comment />
-
-    <style name="Theme.AppCompat.CompactMenu" parent="Theme.AppCompat.Base.CompactMenu"></style>
-
-    <style name="Theme.AppCompat.CompactMenu.Dialog" parent="Theme.AppCompat.Base.CompactMenu.Dialog"></style>
-
-    <style name="Theme.AppCompat.DialogWhenLarge" parent="Theme.Base.AppCompat.DialogWhenLarge"></style>
-
-    <style name="Theme.AppCompat.Light" parent="Theme.Base.AppCompat.Light">
-        <item name="isLightTheme">true</item>
-
-        <!-- Required for use of support_simple_spinner_dropdown_item.xml -->
-        <item name="spinnerDropDownItemStyle">            @style/Widget.AppCompat.Light.DropDownItem.Spinner</item>
-        <item name="dropdownListPreferredItemHeight">?attr/listPreferredItemHeightSmall</item>
-        <item name="searchResultListItemHeight">58dip</item>
-
-        <!-- Popup Menu styles -->
-        <item name="popupMenuStyle">@style/Widget.AppCompat.Light.PopupMenu</item>
-        <item name="textAppearanceLargePopupMenu">            @style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Large</item>
-        <item name="textAppearanceSmallPopupMenu">            @style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small</item>
-        <item name="listPopupWindowStyle">@style/Widget.AppCompat.Light.ListPopupWindow</item>
-        <item name="dropDownListViewStyle">@style/Widget.AppCompat.Light.ListView.DropDown</item>
+    <style name="Base.Theme.AppCompat.Dialog.FixedSize">
+        <item name="windowFixedWidthMajor">@dimen/abc_dialog_fixed_width_major</item>
+        <item name="windowFixedWidthMinor">@dimen/abc_dialog_fixed_width_minor</item>
+        <item name="windowFixedHeightMajor">@dimen/abc_dialog_fixed_height_major</item>
+        <item name="windowFixedHeightMinor">@dimen/abc_dialog_fixed_height_minor</item>
+    </style>
+    <style name="Base.Theme.AppCompat.Dialog.MinWidth">
+        <item name="windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
+        <item name="windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>
+    </style>
+    <style name="Base.Theme.AppCompat.DialogWhenLarge" parent="Theme.AppCompat"/>
+    <style name="Base.Theme.AppCompat.Light" parent="Base.V7.Theme.AppCompat.Light">
+    </style>
+    <style name="Base.Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light">
+        <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>
+        <item name="actionBarWidgetTheme">@null</item>
+        <item name="actionBarTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
 
-        <!-- SearchView attributes -->
-        <item name="searchDropdownBackground">@drawable/abc_search_dropdown_light</item>
-        <item name="searchViewTextField">@drawable/abc_textfield_searchview_holo_light</item>
-        <item name="searchViewTextFieldRight">@drawable/abc_textfield_searchview_right_holo_light</item>
-        <item name="searchViewCloseIcon">@drawable/abc_ic_clear_holo_light</item>
-        <item name="searchViewSearchIcon">@drawable/abc_ic_search_api_holo_light</item>
-        <item name="searchViewGoIcon">@drawable/abc_ic_go_search_api_holo_light</item>
-        <item name="searchViewVoiceIcon">@drawable/abc_ic_voice_search_api_holo_light</item>
-        <item name="searchViewEditQuery">@drawable/abc_ic_commit_search_api_holo_light</item>
-        <item name="searchViewEditQueryBackground">?attr/selectableItemBackground</item>
-        <item name="searchViewAutoCompleteTextView">            @style/Widget.AppCompat.Light.AutoCompleteTextView</item>
-        <item name="textColorSearchUrl">@color/abc_search_url_text_holo</item>
-        <item name="textAppearanceSearchResultTitle">            @style/TextAppearance.AppCompat.Light.SearchResult.Title</item>
-        <item name="textAppearanceSearchResultSubtitle">            @style/TextAppearance.AppCompat.Light.SearchResult.Subtitle</item>
-        <item name="actionModeShareDrawable">@drawable/abc_ic_menu_share_holo_light</item>
+        <!-- Panel attributes -->
+        <item name="listChoiceBackgroundIndicator">@drawable/abc_list_selector_holo_dark</item>
 
-        <!-- ShareActionProvider attributes -->
-        <item name="activityChooserViewStyle">@style/Widget.AppCompat.Light.ActivityChooserView</item>
+        <item name="colorPrimaryDark">@color/primary_dark_material_dark</item>
+        <item name="colorPrimary">@color/primary_material_dark</item>
     </style>
-
-    <style name="Theme.AppCompat.Light.DarkActionBar" parent="Theme.Base.AppCompat.Light.DarkActionBar">
+    <style name="Base.Theme.AppCompat.Light.Dialog" parent="Base.V7.Theme.AppCompat.Light.Dialog"/>
+    <style name="Base.Theme.AppCompat.Light.Dialog.Alert">
+        <item name="windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
+        <item name="windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>
+    </style>
+    <style name="Base.Theme.AppCompat.Light.Dialog.FixedSize">
+        <item name="windowFixedWidthMajor">@dimen/abc_dialog_fixed_width_major</item>
+        <item name="windowFixedWidthMinor">@dimen/abc_dialog_fixed_width_minor</item>
+        <item name="windowFixedHeightMajor">@dimen/abc_dialog_fixed_height_major</item>
+        <item name="windowFixedHeightMinor">@dimen/abc_dialog_fixed_height_minor</item>
+    </style>
+    <style name="Base.Theme.AppCompat.Light.Dialog.MinWidth">
+        <item name="windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
+        <item name="windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>
+    </style>
+    <style name="Base.Theme.AppCompat.Light.DialogWhenLarge" parent="Theme.AppCompat.Light"/>
+    <style name="Base.ThemeOverlay.AppCompat" parent="Platform.ThemeOverlay.AppCompat"/>
+    <style name="Base.ThemeOverlay.AppCompat.ActionBar">
+        <item name="colorControlNormal">?android:attr/textColorPrimary</item>
+        <item name="searchViewStyle">@style/Widget.AppCompat.SearchView.ActionBar</item>
+    </style>
+    <style name="Base.ThemeOverlay.AppCompat.Dark" parent="Platform.ThemeOverlay.AppCompat.Dark">
+        <item name="android:windowBackground">@color/background_material_dark</item>
+        <item name="android:colorForeground">@color/foreground_material_dark</item>
+        <item name="android:colorForegroundInverse">@color/foreground_material_light</item>
+        <item name="android:colorBackground">@color/background_material_dark</item>
+        <item name="android:colorBackgroundCacheHint">@color/abc_background_cache_hint_selector_material_dark</item>
+
+        <item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item>
+        <item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_light</item>
+        <item name="android:textColorPrimaryDisableOnly">@color/abc_primary_text_disable_only_material_dark</item>
+        <item name="android:textColorSecondary">@color/abc_secondary_text_material_dark</item>
+        <item name="android:textColorSecondaryInverse">@color/abc_secondary_text_material_light</item>
+        <item name="android:textColorTertiary">@color/abc_secondary_text_material_dark</item>
+        <item name="android:textColorTertiaryInverse">@color/abc_secondary_text_material_light</item>
+        <item name="android:textColorHint">@color/hint_foreground_material_dark</item>
+        <item name="android:textColorHintInverse">@color/hint_foreground_material_light</item>
+        <item name="android:textColorHighlight">@color/highlighted_text_material_dark</item>
+
+        <item name="colorControlNormal">?android:attr/textColorSecondary</item>
+        <item name="colorControlHighlight">@color/ripple_material_dark</item>
+        <item name="colorButtonNormal">@color/button_material_dark</item>
+        <item name="colorSwitchThumbNormal">@color/switch_thumb_material_dark</item>
+
+        <!-- Used by MediaRouter -->
+        <item name="isLightTheme">false</item>
+    </style>
+    <style name="Base.ThemeOverlay.AppCompat.Dark.ActionBar">
+        <item name="colorControlNormal">?android:attr/textColorPrimary</item>
+        <item name="searchViewStyle">@style/Widget.AppCompat.SearchView.ActionBar</item>
+    </style>
+    <style name="Base.ThemeOverlay.AppCompat.Light" parent="Platform.ThemeOverlay.AppCompat.Light">
+        <item name="android:windowBackground">@color/background_material_light</item>
+        <item name="android:colorForeground">@color/foreground_material_light</item>
+        <item name="android:colorForegroundInverse">@color/foreground_material_dark</item>
+        <item name="android:colorBackground">@color/background_material_light</item>
+        <item name="android:colorBackgroundCacheHint">@color/abc_background_cache_hint_selector_material_light</item>
+
+        <item name="android:textColorPrimary">@color/abc_primary_text_material_light</item>
+        <item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_dark</item>
+        <item name="android:textColorSecondary">@color/abc_secondary_text_material_light</item>
+        <item name="android:textColorSecondaryInverse">@color/abc_secondary_text_material_dark</item>
+        <item name="android:textColorTertiary">@color/abc_secondary_text_material_light</item>
+        <item name="android:textColorTertiaryInverse">@color/abc_secondary_text_material_dark</item>
+        <item name="android:textColorPrimaryDisableOnly">@color/abc_primary_text_disable_only_material_light</item>
+        <item name="android:textColorPrimaryInverseDisableOnly">@color/abc_primary_text_disable_only_material_dark</item>
+        <item name="android:textColorHint">@color/hint_foreground_material_light</item>
+        <item name="android:textColorHintInverse">@color/hint_foreground_material_dark</item>
+        <item name="android:textColorHighlight">@color/highlighted_text_material_light</item>
+
+        <item name="colorControlNormal">?android:attr/textColorSecondary</item>
+        <item name="colorControlHighlight">@color/ripple_material_light</item>
+        <item name="colorButtonNormal">@color/button_material_light</item>
+        <item name="colorSwitchThumbNormal">@color/switch_thumb_material_light</item>
+
+        <!-- Used by MediaRouter -->
         <item name="isLightTheme">true</item>
-
-        <!-- Required for use of support_simple_spinner_dropdown_item.xml -->
-        <item name="spinnerDropDownItemStyle">            @style/Widget.AppCompat.Light.DropDownItem.Spinner</item>
-        <item name="dropdownListPreferredItemHeight">?attr/listPreferredItemHeightSmall</item>
-        <item name="searchResultListItemHeight">58dip</item>
-
-        <!-- Popup Menu styles -->
-        <item name="popupMenuStyle">@style/Widget.AppCompat.Light.PopupMenu</item>
-        <item name="textAppearanceLargePopupMenu">            @style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Large</item>
-        <item name="textAppearanceSmallPopupMenu">            @style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small</item>
-        <item name="listPopupWindowStyle">@style/Widget.AppCompat.ListPopupWindow</item>
-        <item name="dropDownListViewStyle">@style/Widget.AppCompat.ListView.DropDown</item>
-
-        <!-- SearchView attributes -->
-        <item name="searchDropdownBackground">@drawable/abc_search_dropdown_dark</item>
-        <item name="searchViewTextField">@drawable/abc_textfield_searchview_holo_dark</item>
-        <item name="searchViewTextFieldRight">@drawable/abc_textfield_searchview_right_holo_dark</item>
-        <item name="searchViewCloseIcon">@drawable/abc_ic_clear</item>
-        <item name="searchViewSearchIcon">@drawable/abc_ic_search</item>
-        <item name="searchViewGoIcon">@drawable/abc_ic_go</item>
-        <item name="searchViewVoiceIcon">@drawable/abc_ic_voice_search</item>
-        <item name="searchViewEditQuery">@drawable/abc_ic_commit_search_api_holo_dark</item>
-        <item name="searchViewEditQueryBackground">?attr/selectableItemBackground</item>
-        <item name="searchViewAutoCompleteTextView">            @style/Widget.AppCompat.AutoCompleteTextView</item>
-        <item name="textColorSearchUrl">@color/abc_search_url_text_holo</item>
-        <item name="textAppearanceSearchResultTitle">            @style/TextAppearance.AppCompat.SearchResult.Title</item>
-        <item name="textAppearanceSearchResultSubtitle">            @style/TextAppearance.AppCompat.SearchResult.Subtitle</item>
-        <item name="actionModeShareDrawable">@drawable/abc_ic_menu_share_holo_dark</item>
-
-        <!-- ShareActionProvider attributes -->
-        <item name="activityChooserViewStyle">@style/Widget.AppCompat.ActivityChooserView</item>
     </style>
+    <style name="Base.V7.Theme.AppCompat" parent="Platform.AppCompat">
+        <item name="windowNoTitle">false</item>
+        <item name="windowActionBar">true</item>
+        <item name="windowActionBarOverlay">false</item>
+        <item name="windowActionModeOverlay">false</item>
+        <item name="actionBarPopupTheme">@null</item>
 
-    <style name="Theme.AppCompat.Light.DialogWhenLarge" parent="Theme.Base.AppCompat.Light.DialogWhenLarge"></style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/themes_base.xml -->
-    <eat-comment />
-
-    <style name="Theme.Base" parent="android:Theme"></style>
+        <!-- Used by MediaRouter -->
+        <item name="isLightTheme">false</item>
 
-    <style name="Theme.Base.AppCompat" parent="Theme.Base">
-        <item name="windowActionBar">true</item>
-        <!-- Remove system title bars; we will add the action bar ourselves. -->
-        <item name="android:windowNoTitle">true</item>
-        <item name="buttonBarStyle">@android:style/ButtonBar</item>
-        <item name="buttonBarButtonStyle">@android:style/Widget.Button</item>
         <item name="selectableItemBackground">@drawable/abc_item_background_holo_dark</item>
-        <item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_holo_dark</item>
-        <item name="dividerVertical">@drawable/abc_list_divider_holo_dark</item>
-        <item name="dividerHorizontal">@drawable/abc_list_divider_holo_dark</item>
-        <item name="listPreferredItemHeight">?android:attr/listPreferredItemHeight</item>
-        <item name="listPreferredItemHeightSmall">48dp</item>
-        <item name="listPreferredItemHeightLarge">80dp</item>
-        <item name="listPreferredItemPaddingLeft">8dip</item>
-        <item name="listPreferredItemPaddingRight">8dip</item>
-        <item name="textAppearanceListItem">?android:attr/textAppearanceMedium</item>
-        <item name="textAppearanceListItemSmall">?android:attr/textAppearanceMedium</item>
+        <item name="selectableItemBackgroundBorderless">?attr/selectableItemBackground</item>
+        <item name="borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item>
+        <item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
+
+        <item name="dividerVertical">@drawable/abc_list_divider_mtrl_alpha</item>
+        <item name="dividerHorizontal">@drawable/abc_list_divider_mtrl_alpha</item>
+
+        <!-- Action Bar Styles -->
         <item name="actionBarTabStyle">@style/Widget.AppCompat.ActionBar.TabView</item>
         <item name="actionBarTabBarStyle">@style/Widget.AppCompat.ActionBar.TabBar</item>
         <item name="actionBarTabTextStyle">@style/Widget.AppCompat.ActionBar.TabText</item>
         <item name="actionButtonStyle">@style/Widget.AppCompat.ActionButton</item>
         <item name="actionOverflowButtonStyle">@style/Widget.AppCompat.ActionButton.Overflow</item>
-        <item name="actionBarStyle">@style/Widget.AppCompat.ActionBar</item>
+        <item name="actionOverflowMenuStyle">@style/Widget.AppCompat.PopupMenu.Overflow</item>
+        <item name="actionBarStyle">@style/Widget.AppCompat.ActionBar.Solid</item>
         <item name="actionBarSplitStyle">?attr/actionBarStyle</item>
         <item name="actionBarWidgetTheme">@null</item>
-        <item name="actionBarSize">@dimen/abc_action_bar_default_height</item>
+        <item name="actionBarTheme">@style/ThemeOverlay.AppCompat.ActionBar</item>
+        <item name="actionBarSize">@dimen/abc_action_bar_default_height_material</item>
         <item name="actionBarDivider">?attr/dividerVertical</item>
-        <item name="actionBarItemBackground">?attr/selectableItemBackground</item>
-        <item name="actionMenuTextAppearance">            @style/TextAppearance.AppCompat.Widget.ActionBar.Menu</item>
+        <item name="actionBarItemBackground">?attr/selectableItemBackgroundBorderless</item>
+        <item name="actionMenuTextAppearance">@style/TextAppearance.AppCompat.Widget.ActionBar.Menu</item>
         <item name="actionMenuTextColor">?android:attr/textColorPrimaryDisableOnly</item>
 
         <!-- Dropdown Spinner Attributes -->
 
         <!-- Action Mode -->
         <item name="actionModeStyle">@style/Widget.AppCompat.ActionMode</item>
-        <item name="actionModeBackground">@drawable/abc_cab_background_top_holo_dark</item>
-        <item name="actionModeSplitBackground">@drawable/abc_cab_background_bottom_holo_dark</item>
-        <item name="actionModeCloseDrawable">@drawable/abc_ic_cab_done_holo_dark</item>
+        <item name="actionModeBackground">@drawable/abc_cab_background_top_material</item>
+        <item name="actionModeSplitBackground">?attr/colorPrimaryDark</item>
+        <item name="actionModeCloseDrawable">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
         <item name="actionModeCloseButtonStyle">@style/Widget.AppCompat.ActionButton.CloseMode</item>
 
+        <item name="actionModeCutDrawable">@drawable/abc_ic_menu_cut_mtrl_alpha</item>
+        <item name="actionModeCopyDrawable">@drawable/abc_ic_menu_copy_mtrl_am_alpha</item>
+        <item name="actionModePasteDrawable">@drawable/abc_ic_menu_paste_mtrl_am_alpha</item>
+        <item name="actionModeSelectAllDrawable">@drawable/abc_ic_menu_selectall_mtrl_alpha</item>
+        <item name="actionModeShareDrawable">@drawable/abc_ic_menu_share_mtrl_alpha</item>
+
         <!-- Panel attributes -->
         <item name="panelMenuListWidth">@dimen/abc_panel_menu_list_width</item>
         <item name="panelMenuListTheme">@style/Theme.AppCompat.CompactMenu</item>
-        <item name="android:panelBackground">@drawable/abc_menu_hardkey_panel_holo_dark</item>
+        <item name="panelBackground">@drawable/abc_menu_hardkey_panel_mtrl_mult</item>
+        <item name="android:panelBackground">@android:color/transparent</item>
         <item name="listChoiceBackgroundIndicator">@drawable/abc_list_selector_holo_dark</item>
-    </style>
 
-    <style name="Theme.Base.AppCompat.Dialog.FixedSize" parent="android:Theme.Dialog">
-        <item name="windowFixedWidthMajor">@dimen/dialog_fixed_width_major</item>
-        <item name="windowFixedWidthMinor">@dimen/dialog_fixed_width_minor</item>
-        <item name="windowFixedHeightMajor">@dimen/dialog_fixed_height_major</item>
-        <item name="windowFixedHeightMinor">@dimen/dialog_fixed_height_minor</item>
-        <item name="windowActionBar">true</item>
-        <!-- Remove system title bars; we will add the action bar ourselves. -->
-        <item name="android:windowNoTitle">true</item>
-        <item name="buttonBarStyle">@android:style/ButtonBar</item>
-        <item name="buttonBarButtonStyle">@android:style/Widget.Button</item>
-        <item name="selectableItemBackground">@drawable/abc_item_background_holo_dark</item>
-        <item name="dividerVertical">@drawable/abc_list_divider_holo_dark</item>
-        <item name="dividerHorizontal">@drawable/abc_list_divider_holo_dark</item>
-        <item name="listPreferredItemHeight">?android:attr/listPreferredItemHeight</item>
+        <!-- List attributes -->
+        <item name="textAppearanceListItem">@style/TextAppearance.AppCompat.Subhead</item>
+        <item name="textAppearanceListItemSmall">@style/TextAppearance.AppCompat.Subhead</item>
+        <item name="listPreferredItemHeight">64dp</item>
         <item name="listPreferredItemHeightSmall">48dp</item>
         <item name="listPreferredItemHeightLarge">80dp</item>
-        <item name="listPreferredItemPaddingLeft">8dip</item>
-        <item name="listPreferredItemPaddingRight">8dip</item>
-        <item name="textAppearanceListItem">?android:attr/textAppearanceMedium</item>
-        <item name="textAppearanceListItemSmall">?android:attr/textAppearanceMedium</item>
+        <item name="listPreferredItemPaddingLeft">@dimen/abc_list_item_padding_horizontal_material</item>
+        <item name="listPreferredItemPaddingRight">@dimen/abc_list_item_padding_horizontal_material</item>
 
-        <!-- Action Mode -->
-        <item name="actionModeStyle">@style/Widget.AppCompat.ActionMode</item>
-        <item name="actionModeBackground">@drawable/abc_cab_background_top_holo_dark</item>
-        <item name="actionModeSplitBackground">@drawable/abc_cab_background_bottom_holo_dark</item>
-        <item name="actionModeCloseDrawable">@drawable/abc_ic_cab_done_holo_dark</item>
-        <item name="actionModeCloseButtonStyle">@style/Widget.AppCompat.ActionButton.CloseMode</item>
+        <!-- Spinner styles -->
+        <item name="spinnerStyle">@style/Widget.AppCompat.Spinner</item>
+        <item name="android:spinnerItemStyle">@style/Widget.AppCompat.TextView.SpinnerItem</item>
+        <item name="android:dropDownListViewStyle">@style/Widget.AppCompat.ListView.DropDown</item>
 
-        <!-- Panel attributes -->
-        <item name="panelMenuListWidth">@dimen/abc_panel_menu_list_width</item>
-        <item name="panelMenuListTheme">@style/Theme.AppCompat.CompactMenu</item>
-        <item name="android:panelBackground">@drawable/abc_menu_hardkey_panel_holo_dark</item>
-        <item name="listChoiceBackgroundIndicator">@drawable/abc_list_selector_holo_dark</item>
-    </style>
+        <!-- Required for use of support_simple_spinner_dropdown_item.xml -->
+        <item name="spinnerDropDownItemStyle">@style/Widget.AppCompat.DropDownItem.Spinner</item>
+        <item name="dropdownListPreferredItemHeight">?attr/listPreferredItemHeightSmall</item>
 
-    <style name="Theme.Base.AppCompat.Dialog.Light.FixedSize" parent="Theme.Base.AppCompat.Dialog.FixedSize" />
+        <!-- Popup Menu styles -->
+        <item name="popupMenuStyle">@style/Widget.AppCompat.PopupMenu</item>
+        <item name="textAppearanceLargePopupMenu">@style/TextAppearance.AppCompat.Widget.PopupMenu.Large</item>
+        <item name="textAppearanceSmallPopupMenu">@style/TextAppearance.AppCompat.Widget.PopupMenu.Small</item>
+        <item name="listPopupWindowStyle">@style/Widget.AppCompat.ListPopupWindow</item>
+        <item name="dropDownListViewStyle">?android:attr/dropDownListViewStyle</item>
 
-    <style name="Theme.Base.AppCompat.DialogWhenLarge" parent="Theme.Base.AppCompat"></style>
+        <!-- SearchView attributes -->
+        <item name="searchViewStyle">@style/Widget.AppCompat.SearchView</item>
+        <item name="android:dropDownItemStyle">@style/Widget.AppCompat.DropDownItem.Spinner</item>
+        <item name="textColorSearchUrl">@color/abc_search_url_text</item>
+        <item name="textAppearanceSearchResultTitle">@style/TextAppearance.AppCompat.SearchResult.Title</item>
+        <item name="textAppearanceSearchResultSubtitle">@style/TextAppearance.AppCompat.SearchResult.Subtitle</item>
+
+        <!-- ShareActionProvider attributes -->
+        <item name="activityChooserViewStyle">@style/Widget.AppCompat.ActivityChooserView</item>
 
-    <style name="Theme.Base.AppCompat.Light" parent="Theme.Base.Light">
+        <!-- Toolbar styles -->
+        <item name="toolbarStyle">@style/Widget.AppCompat.Toolbar</item>
+        <item name="toolbarNavigationButtonStyle">@style/Widget.AppCompat.Toolbar.Button.Navigation</item>
+
+        <item name="editTextStyle">@style/Widget.AppCompat.EditText</item>
+        <item name="editTextBackground">@drawable/abc_edit_text_material</item>
+        <item name="editTextColor">?android:attr/textColorPrimary</item>
+        <item name="autoCompleteTextViewStyle">@style/Widget.AppCompat.AutoCompleteTextView</item>
+
+        <!-- Color palette -->
+        <item name="colorPrimaryDark">@color/primary_dark_material_dark</item>
+        <item name="colorPrimary">@color/primary_material_dark</item>
+        <item name="colorAccent">@color/accent_material_dark</item>
+
+        <item name="colorControlNormal">?android:attr/textColorSecondary</item>
+        <item name="colorControlActivated">?attr/colorAccent</item>
+        <item name="colorControlHighlight">@color/ripple_material_dark</item>
+        <item name="colorButtonNormal">@color/button_material_dark</item>
+        <item name="colorSwitchThumbNormal">@color/switch_thumb_material_dark</item>
+        <item name="controlBackground">?attr/selectableItemBackgroundBorderless</item>
+
+        <item name="drawerArrowStyle">@style/Widget.AppCompat.DrawerArrowToggle</item>
+
+        <item name="checkboxStyle">@style/Widget.AppCompat.CompoundButton.CheckBox</item>
+        <item name="radioButtonStyle">@style/Widget.AppCompat.CompoundButton.RadioButton</item>
+        <item name="switchStyle">@style/Widget.AppCompat.CompoundButton.Switch</item>
+
+        <item name="ratingBarStyle">@style/Widget.AppCompat.RatingBar</item>
+        <item name="seekBarStyle">@style/Widget.AppCompat.SeekBar</item>
+
+        <!-- Button styles -->
+        <item name="buttonStyle">@style/Widget.AppCompat.Button</item>
+        <item name="buttonStyleSmall">@style/Widget.AppCompat.Button.Small</item>
+        <item name="android:textAppearanceButton">@style/TextAppearance.AppCompat.Widget.Button</item>
+
+        <item name="imageButtonStyle">@style/Widget.AppCompat.ImageButton</item>
+
+        <item name="buttonBarStyle">@style/Widget.AppCompat.ButtonBar</item>
+        <item name="buttonBarButtonStyle">@style/Widget.AppCompat.Button.ButtonBar.AlertDialog</item>
+        <item name="buttonBarPositiveButtonStyle">?attr/buttonBarButtonStyle</item>
+        <item name="buttonBarNegativeButtonStyle">?attr/buttonBarButtonStyle</item>
+        <item name="buttonBarNeutralButtonStyle">?attr/buttonBarButtonStyle</item>
+
+        <!-- Dialog attributes -->
+        <item name="dialogTheme">@style/Theme.AppCompat.Dialog</item>
+        <item name="dialogPreferredPadding">@dimen/abc_dialog_padding_material</item>
+
+        <item name="alertDialogTheme">@style/Theme.AppCompat.Dialog.Alert</item>
+        <item name="alertDialogStyle">@style/AlertDialog.AppCompat</item>
+        <item name="alertDialogCenterButtons">false</item>
+        <item name="textColorAlertDialogListItem">@color/abc_primary_text_material_dark</item>
+        <item name="listDividerAlertDialog">@null</item>
+
+        <!-- Define these here; ContextThemeWrappers around themes that define them should
+             always clear these values. -->
+        <item name="windowFixedWidthMajor">0dp</item>
+        <item name="windowFixedWidthMinor">0dp</item>
+        <item name="windowFixedHeightMajor">0dp</item>
+        <item name="windowFixedHeightMinor">0dp</item>
+    </style>
+    <style name="Base.V7.Theme.AppCompat.Dialog" parent="Base.Theme.AppCompat">
+        <item name="android:colorBackground">@color/background_floating_material_dark</item>
+        <item name="android:colorBackgroundCacheHint">@null</item>
+
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowTitleStyle">@style/RtlOverlay.DialogWindowTitle.AppCompat</item>
+        <item name="android:windowTitleBackgroundStyle">@style/Base.DialogWindowTitleBackground.AppCompat</item>
+        <item name="android:windowBackground">@drawable/abc_dialog_material_background_dark</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:backgroundDimEnabled">true</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@style/Animation.AppCompat.Dialog</item>
+        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
+
+        <item name="windowActionBar">false</item>
+        <item name="windowActionModeOverlay">true</item>
+
+        <item name="listPreferredItemPaddingLeft">24dip</item>
+        <item name="listPreferredItemPaddingRight">24dip</item>
+
+        <item name="android:listDivider">@null</item>
+    </style>
+    <style name="Base.V7.Theme.AppCompat.Light" parent="Platform.AppCompat.Light">
+        <item name="windowNoTitle">false</item>
         <item name="windowActionBar">true</item>
-        <!-- Remove system title bars; we will add the action bar ourselves. -->
-        <item name="android:windowNoTitle">true</item>
-        <item name="buttonBarStyle">@android:style/ButtonBar</item>
-        <item name="buttonBarButtonStyle">@android:style/Widget.Button</item>
+        <item name="windowActionBarOverlay">false</item>
+        <item name="windowActionModeOverlay">false</item>
+        <item name="actionBarPopupTheme">@null</item>
+
+        <!-- Used by MediaRouter -->
+        <item name="isLightTheme">true</item>
+
         <item name="selectableItemBackground">@drawable/abc_item_background_holo_light</item>
-        <item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_holo_light</item>
-        <item name="dividerVertical">@drawable/abc_list_divider_holo_light</item>
-        <item name="dividerHorizontal">@drawable/abc_list_divider_holo_light</item>
-        <item name="listPreferredItemHeight">?android:attr/listPreferredItemHeight</item>
-        <item name="listPreferredItemHeightSmall">48dp</item>
-        <item name="listPreferredItemHeightLarge">80dp</item>
-        <item name="listPreferredItemPaddingLeft">8dip</item>
-        <item name="listPreferredItemPaddingRight">8dip</item>
-        <item name="textAppearanceListItem">?android:attr/textAppearanceMedium</item>
-        <item name="textAppearanceListItemSmall">?android:attr/textAppearanceMedium</item>
+        <item name="selectableItemBackgroundBorderless">?attr/selectableItemBackground</item>
+        <item name="borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item>
+        <item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
+
+        <item name="dividerVertical">@drawable/abc_list_divider_mtrl_alpha</item>
+        <item name="dividerHorizontal">@drawable/abc_list_divider_mtrl_alpha</item>
 
         <!-- Action Bar Styles -->
         <item name="actionBarTabStyle">@style/Widget.AppCompat.Light.ActionBar.TabView</item>
         <item name="actionBarTabBarStyle">@style/Widget.AppCompat.Light.ActionBar.TabBar</item>
         <item name="actionBarTabTextStyle">@style/Widget.AppCompat.Light.ActionBar.TabText</item>
         <item name="actionButtonStyle">@style/Widget.AppCompat.Light.ActionButton</item>
-        <item name="actionOverflowButtonStyle">            @style/Widget.AppCompat.Light.ActionButton.Overflow</item>
-        <item name="actionBarStyle">@style/Widget.AppCompat.Light.ActionBar</item>
+        <item name="actionOverflowButtonStyle">@style/Widget.AppCompat.Light.ActionButton.Overflow</item>
+        <item name="actionOverflowMenuStyle">@style/Widget.AppCompat.Light.PopupMenu.Overflow</item>
+        <item name="actionBarStyle">@style/Widget.AppCompat.Light.ActionBar.Solid</item>
         <item name="actionBarSplitStyle">?attr/actionBarStyle</item>
         <item name="actionBarWidgetTheme">@null</item>
-        <item name="actionBarSize">@dimen/abc_action_bar_default_height</item>
+        <item name="actionBarTheme">@style/ThemeOverlay.AppCompat.ActionBar</item>
+        <item name="actionBarSize">@dimen/abc_action_bar_default_height_material</item>
         <item name="actionBarDivider">?attr/dividerVertical</item>
-        <item name="actionBarItemBackground">?attr/selectableItemBackground</item>
-        <item name="actionMenuTextAppearance">            @style/TextAppearance.AppCompat.Widget.ActionBar.Menu</item>
+        <item name="actionBarItemBackground">?attr/selectableItemBackgroundBorderless</item>
+        <item name="actionMenuTextAppearance">@style/TextAppearance.AppCompat.Widget.ActionBar.Menu</item>
         <item name="actionMenuTextColor">?android:attr/textColorPrimaryDisableOnly</item>
 
         <!-- Action Mode -->
         <item name="actionModeStyle">@style/Widget.AppCompat.ActionMode</item>
-        <item name="actionModeBackground">@drawable/abc_cab_background_top_holo_light</item>
-        <item name="actionModeSplitBackground">@drawable/abc_cab_background_bottom_holo_light</item>
-        <item name="actionModeCloseDrawable">@drawable/abc_ic_cab_done_holo_light</item>
-        <item name="actionModeCloseButtonStyle">@style/Widget.AppCompat.Light.ActionButton.CloseMode</item>
+        <item name="actionModeBackground">@drawable/abc_cab_background_top_material</item>
+        <item name="actionModeSplitBackground">?attr/colorPrimaryDark</item>
+        <item name="actionModeCloseDrawable">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
+        <item name="actionModeCloseButtonStyle">@style/Widget.AppCompat.ActionButton.CloseMode</item>
+
+        <item name="actionModeCutDrawable">@drawable/abc_ic_menu_cut_mtrl_alpha</item>
+        <item name="actionModeCopyDrawable">@drawable/abc_ic_menu_copy_mtrl_am_alpha</item>
+        <item name="actionModePasteDrawable">@drawable/abc_ic_menu_paste_mtrl_am_alpha</item>
+        <item name="actionModeSelectAllDrawable">@drawable/abc_ic_menu_selectall_mtrl_alpha</item>
+        <item name="actionModeShareDrawable">@drawable/abc_ic_menu_share_mtrl_alpha</item>
 
         <!-- Dropdown Spinner Attributes -->
-        <item name="actionDropDownStyle">            @style/Widget.AppCompat.Light.Spinner.DropDown.ActionBar</item>
+        <item name="actionDropDownStyle">@style/Widget.AppCompat.Light.Spinner.DropDown.ActionBar</item>
 
         <!-- Panel attributes -->
         <item name="panelMenuListWidth">@dimen/abc_panel_menu_list_width</item>
         <item name="panelMenuListTheme">@style/Theme.AppCompat.CompactMenu</item>
-        <item name="android:panelBackground">@drawable/abc_menu_hardkey_panel_holo_light</item>
+        <item name="panelBackground">@drawable/abc_menu_hardkey_panel_mtrl_mult</item>
+        <item name="android:panelBackground">@android:color/transparent</item>
         <item name="listChoiceBackgroundIndicator">@drawable/abc_list_selector_holo_light</item>
-    </style>
-
-    <style name="Theme.Base.AppCompat.Light.DarkActionBar" parent="Theme.Base.AppCompat.Light">
-        <item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_holo_dark</item>
-        <item name="actionOverflowButtonStyle">@style/Widget.AppCompat.ActionButton.Overflow</item>
-        <item name="actionBarStyle">@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse</item>
-        <item name="actionBarWidgetTheme">@style/Theme.AppCompat</item>
-        <item name="actionBarDivider">@drawable/abc_list_divider_holo_dark</item>
-        <item name="actionBarItemBackground">@drawable/abc_item_background_holo_dark</item>
-        <item name="actionBarTabStyle">@style/Widget.AppCompat.Light.ActionBar.TabView.Inverse</item>
-        <item name="actionBarTabBarStyle">@style/Widget.AppCompat.Light.ActionBar.TabBar.Inverse</item>
-        <item name="actionBarTabTextStyle">@style/Widget.AppCompat.Light.ActionBar.TabText.Inverse</item>
-        <item name="actionMenuTextColor">?android:attr/textColorPrimaryInverseDisableOnly</item>
-
-        <!-- Action Mode -->
-        <item name="actionModeStyle">@style/Widget.AppCompat.Light.ActionMode.Inverse</item>
-        <item name="actionModeBackground">@drawable/abc_cab_background_top_holo_dark</item>
-        <item name="actionModeSplitBackground">@drawable/abc_cab_background_bottom_holo_dark</item>
-        <item name="actionModeCloseDrawable">@drawable/abc_ic_cab_done_holo_dark</item>
-        <item name="actionModeCloseButtonStyle">@style/Widget.AppCompat.ActionButton.CloseMode</item>
 
-        <!-- Dropdown Spinner Attributes -->
-        <item name="actionDropDownStyle">@style/Widget.AppCompat.Spinner.DropDown.ActionBar</item>
-
-        <!-- Panel attributes -->
-        <item name="android:panelBackground">@drawable/abc_menu_hardkey_panel_holo_dark</item>
-        <item name="listChoiceBackgroundIndicator">@drawable/abc_list_selector_holo_dark</item>
-    </style>
-
-    <style name="Theme.Base.AppCompat.Light.DialogWhenLarge" parent="Theme.Base.AppCompat.Light"></style>
-
-    <style name="Theme.Base.Light" parent="android:Theme.Light"></style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/styles.xml -->
-    <eat-comment />
-
-    <style name="Widget.AppCompat.ActionBar" parent="Widget.AppCompat.Base.ActionBar"></style>
-
-    <style name="Widget.AppCompat.ActionBar.Solid" parent="Widget.AppCompat.Base.ActionBar.Solid"></style>
-
-    <style name="Widget.AppCompat.ActionBar.TabBar" parent="Widget.AppCompat.Base.ActionBar.TabBar"></style>
-
-    <style name="Widget.AppCompat.ActionBar.TabText" parent="Widget.AppCompat.Base.ActionBar.TabText"></style>
-
-    <style name="Widget.AppCompat.ActionBar.TabView" parent="Widget.AppCompat.Base.ActionBar.TabView"></style>
-
-    <style name="Widget.AppCompat.ActionButton" parent="Widget.AppCompat.Base.ActionButton"></style>
+        <!-- List attributes -->
+        <item name="textAppearanceListItem">@style/TextAppearance.AppCompat.Subhead</item>
+        <item name="textAppearanceListItemSmall">@style/TextAppearance.AppCompat.Subhead</item>
+        <item name="listPreferredItemHeight">64dp</item>
+        <item name="listPreferredItemHeightSmall">48dp</item>
+        <item name="listPreferredItemHeightLarge">80dp</item>
+        <item name="listPreferredItemPaddingLeft">@dimen/abc_list_item_padding_horizontal_material</item>
+        <item name="listPreferredItemPaddingRight">@dimen/abc_list_item_padding_horizontal_material</item>
 
-    <style name="Widget.AppCompat.ActionButton.CloseMode" parent="Widget.AppCompat.Base.ActionButton.CloseMode"></style>
+        <!-- Spinner styles -->
+        <item name="spinnerStyle">@style/Widget.AppCompat.Spinner</item>
+        <item name="android:spinnerItemStyle">@style/Widget.AppCompat.TextView.SpinnerItem</item>
+        <item name="android:dropDownListViewStyle">@style/Widget.AppCompat.ListView.DropDown</item>
 
-    <style name="Widget.AppCompat.ActionButton.Overflow" parent="Widget.AppCompat.Base.ActionButton.Overflow"></style>
+        <!-- Required for use of support_simple_spinner_dropdown_item.xml -->
+        <item name="spinnerDropDownItemStyle">@style/Widget.AppCompat.DropDownItem.Spinner</item>
+        <item name="dropdownListPreferredItemHeight">?attr/listPreferredItemHeightSmall</item>
 
-    <style name="Widget.AppCompat.ActionMode" parent="Widget.AppCompat.Base.ActionMode"></style>
+        <!-- Popup Menu styles -->
+        <item name="popupMenuStyle">@style/Widget.AppCompat.Light.PopupMenu</item>
+        <item name="textAppearanceLargePopupMenu">@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Large</item>
+        <item name="textAppearanceSmallPopupMenu">@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small</item>
+        <item name="listPopupWindowStyle">@style/Widget.AppCompat.ListPopupWindow</item>
+        <item name="dropDownListViewStyle">?android:attr/dropDownListViewStyle</item>
 
-    <style name="Widget.AppCompat.ActivityChooserView" parent="Widget.AppCompat.Base.ActivityChooserView"></style>
+        <!-- SearchView attributes -->
+        <item name="searchViewStyle">@style/Widget.AppCompat.Light.SearchView</item>
+        <item name="android:dropDownItemStyle">@style/Widget.AppCompat.DropDownItem.Spinner</item>
+        <item name="textColorSearchUrl">@color/abc_search_url_text</item>
+        <item name="textAppearanceSearchResultTitle">@style/TextAppearance.AppCompat.SearchResult.Title</item>
+        <item name="textAppearanceSearchResultSubtitle">@style/TextAppearance.AppCompat.SearchResult.Subtitle</item>
 
-    <style name="Widget.AppCompat.AutoCompleteTextView" parent="Widget.AppCompat.Base.AutoCompleteTextView"></style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/styles_base.xml -->
-    <eat-comment />
+        <!-- ShareActionProvider attributes -->
+        <item name="activityChooserViewStyle">@style/Widget.AppCompat.ActivityChooserView</item>
 
-    <style name="Widget.AppCompat.Base.ActionBar" parent="">
-        <item name="displayOptions">useLogo|showHome|showTitle</item>
+        <!-- Toolbar styles -->
+        <item name="toolbarStyle">@style/Widget.AppCompat.Toolbar</item>
+        <item name="toolbarNavigationButtonStyle">@style/Widget.AppCompat.Toolbar.Button.Navigation</item>
+
+        <item name="editTextStyle">@style/Widget.AppCompat.EditText</item>
+        <item name="editTextBackground">@drawable/abc_edit_text_material</item>
+        <item name="editTextColor">?android:attr/textColorPrimary</item>
+        <item name="autoCompleteTextViewStyle">@style/Widget.AppCompat.AutoCompleteTextView</item>
+
+        <!-- Color palette -->
+        <item name="colorPrimaryDark">@color/primary_dark_material_light</item>
+        <item name="colorPrimary">@color/primary_material_light</item>
+        <item name="colorAccent">@color/accent_material_light</item>
+
+        <item name="colorControlNormal">?android:attr/textColorSecondary</item>
+        <item name="colorControlActivated">?attr/colorAccent</item>
+        <item name="colorControlHighlight">@color/ripple_material_light</item>
+        <item name="colorButtonNormal">@color/button_material_light</item>
+        <item name="colorSwitchThumbNormal">@color/switch_thumb_material_light</item>
+        <item name="controlBackground">?attr/selectableItemBackgroundBorderless</item>
+
+        <item name="drawerArrowStyle">@style/Widget.AppCompat.DrawerArrowToggle</item>
+
+        <item name="checkboxStyle">@style/Widget.AppCompat.CompoundButton.CheckBox</item>
+        <item name="radioButtonStyle">@style/Widget.AppCompat.CompoundButton.RadioButton</item>
+        <item name="switchStyle">@style/Widget.AppCompat.CompoundButton.Switch</item>
+
+        <item name="ratingBarStyle">@style/Widget.AppCompat.RatingBar</item>
+        <item name="seekBarStyle">@style/Widget.AppCompat.SeekBar</item>
+
+        <!-- Button styles -->
+        <item name="buttonStyle">@style/Widget.AppCompat.Button</item>
+        <item name="buttonStyleSmall">@style/Widget.AppCompat.Button.Small</item>
+        <item name="android:textAppearanceButton">@style/TextAppearance.AppCompat.Widget.Button</item>
+
+        <item name="imageButtonStyle">@style/Widget.AppCompat.ImageButton</item>
+
+        <item name="buttonBarStyle">@style/Widget.AppCompat.ButtonBar</item>
+        <item name="buttonBarButtonStyle">@style/Widget.AppCompat.Button.ButtonBar.AlertDialog</item>
+        <item name="buttonBarPositiveButtonStyle">?attr/buttonBarButtonStyle</item>
+        <item name="buttonBarNegativeButtonStyle">?attr/buttonBarButtonStyle</item>
+        <item name="buttonBarNeutralButtonStyle">?attr/buttonBarButtonStyle</item>
+
+        <!-- Dialog attributes -->
+        <item name="dialogTheme">@style/Theme.AppCompat.Light.Dialog</item>
+        <item name="dialogPreferredPadding">@dimen/abc_dialog_padding_material</item>
+
+        <item name="alertDialogTheme">@style/Theme.AppCompat.Light.Dialog.Alert</item>
+        <item name="alertDialogStyle">@style/AlertDialog.AppCompat.Light</item>
+        <item name="alertDialogCenterButtons">false</item>
+        <item name="textColorAlertDialogListItem">@color/abc_primary_text_material_light</item>
+        <item name="listDividerAlertDialog">@null</item>
+
+        <!-- Define these here; ContextThemeWrappers around themes that define them should
+             always clear these values. -->
+        <item name="windowFixedWidthMajor">0dp</item>
+        <item name="windowFixedWidthMinor">0dp</item>
+        <item name="windowFixedHeightMajor">0dp</item>
+        <item name="windowFixedHeightMinor">0dp</item>
+    </style>
+    <style name="Base.V7.Theme.AppCompat.Light.Dialog" parent="Base.Theme.AppCompat.Light">
+        <item name="android:colorBackground">@color/background_floating_material_light</item>
+        <item name="android:colorBackgroundCacheHint">@null</item>
+
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowTitleStyle">@style/RtlOverlay.DialogWindowTitle.AppCompat</item>
+        <item name="android:windowTitleBackgroundStyle">@style/Base.DialogWindowTitleBackground.AppCompat</item>
+        <item name="android:windowBackground">@drawable/abc_dialog_material_background_light</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:backgroundDimEnabled">true</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@style/Animation.AppCompat.Dialog</item>
+        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
+
+        <item name="windowActionBar">false</item>
+        <item name="windowActionModeOverlay">true</item>
+
+        <item name="listPreferredItemPaddingLeft">24dip</item>
+        <item name="listPreferredItemPaddingRight">24dip</item>
+
+        <item name="android:listDivider">@null</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles_base.xml -->
+    <eat-comment/>
+    <style name="Base.V7.Widget.AppCompat.AutoCompleteTextView" parent="android:Widget.AutoCompleteTextView">
+        <item name="android:dropDownSelector">?attr/listChoiceBackgroundIndicator</item>
+        <item name="android:popupBackground">@drawable/abc_popup_background_mtrl_mult</item>
+        <item name="android:background">?attr/editTextBackground</item>
+        <item name="android:textColor">?attr/editTextColor</item>
+        <item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item>
+    </style>
+    <style name="Base.V7.Widget.AppCompat.EditText" parent="android:Widget.EditText">
+        <item name="android:background">?attr/editTextBackground</item>
+        <item name="android:textColor">?attr/editTextColor</item>
+        <item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item>
+    </style>
+    <style name="Base.Widget.AppCompat.ActionBar" parent="">
+        <item name="displayOptions">showTitle</item>
         <item name="divider">?attr/dividerVertical</item>
         <item name="height">?attr/actionBarSize</item>
-        <item name="homeLayout">@layout/abc_action_bar_home</item>
+
         <item name="titleTextStyle">@style/TextAppearance.AppCompat.Widget.ActionBar.Title</item>
         <item name="subtitleTextStyle">@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle</item>
-        <item name="background">@drawable/abc_ab_transparent_dark_holo</item>
-        <item name="backgroundStacked">@drawable/abc_ab_stacked_transparent_dark_holo</item>
-        <item name="backgroundSplit">@drawable/abc_ab_bottom_transparent_dark_holo</item>
+
+        <item name="background">@null</item>
+        <item name="backgroundStacked">@null</item>
+        <item name="backgroundSplit">@null</item>
+
         <item name="actionButtonStyle">@style/Widget.AppCompat.ActionButton</item>
         <item name="actionOverflowButtonStyle">@style/Widget.AppCompat.ActionButton.Overflow</item>
-        <item name="progressBarStyle">@style/Widget.AppCompat.ProgressBar.Horizontal</item>
-        <item name="indeterminateProgressStyle">@style/Widget.AppCompat.ProgressBar</item>
-    </style>
 
-    <style name="Widget.AppCompat.Base.ActionBar.Solid" parent="Widget.AppCompat.Base.ActionBar">
-        <item name="background">@drawable/abc_ab_solid_dark_holo</item>
-        <item name="backgroundStacked">@drawable/abc_ab_stacked_solid_dark_holo</item>
-        <item name="backgroundSplit">@drawable/abc_ab_bottom_solid_dark_holo</item>
+        <item name="android:gravity">center_vertical</item>
+        <item name="contentInsetStart">@dimen/abc_action_bar_content_inset_material</item>
+        <item name="contentInsetEnd">@dimen/abc_action_bar_content_inset_material</item>
+        <item name="elevation">8dp</item>
+        <item name="popupTheme">?attr/actionBarPopupTheme</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.ActionBar.TabBar" parent="">
+    <style name="Base.Widget.AppCompat.ActionBar.Solid">
+        <item name="background">?attr/colorPrimary</item>
+        <item name="backgroundStacked">?attr/colorPrimary</item>
+        <item name="backgroundSplit">?attr/colorPrimary</item>
+    </style>
+    <style name="Base.Widget.AppCompat.ActionBar.TabBar" parent="">
         <item name="divider">?attr/actionBarDivider</item>
         <item name="showDividers">middle</item>
-        <item name="dividerPadding">12dip</item>
+        <item name="dividerPadding">8dip</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.ActionBar.TabText" parent="">
-        <item name="android:textAppearance">@null</item>
-        <item name="android:textColor">?android:attr/textColorPrimaryDisableOnly</item>
+    <style name="Base.Widget.AppCompat.ActionBar.TabText" parent="">
+        <item name="android:textAppearance">@style/TextAppearance.AppCompat.Medium</item>
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
         <item name="android:textSize">12sp</item>
         <item name="android:textStyle">bold</item>
         <item name="android:ellipsize">marquee</item>
         <item name="android:maxLines">2</item>
+        <item name="android:maxWidth">180dp</item>
         <item name="textAllCaps">true</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.ActionBar.TabView" parent="">
-        <item name="android:background">@drawable/abc_tab_indicator_ab_holo</item>
+    <style name="Base.Widget.AppCompat.ActionBar.TabView" parent="">
+        <item name="android:background">@drawable/abc_tab_indicator_material</item>
         <item name="android:gravity">center_horizontal</item>
         <item name="android:paddingLeft">16dip</item>
         <item name="android:paddingRight">16dip</item>
+        <item name="android:layout_width">0dip</item>
+        <item name="android:layout_weight">1</item>
         <item name="android:minWidth">80dip</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.ActionButton" parent="">
+    <style name="Base.Widget.AppCompat.ActionButton" parent="RtlUnderlay.Widget.AppCompat.ActionButton">
         <item name="android:background">?attr/actionBarItemBackground</item>
-        <item name="android:paddingLeft">12dip</item>
-        <item name="android:paddingRight">12dip</item>
-        <item name="android:minWidth">@dimen/abc_action_button_min_width</item>
-        <item name="android:minHeight">?attr/actionBarSize</item>
+        <item name="android:minWidth">@dimen/abc_action_button_min_width_material</item>
+        <item name="android:minHeight">@dimen/abc_action_button_min_height_material</item>
+        <item name="android:scaleType">center</item>
         <item name="android:gravity">center</item>
         <item name="android:maxLines">2</item>
         <item name="textAllCaps">@bool/abc_config_actionMenuItemAllCaps</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.ActionButton.CloseMode" parent="Widget.AppCompat.Base.ActionButton"></style>
-
-    <style name="Widget.AppCompat.Base.ActionButton.Overflow" parent="Widget.AppCompat.Base.ActionButton">
-        <item name="android:src">@drawable/abc_ic_menu_moreoverflow_normal_holo_dark</item>
+    <style name="Base.Widget.AppCompat.ActionButton.CloseMode">
+        <item name="android:background">?attr/controlBackground</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.ActionMode" parent="">
+    <style name="Base.Widget.AppCompat.ActionButton.Overflow" parent="RtlUnderlay.Widget.AppCompat.ActionButton.Overflow">
+        <item name="android:src">@drawable/abc_ic_menu_moreoverflow_mtrl_alpha</item>
+        <item name="android:background">?attr/actionBarItemBackground</item>
+        <item name="android:contentDescription">@string/abc_action_menu_overflow_description</item>
+        <item name="android:minWidth">@dimen/abc_action_button_min_width_overflow_material</item>
+        <item name="android:minHeight">@dimen/abc_action_button_min_height_material</item>
+    </style>
+    <style name="Base.Widget.AppCompat.ActionMode" parent="">
         <item name="background">?attr/actionModeBackground</item>
         <item name="backgroundSplit">?attr/actionModeSplitBackground</item>
         <item name="height">?attr/actionBarSize</item>
         <item name="titleTextStyle">@style/TextAppearance.AppCompat.Widget.ActionMode.Title</item>
         <item name="subtitleTextStyle">@style/TextAppearance.AppCompat.Widget.ActionMode.Subtitle</item>
+        <item name="closeItemLayout">@layout/abc_action_mode_close_item_material</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.ActivityChooserView" parent="">
+    <style name="Base.Widget.AppCompat.ActivityChooserView" parent="">
         <item name="android:gravity">center</item>
-        <item name="android:background">@drawable/abc_ab_share_pack_holo_dark</item>
+        <item name="android:background">@drawable/abc_ab_share_pack_mtrl_alpha</item>
         <item name="divider">?attr/dividerVertical</item>
         <item name="showDividers">middle</item>
         <item name="dividerPadding">6dip</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.AutoCompleteTextView" parent="android:Widget.AutoCompleteTextView">
-        <item name="android:textColor">?attr/actionMenuTextColor</item>
-        <item name="android:dropDownSelector">@drawable/abc_list_selector_holo_dark</item>
-        <item name="android:popupBackground">@drawable/abc_menu_dropdown_panel_holo_dark</item>
+    <style name="Base.Widget.AppCompat.AutoCompleteTextView" parent="Base.V7.Widget.AppCompat.AutoCompleteTextView"/>
+    <style name="Base.Widget.AppCompat.Button" parent="android:Widget">
+        <item name="android:background">@drawable/abc_btn_default_mtrl_shape</item>
+        <item name="android:textAppearance">?android:attr/textAppearanceButton</item>
+        <item name="android:minHeight">48dip</item>
+        <item name="android:minWidth">88dip</item>
+        <item name="android:focusable">true</item>
+        <item name="android:clickable">true</item>
+        <item name="android:gravity">center_vertical|center_horizontal</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.DropDownItem.Spinner" parent="">
+    <style name="Base.Widget.AppCompat.Button.Borderless">
+        <item name="android:background">@drawable/abc_btn_borderless_material</item>
+    </style>
+    <style name="Base.Widget.AppCompat.Button.Borderless.Colored">
+        <item name="android:textColor">?attr/colorAccent</item>
+    </style>
+    <style name="Base.Widget.AppCompat.Button.ButtonBar.AlertDialog" parent="Widget.AppCompat.Button.Borderless.Colored">
+        <item name="android:minWidth">64dp</item>
+        <item name="android:maxLines">2</item>
+        <item name="android:minHeight">@dimen/abc_alert_dialog_button_bar_height</item>
+    </style>
+    <style name="Base.Widget.AppCompat.Button.Colored">
+        <item name="android:background">@drawable/abc_btn_colored_material</item>
+        <item name="android:textAppearance">@style/TextAppearance.AppCompat.Widget.Button.Inverse</item>
+    </style>
+    <style name="Base.Widget.AppCompat.Button.Small">
+        <item name="android:minHeight">48dip</item>
+        <item name="android:minWidth">48dip</item>
+    </style>
+    <style name="Base.Widget.AppCompat.ButtonBar" parent="android:Widget">
+        <item name="android:background">@null</item>
+    </style>
+    <style name="Base.Widget.AppCompat.ButtonBar.AlertDialog"/>
+    <style name="Base.Widget.AppCompat.CompoundButton.CheckBox" parent="android:Widget.CompoundButton.CheckBox">
+        <item name="android:button">?android:attr/listChoiceIndicatorMultiple</item>
+        <item name="android:background">?attr/controlBackground</item>
+    </style>
+    <style name="Base.Widget.AppCompat.CompoundButton.RadioButton" parent="android:Widget.CompoundButton.RadioButton">
+        <item name="android:button">?android:attr/listChoiceIndicatorSingle</item>
+        <item name="android:background">?attr/controlBackground</item>
+    </style>
+    <style name="Base.Widget.AppCompat.CompoundButton.Switch" parent="android:Widget.CompoundButton">
+        <item name="track">@drawable/abc_switch_track_mtrl_alpha</item>
+        <item name="android:thumb">@drawable/abc_switch_thumb_material</item>
+        <item name="switchTextAppearance">@style/TextAppearance.AppCompat.Widget.Switch</item>
+        <item name="android:background">?attr/controlBackground</item>
+        <item name="showText">false</item>
+        <item name="switchPadding">@dimen/abc_switch_padding</item>
+        <item name="android:textOn">@string/abc_capital_on</item>
+        <item name="android:textOff">@string/abc_capital_off</item>
+    </style>
+    <style name="Base.Widget.AppCompat.DrawerArrowToggle" parent="Base.Widget.AppCompat.DrawerArrowToggle.Common">
+        <item name="barLength">18dp</item>
+        <item name="gapBetweenBars">3dp</item>
+        <item name="drawableSize">24dp</item>
+    </style>
+    <style name="Base.Widget.AppCompat.DrawerArrowToggle.Common" parent="">
+        <item name="color">?android:attr/textColorSecondary</item>
+        <item name="spinBars">true</item>
+        <item name="thickness">2dp</item>
+        <item name="arrowShaftLength">16dp</item>
+        <item name="arrowHeadLength">8dp</item>
+    </style>
+    <style name="Base.Widget.AppCompat.DropDownItem.Spinner" parent="">
         <item name="android:textAppearance">@style/TextAppearance.AppCompat.Widget.DropDownItem</item>
         <item name="android:paddingLeft">8dp</item>
         <item name="android:paddingRight">8dp</item>
         <item name="android:gravity">center_vertical</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.ListPopupWindow" parent="">
-        <item name="android:dropDownSelector">@drawable/abc_list_selector_holo_dark</item>
-        <item name="android:popupBackground">@drawable/abc_menu_dropdown_panel_holo_dark</item>
+    <style name="Base.Widget.AppCompat.EditText" parent="Base.V7.Widget.AppCompat.EditText"/>
+    <style name="Base.Widget.AppCompat.ImageButton" parent="android:Widget.ImageButton">
+        <item name="android:background">@drawable/abc_btn_default_mtrl_shape</item>
+    </style>
+    <style name="Base.Widget.AppCompat.Light.ActionBar" parent="Base.Widget.AppCompat.ActionBar">
+        <item name="actionButtonStyle">@style/Widget.AppCompat.Light.ActionButton</item>
+        <item name="actionOverflowButtonStyle">@style/Widget.AppCompat.Light.ActionButton.Overflow</item>
+    </style>
+    <style name="Base.Widget.AppCompat.Light.ActionBar.Solid">
+        <item name="background">?attr/colorPrimary</item>
+        <item name="backgroundStacked">?attr/colorPrimary</item>
+        <item name="backgroundSplit">?attr/colorPrimary</item>
+    </style>
+    <style name="Base.Widget.AppCompat.Light.ActionBar.TabBar" parent="Base.Widget.AppCompat.ActionBar.TabBar">
+    </style>
+    <style name="Base.Widget.AppCompat.Light.ActionBar.TabText" parent="Base.Widget.AppCompat.ActionBar.TabText">
+    </style>
+    <style name="Base.Widget.AppCompat.Light.ActionBar.TabText.Inverse" parent="Base.Widget.AppCompat.Light.ActionBar.TabText">
+        <item name="android:textAppearance">@style/TextAppearance.AppCompat.Medium.Inverse</item>
+    </style>
+    <style name="Base.Widget.AppCompat.Light.ActionBar.TabView" parent="Base.Widget.AppCompat.ActionBar.TabView">
+        <item name="android:background">@drawable/abc_tab_indicator_material</item>
+    </style>
+    <style name="Base.Widget.AppCompat.Light.PopupMenu" parent="@style/Widget.AppCompat.ListPopupWindow">
+    </style>
+    <style name="Base.Widget.AppCompat.Light.PopupMenu.Overflow">
+        <item name="overlapAnchor">true</item>
+        <item name="android:dropDownHorizontalOffset">-4dip</item>
+    </style>
+    <style name="Base.Widget.AppCompat.ListPopupWindow" parent="">
+        <item name="android:dropDownSelector">?attr/listChoiceBackgroundIndicator</item>
+        <item name="android:popupBackground">@drawable/abc_popup_background_mtrl_mult</item>
         <item name="android:dropDownVerticalOffset">0dip</item>
         <item name="android:dropDownHorizontalOffset">0dip</item>
         <item name="android:dropDownWidth">wrap_content</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.ListView.DropDown" parent="android:Widget.ListView">
-        <item name="android:listSelector">@drawable/abc_list_selector_holo_dark</item>
+    <style name="Base.Widget.AppCompat.ListView" parent="android:Widget.ListView">
+        <item name="android:listSelector">?attr/listChoiceBackgroundIndicator</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.ListView.Menu" parent="android:Widget.ListView.Menu">
+    <style name="Base.Widget.AppCompat.ListView.DropDown">
+        <item name="android:divider">@null</item>
+    </style>
+    <style name="Base.Widget.AppCompat.ListView.Menu" parent="android:Widget.ListView.Menu">
         <item name="android:listSelector">?attr/listChoiceBackgroundIndicator</item>
         <item name="android:divider">?attr/dividerHorizontal</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.PopupMenu" parent="@style/Widget.AppCompat.Base.ListPopupWindow"></style>
-
-    <style name="Widget.AppCompat.Base.ProgressBar" parent="android:Widget.ProgressBar">
+    <style name="Base.Widget.AppCompat.PopupMenu" parent="@style/Widget.AppCompat.ListPopupWindow">
+    </style>
+    <style name="Base.Widget.AppCompat.PopupMenu.Overflow">
+        <item name="overlapAnchor">true</item>
+        <item name="android:dropDownHorizontalOffset">-4dip</item>
+    </style>
+    <style name="Base.Widget.AppCompat.PopupWindow" parent="android:Widget.PopupWindow">
+    </style>
+    <style name="Base.Widget.AppCompat.ProgressBar" parent="android:Widget.ProgressBar">
         <item name="android:minWidth">@dimen/abc_action_bar_progress_bar_size</item>
         <item name="android:maxWidth">@dimen/abc_action_bar_progress_bar_size</item>
         <item name="android:minHeight">@dimen/abc_action_bar_progress_bar_size</item>
         <item name="android:maxHeight">@dimen/abc_action_bar_progress_bar_size</item>
     </style>
-
-    <style name="Widget.AppCompat.Base.ProgressBar.Horizontal" parent="android:Widget.ProgressBar.Horizontal"></style>
-
-    <style name="Widget.AppCompat.Base.Spinner" parent="">
-        <item name="spinnerMode">dropdown</item>
-        <item name="android:popupBackground">@drawable/abc_menu_dropdown_panel_holo_dark</item>
-        <item name="android:dropDownSelector">@drawable/abc_list_selector_holo_dark</item>
+    <style name="Base.Widget.AppCompat.ProgressBar.Horizontal" parent="android:Widget.ProgressBar.Horizontal">
+    </style>
+    <style name="Base.Widget.AppCompat.RatingBar" parent="android:Widget.RatingBar">
+        <item name="android:progressDrawable">@drawable/abc_ratingbar_full_material</item>
+        <item name="android:indeterminateDrawable">@drawable/abc_ratingbar_full_material</item>
+    </style>
+    <style name="Base.Widget.AppCompat.SearchView" parent="android:Widget">
+        <item name="layout">@layout/abc_search_view</item>
+        <item name="queryBackground">@drawable/abc_textfield_search_material</item>
+        <item name="submitBackground">@drawable/abc_textfield_search_material</item>
+        <item name="closeIcon">@drawable/abc_ic_clear_mtrl_alpha</item>
+        <item name="searchIcon">@drawable/abc_ic_search_api_mtrl_alpha</item>
+        <item name="searchHintIcon">@drawable/abc_ic_search_api_mtrl_alpha</item>
+        <item name="goIcon">@drawable/abc_ic_go_search_api_mtrl_alpha</item>
+        <item name="voiceIcon">@drawable/abc_ic_voice_search_api_mtrl_alpha</item>
+        <item name="commitIcon">@drawable/abc_ic_commit_search_api_mtrl_alpha</item>
+        <item name="suggestionRowLayout">@layout/abc_search_dropdown_item_icons_2line</item>
+    </style>
+    <style name="Base.Widget.AppCompat.SearchView.ActionBar">
+        <item name="queryBackground">@null</item>
+        <item name="submitBackground">@null</item>
+        <item name="searchHintIcon">@null</item>
+        <item name="defaultQueryHint">@string/abc_search_hint</item>
+    </style>
+    <style name="Base.Widget.AppCompat.SeekBar" parent="android:Widget">
+        <item name="android:indeterminateOnly">false</item>
+        <item name="android:progressDrawable">@drawable/abc_seekbar_track_material</item>
+        <item name="android:indeterminateDrawable">@drawable/abc_seekbar_track_material</item>
+        <item name="android:thumb">@drawable/abc_seekbar_thumb_material</item>
+        <item name="android:focusable">true</item>
+        <item name="android:paddingLeft">16dip</item>
+        <item name="android:paddingRight">16dip</item>
+    </style>
+    <style name="Base.Widget.AppCompat.Spinner" parent="Platform.Widget.AppCompat.Spinner">
+        <item name="android:background">@drawable/abc_spinner_mtrl_am_alpha</item>
+        <item name="android:popupBackground">@drawable/abc_popup_background_mtrl_mult</item>
+        <item name="android:dropDownSelector">?attr/listChoiceBackgroundIndicator</item>
         <item name="android:dropDownVerticalOffset">0dip</item>
         <item name="android:dropDownHorizontalOffset">0dip</item>
         <item name="android:dropDownWidth">wrap_content</item>
-        <item name="android:gravity">left|center_vertical</item>
         <item name="android:clickable">true</item>
-        <item name="android:background">@drawable/abc_spinner_ab_holo_dark</item>
+        <item name="android:gravity">left|start|center_vertical</item>
+        <item name="overlapAnchor">true</item>
     </style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/styles.xml -->
-    <eat-comment />
-
-    <style name="Widget.AppCompat.DropDownItem.Spinner" parent="Widget.AppCompat.Base.DropDownItem.Spinner"></style>
-
-    <style name="Widget.AppCompat.Light.ActionBar" parent="Widget.AppCompat.Light.Base.ActionBar"></style>
-
-    <style name="Widget.AppCompat.Light.ActionBar.Solid" parent="Widget.AppCompat.Light.Base.ActionBar.Solid"></style>
-
-    <style name="Widget.AppCompat.Light.ActionBar.Solid.Inverse" parent="Widget.AppCompat.Light.Base.ActionBar.Solid.Inverse"></style>
-
-    <style name="Widget.AppCompat.Light.ActionBar.TabBar" parent="Widget.AppCompat.Light.Base.ActionBar.TabBar"></style>
-
-    <style name="Widget.AppCompat.Light.ActionBar.TabBar.Inverse" parent="Widget.AppCompat.Light.Base.ActionBar.TabBar.Inverse" />
-
-    <style name="Widget.AppCompat.Light.ActionBar.TabText" parent="Widget.AppCompat.Light.Base.ActionBar.TabText"></style>
-
-    <style name="Widget.AppCompat.Light.ActionBar.TabText.Inverse" parent="Widget.AppCompat.Light.Base.ActionBar.TabText.Inverse"></style>
-
-    <style name="Widget.AppCompat.Light.ActionBar.TabView" parent="Widget.AppCompat.Light.Base.ActionBar.TabView"></style>
-
-    <style name="Widget.AppCompat.Light.ActionBar.TabView.Inverse" parent="Widget.AppCompat.Light.Base.ActionBar.TabView.Inverse"></style>
-
-    <style name="Widget.AppCompat.Light.ActionButton" parent="Widget.AppCompat.Light.Base.ActionButton"></style>
-
-    <style name="Widget.AppCompat.Light.ActionButton.CloseMode" parent="Widget.AppCompat.Light.Base.ActionButton.CloseMode"></style>
-
-    <style name="Widget.AppCompat.Light.ActionButton.Overflow" parent="Widget.AppCompat.Light.Base.ActionButton.Overflow"></style>
-
-    <style name="Widget.AppCompat.Light.ActionMode.Inverse" parent="Widget.AppCompat.Light.Base.ActionMode.Inverse"></style>
-
-    <style name="Widget.AppCompat.Light.ActivityChooserView" parent="Widget.AppCompat.Light.Base.ActivityChooserView"></style>
-
-    <style name="Widget.AppCompat.Light.AutoCompleteTextView" parent="Widget.AppCompat.Light.Base.AutoCompleteTextView"></style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/styles_base.xml -->
-    <eat-comment />
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar" parent="Widget.AppCompat.Base.ActionBar">
-        <item name="background">@drawable/abc_ab_transparent_light_holo</item>
-        <item name="backgroundStacked">@drawable/abc_ab_stacked_transparent_light_holo</item>
-        <item name="backgroundSplit">@drawable/abc_ab_bottom_transparent_light_holo</item>
-        <item name="actionButtonStyle">@style/Widget.AppCompat.Light.ActionButton</item>
-        <item name="actionOverflowButtonStyle">@style/Widget.AppCompat.Light.ActionButton.Overflow</item>
-        <item name="progressBarStyle">@style/Widget.AppCompat.ProgressBar.Horizontal</item>
-        <item name="indeterminateProgressStyle">@style/Widget.AppCompat.ProgressBar</item>
+    <style name="Base.Widget.AppCompat.Spinner.Underlined">
+        <item name="android:background">@drawable/abc_spinner_textfield_background_material</item>
     </style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.Solid" parent="Widget.AppCompat.Light.Base.ActionBar">
-        <item name="background">@drawable/abc_ab_solid_light_holo</item>
-        <item name="backgroundStacked">@drawable/abc_ab_stacked_solid_light_holo</item>
-        <item name="backgroundSplit">@drawable/abc_ab_bottom_solid_light_holo</item>
+    <style name="Base.Widget.AppCompat.TextView.SpinnerItem" parent="android:Widget.TextView.SpinnerItem">
+        <item name="android:textAppearance">@style/TextAppearance.AppCompat.Widget.TextView.SpinnerItem</item>
+        <item name="android:paddingLeft">8dp</item>
+        <item name="android:paddingRight">8dp</item>
     </style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.Solid.Inverse" parent="Widget.AppCompat.Base.ActionBar.Solid">
-        <item name="titleTextStyle">            @style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse</item>
-        <item name="subtitleTextStyle">            @style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse</item>
-        <item name="actionButtonStyle">@style/Widget.AppCompat.ActionButton</item>
-        <item name="actionOverflowButtonStyle">@style/Widget.AppCompat.ActionButton.Overflow</item>
+    <style name="Base.Widget.AppCompat.Toolbar" parent="android:Widget">
+        <item name="titleTextAppearance">@style/TextAppearance.Widget.AppCompat.Toolbar.Title</item>
+        <item name="subtitleTextAppearance">@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle</item>
+        <item name="android:minHeight">?attr/actionBarSize</item>
+        <item name="titleMargins">4dp</item>
+        <item name="maxButtonHeight">56dp</item>
+        <item name="collapseIcon">?attr/homeAsUpIndicator</item>
+        <item name="collapseContentDescription">@string/abc_toolbar_collapse_description</item>
+        <item name="contentInsetStart">16dp</item>
+        <item name="android:paddingLeft">@dimen/abc_action_bar_default_padding_start_material</item>
+        <item name="android:paddingRight">@dimen/abc_action_bar_default_padding_end_material</item>
     </style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.TabBar" parent="Widget.AppCompat.Base.ActionBar.TabBar"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.TabBar.Inverse" parent="Widget.AppCompat.Light.Base.ActionBar.TabBar"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.TabText" parent="Widget.AppCompat.Base.ActionBar.TabText"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.TabText.Inverse" parent="Widget.AppCompat.Light.Base.ActionBar.TabText">
-        <item name="android:textColor">?android:attr/textColorPrimaryInverseDisableOnly</item>
+    <style name="Base.Widget.AppCompat.Toolbar.Button.Navigation" parent="android:Widget">
+        <item name="android:background">?attr/controlBackground</item>
+        <item name="android:minWidth">56dp</item>
+        <item name="android:scaleType">center</item>
     </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/themes_base.xml -->
+    <eat-comment/>
+    <style name="Platform.AppCompat" parent="android:Theme">
+        <item name="android:windowNoTitle">true</item>
 
-    <style name="Widget.AppCompat.Light.Base.ActionBar.TabView" parent="Widget.AppCompat.Base.ActionBar.TabView"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionBar.TabView.Inverse" parent="Widget.AppCompat.Light.Base.ActionBar.TabView"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionButton" parent="Widget.AppCompat.Base.ActionButton"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionButton.CloseMode" parent="Widget.AppCompat.Light.Base.ActionButton"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ActionButton.Overflow" parent="Widget.AppCompat.Light.Base.ActionButton">
-        <item name="android:src">@drawable/abc_ic_menu_moreoverflow_normal_holo_light</item>
+        <!-- Window colors -->
+        <item name="android:colorForeground">@color/foreground_material_dark</item>
+        <item name="android:colorForegroundInverse">@color/foreground_material_light</item>
+        <item name="android:colorBackground">@color/background_material_dark</item>
+        <item name="android:colorBackgroundCacheHint">@color/abc_background_cache_hint_selector_material_dark</item>
+        <item name="android:disabledAlpha">@dimen/abc_disabled_alpha_material_dark</item>
+        <item name="android:backgroundDimAmount">0.6</item>
+        <item name="android:windowBackground">@color/background_material_dark</item>
+
+        <!-- Text colors -->
+        <item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item>
+        <item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_light</item>
+        <item name="android:textColorPrimaryDisableOnly">@color/abc_primary_text_disable_only_material_dark</item>
+        <item name="android:textColorSecondary">@color/abc_secondary_text_material_dark</item>
+        <item name="android:textColorSecondaryInverse">@color/abc_secondary_text_material_light</item>
+        <item name="android:textColorTertiary">@color/abc_secondary_text_material_dark</item>
+        <item name="android:textColorTertiaryInverse">@color/abc_secondary_text_material_light</item>
+        <item name="android:textColorHint">@color/hint_foreground_material_dark</item>
+        <item name="android:textColorHintInverse">@color/hint_foreground_material_light</item>
+        <item name="android:textColorHighlight">@color/highlighted_text_material_dark</item>
+        <item name="android:textColorLink">?attr/colorAccent</item>
+
+        <!-- Text styles -->
+        <item name="android:textAppearance">@style/TextAppearance.AppCompat</item>
+        <item name="android:textAppearanceInverse">@style/TextAppearance.AppCompat.Inverse</item>
+        <item name="android:textAppearanceLarge">@style/TextAppearance.AppCompat.Large</item>
+        <item name="android:textAppearanceLargeInverse">@style/TextAppearance.AppCompat.Large.Inverse</item>
+        <item name="android:textAppearanceMedium">@style/TextAppearance.AppCompat.Medium</item>
+        <item name="android:textAppearanceMediumInverse">@style/TextAppearance.AppCompat.Medium.Inverse</item>
+        <item name="android:textAppearanceSmall">@style/TextAppearance.AppCompat.Small</item>
+        <item name="android:textAppearanceSmallInverse">@style/TextAppearance.AppCompat.Small.Inverse</item>
+
+        <item name="android:listChoiceIndicatorSingle">@drawable/abc_btn_radio_material</item>
+        <item name="android:listChoiceIndicatorMultiple">@drawable/abc_btn_check_material</item>
     </style>
+    <style name="Platform.AppCompat.Light" parent="android:Theme.Light">
+        <item name="android:windowNoTitle">true</item>
 
-    <style name="Widget.AppCompat.Light.Base.ActionMode.Inverse" parent="Widget.AppCompat.Base.ActionMode">
-        <item name="titleTextStyle">            @style/TextAppearance.AppCompat.Widget.ActionMode.Title.Inverse</item>
-        <item name="subtitleTextStyle">            @style/TextAppearance.AppCompat.Widget.ActionMode.Subtitle.Inverse</item>
+        <!-- Window colors -->
+        <item name="android:colorForeground">@color/foreground_material_light</item>
+        <item name="android:colorForegroundInverse">@color/foreground_material_dark</item>
+        <item name="android:colorBackground">@color/background_material_light</item>
+        <item name="android:colorBackgroundCacheHint">@color/abc_background_cache_hint_selector_material_light</item>
+        <item name="android:disabledAlpha">@dimen/abc_disabled_alpha_material_light</item>
+        <item name="android:backgroundDimAmount">0.6</item>
+        <item name="android:windowBackground">@color/background_material_light</item>
+
+        <!-- Text colors -->
+        <item name="android:textColorPrimary">@color/abc_primary_text_material_light</item>
+        <item name="android:textColorPrimaryInverse">@color/abc_primary_text_material_dark</item>
+        <item name="android:textColorSecondary">@color/abc_secondary_text_material_light</item>
+        <item name="android:textColorSecondaryInverse">@color/abc_secondary_text_material_dark</item>
+        <item name="android:textColorTertiary">@color/abc_secondary_text_material_light</item>
+        <item name="android:textColorTertiaryInverse">@color/abc_secondary_text_material_dark</item>
+        <item name="android:textColorPrimaryDisableOnly">@color/abc_primary_text_disable_only_material_light</item>
+        <item name="android:textColorPrimaryInverseDisableOnly">@color/abc_primary_text_disable_only_material_dark</item>
+        <item name="android:textColorHint">@color/hint_foreground_material_light</item>
+        <item name="android:textColorHintInverse">@color/hint_foreground_material_dark</item>
+        <item name="android:textColorHighlight">@color/highlighted_text_material_light</item>
+        <item name="android:textColorLink">?attr/colorAccent</item>
+
+        <!-- Text styles -->
+        <item name="android:textAppearance">@style/TextAppearance.AppCompat</item>
+        <item name="android:textAppearanceInverse">@style/TextAppearance.AppCompat.Inverse</item>
+        <item name="android:textAppearanceLarge">@style/TextAppearance.AppCompat.Large</item>
+        <item name="android:textAppearanceLargeInverse">@style/TextAppearance.AppCompat.Large.Inverse</item>
+        <item name="android:textAppearanceMedium">@style/TextAppearance.AppCompat.Medium</item>
+        <item name="android:textAppearanceMediumInverse">@style/TextAppearance.AppCompat.Medium.Inverse</item>
+        <item name="android:textAppearanceSmall">@style/TextAppearance.AppCompat.Small</item>
+        <item name="android:textAppearanceSmallInverse">@style/TextAppearance.AppCompat.Small.Inverse</item>
+
+        <item name="android:listChoiceIndicatorSingle">@drawable/abc_btn_radio_material</item>
+        <item name="android:listChoiceIndicatorMultiple">@drawable/abc_btn_check_material</item>
     </style>
+    <style name="Platform.ThemeOverlay.AppCompat" parent=""/>
+    <style name="Platform.ThemeOverlay.AppCompat.Dark">
+        <!-- Action Bar styles -->
+        <item name="actionBarItemBackground">@drawable/abc_item_background_holo_dark</item>
+        <item name="actionDropDownStyle">@style/Widget.AppCompat.Spinner.DropDown.ActionBar</item>
+        <item name="selectableItemBackground">@drawable/abc_item_background_holo_dark</item>
 
-    <style name="Widget.AppCompat.Light.Base.ActivityChooserView" parent="Widget.AppCompat.Base.ActivityChooserView">
-        <item name="android:background">@drawable/abc_ab_share_pack_holo_light</item>
+        <!-- SearchView styles -->
+        <item name="android:autoCompleteTextViewStyle">@style/Widget.AppCompat.AutoCompleteTextView</item>
+        <item name="android:dropDownItemStyle">@style/Widget.AppCompat.DropDownItem.Spinner</item>
     </style>
+    <style name="Platform.ThemeOverlay.AppCompat.Light">
+        <item name="actionBarItemBackground">@drawable/abc_item_background_holo_light</item>
+        <item name="actionDropDownStyle">@style/Widget.AppCompat.Light.Spinner.DropDown.ActionBar</item>
+        <item name="selectableItemBackground">@drawable/abc_item_background_holo_light</item>
 
-    <style name="Widget.AppCompat.Light.Base.AutoCompleteTextView" parent="android:Widget.AutoCompleteTextView">
-        <item name="android:textColor">?attr/actionMenuTextColor</item>
-        <item name="android:dropDownSelector">@drawable/abc_list_selector_holo_light</item>
-        <item name="android:popupBackground">@drawable/abc_menu_dropdown_panel_holo_light</item>
+        <!-- SearchView attributes -->
+        <item name="android:autoCompleteTextViewStyle">@style/Widget.AppCompat.Light.AutoCompleteTextView</item>
+        <item name="android:dropDownItemStyle">@style/Widget.AppCompat.DropDownItem.Spinner</item>
     </style>
-
-    <style name="Widget.AppCompat.Light.Base.DropDownItem.Spinner" parent="Widget.AppCompat.Base.DropDownItem.Spinner"></style>
-
-    <style name="Widget.AppCompat.Light.Base.ListPopupWindow" parent="">
-        <item name="android:dropDownSelector">@drawable/abc_list_selector_holo_light</item>
-        <item name="android:popupBackground">@drawable/abc_menu_dropdown_panel_holo_light</item>
-        <item name="android:dropDownVerticalOffset">0dip</item>
-        <item name="android:dropDownHorizontalOffset">0dip</item>
-        <item name="android:dropDownWidth">wrap_content</item>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles_base.xml -->
+    <eat-comment/>
+    <style name="Platform.Widget.AppCompat.Spinner" parent="android:Widget.Spinner"/>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles_rtl.xml -->
+    <eat-comment/>
+    <style name="RtlOverlay.DialogWindowTitle.AppCompat" parent="Base.DialogWindowTitle.AppCompat">
     </style>
-
-    <style name="Widget.AppCompat.Light.Base.ListView.DropDown" parent="android:Widget.ListView">
-        <item name="android:listSelector">@drawable/abc_list_selector_holo_light</item>
+    <style name="RtlOverlay.Widget.AppCompat.ActionBar.TitleItem" parent="android:Widget">
+        <item name="android:layout_gravity">center_vertical|left</item>
+        <item name="android:paddingRight">8dp</item>
     </style>
-
-    <style name="Widget.AppCompat.Light.Base.PopupMenu" parent="@style/Widget.AppCompat.Light.Base.ListPopupWindow"></style>
-
-    <style name="Widget.AppCompat.Light.Base.Spinner" parent="Widget.AppCompat.Base.Spinner">
-        <item name="android:dropDownSelector">@drawable/abc_list_selector_holo_light</item>
-        <item name="android:popupBackground">@drawable/abc_menu_dropdown_panel_holo_light</item>
-        <item name="android:background">@drawable/abc_spinner_ab_holo_light</item>
+    <style name="RtlOverlay.Widget.AppCompat.DialogTitle.Icon" parent="android:Widget">
+        <item name="android:layout_marginRight">8dp</item>
     </style>
-    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/klp-ub-dev/frameworks/support/v7/appcompat/res/values/styles.xml -->
-    <eat-comment />
-
-    <style name="Widget.AppCompat.Light.DropDownItem.Spinner" parent="Widget.AppCompat.Light.Base.DropDownItem.Spinner"></style>
-
-    <style name="Widget.AppCompat.Light.ListPopupWindow" parent="Widget.AppCompat.Light.Base.ListPopupWindow"></style>
-
-    <style name="Widget.AppCompat.Light.ListView.DropDown" parent="Widget.AppCompat.Light.Base.ListView.DropDown"></style>
-
-    <style name="Widget.AppCompat.Light.PopupMenu" parent="Widget.AppCompat.Light.Base.PopupMenu"></style>
-
-    <style name="Widget.AppCompat.Light.Spinner.DropDown.ActionBar" parent="Widget.AppCompat.Light.Base.Spinner"></style>
-
-    <style name="Widget.AppCompat.ListPopupWindow" parent="Widget.AppCompat.Base.ListPopupWindow"></style>
-
-    <style name="Widget.AppCompat.ListView.DropDown" parent="Widget.AppCompat.Base.ListView.DropDown"></style>
-
-    <style name="Widget.AppCompat.ListView.Menu" parent="Widget.AppCompat.Base.ListView.Menu"></style>
-
-    <style name="Widget.AppCompat.PopupMenu" parent="Widget.AppCompat.Base.PopupMenu"></style>
-
-    <style name="Widget.AppCompat.ProgressBar" parent="Widget.AppCompat.Base.ProgressBar"></style>
-
-    <style name="Widget.AppCompat.ProgressBar.Horizontal" parent="Widget.AppCompat.Base.ProgressBar.Horizontal"></style>
-
-    <style name="Widget.AppCompat.Spinner.DropDown.ActionBar" parent="Widget.AppCompat.Base.Spinner"></style>
-
-</resources>
+    <style name="RtlOverlay.Widget.AppCompat.PopupMenuItem" parent="android:Widget">
+        <item name="android:paddingRight">16dp</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.PopupMenuItem.InternalGroup" parent="android:Widget">
+        <item name="android:layout_marginLeft">16dp</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.PopupMenuItem.Text" parent="android:Widget">
+        <item name="android:layout_alignParentLeft">true</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.Search.DropDown" parent="android:Widget">
+        <item name="android:paddingLeft">@dimen/abc_dropdownitem_text_padding_left</item>
+        <item name="android:paddingRight">4dp</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.Search.DropDown.Icon1" parent="android:Widget">
+        <item name="android:layout_alignParentLeft">true</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.Search.DropDown.Icon2" parent="android:Widget">
+        <item name="android:layout_toLeftOf">@id/edit_query</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.Search.DropDown.Query" parent="android:Widget">
+        <item name="android:layout_alignParentRight">true</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.Search.DropDown.Text" parent="Base.Widget.AppCompat.DropDownItem.Spinner">
+        <item name="android:layout_toLeftOf">@android:id/icon2</item>
+        <item name="android:layout_toRightOf">@android:id/icon1</item>
+    </style>
+    <style name="RtlOverlay.Widget.AppCompat.SearchView.MagIcon" parent="android:Widget">
+        <item name="android:layout_marginLeft">@dimen/abc_dropdownitem_text_padding_left</item>
+    </style>
+    <style name="RtlUnderlay.Widget.AppCompat.ActionButton" parent="android:Widget">
+        <item name="android:paddingLeft">12dp</item>
+        <item name="android:paddingRight">12dp</item>
+    </style>
+    <style name="RtlUnderlay.Widget.AppCompat.ActionButton.Overflow" parent="Base.Widget.AppCompat.ActionButton">
+        <item name="android:paddingLeft">@dimen/abc_action_bar_overflow_padding_start_material</item>
+        <item name="android:paddingRight">@dimen/abc_action_bar_overflow_padding_end_material</item>
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles.xml -->
+    <eat-comment/>
+    <style name="TextAppearance.AppCompat" parent="Base.TextAppearance.AppCompat"/>
+    <style name="TextAppearance.AppCompat.Body1" parent="Base.TextAppearance.AppCompat.Body1"/>
+    <style name="TextAppearance.AppCompat.Body2" parent="Base.TextAppearance.AppCompat.Body2"/>
+    <style name="TextAppearance.AppCompat.Button" parent="Base.TextAppearance.AppCompat.Button"/>
+    <style name="TextAppearance.AppCompat.Caption" parent="Base.TextAppearance.AppCompat.Caption"/>
+    <style name="TextAppearance.AppCompat.Display1" parent="Base.TextAppearance.AppCompat.Display1"/>
+    <style name="TextAppearance.AppCompat.Display2" parent="Base.TextAppearance.AppCompat.Display2"/>
+    <style name="TextAppearance.AppCompat.Display3" parent="Base.TextAppearance.AppCompat.Display3"/>
+    <style name="TextAppearance.AppCompat.Display4" parent="Base.TextAppearance.AppCompat.Display4"/>
+    <style name="TextAppearance.AppCompat.Headline" parent="Base.TextAppearance.AppCompat.Headline"/>
+    <style name="TextAppearance.AppCompat.Inverse" parent="Base.TextAppearance.AppCompat.Inverse"/>
+    <style name="TextAppearance.AppCompat.Large" parent="Base.TextAppearance.AppCompat.Large"/>
+    <style name="TextAppearance.AppCompat.Large.Inverse" parent="Base.TextAppearance.AppCompat.Large.Inverse"/>
+    <style name="TextAppearance.AppCompat.Light.SearchResult.Subtitle" parent="TextAppearance.AppCompat.SearchResult.Subtitle"/>
+    <style name="TextAppearance.AppCompat.Light.SearchResult.Title" parent="TextAppearance.AppCompat.SearchResult.Title"/>
+    <style name="TextAppearance.AppCompat.Light.Widget.PopupMenu.Large" parent="Base.TextAppearance.AppCompat.Light.Widget.PopupMenu.Large">
+    </style>
+    <style name="TextAppearance.AppCompat.Light.Widget.PopupMenu.Small" parent="Base.TextAppearance.AppCompat.Light.Widget.PopupMenu.Small">
+    </style>
+    <style name="TextAppearance.AppCompat.Medium" parent="Base.TextAppearance.AppCompat.Medium"/>
+    <style name="TextAppearance.AppCompat.Medium.Inverse" parent="Base.TextAppearance.AppCompat.Medium.Inverse"/>
+    <style name="TextAppearance.AppCompat.Menu" parent="Base.TextAppearance.AppCompat.Menu"/>
+    <style name="TextAppearance.AppCompat.SearchResult.Subtitle" parent="Base.TextAppearance.AppCompat.SearchResult.Subtitle">
+    </style>
+    <style name="TextAppearance.AppCompat.SearchResult.Title" parent="Base.TextAppearance.AppCompat.SearchResult.Title">
+    </style>
+    <style name="TextAppearance.AppCompat.Small" parent="Base.TextAppearance.AppCompat.Small"/>
+    <style name="TextAppearance.AppCompat.Small.Inverse" parent="Base.TextAppearance.AppCompat.Small.Inverse"/>
+    <style name="TextAppearance.AppCompat.Subhead" parent="Base.TextAppearance.AppCompat.Subhead"/>
+    <style name="TextAppearance.AppCompat.Subhead.Inverse" parent="Base.TextAppearance.AppCompat.Subhead.Inverse"/>
+    <style name="TextAppearance.AppCompat.Title" parent="Base.TextAppearance.AppCompat.Title"/>
+    <style name="TextAppearance.AppCompat.Title.Inverse" parent="Base.TextAppearance.AppCompat.Title.Inverse"/>
+    <style name="TextAppearance.AppCompat.Widget.ActionBar.Menu" parent="Base.TextAppearance.AppCompat.Widget.ActionBar.Menu">
+    </style>
+    <style name="TextAppearance.AppCompat.Widget.ActionBar.Subtitle" parent="Base.TextAppearance.AppCompat.Widget.ActionBar.Subtitle"/>
+    <style name="TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse" parent="Base.TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse">
+    </style>
+    <style name="TextAppearance.AppCompat.Widget.ActionBar.Title" parent="Base.TextAppearance.AppCompat.Widget.ActionBar.Title"/>
+    <style name="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse" parent="Base.TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
+    </style>
+    <style name="TextAppearance.AppCompat.Widget.ActionMode.Subtitle" parent="Base.TextAppearance.AppCompat.Widget.ActionMode.Subtitle">
+    </style>
+    <style name="TextAppearance.AppCompat.Widget.ActionMode.Subtitle.Inverse" parent="TextAppearance.AppCompat.Widget.ActionMode.Subtitle"/>
+    <style name="TextAppearance.AppCompat.Widget.ActionMode.Title" parent="Base.TextAppearance.AppCompat.Widget.ActionMode.Title">
+    </style>
+    <style name="TextAppearance.AppCompat.Widget.ActionMode.Title.Inverse" parent="TextAppearance.AppCompat.Widget.ActionMode.Title"/>
+    <style name="TextAppearance.AppCompat.Widget.Button" parent="Base.TextAppearance.AppCompat.Widget.Button"/>
+    <style name="TextAppearance.AppCompat.Widget.Button.Inverse" parent="Base.TextAppearance.AppCompat.Widget.Button.Inverse"/>
+    <style name="TextAppearance.AppCompat.Widget.DropDownItem" parent="Base.TextAppearance.AppCompat.Widget.DropDownItem">
+    </style>
+    <style name="TextAppearance.AppCompat.Widget.PopupMenu.Large" parent="Base.TextAppearance.AppCompat.Widget.PopupMenu.Large">
+    </style>
+    <style name="TextAppearance.AppCompat.Widget.PopupMenu.Small" parent="Base.TextAppearance.AppCompat.Widget.PopupMenu.Small">
+    </style>
+    <style name="TextAppearance.AppCompat.Widget.Switch" parent="Base.TextAppearance.AppCompat.Widget.Switch"/>
+    <style name="TextAppearance.AppCompat.Widget.TextView.SpinnerItem" parent="Base.TextAppearance.AppCompat.Widget.TextView.SpinnerItem"/>
+    <style name="TextAppearance.StatusBar.EventContent" parent=""/>
+    <style name="TextAppearance.StatusBar.EventContent.Info" parent=""/>
+    <style name="TextAppearance.StatusBar.EventContent.Line2" parent=""/>
+    <style name="TextAppearance.StatusBar.EventContent.Time" parent=""/>
+    <style name="TextAppearance.StatusBar.EventContent.Title" parent=""/>
+    <style name="TextAppearance.Widget.AppCompat.ExpandedMenu.Item" parent="Base.TextAppearance.Widget.AppCompat.ExpandedMenu.Item">
+    </style>
+    <style name="TextAppearance.Widget.AppCompat.Toolbar.Subtitle" parent="Base.TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
+    </style>
+    <style name="TextAppearance.Widget.AppCompat.Toolbar.Title" parent="Base.TextAppearance.Widget.AppCompat.Toolbar.Title">
+    </style>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/themes.xml -->
+    <eat-comment/>
+    <style name="Theme.AppCompat" parent="Base.Theme.AppCompat"/>
+    <style name="Theme.AppCompat.CompactMenu" parent="Base.Theme.AppCompat.CompactMenu"/>
+    <style name="Theme.AppCompat.Dialog" parent="Base.Theme.AppCompat.Dialog"/>
+    <style name="Theme.AppCompat.Dialog.Alert" parent="Base.Theme.AppCompat.Dialog.Alert"/>
+    <style name="Theme.AppCompat.Dialog.MinWidth" parent="Base.Theme.AppCompat.Dialog.MinWidth"/>
+    <style name="Theme.AppCompat.DialogWhenLarge" parent="Base.Theme.AppCompat.DialogWhenLarge">
+    </style>
+    <style name="Theme.AppCompat.Light" parent="Base.Theme.AppCompat.Light"/>
+    <style name="Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light.DarkActionBar"/>
+    <style name="Theme.AppCompat.Light.Dialog" parent="Base.Theme.AppCompat.Light.Dialog"/>
+    <style name="Theme.AppCompat.Light.Dialog.Alert" parent="Base.Theme.AppCompat.Light.Dialog.Alert"/>
+    <style name="Theme.AppCompat.Light.Dialog.MinWidth" parent="Base.Theme.AppCompat.Light.Dialog.MinWidth"/>
+    <style name="Theme.AppCompat.Light.DialogWhenLarge" parent="Base.Theme.AppCompat.Light.DialogWhenLarge">
+    </style>
+    <style name="Theme.AppCompat.Light.NoActionBar">
+        <item name="windowActionBar">false</item>
+        <item name="windowNoTitle">true</item>
+    </style>
+    <style name="Theme.AppCompat.NoActionBar">
+        <item name="windowActionBar">false</item>
+        <item name="windowNoTitle">true</item>
+    </style>
+    <style name="ThemeOverlay.AppCompat" parent="Base.ThemeOverlay.AppCompat"/>
+    <style name="ThemeOverlay.AppCompat.ActionBar" parent="Base.ThemeOverlay.AppCompat.ActionBar"/>
+    <style name="ThemeOverlay.AppCompat.Dark" parent="Base.ThemeOverlay.AppCompat.Dark"/>
+    <style name="ThemeOverlay.AppCompat.Dark.ActionBar" parent="Base.ThemeOverlay.AppCompat.Dark.ActionBar"/>
+    <style name="ThemeOverlay.AppCompat.Light" parent="Base.ThemeOverlay.AppCompat.Light"/>
+    <!-- From: file:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/v7/appcompat/res/values/styles.xml -->
+    <eat-comment/>
+    <style name="Widget.AppCompat.ActionBar" parent="Base.Widget.AppCompat.ActionBar">
+    </style>
+    <style name="Widget.AppCompat.ActionBar.Solid" parent="Base.Widget.AppCompat.ActionBar.Solid">
+    </style>
+    <style name="Widget.AppCompat.ActionBar.TabBar" parent="Base.Widget.AppCompat.ActionBar.TabBar">
+    </style>
+    <style name="Widget.AppCompat.ActionBar.TabText" parent="Base.Widget.AppCompat.ActionBar.TabText">
+    </style>
+    <style name="Widget.AppCompat.ActionBar.TabView" parent="Base.Widget.AppCompat.ActionBar.TabView">
+    </style>
+    <style name="Widget.AppCompat.ActionButton" parent="Base.Widget.AppCompat.ActionButton"/>
+    <style name="Widget.AppCompat.ActionButton.CloseMode" parent="Base.Widget.AppCompat.ActionButton.CloseMode"/>
+    <style name="Widget.AppCompat.ActionButton.Overflow" parent="Base.Widget.AppCompat.ActionButton.Overflow"/>
+    <style name="Widget.AppCompat.ActionMode" parent="Base.Widget.AppCompat.ActionMode">
+    </style>
+    <style name="Widget.AppCompat.ActivityChooserView" parent="Base.Widget.AppCompat.ActivityChooserView">
+    </style>
+    <style name="Widget.AppCompat.AutoCompleteTextView" parent="Base.Widget.AppCompat.AutoCompleteTextView">
+    </style>
+    <style name="Widget.AppCompat.Button" parent="Base.Widget.AppCompat.Button"/>
+    <style name="Widget.AppCompat.Button.Borderless" parent="Base.Widget.AppCompat.Button.Borderless"/>
+    <style name="Widget.AppCompat.Button.Borderless.Colored" parent="Base.Widget.AppCompat.Button.Borderless.Colored"/>
+    <style name="Widget.AppCompat.Button.ButtonBar.AlertDialog" parent="Base.Widget.AppCompat.Button.ButtonBar.AlertDialog"/>
+    <style name="Widget.AppCompat.Button.Colored" parent="Base.Widget.AppCompat.Button.Colored"/>
+    <style name="Widget.AppCompat.Button.Small" parent="Base.Widget.AppCompat.Button.Small"/>
+    <style name="Widget.AppCompat.ButtonBar" parent="Base.Widget.AppCompat.ButtonBar"/>
+    <style name="Widget.AppCompat.ButtonBar.AlertDialog" parent="Base.Widget.AppCompat.ButtonBar.AlertDialog"/>
+    <style name="Widget.AppCompat.CompoundButton.CheckBox" parent="Base.Widget.AppCompat.CompoundButton.CheckBox"/>
+    <style name="Widget.AppCompat.CompoundButton.RadioButton" parent="Base.Widget.AppCompat.CompoundButton.RadioButton"/>
+    <style name="Widget.AppCompat.CompoundButton.Switch" parent="Base.Widget.AppCompat.CompoundButton.Switch"/>
+    <style name="Widget.AppCompat.DrawerArrowToggle" parent="Base.Widget.AppCompat.DrawerArrowToggle">
+        <item name="color">?attr/colorControlNormal</item>
+    </style>
+    <style name="Widget.AppCompat.DropDownItem.Spinner" parent="RtlOverlay.Widget.AppCompat.Search.DropDown.Text"/>
+    <style name="Widget.AppCompat.EditText" parent="Base.Widget.AppCompat.EditText"/>
+    <style name="Widget.AppCompat.ImageButton" parent="Base.Widget.AppCompat.ImageButton"/>
+    <style name="Widget.AppCompat.Light.ActionBar" parent="Base.Widget.AppCompat.Light.ActionBar">
+    </style>
+    <style name="Widget.AppCompat.Light.ActionBar.Solid" parent="Base.Widget.AppCompat.Light.ActionBar.Solid">
+    </style>
+    <style name="Widget.AppCompat.Light.ActionBar.Solid.Inverse"/>
+    <style name="Widget.AppCompat.Light.ActionBar.TabBar" parent="Base.Widget.AppCompat.Light.ActionBar.TabBar">
+    </style>
+    <style name="Widget.AppCompat.Light.ActionBar.TabBar.Inverse"/>
+    <style name="Widget.AppCompat.Light.ActionBar.TabText" parent="Base.Widget.AppCompat.Light.ActionBar.TabText">
+    </style>
+    <style name="Widget.AppCompat.Light.ActionBar.TabText.Inverse" parent="Base.Widget.AppCompat.Light.ActionBar.TabText.Inverse">
+    </style>
+    <style name="Widget.AppCompat.Light.ActionBar.TabView" parent="Base.Widget.AppCompat.Light.ActionBar.TabView">
+    </style>
+    <style name="Widget.AppCompat.Light.ActionBar.TabView.Inverse"/>
+    <style name="Widget.AppCompat.Light.ActionButton" parent="Widget.AppCompat.ActionButton"/>
+    <style name="Widget.AppCompat.Light.ActionButton.CloseMode" parent="Widget.AppCompat.ActionButton.CloseMode"/>
+    <style name="Widget.AppCompat.Light.ActionButton.Overflow" parent="Widget.AppCompat.ActionButton.Overflow"/>
+    <style name="Widget.AppCompat.Light.ActionMode.Inverse" parent="Widget.AppCompat.ActionMode"/>
+    <style name="Widget.AppCompat.Light.ActivityChooserView" parent="Widget.AppCompat.ActivityChooserView"/>
+    <style name="Widget.AppCompat.Light.AutoCompleteTextView" parent="Widget.AppCompat.AutoCompleteTextView"/>
+    <style name="Widget.AppCompat.Light.DropDownItem.Spinner" parent="Widget.AppCompat.DropDownItem.Spinner"/>
+    <style name="Widget.AppCompat.Light.ListPopupWindow" parent="Widget.AppCompat.ListPopupWindow"/>
+    <style name="Widget.AppCompat.Light.ListView.DropDown" parent="Widget.AppCompat.ListView.DropDown"/>
+    <style name="Widget.AppCompat.Light.PopupMenu" parent="Base.Widget.AppCompat.Light.PopupMenu">
+    </style>
+    <style name="Widget.AppCompat.Light.PopupMenu.Overflow" parent="Base.Widget.AppCompat.Light.PopupMenu.Overflow">
+    </style>
+    <style name="Widget.AppCompat.Light.SearchView" parent="Widget.AppCompat.SearchView"/>
+    <style name="Widget.AppCompat.Light.Spinner.DropDown.ActionBar" parent="Widget.AppCompat.Spinner.DropDown.ActionBar"/>
+    <style name="Widget.AppCompat.ListPopupWindow" parent="Base.Widget.AppCompat.ListPopupWindow">
+    </style>
+    <style name="Widget.AppCompat.ListView" parent="Base.Widget.AppCompat.ListView"/>
+    <style name="Widget.AppCompat.ListView.DropDown" parent="Base.Widget.AppCompat.ListView.DropDown"/>
+    <style name="Widget.AppCompat.ListView.Menu" parent="Base.Widget.AppCompat.ListView.Menu">
+    </style>
+    <style name="Widget.AppCompat.PopupMenu" parent="Base.Widget.AppCompat.PopupMenu">
+    </style>
+    <style name="Widget.AppCompat.PopupMenu.Overflow" parent="Base.Widget.AppCompat.PopupMenu.Overflow">
+    </style>
+    <style name="Widget.AppCompat.PopupWindow" parent="Base.Widget.AppCompat.PopupWindow">
+    </style>
+    <style name="Widget.AppCompat.ProgressBar" parent="Base.Widget.AppCompat.ProgressBar">
+    </style>
+    <style name="Widget.AppCompat.ProgressBar.Horizontal" parent="Base.Widget.AppCompat.ProgressBar.Horizontal">
+    </style>
+    <style name="Widget.AppCompat.RatingBar" parent="Base.Widget.AppCompat.RatingBar"/>
+    <style name="Widget.AppCompat.SearchView" parent="Base.Widget.AppCompat.SearchView"/>
+    <style name="Widget.AppCompat.SearchView.ActionBar" parent="Base.Widget.AppCompat.SearchView.ActionBar"/>
+    <style name="Widget.AppCompat.SeekBar" parent="Base.Widget.AppCompat.SeekBar"/>
+    <style name="Widget.AppCompat.Spinner" parent="Base.Widget.AppCompat.Spinner"/>
+    <style name="Widget.AppCompat.Spinner.DropDown"/>
+    <style name="Widget.AppCompat.Spinner.DropDown.ActionBar"/>
+    <style name="Widget.AppCompat.Spinner.Underlined" parent="Base.Widget.AppCompat.Spinner.Underlined"/>
+    <style name="Widget.AppCompat.TextView.SpinnerItem" parent="Base.Widget.AppCompat.TextView.SpinnerItem"/>
+    <style name="Widget.AppCompat.Toolbar" parent="Base.Widget.AppCompat.Toolbar"/>
+    <style name="Widget.AppCompat.Toolbar.Button.Navigation" parent="Base.Widget.AppCompat.Toolbar.Button.Navigation"/>
+</resources>
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/src/.gitignore b/libs/android-support-appcompat-v7-exploded-aar/src/.gitignore
deleted file mode 100644 (file)
index 86d0cb2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# Ignore everything in this directory
-*
-# Except this file
-!.gitignore
\ No newline at end of file
diff --git a/libs/android-support-appcompat-v7-exploded-aar/src/.readme b/libs/android-support-appcompat-v7-exploded-aar/src/.readme
new file mode 100644 (file)
index 0000000..4bcebad
--- /dev/null
@@ -0,0 +1,2 @@
+This hidden file is there to ensure there is an src folder.
+Once we support binary library this will go away.
\ No newline at end of file
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/.classpath b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/.classpath
new file mode 100644 (file)
index 0000000..7bc01d9
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="src" path="src"/>
+       <classpathentry kind="src" path="gen"/>
+       <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+       <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+       <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
+       <classpathentry kind="output" path="bin/classes"/>
+</classpath>
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/AndroidManifest.xml b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/AndroidManifest.xml
new file mode 100644 (file)
index 0000000..f29e987
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest
+    package="com.getbase.floatingactionbutton"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:versionCode="15"
+    android:versionName="1.10.1" >
+
+    <uses-sdk
+        android:minSdkVersion="14"
+        android:targetSdkVersion="22" />
+
+    <application />
+
+</manifest>
\ No newline at end of file
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/R.txt b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/R.txt
new file mode 100644 (file)
index 0000000..c6d5664
--- /dev/null
@@ -0,0 +1,55 @@
+int attr fab_addButtonColorNormal 0x7f010009
+int attr fab_addButtonColorPressed 0x7f010008
+int attr fab_addButtonPlusIconColor 0x7f01000b
+int attr fab_addButtonSize 0x7f01000a
+int attr fab_addButtonStrokeVisible 0x7f01000c
+int attr fab_colorDisabled 0x7f010002
+int attr fab_colorNormal 0x7f010003
+int attr fab_colorPressed 0x7f010001
+int attr fab_expandDirection 0x7f01000f
+int attr fab_icon 0x7f010004
+int attr fab_labelStyle 0x7f01000d
+int attr fab_labelsPosition 0x7f01000e
+int attr fab_plusIconColor 0x7f010000
+int attr fab_size 0x7f010005
+int attr fab_stroke_visible 0x7f010007
+int attr fab_title 0x7f010006
+int dimen fab_actions_spacing 0x7f030000
+int dimen fab_icon_size 0x7f030001
+int dimen fab_labels_margin 0x7f030002
+int dimen fab_plus_icon_size 0x7f030003
+int dimen fab_plus_icon_stroke 0x7f030004
+int dimen fab_shadow_offset 0x7f030005
+int dimen fab_shadow_radius 0x7f030006
+int dimen fab_size_mini 0x7f030007
+int dimen fab_size_normal 0x7f030008
+int dimen fab_stroke_width 0x7f030009
+int drawable fab_bg_mini 0x7f020000
+int drawable fab_bg_normal 0x7f020001
+int id down 0x7f040006
+int id fab_expand_menu_button 0x7f040000
+int id fab_label 0x7f040001
+int id left 0x7f040004
+int id mini 0x7f040002
+int id normal 0x7f040003
+int id right 0x7f040005
+int id up 0x7f040007
+int[] styleable AddFloatingActionButton { 0x7f010000 }
+int styleable AddFloatingActionButton_fab_plusIconColor 0
+int[] styleable FloatingActionButton { 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006, 0x7f010007 }
+int styleable FloatingActionButton_fab_colorDisabled 1
+int styleable FloatingActionButton_fab_colorNormal 2
+int styleable FloatingActionButton_fab_colorPressed 0
+int styleable FloatingActionButton_fab_icon 3
+int styleable FloatingActionButton_fab_size 4
+int styleable FloatingActionButton_fab_stroke_visible 6
+int styleable FloatingActionButton_fab_title 5
+int[] styleable FloatingActionsMenu { 0x7f010008, 0x7f010009, 0x7f01000a, 0x7f01000b, 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f }
+int styleable FloatingActionsMenu_fab_addButtonColorNormal 1
+int styleable FloatingActionsMenu_fab_addButtonColorPressed 0
+int styleable FloatingActionsMenu_fab_addButtonPlusIconColor 3
+int styleable FloatingActionsMenu_fab_addButtonSize 2
+int styleable FloatingActionsMenu_fab_addButtonStrokeVisible 4
+int styleable FloatingActionsMenu_fab_expandDirection 7
+int styleable FloatingActionsMenu_fab_labelStyle 5
+int styleable FloatingActionsMenu_fab_labelsPosition 6
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/aapt/AndroidManifest.xml b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/aapt/AndroidManifest.xml
new file mode 100644 (file)
index 0000000..f29e987
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest
+    package="com.getbase.floatingactionbutton"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:versionCode="15"
+    android:versionName="1.10.1" >
+
+    <uses-sdk
+        android:minSdkVersion="14"
+        android:targetSdkVersion="22" />
+
+    <application />
+
+</manifest>
\ No newline at end of file
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/annotations.zip b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/annotations.zip
new file mode 100644 (file)
index 0000000..a46d2ce
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/annotations.zip differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/build.xml b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/build.xml
new file mode 100644 (file)
index 0000000..4317fb0
--- /dev/null
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="com-getbase-floatingactionbutton-1-10-0-exploded-aar" default="help">
+
+    <!-- The local.properties file is created and updated by the 'android' tool.
+         It contains the path to the SDK. It should *NOT* be checked into
+         Version Control Systems. -->
+    <property file="local.properties" />
+
+    <!-- The ant.properties file can be created by you. It is only edited by the
+         'android' tool to add properties to it.
+         This is the place to change some Ant specific build properties.
+         Here are some properties you may want to change/update:
+
+         source.dir
+             The name of the source directory. Default is 'src'.
+         out.dir
+             The name of the output directory. Default is 'bin'.
+
+         For other overridable properties, look at the beginning of the rules
+         files in the SDK, at tools/ant/build.xml
+
+         Properties related to the SDK location or the project target should
+         be updated using the 'android' tool with the 'update' action.
+
+         This file is an integral part of the build system for your
+         application and should be checked into Version Control Systems.
+
+         -->
+    <property file="ant.properties" />
+
+    <!-- if sdk.dir was not set from one of the property file, then
+         get it from the ANDROID_HOME env var.
+         This must be done before we load project.properties since
+         the proguard config can use sdk.dir -->
+    <property environment="env" />
+    <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+        <isset property="env.ANDROID_HOME" />
+    </condition>
+
+    <!-- The project.properties file is created and updated by the 'android'
+         tool, as well as ADT.
+
+         This contains project specific properties such as project target, and library
+         dependencies. Lower level build properties are stored in ant.properties
+         (or in .classpath for Eclipse projects).
+
+         This file is an integral part of the build system for your
+         application and should be checked into Version Control Systems. -->
+    <loadproperties srcFile="project.properties" />
+
+    <!-- quick check on sdk.dir -->
+    <fail
+            message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+            unless="sdk.dir"
+    />
+
+    <!--
+        Import per project custom build rules if present at the root of the project.
+        This is the place to put custom intermediary targets such as:
+            -pre-build
+            -pre-compile
+            -post-compile (This is typically used for code obfuscation.
+                           Compiled code location: ${out.classes.absolute.dir}
+                           If this is not done in place, override ${out.dex.input.absolute.dir})
+            -post-package
+            -post-build
+            -pre-clean
+    -->
+    <import file="custom_rules.xml" optional="true" />
+
+    <!-- Import the actual build file.
+
+         To customize existing targets, there are two options:
+         - Customize only one target:
+             - copy/paste the target into this file, *before* the
+               <import> task.
+             - customize it to your needs.
+         - Customize the whole content of build.xml
+             - copy/paste the content of the rules files (minus the top node)
+               into this file, replacing the <import> task.
+             - customize to your needs.
+
+         ***********************
+         ****** IMPORTANT ******
+         ***********************
+         In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+         in order to avoid having your file be overridden by tools such as "android update project"
+    -->
+    <!-- version-tag: 1 -->
+    <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/jars/classes.jar b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/jars/classes.jar
new file mode 100644 (file)
index 0000000..723d01e
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/jars/classes.jar differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/libs/classes.jar b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/libs/classes.jar
new file mode 100644 (file)
index 0000000..723d01e
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/libs/classes.jar differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/proguard.txt b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/proguard.txt
new file mode 100644 (file)
index 0000000..b542959
--- /dev/null
@@ -0,0 +1,5 @@
+# keep getters/setters in RotatingDrawable so that animations can still work.
+-keepclassmembers class com.getbase.floatingactionbutton.FloatingActionsMenu$RotatingDrawable {
+   void set*(***);
+   *** get*();
+}
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/project.properties b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/project.properties
new file mode 100644 (file)
index 0000000..362a0a3
--- /dev/null
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-22
+android.library=true
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-hdpi-v4/fab_bg_mini.png b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-hdpi-v4/fab_bg_mini.png
new file mode 100644 (file)
index 0000000..4b48351
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-hdpi-v4/fab_bg_mini.png differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-hdpi-v4/fab_bg_normal.png b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-hdpi-v4/fab_bg_normal.png
new file mode 100644 (file)
index 0000000..4daec66
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-hdpi-v4/fab_bg_normal.png differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-mdpi-v4/fab_bg_mini.png b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-mdpi-v4/fab_bg_mini.png
new file mode 100644 (file)
index 0000000..218cf04
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-mdpi-v4/fab_bg_mini.png differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-mdpi-v4/fab_bg_normal.png b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-mdpi-v4/fab_bg_normal.png
new file mode 100644 (file)
index 0000000..c157df3
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-mdpi-v4/fab_bg_normal.png differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xhdpi-v4/fab_bg_mini.png b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xhdpi-v4/fab_bg_mini.png
new file mode 100644 (file)
index 0000000..d56bfe8
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xhdpi-v4/fab_bg_mini.png differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xhdpi-v4/fab_bg_normal.png b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xhdpi-v4/fab_bg_normal.png
new file mode 100644 (file)
index 0000000..41614b9
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xhdpi-v4/fab_bg_normal.png differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxhdpi-v4/fab_bg_mini.png b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxhdpi-v4/fab_bg_mini.png
new file mode 100644 (file)
index 0000000..1cdd2b1
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxhdpi-v4/fab_bg_mini.png differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxhdpi-v4/fab_bg_normal.png b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxhdpi-v4/fab_bg_normal.png
new file mode 100644 (file)
index 0000000..14608ff
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxhdpi-v4/fab_bg_normal.png differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxxhdpi-v4/fab_bg_mini.png b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxxhdpi-v4/fab_bg_mini.png
new file mode 100644 (file)
index 0000000..6fea674
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxxhdpi-v4/fab_bg_mini.png differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxxhdpi-v4/fab_bg_normal.png b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxxhdpi-v4/fab_bg_normal.png
new file mode 100644 (file)
index 0000000..0e78ff6
Binary files /dev/null and b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/drawable-xxxhdpi-v4/fab_bg_normal.png differ
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/values/values.xml b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/res/values/values.xml
new file mode 100644 (file)
index 0000000..8139c61
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <declare-styleable name="AddFloatingActionButton"><attr format="color" name="fab_plusIconColor"/></declare-styleable>
+    <declare-styleable name="FloatingActionButton"><attr format="color" name="fab_colorPressed"/><attr format="color" name="fab_colorDisabled"/><attr format="color" name="fab_colorNormal"/><attr format="reference" name="fab_icon"/><attr format="enum" name="fab_size"><enum name="normal" value="0"/><enum name="mini" value="1"/></attr><attr format="string" name="fab_title"/><attr format="boolean" name="fab_stroke_visible"/></declare-styleable>
+    <declare-styleable name="FloatingActionsMenu"><attr format="color" name="fab_addButtonColorPressed"/><attr format="color" name="fab_addButtonColorNormal"/><attr format="enum" name="fab_addButtonSize"><enum name="normal" value="0"/><enum name="mini" value="1"/></attr><attr format="color" name="fab_addButtonPlusIconColor"/><attr format="boolean" name="fab_addButtonStrokeVisible"/><attr format="reference" name="fab_labelStyle"/><attr format="enum" name="fab_labelsPosition"><enum name="left" value="0"/><enum name="right" value="1"/></attr><attr format="enum" name="fab_expandDirection"><enum name="up" value="0"/><enum name="down" value="1"/><enum name="left" value="2"/><enum name="right" value="3"/></attr></declare-styleable>
+    <!-- From: file:/Users/chalup/src/android-floating-action-button/library/src/main/res/values/dimens.xml -->
+    <eat-comment/>
+    <dimen name="fab_actions_spacing">16dp</dimen>
+    <dimen name="fab_icon_size">24dp</dimen>
+    <dimen name="fab_labels_margin">8dp</dimen>
+    <dimen name="fab_plus_icon_size">14dp</dimen>
+    <dimen name="fab_plus_icon_stroke">2dp</dimen>
+    <dimen name="fab_shadow_offset">3dp</dimen>
+    <dimen name="fab_shadow_radius">9dp</dimen>
+    <dimen name="fab_size_mini">40dp</dimen>
+    <dimen name="fab_size_normal">56dp</dimen>
+    <dimen name="fab_stroke_width">1dp</dimen>
+    <!-- From: file:/Users/chalup/src/android-floating-action-button/library/src/main/res/values/ids.xml -->
+    <eat-comment/>
+    <item name="fab_expand_menu_button" type="id"/>
+    <item name="fab_label" type="id"/>
+</resources>
\ No newline at end of file
diff --git a/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/src/.readme b/libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar/src/.readme
new file mode 100644 (file)
index 0000000..4bcebad
--- /dev/null
@@ -0,0 +1,2 @@
+This hidden file is there to ensure there is an src folder.
+Once we support binary library this will go away.
\ No newline at end of file
diff --git a/libs/org.apache.http.legacy.jar b/libs/org.apache.http.legacy.jar
new file mode 100644 (file)
index 0000000..3705bf1
Binary files /dev/null and b/libs/org.apache.http.legacy.jar differ
index c516391..766cb0a 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.owncloud.android.workaround.accounts"
-    android:versionCode="0100024"
-    android:versionName="1.0.24" >
+    android:versionCode="0100025"
+    android:versionName="1.0.25" >
 
     <uses-sdk
         android:minSdkVersion="16"
index 2fcc9f6..4a48a29 100644 (file)
@@ -3,7 +3,7 @@ buildscript {
         mavenCentral()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:1.2.3'
+        classpath 'com.android.tools.build:gradle:1.3.0'
     }
 }
 apply plugin: 'com.android.library'
index c8f6e5a..8966dbc 160000 (submodule)
@@ -1 +1 @@
-Subproject commit c8f6e5ad57ee27fdac39c7b14eb6ab1942a92d49
+Subproject commit 8966dbcee044cec726633fdfd208ea106cf176c0
index 3abf790..3d90522 100644 (file)
@@ -8,6 +8,7 @@
 # project structure.
 
 # Project target.
-target=android-19
+target=android-23
 android.library.reference.1=owncloud-android-library
 android.library.reference.2=libs/android-support-appcompat-v7-exploded-aar
+android.library.reference.3=libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar
diff --git a/res/drawable-hdpi-v9/ic_action_download.png b/res/drawable-hdpi-v9/ic_action_download.png
deleted file mode 100644 (file)
index 25476cd..0000000
Binary files a/res/drawable-hdpi-v9/ic_action_download.png and /dev/null differ
diff --git a/res/drawable-hdpi-v9/ic_action_refresh.png b/res/drawable-hdpi-v9/ic_action_refresh.png
deleted file mode 100644 (file)
index a7fdc0d..0000000
Binary files a/res/drawable-hdpi-v9/ic_action_refresh.png and /dev/null differ
diff --git a/res/drawable-hdpi-v9/ic_action_settings.png b/res/drawable-hdpi-v9/ic_action_settings.png
deleted file mode 100644 (file)
index 86b54f4..0000000
Binary files a/res/drawable-hdpi-v9/ic_action_settings.png and /dev/null differ
index 213976c..14590e5 100644 (file)
Binary files a/res/drawable-hdpi/common_error.png and b/res/drawable-hdpi/common_error.png differ
index b8ee720..409d202 100644 (file)
Binary files a/res/drawable-hdpi/file.png and b/res/drawable-hdpi/file.png differ
diff --git a/res/drawable-hdpi/file_application.png b/res/drawable-hdpi/file_application.png
new file mode 100644 (file)
index 0000000..a2c71fa
Binary files /dev/null and b/res/drawable-hdpi/file_application.png differ
diff --git a/res/drawable-hdpi/file_calendar.png b/res/drawable-hdpi/file_calendar.png
new file mode 100644 (file)
index 0000000..54d4454
Binary files /dev/null and b/res/drawable-hdpi/file_calendar.png differ
diff --git a/res/drawable-hdpi/file_code.png b/res/drawable-hdpi/file_code.png
new file mode 100644 (file)
index 0000000..ac0fd1a
Binary files /dev/null and b/res/drawable-hdpi/file_code.png differ
index 119fc65..298ebbd 100644 (file)
Binary files a/res/drawable-hdpi/file_doc.png and b/res/drawable-hdpi/file_doc.png differ
index 610a5be..61eb88f 100644 (file)
Binary files a/res/drawable-hdpi/file_image.png and b/res/drawable-hdpi/file_image.png differ
index a621ffa..09520e4 100644 (file)
Binary files a/res/drawable-hdpi/file_movie.png and b/res/drawable-hdpi/file_movie.png differ
index bd45720..6af2ec2 100644 (file)
Binary files a/res/drawable-hdpi/file_pdf.png and b/res/drawable-hdpi/file_pdf.png differ
index 116f2ed..2927f96 100644 (file)
Binary files a/res/drawable-hdpi/file_ppt.png and b/res/drawable-hdpi/file_ppt.png differ
index 74865da..2d495b6 100644 (file)
Binary files a/res/drawable-hdpi/file_sound.png and b/res/drawable-hdpi/file_sound.png differ
diff --git a/res/drawable-hdpi/file_text.png b/res/drawable-hdpi/file_text.png
new file mode 100644 (file)
index 0000000..ec6b005
Binary files /dev/null and b/res/drawable-hdpi/file_text.png differ
diff --git a/res/drawable-hdpi/file_vcard.png b/res/drawable-hdpi/file_vcard.png
new file mode 100644 (file)
index 0000000..c257341
Binary files /dev/null and b/res/drawable-hdpi/file_vcard.png differ
index 02070a2..f2aaf84 100644 (file)
Binary files a/res/drawable-hdpi/file_xls.png and b/res/drawable-hdpi/file_xls.png differ
index faebd60..de292fb 100644 (file)
Binary files a/res/drawable-hdpi/file_zip.png and b/res/drawable-hdpi/file_zip.png differ
diff --git a/res/drawable-hdpi/folder_external.png b/res/drawable-hdpi/folder_external.png
new file mode 100644 (file)
index 0000000..29fa378
Binary files /dev/null and b/res/drawable-hdpi/folder_external.png differ
index eed6417..55dbdf9 100644 (file)
Binary files a/res/drawable-hdpi/folder_public.png and b/res/drawable-hdpi/folder_public.png differ
diff --git a/res/drawable-hdpi/ic_account_circle.png b/res/drawable-hdpi/ic_account_circle.png
new file mode 100644 (file)
index 0000000..b2bdc2a
Binary files /dev/null and b/res/drawable-hdpi/ic_account_circle.png differ
index ece0eb4..f8cbd16 100644 (file)
Binary files a/res/drawable-hdpi/ic_action_create_dir.png and b/res/drawable-hdpi/ic_action_create_dir.png differ
index 05e75b4..a0a112d 100644 (file)
Binary files a/res/drawable-hdpi/ic_action_download.png and b/res/drawable-hdpi/ic_action_download.png differ
diff --git a/res/drawable-hdpi/ic_action_download_grey.png b/res/drawable-hdpi/ic_action_download_grey.png
new file mode 100644 (file)
index 0000000..4ac1e26
Binary files /dev/null and b/res/drawable-hdpi/ic_action_download_grey.png differ
index e6212cf..e11b2c2 100644 (file)
Binary files a/res/drawable-hdpi/ic_action_refresh.png and b/res/drawable-hdpi/ic_action_refresh.png differ
diff --git a/res/drawable-hdpi/ic_action_refresh_black.png b/res/drawable-hdpi/ic_action_refresh_black.png
deleted file mode 100644 (file)
index e6212cf..0000000
Binary files a/res/drawable-hdpi/ic_action_refresh_black.png and /dev/null differ
diff --git a/res/drawable-hdpi/ic_action_refresh_grey.png b/res/drawable-hdpi/ic_action_refresh_grey.png
new file mode 100644 (file)
index 0000000..e4dca67
Binary files /dev/null and b/res/drawable-hdpi/ic_action_refresh_grey.png differ
index 999d0f0..cff8474 100644 (file)
Binary files a/res/drawable-hdpi/ic_action_settings.png and b/res/drawable-hdpi/ic_action_settings.png differ
index 2369348..9d0402f 100644 (file)
Binary files a/res/drawable-hdpi/ic_action_upload.png and b/res/drawable-hdpi/ic_action_upload.png differ
diff --git a/res/drawable-hdpi/ic_cancel.png b/res/drawable-hdpi/ic_cancel.png
new file mode 100644 (file)
index 0000000..f964f15
Binary files /dev/null and b/res/drawable-hdpi/ic_cancel.png differ
diff --git a/res/drawable-hdpi/ic_checkbox_blank_outline.png b/res/drawable-hdpi/ic_checkbox_blank_outline.png
new file mode 100644 (file)
index 0000000..164dcb5
Binary files /dev/null and b/res/drawable-hdpi/ic_checkbox_blank_outline.png differ
diff --git a/res/drawable-hdpi/ic_checkbox_marked.png b/res/drawable-hdpi/ic_checkbox_marked.png
new file mode 100644 (file)
index 0000000..330d7b9
Binary files /dev/null and b/res/drawable-hdpi/ic_checkbox_marked.png differ
diff --git a/res/drawable-hdpi/ic_drawer.png b/res/drawable-hdpi/ic_drawer.png
deleted file mode 100644 (file)
index 6614ea4..0000000
Binary files a/res/drawable-hdpi/ic_drawer.png and /dev/null differ
diff --git a/res/drawable-hdpi/ic_folder_open.png b/res/drawable-hdpi/ic_folder_open.png
new file mode 100644 (file)
index 0000000..ebfea02
Binary files /dev/null and b/res/drawable-hdpi/ic_folder_open.png differ
diff --git a/res/drawable-hdpi/ic_hide.png b/res/drawable-hdpi/ic_hide.png
new file mode 100644 (file)
index 0000000..0aa90d6
Binary files /dev/null and b/res/drawable-hdpi/ic_hide.png differ
diff --git a/res/drawable-hdpi/ic_import.png b/res/drawable-hdpi/ic_import.png
new file mode 100644 (file)
index 0000000..ad72837
Binary files /dev/null and b/res/drawable-hdpi/ic_import.png differ
diff --git a/res/drawable-hdpi/ic_lock.png b/res/drawable-hdpi/ic_lock.png
new file mode 100644 (file)
index 0000000..1a5784f
Binary files /dev/null and b/res/drawable-hdpi/ic_lock.png differ
diff --git a/res/drawable-hdpi/ic_lock_open.png b/res/drawable-hdpi/ic_lock_open.png
new file mode 100644 (file)
index 0000000..3e96a13
Binary files /dev/null and b/res/drawable-hdpi/ic_lock_open.png differ
diff --git a/res/drawable-hdpi/ic_log.png b/res/drawable-hdpi/ic_log.png
new file mode 100644 (file)
index 0000000..dd7d073
Binary files /dev/null and b/res/drawable-hdpi/ic_log.png differ
index 2b84203..e2359db 100644 (file)
Binary files a/res/drawable-hdpi/ic_menu_archive.png and b/res/drawable-hdpi/ic_menu_archive.png differ
diff --git a/res/drawable-hdpi/ic_ok.png b/res/drawable-hdpi/ic_ok.png
new file mode 100644 (file)
index 0000000..9680855
Binary files /dev/null and b/res/drawable-hdpi/ic_ok.png differ
diff --git a/res/drawable-hdpi/ic_play_arrow.png b/res/drawable-hdpi/ic_play_arrow.png
new file mode 100644 (file)
index 0000000..57c9fa5
Binary files /dev/null and b/res/drawable-hdpi/ic_play_arrow.png differ
diff --git a/res/drawable-hdpi/ic_view.png b/res/drawable-hdpi/ic_view.png
new file mode 100644 (file)
index 0000000..259ddcd
Binary files /dev/null and b/res/drawable-hdpi/ic_view.png differ
diff --git a/res/drawable-hdpi/ic_view_list.png b/res/drawable-hdpi/ic_view_list.png
new file mode 100644 (file)
index 0000000..64ad8e1
Binary files /dev/null and b/res/drawable-hdpi/ic_view_list.png differ
diff --git a/res/drawable-hdpi/ic_view_module.png b/res/drawable-hdpi/ic_view_module.png
new file mode 100644 (file)
index 0000000..7982e38
Binary files /dev/null and b/res/drawable-hdpi/ic_view_module.png differ
diff --git a/res/drawable-hdpi/ic_warning.png b/res/drawable-hdpi/ic_warning.png
new file mode 100644 (file)
index 0000000..14590e5
Binary files /dev/null and b/res/drawable-hdpi/ic_warning.png differ
index 6fe153b..2430c94 100644 (file)
Binary files a/res/drawable-hdpi/icon.png and b/res/drawable-hdpi/icon.png differ
diff --git a/res/drawable-hdpi/no_network.png b/res/drawable-hdpi/no_network.png
new file mode 100644 (file)
index 0000000..a921888
Binary files /dev/null and b/res/drawable-hdpi/no_network.png differ
diff --git a/res/drawable-hdpi/shared_via_link.png b/res/drawable-hdpi/shared_via_link.png
new file mode 100644 (file)
index 0000000..f4279f3
Binary files /dev/null and b/res/drawable-hdpi/shared_via_link.png differ
diff --git a/res/drawable-hdpi/shared_via_users.png b/res/drawable-hdpi/shared_via_users.png
new file mode 100644 (file)
index 0000000..9ec18ce
Binary files /dev/null and b/res/drawable-hdpi/shared_via_users.png differ
diff --git a/res/drawable-hdpi/shared_with_me.png b/res/drawable-hdpi/shared_with_me.png
deleted file mode 100644 (file)
index 9ec18ce..0000000
Binary files a/res/drawable-hdpi/shared_with_me.png and /dev/null differ
index b26e978..d312561 100644 (file)
Binary files a/res/drawable-hdpi/shared_with_me_folder.png and b/res/drawable-hdpi/shared_with_me_folder.png differ
diff --git a/res/drawable-hdpi/sharedlink.png b/res/drawable-hdpi/sharedlink.png
deleted file mode 100644 (file)
index f4279f3..0000000
Binary files a/res/drawable-hdpi/sharedlink.png and /dev/null differ
diff --git a/res/drawable-ldpi-v9/ic_action_download.png b/res/drawable-ldpi-v9/ic_action_download.png
deleted file mode 100644 (file)
index 41fe95a..0000000
Binary files a/res/drawable-ldpi-v9/ic_action_download.png and /dev/null differ
diff --git a/res/drawable-ldpi-v9/ic_action_refresh.png b/res/drawable-ldpi-v9/ic_action_refresh.png
deleted file mode 100644 (file)
index bd611e8..0000000
Binary files a/res/drawable-ldpi-v9/ic_action_refresh.png and /dev/null differ
diff --git a/res/drawable-ldpi-v9/ic_action_settings.png b/res/drawable-ldpi-v9/ic_action_settings.png
deleted file mode 100644 (file)
index e2c2d51..0000000
Binary files a/res/drawable-ldpi-v9/ic_action_settings.png and /dev/null differ
diff --git a/res/drawable-ldpi/common_error.png b/res/drawable-ldpi/common_error.png
deleted file mode 100644 (file)
index f1a804a..0000000
Binary files a/res/drawable-ldpi/common_error.png and /dev/null differ
diff --git a/res/drawable-ldpi/copy_link.png b/res/drawable-ldpi/copy_link.png
deleted file mode 100644 (file)
index 7384309..0000000
Binary files a/res/drawable-ldpi/copy_link.png and /dev/null differ
diff --git a/res/drawable-ldpi/file.png b/res/drawable-ldpi/file.png
deleted file mode 100644 (file)
index b669fdf..0000000
Binary files a/res/drawable-ldpi/file.png and /dev/null differ
diff --git a/res/drawable-ldpi/file_doc.png b/res/drawable-ldpi/file_doc.png
deleted file mode 100644 (file)
index 0ea07e3..0000000
Binary files a/res/drawable-ldpi/file_doc.png and /dev/null differ
diff --git a/res/drawable-ldpi/file_image.png b/res/drawable-ldpi/file_image.png
deleted file mode 100644 (file)
index 1bf2015..0000000
Binary files a/res/drawable-ldpi/file_image.png and /dev/null differ
diff --git a/res/drawable-ldpi/file_movie.png b/res/drawable-ldpi/file_movie.png
deleted file mode 100644 (file)
index e50c168..0000000
Binary files a/res/drawable-ldpi/file_movie.png and /dev/null differ
diff --git a/res/drawable-ldpi/file_pdf.png b/res/drawable-ldpi/file_pdf.png
deleted file mode 100644 (file)
index a05afdd..0000000
Binary files a/res/drawable-ldpi/file_pdf.png and /dev/null differ
diff --git a/res/drawable-ldpi/file_ppt.png b/res/drawable-ldpi/file_ppt.png
deleted file mode 100644 (file)
index 11a9cc9..0000000
Binary files a/res/drawable-ldpi/file_ppt.png and /dev/null differ
diff --git a/res/drawable-ldpi/ic_action_create_dir.png b/res/drawable-ldpi/ic_action_create_dir.png
deleted file mode 100644 (file)
index 8ed2dae..0000000
Binary files a/res/drawable-ldpi/ic_action_create_dir.png and /dev/null differ
diff --git a/res/drawable-ldpi/ic_action_download.png b/res/drawable-ldpi/ic_action_download.png
deleted file mode 100644 (file)
index 7293d6d..0000000
Binary files a/res/drawable-ldpi/ic_action_download.png and /dev/null differ
diff --git a/res/drawable-ldpi/ic_action_refresh.png b/res/drawable-ldpi/ic_action_refresh.png
deleted file mode 100644 (file)
index 63e70e1..0000000
Binary files a/res/drawable-ldpi/ic_action_refresh.png and /dev/null differ
diff --git a/res/drawable-ldpi/ic_action_refresh_black.png b/res/drawable-ldpi/ic_action_refresh_black.png
deleted file mode 100644 (file)
index 63e70e1..0000000
Binary files a/res/drawable-ldpi/ic_action_refresh_black.png and /dev/null differ
diff --git a/res/drawable-ldpi/ic_action_settings.png b/res/drawable-ldpi/ic_action_settings.png
deleted file mode 100644 (file)
index c290e59..0000000
Binary files a/res/drawable-ldpi/ic_action_settings.png and /dev/null differ
diff --git a/res/drawable-ldpi/ic_action_upload.png b/res/drawable-ldpi/ic_action_upload.png
deleted file mode 100644 (file)
index 2d4ba56..0000000
Binary files a/res/drawable-ldpi/ic_action_upload.png and /dev/null differ
diff --git a/res/drawable-ldpi/icon.png b/res/drawable-ldpi/icon.png
deleted file mode 100644 (file)
index 1bc470b..0000000
Binary files a/res/drawable-ldpi/icon.png and /dev/null differ
diff --git a/res/drawable-ldpi/image_fail.png b/res/drawable-ldpi/image_fail.png
deleted file mode 100644 (file)
index 77513ad..0000000
Binary files a/res/drawable-ldpi/image_fail.png and /dev/null differ
diff --git a/res/drawable-ldpi/logo.png b/res/drawable-ldpi/logo.png
deleted file mode 100644 (file)
index 23998ff..0000000
Binary files a/res/drawable-ldpi/logo.png and /dev/null differ
diff --git a/res/drawable-ldpi/winter_holidays_icon.png b/res/drawable-ldpi/winter_holidays_icon.png
deleted file mode 100644 (file)
index 9261d32..0000000
Binary files a/res/drawable-ldpi/winter_holidays_icon.png and /dev/null differ
diff --git a/res/drawable-mdpi-v9/ic_action_download.png b/res/drawable-mdpi-v9/ic_action_download.png
deleted file mode 100644 (file)
index 2684c83..0000000
Binary files a/res/drawable-mdpi-v9/ic_action_download.png and /dev/null differ
diff --git a/res/drawable-mdpi-v9/ic_action_refresh.png b/res/drawable-mdpi-v9/ic_action_refresh.png
deleted file mode 100644 (file)
index bb9d855..0000000
Binary files a/res/drawable-mdpi-v9/ic_action_refresh.png and /dev/null differ
diff --git a/res/drawable-mdpi-v9/ic_action_settings.png b/res/drawable-mdpi-v9/ic_action_settings.png
deleted file mode 100644 (file)
index 47ef3f4..0000000
Binary files a/res/drawable-mdpi-v9/ic_action_settings.png and /dev/null differ
index f988e57..dd3ebad 100644 (file)
Binary files a/res/drawable-mdpi/file.png and b/res/drawable-mdpi/file.png differ
diff --git a/res/drawable-mdpi/file_application.png b/res/drawable-mdpi/file_application.png
new file mode 100644 (file)
index 0000000..15fbfce
Binary files /dev/null and b/res/drawable-mdpi/file_application.png differ
diff --git a/res/drawable-mdpi/file_calendar.png b/res/drawable-mdpi/file_calendar.png
new file mode 100644 (file)
index 0000000..dbf3745
Binary files /dev/null and b/res/drawable-mdpi/file_calendar.png differ
diff --git a/res/drawable-mdpi/file_code.png b/res/drawable-mdpi/file_code.png
new file mode 100644 (file)
index 0000000..271f1a2
Binary files /dev/null and b/res/drawable-mdpi/file_code.png differ
index b48f73f..6c51d2d 100644 (file)
Binary files a/res/drawable-mdpi/file_doc.png and b/res/drawable-mdpi/file_doc.png differ
index f70eb95..1d767a5 100644 (file)
Binary files a/res/drawable-mdpi/file_image.png and b/res/drawable-mdpi/file_image.png differ
index 48090eb..638f8ed 100644 (file)
Binary files a/res/drawable-mdpi/file_movie.png and b/res/drawable-mdpi/file_movie.png differ
index a10127a..6292ff4 100644 (file)
Binary files a/res/drawable-mdpi/file_pdf.png and b/res/drawable-mdpi/file_pdf.png differ
index 9f3b34d..3a273b1 100644 (file)
Binary files a/res/drawable-mdpi/file_ppt.png and b/res/drawable-mdpi/file_ppt.png differ
index 6328e2e..d157087 100644 (file)
Binary files a/res/drawable-mdpi/file_sound.png and b/res/drawable-mdpi/file_sound.png differ
diff --git a/res/drawable-mdpi/file_text.png b/res/drawable-mdpi/file_text.png
new file mode 100644 (file)
index 0000000..b8dc090
Binary files /dev/null and b/res/drawable-mdpi/file_text.png differ
diff --git a/res/drawable-mdpi/file_vcard.png b/res/drawable-mdpi/file_vcard.png
new file mode 100644 (file)
index 0000000..e3d0e6b
Binary files /dev/null and b/res/drawable-mdpi/file_vcard.png differ
index 430db59..e4c6616 100644 (file)
Binary files a/res/drawable-mdpi/file_xls.png and b/res/drawable-mdpi/file_xls.png differ
index e587ecd..f64412d 100644 (file)
Binary files a/res/drawable-mdpi/file_zip.png and b/res/drawable-mdpi/file_zip.png differ
diff --git a/res/drawable-mdpi/folder_external.png b/res/drawable-mdpi/folder_external.png
new file mode 100644 (file)
index 0000000..4f961d1
Binary files /dev/null and b/res/drawable-mdpi/folder_external.png differ
index a63effe..09945b6 100644 (file)
Binary files a/res/drawable-mdpi/folder_public.png and b/res/drawable-mdpi/folder_public.png differ
index 9215a62..2251275 100644 (file)
Binary files a/res/drawable-mdpi/ic_action_create_dir.png and b/res/drawable-mdpi/ic_action_create_dir.png differ
index afb2cb2..990dfb8 100644 (file)
Binary files a/res/drawable-mdpi/ic_action_download.png and b/res/drawable-mdpi/ic_action_download.png differ
diff --git a/res/drawable-mdpi/ic_action_download_grey.png b/res/drawable-mdpi/ic_action_download_grey.png
new file mode 100644 (file)
index 0000000..29103c5
Binary files /dev/null and b/res/drawable-mdpi/ic_action_download_grey.png differ
index 0faf43b..ffecb51 100644 (file)
Binary files a/res/drawable-mdpi/ic_action_upload.png and b/res/drawable-mdpi/ic_action_upload.png differ
diff --git a/res/drawable-mdpi/ic_checkbox_blank_outline.png b/res/drawable-mdpi/ic_checkbox_blank_outline.png
new file mode 100644 (file)
index 0000000..d4ca47c
Binary files /dev/null and b/res/drawable-mdpi/ic_checkbox_blank_outline.png differ
diff --git a/res/drawable-mdpi/ic_checkbox_marked.png b/res/drawable-mdpi/ic_checkbox_marked.png
new file mode 100644 (file)
index 0000000..99df274
Binary files /dev/null and b/res/drawable-mdpi/ic_checkbox_marked.png differ
diff --git a/res/drawable-mdpi/ic_drawer.png b/res/drawable-mdpi/ic_drawer.png
deleted file mode 100644 (file)
index fb681ba..0000000
Binary files a/res/drawable-mdpi/ic_drawer.png and /dev/null differ
diff --git a/res/drawable-mdpi/ic_import.png b/res/drawable-mdpi/ic_import.png
new file mode 100644 (file)
index 0000000..3bc69d1
Binary files /dev/null and b/res/drawable-mdpi/ic_import.png differ
index f21a11f..99529da 100644 (file)
Binary files a/res/drawable-mdpi/ic_menu_archive.png and b/res/drawable-mdpi/ic_menu_archive.png differ
diff --git a/res/drawable-mdpi/ic_play_arrow.png b/res/drawable-mdpi/ic_play_arrow.png
new file mode 100644 (file)
index 0000000..c61e948
Binary files /dev/null and b/res/drawable-mdpi/ic_play_arrow.png differ
diff --git a/res/drawable-mdpi/ic_view_list.png b/res/drawable-mdpi/ic_view_list.png
new file mode 100644 (file)
index 0000000..4aca55c
Binary files /dev/null and b/res/drawable-mdpi/ic_view_list.png differ
diff --git a/res/drawable-mdpi/ic_view_module.png b/res/drawable-mdpi/ic_view_module.png
new file mode 100644 (file)
index 0000000..f308a32
Binary files /dev/null and b/res/drawable-mdpi/ic_view_module.png differ
index 9008b9d..2d7ab66 100644 (file)
Binary files a/res/drawable-mdpi/icon.png and b/res/drawable-mdpi/icon.png differ
diff --git a/res/drawable-mdpi/logo.png b/res/drawable-mdpi/logo.png
deleted file mode 100644 (file)
index 23998ff..0000000
Binary files a/res/drawable-mdpi/logo.png and /dev/null differ
diff --git a/res/drawable-mdpi/shared_via_link.png b/res/drawable-mdpi/shared_via_link.png
new file mode 100644 (file)
index 0000000..1d27294
Binary files /dev/null and b/res/drawable-mdpi/shared_via_link.png differ
diff --git a/res/drawable-mdpi/shared_via_users.png b/res/drawable-mdpi/shared_via_users.png
new file mode 100644 (file)
index 0000000..0b17c76
Binary files /dev/null and b/res/drawable-mdpi/shared_via_users.png differ
diff --git a/res/drawable-mdpi/shared_with_me.png b/res/drawable-mdpi/shared_with_me.png
deleted file mode 100644 (file)
index 0b17c76..0000000
Binary files a/res/drawable-mdpi/shared_with_me.png and /dev/null differ
index 0c83a32..ed8f860 100644 (file)
Binary files a/res/drawable-mdpi/shared_with_me_folder.png and b/res/drawable-mdpi/shared_with_me_folder.png differ
diff --git a/res/drawable-mdpi/sharedlink.png b/res/drawable-mdpi/sharedlink.png
deleted file mode 100644 (file)
index 1d27294..0000000
Binary files a/res/drawable-mdpi/sharedlink.png and /dev/null differ
diff --git a/res/drawable-xhdpi/common_error.png b/res/drawable-xhdpi/common_error.png
new file mode 100644 (file)
index 0000000..08177e7
Binary files /dev/null and b/res/drawable-xhdpi/common_error.png differ
index d575f47..7764170 100644 (file)
Binary files a/res/drawable-xhdpi/file.png and b/res/drawable-xhdpi/file.png differ
diff --git a/res/drawable-xhdpi/file_application.png b/res/drawable-xhdpi/file_application.png
new file mode 100644 (file)
index 0000000..0b5247e
Binary files /dev/null and b/res/drawable-xhdpi/file_application.png differ
diff --git a/res/drawable-xhdpi/file_calendar.png b/res/drawable-xhdpi/file_calendar.png
new file mode 100644 (file)
index 0000000..0c93453
Binary files /dev/null and b/res/drawable-xhdpi/file_calendar.png differ
diff --git a/res/drawable-xhdpi/file_code.png b/res/drawable-xhdpi/file_code.png
new file mode 100644 (file)
index 0000000..fa2f3fb
Binary files /dev/null and b/res/drawable-xhdpi/file_code.png differ
index e0e2ba9..16cc0f4 100644 (file)
Binary files a/res/drawable-xhdpi/file_doc.png and b/res/drawable-xhdpi/file_doc.png differ
index 72a7a50..078ed8a 100644 (file)
Binary files a/res/drawable-xhdpi/file_image.png and b/res/drawable-xhdpi/file_image.png differ
index d0216d8..9bb6ddf 100644 (file)
Binary files a/res/drawable-xhdpi/file_movie.png and b/res/drawable-xhdpi/file_movie.png differ
index 0d44a50..f8cf9e4 100644 (file)
Binary files a/res/drawable-xhdpi/file_pdf.png and b/res/drawable-xhdpi/file_pdf.png differ
index c485c14..e712d08 100644 (file)
Binary files a/res/drawable-xhdpi/file_ppt.png and b/res/drawable-xhdpi/file_ppt.png differ
index e2736a6..f9814c9 100644 (file)
Binary files a/res/drawable-xhdpi/file_sound.png and b/res/drawable-xhdpi/file_sound.png differ
diff --git a/res/drawable-xhdpi/file_text.png b/res/drawable-xhdpi/file_text.png
new file mode 100644 (file)
index 0000000..bf7e9d7
Binary files /dev/null and b/res/drawable-xhdpi/file_text.png differ
diff --git a/res/drawable-xhdpi/file_vcard.png b/res/drawable-xhdpi/file_vcard.png
new file mode 100644 (file)
index 0000000..eb9f33c
Binary files /dev/null and b/res/drawable-xhdpi/file_vcard.png differ
index c1a25b9..b5c6ee1 100644 (file)
Binary files a/res/drawable-xhdpi/file_xls.png and b/res/drawable-xhdpi/file_xls.png differ
index 08ccee0..a5ee055 100644 (file)
Binary files a/res/drawable-xhdpi/file_zip.png and b/res/drawable-xhdpi/file_zip.png differ
diff --git a/res/drawable-xhdpi/folder_external.png b/res/drawable-xhdpi/folder_external.png
new file mode 100644 (file)
index 0000000..33909f7
Binary files /dev/null and b/res/drawable-xhdpi/folder_external.png differ
index 49e849d..4e35b7a 100644 (file)
Binary files a/res/drawable-xhdpi/folder_public.png and b/res/drawable-xhdpi/folder_public.png differ
diff --git a/res/drawable-xhdpi/ic_account_circle.png b/res/drawable-xhdpi/ic_account_circle.png
new file mode 100644 (file)
index 0000000..246e0c8
Binary files /dev/null and b/res/drawable-xhdpi/ic_account_circle.png differ
diff --git a/res/drawable-xhdpi/ic_action_create_dir.png b/res/drawable-xhdpi/ic_action_create_dir.png
new file mode 100644 (file)
index 0000000..2251275
Binary files /dev/null and b/res/drawable-xhdpi/ic_action_create_dir.png differ
diff --git a/res/drawable-xhdpi/ic_action_download.png b/res/drawable-xhdpi/ic_action_download.png
new file mode 100644 (file)
index 0000000..990dfb8
Binary files /dev/null and b/res/drawable-xhdpi/ic_action_download.png differ
diff --git a/res/drawable-xhdpi/ic_action_download_grey.png b/res/drawable-xhdpi/ic_action_download_grey.png
new file mode 100644 (file)
index 0000000..29103c5
Binary files /dev/null and b/res/drawable-xhdpi/ic_action_download_grey.png differ
diff --git a/res/drawable-xhdpi/ic_action_refresh.png b/res/drawable-xhdpi/ic_action_refresh.png
new file mode 100644 (file)
index 0000000..1f93e9f
Binary files /dev/null and b/res/drawable-xhdpi/ic_action_refresh.png differ
diff --git a/res/drawable-xhdpi/ic_action_refresh_grey.png b/res/drawable-xhdpi/ic_action_refresh_grey.png
new file mode 100644 (file)
index 0000000..cef51ab
Binary files /dev/null and b/res/drawable-xhdpi/ic_action_refresh_grey.png differ
diff --git a/res/drawable-xhdpi/ic_action_settings.png b/res/drawable-xhdpi/ic_action_settings.png
new file mode 100644 (file)
index 0000000..a19fc5c
Binary files /dev/null and b/res/drawable-xhdpi/ic_action_settings.png differ
diff --git a/res/drawable-xhdpi/ic_action_upload.png b/res/drawable-xhdpi/ic_action_upload.png
new file mode 100644 (file)
index 0000000..ffecb51
Binary files /dev/null and b/res/drawable-xhdpi/ic_action_upload.png differ
diff --git a/res/drawable-xhdpi/ic_cancel.png b/res/drawable-xhdpi/ic_cancel.png
new file mode 100644 (file)
index 0000000..ce0da22
Binary files /dev/null and b/res/drawable-xhdpi/ic_cancel.png differ
diff --git a/res/drawable-xhdpi/ic_checkbox_blank_outline.png b/res/drawable-xhdpi/ic_checkbox_blank_outline.png
new file mode 100644 (file)
index 0000000..05024eb
Binary files /dev/null and b/res/drawable-xhdpi/ic_checkbox_blank_outline.png differ
diff --git a/res/drawable-xhdpi/ic_checkbox_marked.png b/res/drawable-xhdpi/ic_checkbox_marked.png
new file mode 100644 (file)
index 0000000..3a2ca10
Binary files /dev/null and b/res/drawable-xhdpi/ic_checkbox_marked.png differ
diff --git a/res/drawable-xhdpi/ic_drawer.png b/res/drawable-xhdpi/ic_drawer.png
deleted file mode 100644 (file)
index b9bc3d7..0000000
Binary files a/res/drawable-xhdpi/ic_drawer.png and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_folder_open.png b/res/drawable-xhdpi/ic_folder_open.png
new file mode 100644 (file)
index 0000000..ad4fcfa
Binary files /dev/null and b/res/drawable-xhdpi/ic_folder_open.png differ
diff --git a/res/drawable-xhdpi/ic_hide.png b/res/drawable-xhdpi/ic_hide.png
new file mode 100644 (file)
index 0000000..75e5462
Binary files /dev/null and b/res/drawable-xhdpi/ic_hide.png differ
diff --git a/res/drawable-xhdpi/ic_import.png b/res/drawable-xhdpi/ic_import.png
new file mode 100644 (file)
index 0000000..bf2f72e
Binary files /dev/null and b/res/drawable-xhdpi/ic_import.png differ
diff --git a/res/drawable-xhdpi/ic_lock.png b/res/drawable-xhdpi/ic_lock.png
new file mode 100644 (file)
index 0000000..c7b3d38
Binary files /dev/null and b/res/drawable-xhdpi/ic_lock.png differ
diff --git a/res/drawable-xhdpi/ic_lock_open.png b/res/drawable-xhdpi/ic_lock_open.png
new file mode 100644 (file)
index 0000000..ad1b519
Binary files /dev/null and b/res/drawable-xhdpi/ic_lock_open.png differ
diff --git a/res/drawable-xhdpi/ic_log.png b/res/drawable-xhdpi/ic_log.png
new file mode 100644 (file)
index 0000000..50b1541
Binary files /dev/null and b/res/drawable-xhdpi/ic_log.png differ
index bf86cb3..a54161c 100644 (file)
Binary files a/res/drawable-xhdpi/ic_menu_archive.png and b/res/drawable-xhdpi/ic_menu_archive.png differ
diff --git a/res/drawable-xhdpi/ic_ok.png b/res/drawable-xhdpi/ic_ok.png
new file mode 100644 (file)
index 0000000..c46df6b
Binary files /dev/null and b/res/drawable-xhdpi/ic_ok.png differ
diff --git a/res/drawable-xhdpi/ic_play_arrow.png b/res/drawable-xhdpi/ic_play_arrow.png
new file mode 100644 (file)
index 0000000..a3c80e7
Binary files /dev/null and b/res/drawable-xhdpi/ic_play_arrow.png differ
diff --git a/res/drawable-xhdpi/ic_view.png b/res/drawable-xhdpi/ic_view.png
new file mode 100644 (file)
index 0000000..0e78ea3
Binary files /dev/null and b/res/drawable-xhdpi/ic_view.png differ
diff --git a/res/drawable-xhdpi/ic_view_list.png b/res/drawable-xhdpi/ic_view_list.png
new file mode 100644 (file)
index 0000000..b81d910
Binary files /dev/null and b/res/drawable-xhdpi/ic_view_list.png differ
diff --git a/res/drawable-xhdpi/ic_view_module.png b/res/drawable-xhdpi/ic_view_module.png
new file mode 100644 (file)
index 0000000..b354853
Binary files /dev/null and b/res/drawable-xhdpi/ic_view_module.png differ
diff --git a/res/drawable-xhdpi/ic_warning.png b/res/drawable-xhdpi/ic_warning.png
new file mode 100644 (file)
index 0000000..08177e7
Binary files /dev/null and b/res/drawable-xhdpi/ic_warning.png differ
index 041efc6..a135cc2 100644 (file)
Binary files a/res/drawable-xhdpi/icon.png and b/res/drawable-xhdpi/icon.png differ
diff --git a/res/drawable-xhdpi/no_network.png b/res/drawable-xhdpi/no_network.png
new file mode 100644 (file)
index 0000000..628515d
Binary files /dev/null and b/res/drawable-xhdpi/no_network.png differ
diff --git a/res/drawable-xhdpi/shared_via_link.png b/res/drawable-xhdpi/shared_via_link.png
new file mode 100644 (file)
index 0000000..11f8afa
Binary files /dev/null and b/res/drawable-xhdpi/shared_via_link.png differ
diff --git a/res/drawable-xhdpi/shared_via_users.png b/res/drawable-xhdpi/shared_via_users.png
new file mode 100644 (file)
index 0000000..ef7779c
Binary files /dev/null and b/res/drawable-xhdpi/shared_via_users.png differ
diff --git a/res/drawable-xhdpi/shared_with_me.png b/res/drawable-xhdpi/shared_with_me.png
deleted file mode 100644 (file)
index ef7779c..0000000
Binary files a/res/drawable-xhdpi/shared_with_me.png and /dev/null differ
index c5af0d7..1e6fb30 100644 (file)
Binary files a/res/drawable-xhdpi/shared_with_me_folder.png and b/res/drawable-xhdpi/shared_with_me_folder.png differ
diff --git a/res/drawable-xhdpi/sharedlink.png b/res/drawable-xhdpi/sharedlink.png
deleted file mode 100644 (file)
index 11f8afa..0000000
Binary files a/res/drawable-xhdpi/sharedlink.png and /dev/null differ
diff --git a/res/drawable-xxhdpi/common_error.png b/res/drawable-xxhdpi/common_error.png
new file mode 100644 (file)
index 0000000..dc007ee
Binary files /dev/null and b/res/drawable-xxhdpi/common_error.png differ
index ddc9d6b..be54c42 100644 (file)
Binary files a/res/drawable-xxhdpi/file.png and b/res/drawable-xxhdpi/file.png differ
diff --git a/res/drawable-xxhdpi/file_application.png b/res/drawable-xxhdpi/file_application.png
new file mode 100644 (file)
index 0000000..fbe5deb
Binary files /dev/null and b/res/drawable-xxhdpi/file_application.png differ
diff --git a/res/drawable-xxhdpi/file_calendar.png b/res/drawable-xxhdpi/file_calendar.png
new file mode 100644 (file)
index 0000000..196094a
Binary files /dev/null and b/res/drawable-xxhdpi/file_calendar.png differ
diff --git a/res/drawable-xxhdpi/file_code.png b/res/drawable-xxhdpi/file_code.png
new file mode 100644 (file)
index 0000000..94540dc
Binary files /dev/null and b/res/drawable-xxhdpi/file_code.png differ
index 0c7caeb..6007b37 100644 (file)
Binary files a/res/drawable-xxhdpi/file_doc.png and b/res/drawable-xxhdpi/file_doc.png differ
index 239d4a7..671b6bf 100644 (file)
Binary files a/res/drawable-xxhdpi/file_image.png and b/res/drawable-xxhdpi/file_image.png differ
index f60eb71..28acf0e 100644 (file)
Binary files a/res/drawable-xxhdpi/file_movie.png and b/res/drawable-xxhdpi/file_movie.png differ
index d267059..b3d9274 100644 (file)
Binary files a/res/drawable-xxhdpi/file_pdf.png and b/res/drawable-xxhdpi/file_pdf.png differ
index 2923568..569feec 100644 (file)
Binary files a/res/drawable-xxhdpi/file_ppt.png and b/res/drawable-xxhdpi/file_ppt.png differ
index b364c3b..63b0d49 100644 (file)
Binary files a/res/drawable-xxhdpi/file_sound.png and b/res/drawable-xxhdpi/file_sound.png differ
diff --git a/res/drawable-xxhdpi/file_text.png b/res/drawable-xxhdpi/file_text.png
new file mode 100644 (file)
index 0000000..9101f46
Binary files /dev/null and b/res/drawable-xxhdpi/file_text.png differ
diff --git a/res/drawable-xxhdpi/file_vcard.png b/res/drawable-xxhdpi/file_vcard.png
new file mode 100644 (file)
index 0000000..28572cb
Binary files /dev/null and b/res/drawable-xxhdpi/file_vcard.png differ
index c800ae4..9e297ee 100644 (file)
Binary files a/res/drawable-xxhdpi/file_xls.png and b/res/drawable-xxhdpi/file_xls.png differ
index 2ce35ba..2535d7c 100644 (file)
Binary files a/res/drawable-xxhdpi/file_zip.png and b/res/drawable-xxhdpi/file_zip.png differ
diff --git a/res/drawable-xxhdpi/folder_external.png b/res/drawable-xxhdpi/folder_external.png
new file mode 100644 (file)
index 0000000..29347c5
Binary files /dev/null and b/res/drawable-xxhdpi/folder_external.png differ
index ea72b4d..b6755f3 100644 (file)
Binary files a/res/drawable-xxhdpi/folder_public.png and b/res/drawable-xxhdpi/folder_public.png differ
diff --git a/res/drawable-xxhdpi/ic_account_circle.png b/res/drawable-xxhdpi/ic_account_circle.png
new file mode 100644 (file)
index 0000000..bfd4632
Binary files /dev/null and b/res/drawable-xxhdpi/ic_account_circle.png differ
diff --git a/res/drawable-xxhdpi/ic_action_create_dir.png b/res/drawable-xxhdpi/ic_action_create_dir.png
new file mode 100644 (file)
index 0000000..7bd3c8f
Binary files /dev/null and b/res/drawable-xxhdpi/ic_action_create_dir.png differ
diff --git a/res/drawable-xxhdpi/ic_action_download.png b/res/drawable-xxhdpi/ic_action_download.png
new file mode 100644 (file)
index 0000000..95502de
Binary files /dev/null and b/res/drawable-xxhdpi/ic_action_download.png differ
diff --git a/res/drawable-xxhdpi/ic_action_download_grey.png b/res/drawable-xxhdpi/ic_action_download_grey.png
new file mode 100644 (file)
index 0000000..c4d0b0c
Binary files /dev/null and b/res/drawable-xxhdpi/ic_action_download_grey.png differ
diff --git a/res/drawable-xxhdpi/ic_action_refresh.png b/res/drawable-xxhdpi/ic_action_refresh.png
new file mode 100644 (file)
index 0000000..a5561e3
Binary files /dev/null and b/res/drawable-xxhdpi/ic_action_refresh.png differ
diff --git a/res/drawable-xxhdpi/ic_action_refresh_grey.png b/res/drawable-xxhdpi/ic_action_refresh_grey.png
new file mode 100644 (file)
index 0000000..5d8775a
Binary files /dev/null and b/res/drawable-xxhdpi/ic_action_refresh_grey.png differ
diff --git a/res/drawable-xxhdpi/ic_action_settings.png b/res/drawable-xxhdpi/ic_action_settings.png
new file mode 100644 (file)
index 0000000..6a70402
Binary files /dev/null and b/res/drawable-xxhdpi/ic_action_settings.png differ
diff --git a/res/drawable-xxhdpi/ic_action_upload.png b/res/drawable-xxhdpi/ic_action_upload.png
new file mode 100644 (file)
index 0000000..a6c31e9
Binary files /dev/null and b/res/drawable-xxhdpi/ic_action_upload.png differ
diff --git a/res/drawable-xxhdpi/ic_cancel.png b/res/drawable-xxhdpi/ic_cancel.png
new file mode 100644 (file)
index 0000000..f6f7844
Binary files /dev/null and b/res/drawable-xxhdpi/ic_cancel.png differ
diff --git a/res/drawable-xxhdpi/ic_checkbox_blank_outline.png b/res/drawable-xxhdpi/ic_checkbox_blank_outline.png
new file mode 100644 (file)
index 0000000..ffb1ea8
Binary files /dev/null and b/res/drawable-xxhdpi/ic_checkbox_blank_outline.png differ
diff --git a/res/drawable-xxhdpi/ic_checkbox_marked.png b/res/drawable-xxhdpi/ic_checkbox_marked.png
new file mode 100644 (file)
index 0000000..fba7e0c
Binary files /dev/null and b/res/drawable-xxhdpi/ic_checkbox_marked.png differ
diff --git a/res/drawable-xxhdpi/ic_folder_open.png b/res/drawable-xxhdpi/ic_folder_open.png
new file mode 100644 (file)
index 0000000..bc826f4
Binary files /dev/null and b/res/drawable-xxhdpi/ic_folder_open.png differ
diff --git a/res/drawable-xxhdpi/ic_hide.png b/res/drawable-xxhdpi/ic_hide.png
new file mode 100644 (file)
index 0000000..394b85e
Binary files /dev/null and b/res/drawable-xxhdpi/ic_hide.png differ
diff --git a/res/drawable-xxhdpi/ic_import.png b/res/drawable-xxhdpi/ic_import.png
new file mode 100644 (file)
index 0000000..a4412aa
Binary files /dev/null and b/res/drawable-xxhdpi/ic_import.png differ
diff --git a/res/drawable-xxhdpi/ic_lock.png b/res/drawable-xxhdpi/ic_lock.png
new file mode 100644 (file)
index 0000000..745227f
Binary files /dev/null and b/res/drawable-xxhdpi/ic_lock.png differ
diff --git a/res/drawable-xxhdpi/ic_lock_open.png b/res/drawable-xxhdpi/ic_lock_open.png
new file mode 100644 (file)
index 0000000..a0eec1f
Binary files /dev/null and b/res/drawable-xxhdpi/ic_lock_open.png differ
diff --git a/res/drawable-xxhdpi/ic_log.png b/res/drawable-xxhdpi/ic_log.png
new file mode 100644 (file)
index 0000000..50f854e
Binary files /dev/null and b/res/drawable-xxhdpi/ic_log.png differ
index 93ee2ad..81e9f7f 100644 (file)
Binary files a/res/drawable-xxhdpi/ic_menu_archive.png and b/res/drawable-xxhdpi/ic_menu_archive.png differ
diff --git a/res/drawable-xxhdpi/ic_ok.png b/res/drawable-xxhdpi/ic_ok.png
new file mode 100644 (file)
index 0000000..6fe6ef6
Binary files /dev/null and b/res/drawable-xxhdpi/ic_ok.png differ
diff --git a/res/drawable-xxhdpi/ic_play_arrow.png b/res/drawable-xxhdpi/ic_play_arrow.png
new file mode 100644 (file)
index 0000000..547ef30
Binary files /dev/null and b/res/drawable-xxhdpi/ic_play_arrow.png differ
diff --git a/res/drawable-xxhdpi/ic_sort_variant.png b/res/drawable-xxhdpi/ic_sort_variant.png
new file mode 100644 (file)
index 0000000..2918126
Binary files /dev/null and b/res/drawable-xxhdpi/ic_sort_variant.png differ
diff --git a/res/drawable-xxhdpi/ic_view.png b/res/drawable-xxhdpi/ic_view.png
new file mode 100644 (file)
index 0000000..36c10e7
Binary files /dev/null and b/res/drawable-xxhdpi/ic_view.png differ
diff --git a/res/drawable-xxhdpi/ic_warning.png b/res/drawable-xxhdpi/ic_warning.png
new file mode 100644 (file)
index 0000000..dc007ee
Binary files /dev/null and b/res/drawable-xxhdpi/ic_warning.png differ
diff --git a/res/drawable-xxhdpi/icon.png b/res/drawable-xxhdpi/icon.png
new file mode 100644 (file)
index 0000000..ad0fd25
Binary files /dev/null and b/res/drawable-xxhdpi/icon.png differ
diff --git a/res/drawable-xxhdpi/no_network.png b/res/drawable-xxhdpi/no_network.png
new file mode 100644 (file)
index 0000000..1fec70b
Binary files /dev/null and b/res/drawable-xxhdpi/no_network.png differ
diff --git a/res/drawable-xxhdpi/owncloud_progress_bg_light.9.png b/res/drawable-xxhdpi/owncloud_progress_bg_light.9.png
new file mode 100644 (file)
index 0000000..fb146c3
Binary files /dev/null and b/res/drawable-xxhdpi/owncloud_progress_bg_light.9.png differ
diff --git a/res/drawable-xxhdpi/owncloud_progress_primary_light.9.png b/res/drawable-xxhdpi/owncloud_progress_primary_light.9.png
new file mode 100644 (file)
index 0000000..1fc3b4e
Binary files /dev/null and b/res/drawable-xxhdpi/owncloud_progress_primary_light.9.png differ
diff --git a/res/drawable-xxhdpi/owncloud_progress_secondary_light.9.png b/res/drawable-xxhdpi/owncloud_progress_secondary_light.9.png
new file mode 100644 (file)
index 0000000..6cae209
Binary files /dev/null and b/res/drawable-xxhdpi/owncloud_progress_secondary_light.9.png differ
diff --git a/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_1.png b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_1.png
new file mode 100644 (file)
index 0000000..2444d83
Binary files /dev/null and b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_1.png differ
diff --git a/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_2.png b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_2.png
new file mode 100644 (file)
index 0000000..35ca0a7
Binary files /dev/null and b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_2.png differ
diff --git a/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_3.png b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_3.png
new file mode 100644 (file)
index 0000000..94b63b5
Binary files /dev/null and b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_3.png differ
diff --git a/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_4.png b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_4.png
new file mode 100644 (file)
index 0000000..efe4948
Binary files /dev/null and b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_4.png differ
diff --git a/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_5.png b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_5.png
new file mode 100644 (file)
index 0000000..e91efc5
Binary files /dev/null and b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_5.png differ
diff --git a/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_6.png b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_6.png
new file mode 100644 (file)
index 0000000..815d093
Binary files /dev/null and b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_6.png differ
diff --git a/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_7.png b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_7.png
new file mode 100644 (file)
index 0000000..c78647d
Binary files /dev/null and b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_7.png differ
diff --git a/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_8.png b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_8.png
new file mode 100644 (file)
index 0000000..1edad5a
Binary files /dev/null and b/res/drawable-xxhdpi/owncloud_progressbar_indeterminate_8.png differ
index 23e23d8..d0d6ce8 100644 (file)
Binary files a/res/drawable-xxhdpi/shared_with_me_folder.png and b/res/drawable-xxhdpi/shared_with_me_folder.png differ
diff --git a/res/drawable-xxxhdpi/ic_action_create_dir.png b/res/drawable-xxxhdpi/ic_action_create_dir.png
new file mode 100644 (file)
index 0000000..49f258f
Binary files /dev/null and b/res/drawable-xxxhdpi/ic_action_create_dir.png differ
diff --git a/res/drawable-xxxhdpi/ic_action_download.png b/res/drawable-xxxhdpi/ic_action_download.png
new file mode 100644 (file)
index 0000000..a57e72f
Binary files /dev/null and b/res/drawable-xxxhdpi/ic_action_download.png differ
diff --git a/res/drawable-xxxhdpi/ic_action_upload.png b/res/drawable-xxxhdpi/ic_action_upload.png
new file mode 100644 (file)
index 0000000..fb717a9
Binary files /dev/null and b/res/drawable-xxxhdpi/ic_action_upload.png differ
diff --git a/res/drawable-xxxhdpi/icon.png b/res/drawable-xxxhdpi/icon.png
new file mode 100644 (file)
index 0000000..c0ec25c
Binary files /dev/null and b/res/drawable-xxxhdpi/icon.png differ
diff --git a/res/drawable/actionbar_progress_horizontal.xml b/res/drawable/actionbar_progress_horizontal.xml
new file mode 100644 (file)
index 0000000..6c3c0f1
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item
+        android:id="@android:id/background"
+        android:drawable="@color/owncloud_blue" />
+    <item android:id="@android:id/secondaryProgress">
+        <scale
+            android:drawable="@color/owncloud_blue"
+            android:scaleWidth="100%" />
+    </item>
+    <item android:id="@android:id/progress">
+        <scale
+            android:drawable="@color/owncloud_blue"
+            android:scaleWidth="100%" />
+    </item>
+
+</layer-list>
\ No newline at end of file
diff --git a/res/drawable/actionbar_progress_indeterminate_horizontal.xml b/res/drawable/actionbar_progress_indeterminate_horizontal.xml
new file mode 100644 (file)
index 0000000..1cd653b
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<animation-list
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:oneshot="false">
+    <item android:drawable="@drawable/owncloud_progressbar_indeterminate_1" android:duration="50" />
+    <item android:drawable="@drawable/owncloud_progressbar_indeterminate_2" android:duration="50" />
+    <item android:drawable="@drawable/owncloud_progressbar_indeterminate_3" android:duration="50" />
+    <item android:drawable="@drawable/owncloud_progressbar_indeterminate_4" android:duration="50" />
+    <item android:drawable="@drawable/owncloud_progressbar_indeterminate_5" android:duration="50" />
+    <item android:drawable="@drawable/owncloud_progressbar_indeterminate_6" android:duration="50" />
+    <item android:drawable="@drawable/owncloud_progressbar_indeterminate_7" android:duration="50" />
+    <item android:drawable="@drawable/owncloud_progressbar_indeterminate_8" android:duration="50" />
+</animation-list>
diff --git a/res/drawable/backrepeat.xml b/res/drawable/backrepeat.xml
new file mode 100644 (file)
index 0000000..37105c7
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/checker_16_16"
+    android:tileMode="repeat" />
\ No newline at end of file
diff --git a/res/drawable/checker_16_16.png b/res/drawable/checker_16_16.png
new file mode 100644 (file)
index 0000000..3e9e3d0
Binary files /dev/null and b/res/drawable/checker_16_16.png differ
diff --git a/res/drawable/conflict_file_indicator.png b/res/drawable/conflict_file_indicator.png
new file mode 100644 (file)
index 0000000..fd580ca
Binary files /dev/null and b/res/drawable/conflict_file_indicator.png differ
diff --git a/res/drawable/fab_label_background.xml b/res/drawable/fab_label_background.xml
new file mode 100644 (file)
index 0000000..4460dab
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/black_semi_transparent"/>
+    <padding
+        android:left="@dimen/standard_padding"
+        android:top="4dp"
+        android:right="@dimen/standard_padding"
+        android:bottom="4dp"/>
+    <corners
+        android:radius="2dp"/>
+</shape>
\ No newline at end of file
diff --git a/res/drawable/process_dialog_background.xml b/res/drawable/process_dialog_background.xml
new file mode 100644 (file)
index 0000000..9ba0b1e
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/white"/>
+    <padding
+        android:left="@dimen/standard_padding"
+        android:top="4dp"
+        android:right="@dimen/standard_padding"
+        android:bottom="4dp"/>
+    <corners
+        android:radius="2dp"/>
+</shape>
\ No newline at end of file
diff --git a/res/drawable/synchronizing_file_indicator.png b/res/drawable/synchronizing_file_indicator.png
new file mode 100644 (file)
index 0000000..947cba7
Binary files /dev/null and b/res/drawable/synchronizing_file_indicator.png differ
index 27873a6..347568e 100644 (file)
                            android:gravity="center"\r
                            android:orientation="vertical"\r
                            android:padding="8dp" >\r
-                           \r
-                               <Button\r
-                                   android:id="@+id/centeredRefreshButton"\r
-                                   android:layout_width="wrap_content"\r
-                                   android:layout_height="wrap_content"\r
-                                   android:layout_gravity="center_horizontal"\r
+\r
+                               <android.support.v7.widget.AppCompatButton\r
+                                       android:id="@+id/centeredRefreshButton"\r
+                                       style="@style/ownCloud.Button"\r
+                                       android:layout_width="wrap_content"\r
+                                       android:layout_height="wrap_content"\r
+                                       android:layout_gravity="center_horizontal"\r
                                        android:layout_marginBottom="10dp"\r
-                       android:onClick="onRefreshClick"\r
-                                   android:text="@string/auth_check_server"\r
-                                   android:visibility="gone"\r
-                    android:contentDescription="@string/auth_check_server"/>\r
+                                       android:text="@string/auth_check_server"\r
+                                       android:visibility="gone"\r
+                                       android:contentDescription="@string/auth_check_server"/>\r
+\r
                                <TextView\r
                                    android:id="@+id/instructions_message"\r
                                    android:layout_width="wrap_content"\r
                                    android:text="@string/auth_expired_basic_auth_toast" \r
                                    android:visibility="gone"\r
                                    android:layout_marginBottom="10dp"\r
+                                       android:textColor="@color/login_text_color"\r
+                                       android:textColorHint="@color/login_text_hint_color"\r
                     android:contentDescription="@string/auth_expired_basic_auth_toast"/>\r
                            <FrameLayout \r
                                android:id="@+id/hostUrlFrame"\r
                                        android:layout_width="match_parent"\r
                                        android:layout_height="wrap_content"\r
-                                       android:layout_marginBottom="10dp"\r
+                                       android:layout_marginBottom="0dp"\r
                                >\r
                                        <EditText\r
                                                android:id="@+id/hostUrlInput"\r
                                                android:inputType="textUri"\r
                                                android:drawablePadding="5dp"\r
                                                android:paddingRight="55dp"\r
+                                               android:textColorHint="@color/login_text_hint_color"\r
                                                android:contentDescription="@string/auth_host_address"\r
                                                >\r
                                                <requestFocus />\r
                                        </EditText>\r
                                        <ImageButton\r
                                            android:id="@+id/embeddedRefreshButton"\r
-                                           android:layout_width="48dp"\r
-                                           android:layout_height="48dp"\r
+                                           android:layout_width="wrap_content"\r
+                                           android:layout_height="wrap_content"\r
                                            android:layout_gravity="center_vertical|right"\r
                                            android:layout_marginRight="5dp"\r
                                            android:padding="0dp"\r
                                            android:scaleType="fitCenter"\r
-                                           android:src="@drawable/ic_action_refresh_black"\r
+                                           android:src="@drawable/ic_action_refresh_grey"\r
                                android:onClick="onRefreshClick"\r
                                            android:visibility="gone"\r
                                                android:background="@android:color/transparent"\r
                                        android:drawableLeft="@android:drawable/stat_notify_sync"\r
                                        android:drawablePadding="5dp"\r
                                        android:gravity="center_vertical"\r
+                                       android:textColor="@color/login_text_color"\r
+                                       android:textColorHint="@color/login_text_hint_color"\r
                                        android:text="@string/auth_testing_connection"\r
+                                       android:minHeight="32dp"\r
                     android:contentDescription="@string/auth_testing_connection"/>\r
                             \r
                                <CheckBox\r
                                        android:checked="false"\r
                                        android:onClick="onCheckClick"\r
                                        android:text="@string/oauth_check_onoff"\r
+                                       android:textColor="@color/primary"\r
+                                       android:textColorHint="@color/login_text_hint_color"\r
                                        android:textAppearance="?android:attr/textAppearanceSmall"\r
                     android:contentDescription="@string/oauth_check_onoff"\r
                                        />\r
                                        android:text="@string/oauth2_url_endpoint_auth"\r
                                        android:singleLine="true"\r
                                        android:inputType="textUri"\r
+                                       android:textColorHint="@color/login_text_hint_color"\r
                                        android:visibility="gone">\r
                                </EditText>            \r
                                \r
                                        android:text="@string/oauth2_url_endpoint_access"\r
                                        android:singleLine="true"\r
                                        android:inputType="textUri"\r
+                                       android:textColorHint="@color/login_text_hint_color"\r
                                        android:visibility="gone">\r
                                        <requestFocus />\r
                                </EditText>            \r
                                        android:ems="10"\r
                                        android:hint="@string/auth_username"\r
                                        android:inputType="textNoSuggestions"\r
+                                       android:textColorHint="@color/login_text_hint_color"\r
                                        android:contentDescription="@string/auth_username"\r
                                        />\r
                \r
                                        android:hint="@string/auth_password"\r
                                        android:inputType="textPassword"\r
                                        android:drawablePadding="5dp"\r
-                                       android:contentDescription="@string/auth_password"\r
+                                       android:textColorHint="@color/login_text_hint_color"\r
                                        />\r
                        \r
                                <TextView\r
                                        android:text="@string/auth_unauthorized"\r
                                        android:drawableLeft="@android:drawable/stat_notify_sync"\r
                                        android:drawablePadding="5dip"\r
+                                       android:textColor="@color/login_text_color"\r
+                                       android:textColorHint="@color/login_text_hint_color"\r
                     android:contentDescription="@string/auth_unauthorized"\r
                                        />\r
 \r
                android:layout_alignParentBottom="true"\r
         android:orientation="vertical" >\r
         \r
-               <Button\r
+               <android.support.v7.widget.AppCompatButton\r
                    android:id="@+id/buttonOK"\r
+                       android:theme="@style/Button.Primary"\r
+                       style="@style/Button.Primary"\r
                    android:layout_width="match_parent"\r
                    android:layout_height="wrap_content"\r
                    android:layout_gravity="center_horizontal"\r
                    android:enabled="false"\r
-                   android:onClick="onOkClick"\r
                    android:text="@string/setup_btn_connect"\r
             android:contentDescription="@string/setup_btn_connect"/>\r
                \r
                    android:paddingBottom="5dp"\r
                    android:paddingTop="5dp"\r
                    android:text="@string/auth_register"\r
-                   android:textColor="#0000FF"\r
+                       android:textColor="@color/login_text_color"\r
             android:contentDescription="@string/auth_register"/>\r
        </LinearLayout>\r
                \r
index bd4b0b6..d90fb8a 100644 (file)
         android:orientation="horizontal" >
 
         <!-- 'OK' / 'CANCEL' BUTTONS CHANGE THEIR ORDER FROM ANDROID 4.0 ; THANKS, GOOGLE -->
-        <Button
+        <android.support.v7.widget.AppCompatButton
             android:id="@+id/cancel"
+            android:theme="@style/Button"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:text="@string/common_cancel" />
 
-               <Button
+        <android.support.v7.widget.AppCompatButton
                    android:id="@+id/ok"
+            android:theme="@style/Button.Primary"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
index 6b9ce79..a555e2f 100644 (file)
             android:id="@+id/thumbnail"\r
             android:layout_width="match_parent"\r
             android:layout_height="wrap_content"\r
-            android:layout_marginBottom="10dp"\r
+            android:layout_marginBottom="20dp"\r
             android:layout_marginTop="10dp"\r
             android:background="@color/login_logo_background_color"\r
             android:src="@drawable/logo"\r
             android:contentDescription="@string/app_name"/>\r
 \r
-        <Button\r
+        <android.support.v7.widget.AppCompatButton\r
             android:id="@+id/centeredRefreshButton"\r
+            style="@style/ownCloud.Button"\r
             android:layout_width="wrap_content"\r
             android:layout_height="wrap_content"\r
             android:layout_gravity="center_horizontal"\r
             android:layout_marginBottom="10dp"\r
-            android:onClick="onRefreshClick"\r
             android:text="@string/auth_check_server"\r
             android:visibility="gone"\r
             android:contentDescription="@string/auth_check_server"/>\r
             android:text="@string/auth_expired_basic_auth_toast"\r
             android:visibility="gone"\r
             android:layout_marginBottom="10dp"\r
+            android:textColor="@color/login_text_color"\r
+            android:textColorHint="@color/login_text_hint_color"\r
             android:contentDescription="@string/auth_expired_basic_auth_toast"/>\r
 \r
            <FrameLayout \r
                android:id="@+id/hostUrlFrame"\r
                        android:layout_width="match_parent"\r
                        android:layout_height="wrap_content"\r
-            android:layout_marginBottom="10dp"\r
+            android:layout_marginBottom="0dp"\r
                >\r
                        <EditText\r
                                android:id="@+id/hostUrlInput"\r
                                android:inputType="textUri"\r
                                android:drawablePadding="5dp"\r
                                android:paddingRight="55dp"\r
+                android:textColorHint="@color/login_text_hint_color"\r
                                android:contentDescription="@string/auth_host_address"\r
                 >\r
                                <requestFocus />\r
                        </EditText>\r
                        <ImageButton\r
                            android:id="@+id/embeddedRefreshButton"\r
-                           android:layout_width="48dp"\r
-                           android:layout_height="48dp"\r
+                           android:layout_width="wrap_content"\r
+                           android:layout_height="wrap_content"\r
                            android:layout_gravity="center_vertical|right"\r
                            android:layout_marginRight="5dp"\r
                            android:padding="0dp"\r
                            android:scaleType="fitCenter"\r
-                           android:src="@drawable/ic_action_refresh_black"\r
-               android:onClick="onRefreshClick"\r
+                           android:src="@drawable/ic_action_refresh_grey"\r
                                android:visibility="gone"\r
                                android:background="@android:color/transparent"\r
                 android:contentDescription="@string/auth_refresh_button"\r
             android:drawableLeft="@android:drawable/stat_notify_sync"\r
             android:drawablePadding="5dp"\r
             android:gravity="center_vertical"\r
+            android:textColor="@color/login_text_color"\r
+            android:textColorHint="@color/login_text_hint_color"\r
             android:text="@string/auth_testing_connection"\r
+            android:minHeight="32dp"\r
             android:contentDescription="@string/auth_testing_connection"/>\r
 \r
         <CheckBox\r
             android:onClick="onCheckClick"\r
             android:text="@string/oauth_check_onoff"\r
             android:textAppearance="?android:attr/textAppearanceSmall"\r
+            android:textColor="@color/primary"\r
+            android:textColorHint="@color/login_text_hint_color"\r
             android:contentDescription="@string/oauth_check_onoff"\r
             />\r
 \r
             android:layout_height="wrap_content"\r
             android:ems="10"\r
                        android:enabled="false"\r
+            android:textColorHint="@color/login_text_hint_color"\r
             android:text="@string/oauth2_url_endpoint_auth"\r
             android:singleLine="true"\r
             android:inputType="textUri"\r
             android:text="@string/oauth2_url_endpoint_access"\r
             android:singleLine="true"\r
             android:inputType="textUri"\r
+            android:textColorHint="@color/login_text_hint_color"\r
             android:visibility="gone"/>\r
 \r
         <EditText\r
             android:ems="10"\r
             android:hint="@string/auth_username"\r
             android:inputType="textNoSuggestions"\r
+            android:textColorHint="@color/login_text_hint_color"\r
             android:contentDescription="@string/auth_username"\r
             />\r
 \r
                    android:ems="10"\r
                    android:hint="@string/auth_password"\r
                    android:inputType="textPassword"\r
+            android:textColorHint="@color/login_text_hint_color"\r
                    android:contentDescription="@string/auth_password"\r
             />\r
         \r
             android:drawablePadding="5dp"\r
             android:gravity="center_vertical"\r
             android:text="@string/auth_unauthorized"\r
+            android:textColor="@color/login_text_color"\r
+            android:textColorHint="@color/login_text_hint_color"\r
             android:contentDescription="@string/auth_unauthorized"/>\r
 \r
-        <Button\r
+        <android.support.v7.widget.AppCompatButton\r
             android:id="@+id/buttonOK"\r
+            android:theme="@style/Button.Primary"\r
+            style="@style/Button.Primary"\r
             android:layout_width="match_parent"\r
             android:layout_height="wrap_content"\r
             android:layout_gravity="center_horizontal"\r
             android:enabled="false"\r
-            android:onClick="onOkClick"\r
             android:text="@string/setup_btn_connect"\r
             android:contentDescription="@string/setup_btn_connect"/>\r
 \r
             android:paddingBottom="5dp"\r
             android:paddingTop="5dp"\r
             android:text="@string/auth_register"\r
-            android:textColor="#0000FF"\r
+            android:textColor="@color/login_text_color"\r
+            android:textColorHint="@color/login_text_hint_color"\r
             android:contentDescription="@string/auth_register"/>\r
 \r
     </LinearLayout>\r
diff --git a/res/layout/alert_dialog_list_view.xml b/res/layout/alert_dialog_list_view.xml
new file mode 100644 (file)
index 0000000..ce5a569
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content">
+
+    <ListView
+        android:id="@+id/list"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</LinearLayout>
index 07ad5ee..485ff52 100644 (file)
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
   -->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/left_drawer"
-    android:layout_width="240dp"
-    android:layout_height="match_parent"
-    android:layout_gravity="start"
-    android:background="@color/background_color"
-    android:baselineAligned="false"
-    android:clickable="true"
-    android:orientation="vertical"
-    android:fitsSystemWindows="true">
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+    <RelativeLayout
+        android:id="@+id/left_drawer"
+        android:layout_width="240dp"
+        android:layout_height="match_parent"
+        android:layout_gravity="start"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:fitsSystemWindows="true"
+        android:background="@color/background_color"
+        >
+
+        <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
+        <!--<LinearLayout-->
+            <!--android:layout_width="match_parent"-->
+            <!--android:layout_height="wrap_content"-->
+            <!--android:layout_margin="5dp">-->
+
+            <!--<ImageView-->
+                <!--android:id="@+id/drawer_userIcon"-->
+                <!--android:layout_width="40dp"-->
+                <!--android:layout_height="40dp"-->
+                <!--android:src="@drawable/abc_ab_bottom_solid_dark_holo" />-->
 
-    <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
-    <!--<LinearLayout-->
-        <!--android:layout_width="match_parent"-->
-        <!--android:layout_height="wrap_content"-->
-        <!--android:layout_margin="5dp">-->
+            <!--<TextView-->
+                <!--android:id="@+id/drawer_username"-->
+                <!--android:layout_width="wrap_content"-->
+                <!--android:layout_height="wrap_content"-->
+                <!--android:layout_gravity="center_vertical"-->
+                <!--android:layout_marginLeft="5dp"-->
+                <!--android:layout_marginStart="5dp"-->
+                <!--android:textAppearance="?android:attr/textAppearanceLarge" />-->
 
-        <!--<ImageView-->
-            <!--android:id="@+id/drawer_userIcon"-->
-            <!--android:layout_width="40dp"-->
-            <!--android:layout_height="40dp"-->
-            <!--android:src="@drawable/abc_ab_bottom_solid_dark_holo" />-->
+        <!--</LinearLayout>-->
 
         <!--<TextView-->
-            <!--android:id="@+id/drawer_username"-->
-            <!--android:layout_width="wrap_content"-->
-            <!--android:layout_height="wrap_content"-->
-            <!--android:layout_gravity="center_vertical"-->
-            <!--android:layout_marginLeft="5dp"-->
-            <!--android:layout_marginStart="5dp"-->
-            <!--android:textAppearance="?android:attr/textAppearanceLarge" />-->
+            <!--android:layout_width="fill_parent"-->
+            <!--android:layout_height="2dip"-->
+            <!--android:background="@color/list_item_lastmod_and_filesize_text" />-->
 
-    <!--</LinearLayout>-->
+        <ListView
+            android:id="@+id/drawer_list"
+            android:choiceMode="singleChoice"
+            android:layout_width="fill_parent"
+            android:layout_height="match_parent"
+            android:background="@color/background_color"
+            android:divider="@color/list_divider_background"
+            android:dividerHeight="1dp"
+            android:paddingTop="100dp" />
 
-    <!--<TextView-->
-        <!--android:layout_width="fill_parent"-->
-        <!--android:layout_height="2dip"-->
-        <!--android:background="@color/list_item_lastmod_and_filesize_text" />-->
+        <LinearLayout
+            android:layout_width="fill_parent"
+            android:layout_height="100dp"
+            android:paddingTop="@dimen/standard_padding"
+            android:paddingBottom="@dimen/standard_padding"
+            android:background="@color/owncloud_blue_accent">
 
-    <ListView
-        android:id="@+id/drawer_list"
-        android:layout_width="fill_parent"
-        android:layout_height="match_parent"
-        android:background="@color/background_color"
-        android:choiceMode="singleChoice"
-        />
-</LinearLayout>
\ No newline at end of file
+            <ImageView
+                android:id="@+id/itemIcon"
+                android:layout_width="24sp"
+                android:layout_height="24sp"
+                android:layout_marginLeft="@dimen/standard_padding"
+                android:layout_marginBottom="3dp"
+                android:layout_gravity="bottom"
+                android:src="@drawable/ic_account_circle"
+                />
+
+            <TextView
+                android:id="@+id/drawer_username"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="bottom"
+                android:gravity="bottom"
+                android:orientation="vertical"
+                android:text="@string/app_name"
+                android:textColor="#FFF"
+                android:paddingLeft="22dp"
+                android:paddingRight="@dimen/standard_padding"
+                android:textSize="24sp"
+                android:ellipsize="end"
+                android:singleLine="true"
+                />
+        </LinearLayout>
+    </RelativeLayout>
+</merge>
\ No newline at end of file
index 30f3843..25415ac 100644 (file)
     android:layout_alignParentLeft="true"
     android:orientation="horizontal"
     android:background="@color/background_color"
-    android:layout_marginTop="10dp"
-    android:layout_marginBottom="10dp">
+    android:layout_marginTop="@dimen/standard_margin"
+    android:layout_marginBottom="@dimen/standard_margin"
+    android:minHeight="?android:attr/listPreferredItemHeight">
+
+    <ImageView
+        android:id="@+id/itemIcon"
+        android:layout_width="24sp"
+        android:layout_height="24sp"
+        android:layout_marginLeft="@dimen/standard_margin"
+        android:layout_gravity="center_vertical"
+        />
 
     <TextView xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/itemTitle"
         android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:gravity="center_vertical"
-        android:paddingLeft="16dp"
-        android:paddingRight="16dp"
-        android:textColor="@color/textColor"
+        android:layout_height="wrap_content"
+        android:paddingLeft="22dp"
+        android:paddingRight="@dimen/standard_margin"
+        android:textColor="@color/drawerMenuTextColor"
         android:text="@string/app_name"
-        android:textAppearance="?android:attr/textAppearanceListItemSmall"
-        android:minHeight="?android:attr/listPreferredItemHeightSmall"/>
+        android:textStyle="normal"
+        android:layout_gravity="center_vertical"
+        android:textSize="14sp"
+        />
 </LinearLayout>
 
index 726d057..3c4bbdb 100644 (file)
@@ -21,7 +21,7 @@
     android:layout_width="fill_parent"
     android:layout_height="56dp"
     android:gravity="center_vertical"
-    android:paddingLeft="16dp"
-    android:paddingRight="16dp"
-    android:textColor="#000"
+    android:paddingLeft="@dimen/standard_padding"
+    android:paddingRight="@dimen/standard_padding"
+    android:textColor="@color/black"
     android:textSize="18dp" />
\ No newline at end of file
diff --git a/res/layout/error_send.xml b/res/layout/error_send.xml
new file mode 100644 (file)
index 0000000..7a80166
--- /dev/null
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ownCloud Android client application
+
+  Copyright (C) 2015 ownCloud Inc.
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License version 2,
+  as published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:weightSum="1" >
+
+    <ScrollView
+        android:id="@+id/scrollView1"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_marginBottom="@dimen/standard_margin"
+        android:layout_weight="1">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:paddingLeft="@dimen/standard_padding"
+            android:paddingRight="@dimen/standard_padding">
+
+            <TextView
+                android:id="@+id/logTV"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:text="@string/empty"
+                android:typeface="monospace"/>
+        </LinearLayout>
+    </ScrollView>
+
+    <LinearLayout
+        android:id="@+id/historyButtonBar"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:layout_marginBottom="@dimen/standard_margin"
+        android:layout_marginLeft="@dimen/standard_margin"
+        android:layout_marginRight="@dimen/standard_margin">
+
+    <Button
+        android:id="@+id/cancelErrorLogButton"
+        android:theme="@style/Button"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom"
+        android:layout_weight="1"
+        android:text="@string/error_log_exit" />
+
+    <android.support.v7.widget.AppCompatButton
+        android:id="@+id/sendErrorLogButton"
+        android:theme="@style/Button.Primary"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom"
+        android:layout_weight="1"
+        android:text="@string/error_log_send" />
+
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/file_actions.xml b/res/layout/file_actions.xml
new file mode 100644 (file)
index 0000000..c52c1f1
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:layout_margin="@dimen/standard_margin"
+    android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/file_actions_header"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:padding="@dimen/standard_padding"
+        android:textColor="@color/black"
+        android:visibility="gone"
+        />
+
+    <View
+        android:id="@+id/file_actions_header_divider"
+        android:layout_width="match_parent"
+        android:layout_height="2dp"
+        android:background="@color/owncloud_blue"
+        android:visibility="gone"
+        />
+
+    <ListView
+        android:id="@+id/file_actions_list"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        />
+
+</LinearLayout >
\ No newline at end of file
index d242954..a4c9709 100644 (file)
@@ -20,7 +20,7 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
-    android:background="#F7F7F7"
+    android:background="@color/background_color"
     android:orientation="vertical">
 
     <TextView 
index f5faa47..7a241b3 100644 (file)
@@ -21,6 +21,7 @@
        android:id="@+id/fdScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
+       android:fillViewport="true"
        >
 
        <RelativeLayout
@@ -31,8 +32,9 @@
                        android:id="@+id/fdFileHeaderContainer"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
-                       android:layout_marginLeft="16dp"
-                       android:layout_marginTop="4dp" >
+                       android:layout_marginLeft="@dimen/standard_margin"
+                       android:layout_marginRight="@dimen/standard_margin"
+                       android:layout_marginTop="@dimen/standard_margin">
        
                        <ImageView
                                android:id="@+id/fdIcon"
@@ -55,6 +57,9 @@
                        android:id="@+id/fdDetailsContainer"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
+                       android:layout_marginLeft="@dimen/standard_margin"
+                       android:layout_marginRight="@dimen/standard_margin"
+                       android:layout_marginTop="@dimen/standard_margin"
                        android:layout_below="@id/fdFileHeaderContainer" >
                
                        <RelativeLayout
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentLeft="true"
-                               android:layout_alignParentTop="true"
-                               android:layout_marginLeft="16dp" >
+                               android:layout_alignParentTop="true" >
                                
                                <TextView
                                        android:id="@+id/fdTypeLabel"
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
-                                       android:layout_marginTop="24dp"
                                        android:text="@string/filedetails_type"
                                        android:textAppearance="?android:attr/textAppearanceMedium" />
                                        
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentTop="true"
-                               android:layout_marginLeft="12dp"
+                               android:layout_marginLeft="@dimen/standard_margin"
                                android:layout_toRightOf="@+id/fdLabelContainer" >
                                
                                <TextView
                                        android:id="@+id/fdType"
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
-                                       android:layout_marginTop="24dp"
                                        android:text="@string/placeholder_filetype"
                                        android:textAppearance="?android:attr/textAppearanceMedium" />
                                        
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/fdDetailsContainer"
                        android:gravity="center_horizontal" 
-                       android:layout_margin="16dp"
+                       android:layout_margin="@dimen/standard_margin"
                        >
                        
-                       <CheckBox
+                       <android.support.v7.widget.AppCompatCheckBox
                                android:id="@+id/fdFavorite"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_centerHorizontal="true"
-                               android:text="@string/favorite" />
+                               android:text="@string/favorite"
+                               android:checked="false" />
 
                        <LinearLayout
                                android:layout_width="match_parent"
                                                android:layout_width="0dp"
                                                android:layout_height="wrap_content"
                                                android:layout_weight="1"
-                                               android:progressDrawable="@android:drawable/progress_horizontal"
-                                               android:indeterminate="false" 
+                        style="?android:attr/progressBarStyleHorizontal"
+                        android:indeterminate="false"
                                                android:indeterminateOnly="false" 
                                        />
                                                                                                
                                                android:layout_width="wrap_content"
                                                android:layout_height="wrap_content"
                                                android:layout_marginLeft="12dp"
-                                               android:src="@drawable/btn_cancel"
+                                               android:src="@drawable/ic_cancel"
                                                android:background="@android:color/transparent"
                                                />
                                                
index 0494b8a..e101de1 100644 (file)
        android:layout_gravity="center"
        android:gravity="center_vertical"
        android:padding="20dp"
+       android:background="@color/black"
        >
        
        <TextView 
            android:id="@+id/progressText" 
            android:layout_width="match_parent"
-               android:layout_height="wrap_content" 
+               android:layout_height="wrap_content"
+               android:textColor="@color/dark_background_text_color"
                android:text="@string/downloader_not_downloaded_yet"
                android:layout_marginBottom="15dp"
        />
                >
                                        
                <ProgressBar android:id="@+id/progressBar"
-                       android:layout_width="0dp" 
+                       android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
-                       android:progressDrawable="@android:drawable/progress_horizontal"
-                       android:indeterminate="false" 
-                       android:indeterminateOnly="false" 
-                       
-               />
+                       style="?android:attr/progressBarStyleHorizontal"
+                       android:indeterminate="false"
+                       android:indeterminateOnly="false"
+
+                       />
 
                <ImageButton
                        android:id="@+id/cancelBtn"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="12dp"
-                       android:src="@drawable/btn_cancel"
+                       android:src="@drawable/ic_cancel"
                        android:background="@android:color/transparent"
                />
 
@@ -79,6 +81,7 @@
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_margin="40dp"
+               android:textColor="@color/dark_background_text_color"
                android:text="@string/downloader_download_failed_ticker"
        />
        
index d371e10..685f2b5 100644 (file)
@@ -25,9 +25,9 @@
     android:layout_height="match_parent"
     android:background="@color/background_color"
     android:gravity="center"
-    tools:context=".ui.fragment.FilePreviewFragment" >
+    tools:context=".ui.fragment.FilePreviewFragment">
 
-    <FrameLayout 
+    <FrameLayout
         android:id="@+id/visual_area"
            android:layout_width="match_parent"
            android:layout_height="0dp"
@@ -39,7 +39,7 @@
                android:id="@+id/image_preview"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
-               android:layout_margin="16dp"
+               android:layout_margin="@dimen/standard_margin"
                android:layout_gravity="center"
                android:contentDescription="@string/preview_image_description"
                android:src="@drawable/logo" />
@@ -59,6 +59,7 @@
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
+               android:layout_margin="16dp"
            />
 
 </RelativeLayout>
\ No newline at end of file
index 649c863..5a2e957 100644 (file)
 \r
     <!-- The main content view -->\r
     <LinearLayout\r
-        xmlns:android="http://schemas.android.com/apk/res/android"\r
         android:layout_width="match_parent"\r
         android:layout_height="match_parent"\r
-        android:background="@color/background_color"\r
-        android:baselineAligned="false"\r
-        android:orientation="horizontal"\r
-        android:id="@+id/ListLayout"\r
-        android:contentDescription="@string/list_layout"\r
-        >\r
+        android:orientation="vertical">\r
 \r
+        <ProgressBar android:id="@+id/progressBar"\r
+            android:layout_width="match_parent"\r
+            android:layout_height="4dp"\r
+            android:padding="0dp"\r
+            android:layout_margin="0dp"\r
+            style="@style/Widget.ownCloud.TopProgressBar"\r
+            android:indeterminate="false"\r
+            android:indeterminateOnly="false"\r
+            android:background="@color/background_color"\r
+            android:visibility="visible"\r
+            />\r
 \r
-        <FrameLayout\r
-            android:id="@+id/left_fragment_container"\r
-            android:layout_width="0dp"\r
+        <LinearLayout\r
+            xmlns:android="http://schemas.android.com/apk/res/android"\r
+            android:layout_width="match_parent"\r
             android:layout_height="match_parent"\r
-            android:layout_weight="1" />\r
+            android:background="@color/background_color"\r
+\r
+            android:orientation="horizontal"\r
+            android:id="@+id/ListLayout"\r
+            android:contentDescription="@string/list_layout"\r
+            >\r
+\r
+            <FrameLayout\r
+                android:id="@+id/left_fragment_container"\r
+                android:layout_width="0dp"\r
+                android:layout_height="match_parent"\r
+                android:layout_weight="1" />\r
+\r
+            <FrameLayout\r
+                android:id="@+id/right_fragment_container"\r
+                android:layout_width="0dp"\r
+                android:layout_height="match_parent"\r
+                android:layout_weight="2" />\r
+        </LinearLayout>\r
 \r
-        <FrameLayout\r
-            android:id="@+id/right_fragment_container"\r
-            android:layout_width="0dp"\r
-            android:layout_height="match_parent"\r
-            android:layout_weight="2" />\r
     </LinearLayout>\r
 \r
     <include\r
index 0b11589..0e334fd 100644 (file)
     android:background="@color/background_color"
     android:orientation="vertical" >
 
+    <ProgressBar android:id="@+id/progressBar"
+        android:layout_width="match_parent"
+        android:layout_height="4dp"
+        android:padding="0dp"
+        android:layout_margin="0dp"
+        style="@style/Widget.ownCloud.TopProgressBar"
+        android:indeterminate="false"
+        android:indeterminateOnly="false"
+        android:background="@color/background_color"
+        android:visibility="visible"
+        />
+
        <FrameLayout 
                android:layout_width="match_parent"
                android:layout_height="0dip"
         android:gravity="center"
         android:orientation="horizontal" >
 
-        <Button
+        <android.support.v7.widget.AppCompatButton
             android:id="@+id/folder_picker_btn_cancel"
+            android:theme="@style/Button"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:text="@string/common_cancel" />
 
-               <Button
+        <android.support.v7.widget.AppCompatButton
                    android:id="@+id/folder_picker_btn_choose"
+            android:theme="@style/Button.Primary"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
index e684397..64c9ed0 100644 (file)
         android:gravity="center"
         android:orientation="horizontal" >
 
-               <Button
+        <android.support.v7.widget.AppCompatButton
                    android:id="@+id/ok"
+            android:theme="@style/Button.Primary"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="@string/common_ok" />
-               
-        <Button
+
+        <android.support.v7.widget.AppCompatButton
             android:id="@+id/cancel"
+            android:theme="@style/Button"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_weight="1"
index 383c615..9f93a3e 100644 (file)
             android:scaleType="centerCrop"\r
             android:src="@drawable/ic_menu_archive"/>\r
 \r
-        <LinearLayout\r
+        <ImageView\r
+            android:id="@+id/sharedIcon"\r
             android:layout_width="wrap_content"\r
             android:layout_height="wrap_content"\r
             android:layout_gravity="top|right"\r
-            android:orientation="vertical"\r
-            android:layout_margin="4dp">\r
-\r
-            <ImageView\r
-                android:id="@+id/sharedIcon"\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:layout_gravity="center"\r
-                android:layout_marginBottom="4dp"\r
-                android:src="@drawable/sharedlink" />\r
-\r
-            <ImageView\r
-                android:id="@+id/sharedWithMeIcon"\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:layout_gravity="center"\r
-                android:layout_marginTop="4dp"\r
-                android:src="@drawable/shared_with_me"\r
-                android:visibility="invisible" />\r
-        </LinearLayout>\r
+            android:layout_margin="4dp"\r
+            android:src="@drawable/shared_via_link" />\r
 \r
         <ImageView\r
             android:id="@+id/localFileIndicator"\r
             android:layout_marginBottom="4dp"\r
             android:layout_marginRight="4dp"\r
             android:src="@drawable/ic_favorite" />\r
+\r
+        <ImageView\r
+            android:id="@+id/custom_checkbox"\r
+            android:layout_width="wrap_content"\r
+            android:layout_height="wrap_content"\r
+            android:layout_gravity="center_vertical|bottom"\r
+            android:layout_marginLeft="4dp"\r
+            android:layout_marginRight="4dp"\r
+            android:gravity=""\r
+            android:src="@android:drawable/checkbox_off_background" />\r
     </FrameLayout>\r
 \r
 </LinearLayout>
\ No newline at end of file
index d0f3d0f..0f27f90 100644 (file)
             android:layout_marginRight="10dp"\r
             android:src="@drawable/ic_menu_archive" />\r
 \r
-        <LinearLayout\r
+        <ImageView\r
+            android:id="@+id/sharedIcon"\r
             android:layout_width="wrap_content"\r
             android:layout_height="wrap_content"\r
+            android:layout_margin="4dp"\r
             android:layout_gravity="top|right"\r
-            android:orientation="vertical"\r
-            android:layout_margin="2dp">\r
-\r
-            <ImageView\r
-                android:id="@+id/sharedIcon"\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:layout_gravity="center"\r
-                android:layout_marginBottom="2dp"\r
-                android:src="@drawable/sharedlink" />\r
-\r
-            <ImageView\r
-                android:id="@+id/sharedWithMeIcon"\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:layout_gravity="center"\r
-                android:layout_marginTop="2dp"\r
-                android:src="@drawable/shared_with_me"\r
-                android:visibility="invisible" />\r
-        </LinearLayout>\r
+            android:src="@drawable/shared_via_link" />\r
 \r
         <ImageView\r
             android:id="@+id/localFileIndicator"\r
             android:layout_marginRight="2dp"\r
             android:src="@drawable/ic_favorite" />\r
 \r
-\r
+        <ImageView\r
+            android:id="@+id/custom_checkbox"\r
+            android:layout_width="wrap_content"\r
+            android:layout_height="wrap_content"\r
+            android:layout_gravity="center_vertical|bottom"\r
+            android:layout_marginLeft="4dp"\r
+            android:layout_marginRight="4dp"\r
+            android:gravity=""\r
+            android:src="@android:drawable/checkbox_off_background"\r
+            android:elevation="30dp" />\r
 \r
     </FrameLayout>\r
 \r
index a49874d..964b845 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="wrap_content"
+    android:layout_width="match_parent"
     android:layout_height="56dp"
     android:layout_gravity="center_horizontal"
     android:gravity="center_horizontal"
     <TextView
         android:id="@+id/footerText"
         android:layout_width="match_parent"
-        android:layout_height="56dp"
+        android:layout_height="wrap_content"
+        android:padding="@dimen/standard_padding"
         android:layout_gravity="center"
         android:gravity="center"
-        android:textColor="@color/setup_text_hint" />
+        android:textColor="@color/secondaryTextColor"
+        />
 
 </LinearLayout> 
\ No newline at end of file
index 81b5210..bd8b12d 100644 (file)
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:fab="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
+    xmlns:fab="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:layout_weight="1" >
+    android:layout_height="match_parent">
 
     <android.support.v4.widget.SwipeRefreshLayout
         android:id="@+id/swipe_containing_list"
         android:layout_width="match_parent"
-        android:layout_height="match_parent" 
-        android:layout_weight="1"
+        android:layout_height="match_parent"
         android:footerDividersEnabled="false"
         android:visibility="visible" >
         
@@ -35,6 +39,8 @@
             android:id="@+id/list_root"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
+            android:divider="@color/list_divider_background"
+            android:dividerHeight="1px"
             android:visibility="visible" />
 
     </android.support.v4.widget.SwipeRefreshLayout>
             </ScrollView>
     </android.support.v4.widget.SwipeRefreshLayout>
 
-</FrameLayout>
\ No newline at end of file
+</FrameLayout>
+    <com.getbase.floatingactionbutton.FloatingActionsMenu
+        android:id="@+id/fab_main"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentRight="true"
+        android:layout_alignParentEnd="true"
+        fab:fab_addButtonColorNormal="@color/owncloud_blue_accent"
+        fab:fab_addButtonColorPressed="@color/owncloud_blue"
+        fab:fab_addButtonPlusIconColor="@color/white"
+        fab:fab_labelStyle="@style/menu_labels_style"
+        android:layout_marginBottom="@dimen/standard_margin"
+        android:layout_marginRight="@dimen/standard_margin"
+        android:layout_marginEnd="@dimen/standard_margin"
+        android:visibility="gone">
+
+        <com.getbase.floatingactionbutton.FloatingActionButton
+            android:id="@+id/fab_upload"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            fab:fab_size="mini"
+            fab:fab_icon="@drawable/ic_action_upload"
+            fab:fab_colorNormal="@color/owncloud_blue_accent"
+            fab:fab_colorPressed="@color/owncloud_blue"
+            fab:fab_title=""/>
+
+        <com.getbase.floatingactionbutton.FloatingActionButton
+            android:id="@+id/fab_mkdir"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            fab:fab_size="mini"
+            fab:fab_icon="@drawable/ic_action_create_dir"
+            fab:fab_colorNormal="@color/owncloud_blue_accent"
+            fab:fab_colorPressed="@color/owncloud_blue"
+            fab:fab_title=""/>
+
+        <com.getbase.floatingactionbutton.FloatingActionButton
+            android:id="@+id/fab_upload_from_app"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            fab:fab_size="mini"
+            fab:fab_icon="@drawable/ic_import"
+            fab:fab_colorNormal="@color/owncloud_blue_accent"
+            fab:fab_colorPressed="@color/owncloud_blue"
+            fab:fab_title=""/>
+
+    </com.getbase.floatingactionbutton.FloatingActionsMenu>
+</RelativeLayout>
index c66ff73..cf09502 100644 (file)
@@ -22,7 +22,7 @@
     android:layout_width="match_parent"\r
     android:background="@drawable/list_selector"\r
     android:orientation="vertical"\r
-    android:layout_height="56dp">\r
+    android:layout_height="72dp">\r
 \r
     <LinearLayout\r
         android:layout_width="match_parent"\r
         android:orientation="horizontal">\r
 \r
         <FrameLayout\r
-            android:layout_width="56dp"\r
-            android:layout_height="56dp"\r
+            android:layout_width="60dp"\r
+            android:layout_height="72dp"\r
+            android:paddingLeft="12dp"\r
+            android:paddingBottom="@dimen/standard_padding"\r
+            android:paddingTop="@dimen/standard_padding"\r
+            android:paddingRight="4dp"\r
             android:focusable="false"\r
             android:focusableInTouchMode="false">\r
 \r
                 android:id="@+id/localFileIndicator"\r
                 android:layout_width="@dimen/file_icon_size"\r
                 android:layout_height="@dimen/file_icon_size"\r
-                android:layout_gravity="center_vertical"\r
-                android:layout_marginLeft="22dp"\r
+                android:layout_gravity="top|right"\r
+                android:layout_marginRight="4dp"\r
                 android:src="@drawable/local_file_indicator" />\r
 \r
             <ImageView\r
                 android:id="@+id/thumbnail"\r
                 android:layout_width="@dimen/file_icon_size"\r
                 android:layout_height="@dimen/file_icon_size"\r
-                android:layout_gravity="center_vertical"\r
-                android:layout_marginLeft="9dp"\r
+                android:layout_gravity="left|center_vertical"\r
                 android:src="@drawable/ic_menu_archive" />\r
 \r
             <ImageView\r
@@ -56,8 +59,7 @@
                 android:layout_width="wrap_content"\r
                 android:layout_height="wrap_content"\r
                 android:layout_gravity="bottom|right"\r
-                android:layout_marginBottom="10dp"\r
-                android:layout_marginRight="2dp"\r
+                android:layout_marginRight="4dp"\r
                 android:src="@drawable/ic_favorite" />\r
         </FrameLayout>\r
 \r
@@ -65,7 +67,8 @@
             android:layout_width="0dp"\r
             android:layout_height="match_parent"\r
             android:layout_weight="1"\r
-            android:gravity="center_vertical"\r
+            android:gravity="top"\r
+            android:paddingTop="@dimen/standard_padding"\r
             android:orientation="vertical" >\r
 \r
             <TextView\r
                 android:layout_width="wrap_content"\r
                 android:layout_height="wrap_content"\r
                 android:layout_gravity="center_vertical"\r
-                android:layout_marginLeft="4dp"\r
+                android:layout_marginLeft="0dp"\r
                 android:layout_marginRight="4dp"\r
                 android:ellipsize="middle"\r
                 android:singleLine="true"\r
                 android:text="TextView"\r
-                android:textColor="#303030"\r
-                android:textSize="16dip" />\r
+                android:textColor="@color/textColor"\r
+                android:textSize="@dimen/two_line_primary_text_size" />\r
 \r
             <LinearLayout\r
                 android:layout_width="match_parent"\r
                 android:layout_height="wrap_content"\r
-                android:layout_marginLeft="4dp"\r
+                android:layout_marginLeft="0dp"\r
                 android:layout_marginRight="4dp"\r
-                android:weightSum="1">\r
+                android:orientation="horizontal">\r
 \r
                 <TextView\r
-                    android:id="@+id/last_mod"\r
+                    android:id="@+id/file_size"\r
                     android:layout_width="wrap_content"\r
                     android:layout_height="wrap_content"\r
-                    android:text="TextView"\r
-                    android:layout_weight=".5"\r
+                    android:text="Size MB"\r
                     android:textColor="@color/list_item_lastmod_and_filesize_text"\r
-                    android:textSize="12dip"/>\r
+                    android:textSize="@dimen/two_line_secondary_text_size"/>\r
 \r
                 <TextView\r
-                    android:id="@+id/file_size"\r
+                    android:id="@+id/file_separator"\r
                     android:layout_width="wrap_content"\r
                     android:layout_height="wrap_content"\r
                     android:gravity="right"\r
-                    android:text="TextView"\r
+                    android:text=""\r
                     android:textColor="@color/list_item_lastmod_and_filesize_text"\r
-                    android:layout_weight=".5"\r
-                    android:textSize="12dip"/>\r
+                    android:textSize="@dimen/two_line_secondary_text_size"/>\r
+\r
+                <TextView\r
+                    android:id="@+id/last_mod"\r
+                    android:layout_width="wrap_content"\r
+                    android:layout_height="wrap_content"\r
+                    android:gravity="right"\r
+                    android:text="Mod Date"\r
+                    android:textColor="@color/list_item_lastmod_and_filesize_text"\r
+                    android:textSize="@dimen/two_line_secondary_text_size"/>\r
 \r
             </LinearLayout>\r
 \r
         </LinearLayout>\r
 \r
-        <LinearLayout\r
-            android:layout_width="25dp"\r
-            android:layout_height="match_parent"\r
-            android:gravity="center_vertical"\r
-            android:orientation="vertical">\r
-\r
-            <ImageView\r
-                android:id="@+id/sharedIcon"\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:layout_gravity="center"\r
-                android:layout_marginLeft="4dp"\r
-                android:layout_marginBottom="4dp"\r
-                android:layout_marginRight="4dp"\r
-                android:src="@drawable/sharedlink" />\r
-\r
-            <ImageView\r
-                android:id="@+id/sharedWithMeIcon"\r
-                android:layout_width="wrap_content"\r
-                android:layout_height="wrap_content"\r
-                android:layout_gravity="center"\r
-                android:layout_marginLeft="4dp"\r
-                android:layout_marginRight="4dp"\r
-                android:layout_marginTop="4dp"\r
-                android:src="@drawable/shared_with_me"\r
-                android:visibility="invisible" />\r
-\r
-        </LinearLayout>\r
+        <ImageView\r
+            android:id="@+id/sharedIcon"\r
+            android:layout_width="wrap_content"\r
+            android:layout_height="wrap_content"\r
+            android:layout_gravity="center"\r
+            android:layout_marginTop="4dp"\r
+            android:layout_marginLeft="4dp"\r
+            android:layout_marginBottom="4dp"\r
+            android:layout_marginRight="4dp"\r
+            android:src="@drawable/shared_via_link" />\r
 \r
         <ImageView\r
             android:id="@+id/custom_checkbox"\r
             android:layout_height="wrap_content"\r
             android:layout_gravity="center_vertical"\r
             android:layout_marginLeft="4dp"\r
-            android:layout_marginRight="4dp"\r
+            android:layout_marginRight="@dimen/standard_margin"\r
             android:gravity=""\r
-            android:src="@android:drawable/checkbox_off_background" />\r
+            android:src="@drawable/ic_checkbox_blank_outline" />\r
     </LinearLayout>\r
 \r
     <View\r
index 7d7a377..2bc5d66 100644 (file)
@@ -23,7 +23,7 @@
     android:clickable="true"
     android:orientation="vertical"
     android:background="#fff"
-    android:paddingLeft="16dp"
+    android:paddingLeft="@dimen/standard_padding"
     tools:context=".MainActivity" >
 
     <TextView
@@ -32,7 +32,7 @@
         android:layout_height="wrap_content"
         android:drawablePadding="5dp"
         android:gravity="center_vertical"
-        android:paddingLeft="16dp"
+        android:paddingLeft="@dimen/standard_padding"
         android:textSize="16dp" >
 
     </TextView>
index 753d738..ac71114 100644 (file)
@@ -24,7 +24,7 @@
     android:layout_height="56dp"
     android:layout_marginLeft="8dp"
     android:gravity="left"
-    android:paddingLeft="16dp"
+    android:paddingLeft="@dimen/standard_padding"
     android:paddingTop="8dp"
     android:textSize="16dp"
     android:groupIndicator="@android:color/transparent"
index 0dbb9ef..aeea08b 100644 (file)
     android:id="@+id/loadingLayout"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="horizontal" >
+    android:orientation="horizontal"
+    android:padding="@dimen/standard_padding">
 
     <ProgressBar
         android:id="@+id/loadingBar"
+        style="?android:attr/progressBarStyle"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center_vertical"
-        android:layout_marginBottom="10dp"
-        android:layout_marginLeft="10dp"
-        android:layout_marginRight="5dp"
-        android:layout_marginTop="10dp" />
+        android:indeterminate="true"
+        android:indeterminateOnly="false"/>
 
     <TextView
         android:id="@+id/loadingText"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center_vertical"
-        android:layout_marginRight="20dp"
+        android:layout_marginLeft="@dimen/standard_margin"
         android:text="TextView" />
 
 </LinearLayout>
index 2353b19..70169e5 100644 (file)
@@ -30,7 +30,6 @@
         android:textStyle="bold"
         android:textSize="22dp"
         android:textColor="#000000"
-        android:layout_marginTop="5dp"
-        android:layout_marginBottom="5dp" />
+        android:layout_marginBottom="@dimen/standard_margin" />
 
 </LinearLayout>
\ No newline at end of file
index 756a2ed..921528e 100644 (file)
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
-    android:padding="10dp"
-    android:paddingLeft="8dp"
-    android:paddingRight="8dp"
     android:weightSum="1" >
 
     <ScrollView
         android:id="@+id/scrollView1"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:layout_marginBottom="15dp"
-        android:layout_weight="1" >
+        android:layout_marginBottom="@dimen/standard_margin"
+        android:layout_weight="1">
 
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:orientation="vertical" >
+            android:orientation="vertical"
+            android:paddingLeft="@dimen/standard_padding"
+            android:paddingRight="@dimen/standard_padding">
 
             <TextView
                 android:id="@+id/logTV"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:text="@string/empty" />
+                android:text="@string/empty"
+                android:typeface="monospace"/>
         </LinearLayout>
     </ScrollView>
 
+    <LinearLayout
+        android:id="@+id/historyButtonBar"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:layout_marginBottom="@dimen/standard_margin"
+        android:layout_marginLeft="@dimen/standard_margin"
+        android:layout_marginRight="@dimen/standard_margin">
+
     <Button
         android:id="@+id/deleteLogHistoryButton"
-        android:layout_width="match_parent"
-        android:layout_height="50dp"
+        android:theme="@style/Button"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom"
+        android:layout_weight="1"
         android:text="@string/prefs_log_delete_history_button" />
 
-    <Button
+    <android.support.v7.widget.AppCompatButton
         android:id="@+id/sendLogHistoryButton"
-        android:layout_width="match_parent"
-       android:layout_height="50dp"
+        android:theme="@style/Button.Primary"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom"
+        android:layout_weight="1"
         android:text="@string/log_send_history_button" />
 
+    </LinearLayout>
+
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/migration_layout.xml b/res/layout/migration_layout.xml
new file mode 100644 (file)
index 0000000..84b5c22
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:orientation="vertical"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:gravity="center_vertical">
+
+    <ProgressBar
+        style="?android:attr/progressBarStyleHorizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:id="@+id/migrationProgress"
+        android:layout_gravity="center_horizontal"
+        android:progress="50"
+        android:paddingLeft="30dp"
+        android:paddingRight="30dp"/>
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:text=""
+        android:id="@+id/migrationText"
+        android:layout_gravity="center_horizontal"/>
+
+    <Button
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/drawer_close"
+        android:id="@+id/finishButton"
+        android:layout_gravity="center_horizontal"/>
+</LinearLayout>
\ No newline at end of file
index b70af8b..14c3cf6 100644 (file)
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:oc="http://schemas.android.com/apk/res/com.owncloud.android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:gravity="center_horizontal"
     android:orientation="vertical"
-    android:padding="20dp" >
+    android:padding="@dimen/standard_padding" >
 
 
     <TextView
@@ -33,6 +32,7 @@
         android:text="@string/pass_code_enter_pass_code"
         android:textColor="@android:color/black"
         android:gravity="center_horizontal"
+        android:textSize="16sp"
          />
 
     <TextView
@@ -42,6 +42,7 @@
         android:text="@string/pass_code_configure_your_pass_code_explanation"
         android:textAppearance="@android:style/TextAppearance.Small"
         android:gravity="center_horizontal"
+        android:textSize="14sp"
          />
     
     <LinearLayout
@@ -79,8 +80,9 @@
             />
     </LinearLayout>
 
-    <Button
+    <android.support.v7.widget.AppCompatButton
         android:id="@+id/cancel"
+        android:theme="@style/Button.Primary"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/common_cancel" />
index d584b44..11f88ba 100644 (file)
@@ -42,7 +42,7 @@
         android:indeterminateOnly="true"
         android:layout_centerInParent="true"
         />
-    
+
     <third_parties.michaelOrtiz.TouchImageViewCustom
         android:id="@+id/image"
         android:layout_width="match_parent"
@@ -62,5 +62,5 @@
         android:text="@string/placeholder_sentence"
         android:textColor="@color/owncloud_blue_bright"
         />
-    
+
 </RelativeLayout>
\ No newline at end of file
diff --git a/res/layout/search_users_groups_layout.xml b/res/layout/search_users_groups_layout.xml
new file mode 100644 (file)
index 0000000..8eed34a
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ownCloud Android client application
+  Copyright (C) 2015 ownCloud Inc.
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License version 2,
+  as published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:id="@+id/search_layout"
+    android:minWidth="200dp">
+
+    <SearchView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:id="@+id/searchView"
+        android:hint="@string/share_search"/>
+
+    <ListView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:id="@+id/searchUsersListView"
+        android:scrollbars="vertical"/>
+
+</LinearLayout>
diff --git a/res/layout/share_activity.xml b/res/layout/share_activity.xml
new file mode 100644 (file)
index 0000000..772b941
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ownCloud Android client application
+  Copyright (C) 2015 ownCloud Inc.
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License version 2,
+  as published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.owncloud.android.ui.activity.ShareActivity">
+
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:id="@+id/share_fragment_container">
+    </FrameLayout>
+
+</LinearLayout>
diff --git a/res/layout/share_file_layout.xml b/res/layout/share_file_layout.xml
new file mode 100644 (file)
index 0000000..27a6133
--- /dev/null
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ownCloud Android client application
+  Copyright (C) 2015 ownCloud Inc.
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License version 2,
+  as published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-->
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+            xmlns:tools="http://schemas.android.com/tools"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            tools:context="com.owncloud.android.ui.fragment.ShareFileFragment"
+            android:id="@+id/shareScroll">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/background_material_light"
+        android:orientation="vertical"
+        >
+
+        <RelativeLayout
+            android:id="@+id/shareHeaderContainer"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:layout_marginBottom="6dp"
+            android:background="@color/background_color">
+
+            <ImageView
+                android:id="@+id/shareFileIcon"
+                android:layout_width="@dimen/file_icon_size"
+                android:layout_height="@dimen/file_icon_size"
+                android:src="@drawable/file"
+                android:layout_marginLeft="12dp"
+                android:layout_marginRight="12dp"
+                android:layout_gravity="center_vertical"
+                android:layout_marginTop="12dp"
+                android:layout_marginBottom="12dp"/>
+
+            <TextView
+                android:id="@+id/shareFileName"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/placeholder_filename"
+                android:textSize="16sp"
+                android:layout_gravity="center_vertical"
+                android:layout_marginLeft="4dp"
+                android:layout_marginStart="4dp"
+                android:layout_marginRight="8dp"
+                android:layout_marginEnd="8dp"
+                android:layout_toRightOf="@+id/shareFileIcon"
+                android:layout_toEndOf="@+id/shareFileIcon"
+                android:singleLine="true"
+                android:ellipsize="middle"
+                android:layout_marginTop="12dp"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="12sp"
+                android:text="@string/placeholder_filesize"
+                android:id="@+id/shareFileSize"
+                android:layout_below="@+id/shareFileName"
+                android:layout_toRightOf="@+id/shareFileIcon"
+                android:layout_toEndOf="@+id/shareFileIcon"
+                android:layout_marginTop="4dp"
+                android:layout_marginLeft="4dp"
+                android:layout_marginStart="4dp"
+                android:layout_marginBottom="12dp"
+                android:layout_gravity="center_vertical"/>
+
+        </RelativeLayout>
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textSize="16sp"
+            android:text="@string/share_with_user_section_title"
+            android:id="@+id/shareWithUsersSectionTitle"
+            android:layout_gravity="start"
+            android:padding="8dp"
+            android:background="@color/actionbar_start_color"
+            android:textColor="@color/white"/>
+
+        <ListView
+            android:layout_width="match_parent"
+            android:layout_height="0dip"
+            android:id="@+id/shareUsersList"
+            android:visibility="gone"
+            android:scrollbars="vertical"
+            android:layout_weight="1"/>
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:id="@+id/shareNoUsers"
+            android:text="@string/share_no_users"
+            android:textSize="12sp"
+            android:padding="12dp" />
+
+        <android.support.v7.widget.AppCompatButton
+            android:id="@+id/addUserButton"
+            style="@style/ownCloud.Button"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:text="@string/share_add_user_or_group"
+            android:contentDescription="shareAddUserButton"/>
+
+        <Switch
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textSize="16sp"
+            android:text="@string/share_via_link_section_title"
+            android:id="@+id/shareViaLinkSectionSwitch"
+            android:layout_gravity="start"
+            android:padding="8dp"
+            android:background="@color/actionbar_start_color"
+            android:textColor="@color/white"/>
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:id="@+id/shareViaLinkExpirationSection"
+            >
+
+            <Switch
+                android:id="@+id/shareViaLinkExpirationSwitch"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:layout_alignParentEnd="true"
+                android:layout_centerInParent="true"
+                android:padding="8dp"
+                />
+
+            <TextView
+                android:id="@+id/shareViaLinkExpirationLabel"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:layout_toLeftOf="@id/shareViaLinkExpirationSwitch"
+                android:layout_toStartOf="@id/shareViaLinkExpirationSwitch"
+                android:paddingTop="8dp"
+                android:paddingLeft="8dp"
+                android:paddingRight="8dp"
+                android:text="@string/share_via_link_expiration_date_label"
+                android:textSize="16sp"
+                />
+
+            <TextView
+                android:id="@+id/shareViaLinkExpirationValue"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:layout_toLeftOf="@id/shareViaLinkExpirationSwitch"
+                android:layout_toStartOf="@id/shareViaLinkExpirationSwitch"
+                android:layout_below="@id/shareViaLinkExpirationLabel"
+                android:paddingLeft="8dp"
+                android:paddingRight="8dp"
+                android:paddingBottom="8dp"
+                android:textSize="12sp"
+                />
+
+        </RelativeLayout>
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:id="@+id/shareViaLinkPasswordSection"
+            >
+
+            <Switch
+                android:id="@+id/shareViaLinkPasswordSwitch"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:layout_alignParentEnd="true"
+                android:layout_centerInParent="true"
+                android:padding="8dp"
+            />
+
+            <TextView
+                android:id="@+id/shareViaLinkPasswordLabel"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:layout_toLeftOf="@id/shareViaLinkPasswordSwitch"
+                android:layout_toStartOf="@id/shareViaLinkPasswordSwitch"
+                android:paddingTop="8dp"
+                android:paddingLeft="8dp"
+                android:paddingRight="8dp"
+                android:text="@string/share_via_link_password_label"
+                android:textSize="16sp"
+                />
+
+            <TextView
+                android:id="@+id/shareViaLinkPasswordValue"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:layout_toLeftOf="@id/shareViaLinkPasswordSwitch"
+                android:layout_toStartOf="@id/shareViaLinkPasswordSwitch"
+                android:layout_below="@id/shareViaLinkPasswordLabel"
+                android:paddingLeft="8dp"
+                android:paddingRight="8dp"
+                android:paddingBottom="8dp"
+                android:text="@string/share_via_link_password_title"
+                android:textSize="12sp"
+                android:visibility="invisible"
+                />
+
+        </RelativeLayout>
+
+        <android.support.v7.widget.AppCompatButton
+            android:id="@+id/shareViaLinkGetLinkButton"
+            style="@style/ownCloud.Button"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:text="@string/share_get_public_link_button"
+            android:contentDescription="shareGetLinkButton"/>
+
+    </LinearLayout>
+
+</ScrollView>
\ No newline at end of file
diff --git a/res/layout/share_user_item.xml b/res/layout/share_user_item.xml
new file mode 100644 (file)
index 0000000..2bb8c28
--- /dev/null
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ownCloud Android client application
+  Copyright (C) 2015 ownCloud Inc.
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License version 2,
+  as published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:weightSum="1"
+        android:longClickable="true">
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="0.9"
+            android:textSize="16dip"
+            android:text="@string/username"
+            android:id="@+id/userOrGroupName"
+            android:layout_margin="12dp"
+            android:textColor="@color/textColor"
+            android:singleLine="true"
+            android:ellipsize="middle"/>
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_weight="0.1"
+            android:id="@+id/unshareButton"
+            android:src="@drawable/ic_cancel"
+            android:layout_marginRight="8dp"
+            android:layout_marginLeft="4dp"
+            android:layout_gravity="center_horizontal"/>
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="@color/list_divider_background"></View>
+</LinearLayout>
diff --git a/res/layout/simple_dialog_list_item.xml b/res/layout/simple_dialog_list_item.xml
new file mode 100644 (file)
index 0000000..96020eb
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:textAppearance="?android:attr/textAppearanceListItemSmall"
+    android:textColor="@color/dialog_list_item"
+    android:textSize="16sp"
+    android:gravity="center_vertical"
+    android:paddingLeft="@dimen/standard_padding"
+    android:paddingRight="@dimen/standard_padding"
+    android:minHeight="48dp"/>
\ No newline at end of file
index 813d677..8b6d502 100644 (file)
@@ -21,6 +21,7 @@
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:gravity="center"
+       android:padding="@dimen/standard_padding"
     android:orientation="vertical" >
 
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0"
+               android:paddingBottom="@dimen/standard_padding"
                android:text="@string/ssl_validator_header"
-               android:padding="5dp"
                android:textAppearance="?android:attr/textAppearanceMedium"
+               android:textColor="@android:color/black"
                 />
     
        <TextView
@@ -39,7 +41,7 @@
                android:layout_height="wrap_content"
                android:layout_weight="0"
                android:layout_gravity="left"
-               android:paddingLeft="20dp"
+               android:paddingLeft="8dp"
                android:text="@string/ssl_validator_reason_cert_not_trusted"
                android:textAppearance="?android:attr/textAppearanceSmall"
                 />
@@ -50,7 +52,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
-               android:paddingLeft="20dp"
+               android:paddingLeft="8dp"
                android:text="@string/ssl_validator_reason_cert_expired"
                android:textAppearance="?android:attr/textAppearanceSmall"
                 />
@@ -60,7 +62,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
-               android:paddingLeft="20dp"
+               android:paddingLeft="8dp"
                android:text="@string/ssl_validator_reason_cert_not_yet_valid"
                android:textAppearance="?android:attr/textAppearanceSmall"
                 />
@@ -70,7 +72,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
-               android:paddingLeft="20dp"
+               android:paddingLeft="8dp"
                android:text="@string/ssl_validator_reason_hostname_not_verified"
                android:textAppearance="?android:attr/textAppearanceSmall"
                 />
@@ -80,7 +82,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
-               android:paddingLeft="20dp"
+               android:paddingLeft="8dp"
                android:text="@string/ssl_validator_no_info_about_error"
                android:textAppearance="?android:attr/textAppearanceSmall"
                 />
@@ -88,7 +90,7 @@
     <ScrollView 
         android:id="@+id/details_scroll"
         android:visibility="gone" 
-       android:padding="20dp"
+       android:padding="8dp"
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:layout_weight="1"
                                    android:text=""
                                    android:textAppearance="?android:attr/textAppearanceSmall"
                                />
-                               
 
                                <TextView
                                android:id="@+id/label_signature"
                                android:text=""
                                android:textAppearance="?android:attr/textAppearanceSmall"
                        />
-                                                                                                                                                                                               
-                                                               
+
                                <TextView
-                               android:id="@+id/value_signature"
-                               android:layout_width="wrap_content"
-                               android:layout_height="wrap_content"
+                                       android:id="@+id/label_certificate_fingerprint"
+                                       android:layout_width="wrap_content"
+                                       android:layout_height="wrap_content"
                                        android:paddingBottom="5dp"
-                               android:text=""
-                               android:textAppearance="?android:attr/textAppearanceSmall"
-                       />
+                                       android:text="@string/ssl_validator_label_certificate_fingerprint"
+                                       android:textAppearance="?android:attr/textAppearanceSmall"
+                               />
+
+                               <TextView
+                                       android:id="@+id/value_certificate_fingerprint"
+                                       android:layout_width="wrap_content"
+                                       android:layout_height="wrap_content"
+                                       android:paddingBottom="5dp"
+                                       android:text=""
+                                       android:textAppearance="?android:attr/textAppearanceSmall"
+                               />
                                
                </LinearLayout>
                
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
                android:layout_weight="0"
-               android:padding="5dp"
+               android:paddingTop="@dimen/standard_padding"
         android:text="@string/ssl_validator_question"
         android:textAppearance="?android:attr/textAppearanceMedium"
         >
        <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-               android:layout_weight="0"
         android:gravity="center" >
 
-        <Button
+               <android.support.v7.widget.AppCompatButton
             android:id="@+id/cancel"
+                       style="@style/Button.Borderless"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:layout_weight="1"
-            android:text="@string/common_cancel" />
+            android:text="@string/common_no" />
 
-        <Button
+               <android.support.v7.widget.AppCompatButton
             android:id="@+id/details_btn"
+                       style="@style/Button.Borderless"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:layout_weight="1"
+            android:layout_weight="2"
             android:text="@string/ssl_validator_btn_details_see" />
 
-        <Button
+               <android.support.v7.widget.AppCompatButton
             android:id="@+id/ok"
+                       style="@style/Button.Borderless"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:layout_weight="1"
-            android:text="@string/common_ok" />
+            android:text="@string/common_yes" />
 
     </LinearLayout>
 
index f3153b3..df14a35 100644 (file)
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:gravity="center"
-    android:orientation="vertical" >
+    android:orientation="vertical"
+       android:padding="@dimen/standard_padding">
 
        <TextView
                android:id="@+id/header"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/ssl_validator_header"
-               android:padding="5dp"
+               android:paddingBottom="@dimen/standard_padding"
                android:textAppearance="?android:attr/textAppearanceMedium"
+               android:textColor="@color/black"
                 />
-    
+
        <TextView
                android:id="@+id/reason_cert_not_trusted"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
-               android:paddingLeft="20dp"
+               android:paddingLeft="8dp"
                android:text="@string/ssl_validator_reason_cert_not_trusted"
                android:textAppearance="?android:attr/textAppearanceSmall"
                 />
@@ -47,7 +49,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
-               android:paddingLeft="20dp"
+               android:paddingLeft="8dp"
                android:text="@string/ssl_validator_reason_cert_expired"
                android:textAppearance="?android:attr/textAppearanceSmall"
                 />
@@ -57,7 +59,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
-               android:paddingLeft="20dp"
+               android:paddingLeft="8dp"
                android:text="@string/ssl_validator_reason_cert_not_yet_valid"
                android:textAppearance="?android:attr/textAppearanceSmall"
                 />
@@ -67,7 +69,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
-               android:paddingLeft="20dp"
+               android:paddingLeft="8dp"
                android:text="@string/ssl_validator_reason_hostname_not_verified"
                android:textAppearance="?android:attr/textAppearanceSmall"
                 />
@@ -75,7 +77,7 @@
     <ScrollView 
         android:id="@+id/details_scroll"
         android:visibility="gone" 
-       android:padding="20dp"
+       android:padding="8dp"
         android:layout_width="wrap_content"
         android:layout_height="180dp">
         
         android:id="@+id/question"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-               android:padding="5dp"
+               android:paddingTop="@dimen/standard_padding"
         android:text="@string/ssl_validator_question"
         android:textAppearance="?android:attr/textAppearanceMedium"
         >
         android:layout_height="wrap_content"
         android:gravity="center" >
 
-        <Button
+               <android.support.v7.widget.AppCompatButton
             android:id="@+id/cancel"
+                       style="@style/Button.Borderless"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:layout_weight="1"
-            android:text="@string/common_cancel" />
+            android:text="@string/common_no" />
 
-        <Button
+               <android.support.v7.widget.AppCompatButton
             android:id="@+id/details_btn"
+                       style="@style/Button.Borderless"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:layout_weight="1"
+            android:layout_weight="2"
             android:text="@string/ssl_validator_btn_details_see" />
 
-        <Button
+               <android.support.v7.widget.AppCompatButton
             android:id="@+id/ok"
+                       style="@style/Button.Borderless"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:layout_weight="1"
-            android:text="@string/common_ok" />
+            android:text="@string/common_yes" />
 
     </LinearLayout>
 
diff --git a/res/layout/text_file_preview.xml b/res/layout/text_file_preview.xml
new file mode 100644 (file)
index 0000000..b144875
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  ownCloud Android client application
+
+  Copyright (C) 2012-2013  ownCloud Inc.
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License version 2,
+  as published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+-->
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:fillViewport="true">
+
+    <TextView
+        android:id="@+id/text_preview"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="8dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginRight="8dp"
+        android:layout_marginStart="8dp"
+        android:visibility="gone"/>
+</ScrollView>
\ No newline at end of file
index 42bdcdd..fbf9cee 100644 (file)
     <LinearLayout\r
         android:layout_width="match_parent"\r
         android:layout_height="wrap_content"\r
+        android:orientation="horizontal">\r
+\r
+        <ImageView\r
+            android:layout_width="match_parent"\r
+            android:layout_height="1dp"\r
+            android:src="@drawable/uploader_list_separator"/>\r
+\r
+    </LinearLayout>\r
+\r
+    <LinearLayout\r
+        android:orientation="horizontal"\r
+        android:layout_width="match_parent"\r
+        android:layout_height="wrap_content"\r
+        android:paddingTop="8dp"\r
+        android:paddingLeft="16dp"\r
+        android:paddingRight="16dp">\r
+\r
+        <RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"\r
+            android:id="@+id/drawer_radio_group"\r
+            android:layout_width="fill_parent"\r
+            android:layout_height="wrap_content"\r
+            android:gravity="center"\r
+            android:orientation="horizontal">\r
+\r
+            <RadioButton\r
+                android:layout_width="wrap_content"\r
+                android:layout_height="wrap_content"\r
+                android:text="@string/upload_copy_files"\r
+                android:id="@+id/upload_radio_copy"\r
+                android:paddingRight="8dp"\r
+                android:checked="false" />\r
+\r
+            <RadioButton\r
+                android:layout_width="wrap_content"\r
+                android:layout_height="wrap_content"\r
+                android:text="@string/upload_move_files"\r
+                android:id="@+id/upload_radio_move"\r
+                android:paddingRight="8dp"\r
+                android:checked="false" />\r
+        </RadioGroup>\r
+    </LinearLayout>\r
+\r
+    <LinearLayout\r
+        android:layout_width="match_parent"\r
+        android:layout_height="wrap_content"\r
         android:gravity="center"\r
-        android:orientation="horizontal" >\r
+        android:orientation="horizontal"\r
+        android:paddingLeft="16dp"\r
+        android:paddingRight="16dp"\r
+        android:paddingBottom="16dp">\r
 \r
-        <Button\r
+        <android.support.v7.widget.AppCompatButton\r
             android:id="@+id/upload_files_btn_cancel"\r
+            android:theme="@style/Button"\r
             android:layout_width="wrap_content"\r
             android:layout_height="wrap_content"\r
             android:layout_weight="1"\r
             android:text="@string/common_cancel" />\r
 \r
-               <Button\r
+        <android.support.v7.widget.AppCompatButton\r
                    android:id="@+id/upload_files_btn_upload"\r
+            android:theme="@style/Button.Primary"\r
                    android:layout_width="wrap_content"\r
                    android:layout_height="wrap_content"\r
                    android:layout_weight="1"\r
index 0210e17..51122ec 100644 (file)
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
  -->
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-       android:layout_height="wrap_content" android:orientation="vertical"
-       android:layout_width="wrap_content" android:background="#fefefe"
+       android:layout_height="wrap_content"
+       android:orientation="vertical"
+       android:layout_width="wrap_content"
+       android:background="@color/white"
        android:gravity="center">
 
-       <TextView android:layout_width="fill_parent"
-               android:text="@string/uploader_top_message"
-               android:layout_height="wrap_content"
-               android:id="@+id/drawer_username"
-               android:textColor="@android:color/black"
-               android:gravity="center_horizontal">
-       </TextView>
-
-       <FrameLayout android:layout_height="fill_parent"
+       <FrameLayout
+               android:layout_height="fill_parent"
                android:layout_width="fill_parent"
-               android:id="@+id/frameLayout1"
-               android:layout_below="@+id/drawer_username"
-               android:layout_above="@+id/linearLayout1">
+               android:id="@+id/upload_list"
+               android:layout_above="@+id/upload_actions">
 
-               <ListView android:id="@android:id/list"
+               <ListView
+                       android:id="@android:id/list"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
-                       android:divider="@drawable/uploader_list_separator"
-                       android:dividerHeight="1dip">
+                       android:divider="@color/list_divider_background"
+                       android:dividerHeight="1dp">
                </ListView>
 
        </FrameLayout>
 
        <LinearLayout
-           android:id="@+id/linearLayout1"
+           android:id="@+id/upload_actions"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:orientation="horizontal" >
 
-               <Button
-                   android:id="@+id/uploader_new_folder"
+               <android.support.v7.widget.AppCompatButton
+                       android:theme="@style/Button"
+                   android:id="@+id/uploader_cancel"
+                       style="@style/ownCloud.Button"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom"
                    android:layout_weight="1"
-                   android:text="@string/uploader_btn_new_folder_text" />
-               
-               <Button
+                   android:text="@string/common_cancel" />
+
+               <android.support.v7.widget.AppCompatButton
                    android:id="@+id/uploader_choose_folder"
+                       android:theme="@style/Button.Primary"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom"
index f83608e..9f6f5ba 100644 (file)
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
  -->
-<LinearLayout
-       xmlns:android="http://schemas.android.com/apk/res/android"
-       android:layout_width="fill_parent"
-       android:background="#fefefe"
-       android:orientation="horizontal"
-       android:layout_height="56dp"  >
-  
-    <ImageView 
-        android:layout_width="20dp"
-        android:layout_height="20dp"
-        android:layout_gravity="center_vertical|center"
-        android:layout_margin="4dp"
-        android:src="@drawable/ic_menu_archive" 
-        android:id="@+id/thumbnail" />
-    
-    <TextView 
-        android:text="TextView" 
-        android:layout_width="fill_parent" 
-        android:id="@+id/filename"
-        android:layout_height="wrap_content" 
-        android:textColor="@android:color/black"
-               android:layout_gravity="center_vertical"
-        android:textSize="20dip"/>
-    
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="72dp"
+    android:background="@drawable/list_selector"
+    android:orientation="horizontal">
+
+    <LinearLayout
+        android:layout_width="60dp"
+        android:layout_height="72dp"
+        android:orientation="horizontal">
+
+        <ImageView
+            android:id="@+id/thumbnail"
+            android:layout_width="@dimen/file_icon_size"
+            android:layout_height="@dimen/file_icon_size"
+            android:layout_gravity="center_vertical"
+            android:layout_marginLeft="12dp"
+            android:src="@drawable/ic_menu_archive" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:gravity="top"
+        android:paddingTop="@dimen/standard_padding"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/filename"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:layout_marginRight="4dp"
+            android:ellipsize="middle"
+            android:singleLine="true"
+            android:text="TextView"
+            android:textColor="@color/textColor"
+            android:textSize="16sp" />
+
+        <TextView
+            android:id="@+id/last_mod"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="4dp"
+            android:text="TextView"
+            android:textColor="@color/list_item_lastmod_and_filesize_text"
+            android:textSize="14sp" />
+
+    </LinearLayout>
+
 </LinearLayout>
index 9074b98..894dc33 100644 (file)
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<menu  xmlns:android="http://schemas.android.com/apk/res/android">
-    
-       <item   android:id="@+id/action_share_file"                             android:title="@string/action_share_file"                       android:icon="@android:drawable/ic_menu_share"                                  android:orderInCategory="1" />
-       <item   android:id="@+id/action_unshare_file"               android:title="@string/action_unshare_file"                 android:icon="@android:drawable/ic_menu_share"                                  android:orderInCategory="1" />
-    <item      android:id="@+id/action_open_file_with"                 android:title="@string/actionbar_open_with"                     android:icon="@android:drawable/ic_menu_set_as"                                 android:orderInCategory="1" /> 
-       <item   android:id="@+id/action_download_file"                  android:title="@string/filedetails_download"            android:icon="@drawable/ic_action_download"                                             android:orderInCategory="1" />
-    <item      android:id="@+id/action_sync_file"                              android:title="@string/filedetails_sync_file"           android:icon="@drawable/ic_action_refresh"                                              android:orderInCategory="1" />
-       <item   android:id="@+id/action_cancel_download"                android:title="@string/common_cancel_download"          android:icon="@android:drawable/ic_menu_close_clear_cancel"             android:orderInCategory="1" />
-       <item   android:id="@+id/action_cancel_upload"                  android:title="@string/common_cancel_upload"            android:icon="@android:drawable/ic_menu_close_clear_cancel"             android:orderInCategory="1" />
-       <item   android:id="@+id/action_rename_file"                    android:title="@string/common_rename"                           android:icon="@android:drawable/ic_menu_edit"                                   android:orderInCategory="1" />
-    <item      android:id="@+id/action_move"                                   android:title="@string/actionbar_move"                          android:icon="@android:drawable/ic_menu_set_as"                                 android:orderInCategory="1" />
-    <item      android:id="@+id/action_remove_file"                    android:title="@string/common_remove"                           android:icon="@android:drawable/ic_menu_delete"                                 android:orderInCategory="1" />
-    <item      android:id="@+id/action_send_file"                              android:title="@string/actionbar_send_file"                     android:icon="@android:drawable/ic_menu_set_as"                                 android:orderInCategory="1" />
-    <item      android:id="@+id/action_favorite_file"                  android:title="@string/favorite"                        android:icon="@android:drawable/ic_menu_set_as"                                 android:orderInCategory="1" />
-    <item      android:id="@+id/action_unfavorite_file"                android:title="@string/unfavorite"                          android:icon="@android:drawable/ic_menu_set_as"                                     android:orderInCategory="1" />
-    <item      android:id="@+id/action_see_details"                    android:title="@string/actionbar_see_details"           android:icon="@android:drawable/ic_menu_info_details"                   android:orderInCategory="1" />
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item
+        android:id="@+id/action_share_file"
+        android:title="@string/action_share"
+        android:icon="@android:drawable/ic_menu_share"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_stream_file"
+        android:title="@string/action_stream_file"
+        android:icon="@android:drawable/ic_menu_view"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_open_file_with"
+        android:title="@string/actionbar_open_with"
+        android:icon="@android:drawable/ic_menu_set_as"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_download_file"
+        android:title="@string/filedetails_download"
+        android:icon="@drawable/ic_action_download"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_sync_file"
+        android:title="@string/filedetails_sync_file"
+        android:icon="@drawable/ic_action_refresh"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_cancel_sync"
+        android:title="@string/common_cancel_sync"
+        android:icon="@android:drawable/ic_menu_close_clear_cancel"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_rename_file"
+        android:title="@string/common_rename"
+        android:icon="@android:drawable/ic_menu_edit"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_move"
+        android:title="@string/actionbar_move"
+        android:icon="@android:drawable/ic_menu_set_as"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_copy"
+        android:title="@android:string/copy"
+        android:icon="@android:drawable/ic_menu_set_as"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_remove_file"
+        android:title="@string/common_remove"
+        android:icon="@android:drawable/ic_menu_delete"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_send_file"
+        android:title="@string/actionbar_send_file"
+        android:icon="@android:drawable/ic_menu_set_as"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_favorite_file"
+        android:title="@string/favorite"
+        android:icon="@android:drawable/ic_menu_set_as"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_unfavorite_file"
+        android:title="@string/unfavorite"
+        android:icon="@android:drawable/ic_menu_set_as"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_set_as_wallpaper"
+        android:title="@string/set_picture_as"
+        android:icon="@android:drawable/ic_menu_set_as"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_see_details"
+        android:title="@string/actionbar_see_details"
+        android:icon="@android:drawable/ic_menu_info_details"
+        android:orderInCategory="1" />
 
 </menu>
index 236bfd6..097807a 100644 (file)
     xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <item
-        android:id="@+id/action_upload"
-        android:icon="@drawable/ic_action_upload"
-        android:orderInCategory="2"
-        app:showAsAction="always"
-        android:title="@string/actionbar_upload"
-        android:contentDescription="@string/actionbar_upload"/>
-    <item
         android:id="@+id/action_create_dir"
         android:icon="@drawable/ic_action_create_dir"
-        android:orderInCategory="2"
-        app:showAsAction="always"
+        android:orderInCategory="1"
+        app:showAsAction="never"
         android:title="@string/actionbar_mkdir"
         android:contentDescription="@string/actionbar_mkdir"/>
     <item
+        android:id="@+id/action_switch_view"
+        android:icon="@drawable/ic_view_module"
+        android:orderInCategory="2"
+        app:showAsAction="never"
+        android:title="@string/action_switch_grid_view" />
+    <item
         android:id="@+id/action_sync_account"
         android:icon="@drawable/ic_action_refresh"
-        android:orderInCategory="2"
+        android:orderInCategory="1"
         app:showAsAction="never"
         android:title="@string/actionbar_sync"
         android:contentDescription="@string/actionbar_sync"/>
        <item
         android:id="@+id/action_sort"
-        android:icon="@android:drawable/ic_menu_sort_by_size"
-        android:orderInCategory="2"
+        android:icon="@drawable/ic_sort_variant"
+        android:orderInCategory="1"
         app:showAsAction="never"
         android:title="@string/actionbar_sort"
         android:contentDescription="@string/actionbar_sort"/>
diff --git a/res/menu/multiple_file_actions_menu.xml b/res/menu/multiple_file_actions_menu.xml
new file mode 100644 (file)
index 0000000..fce1654
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  ownCloud Android client application
+
+  Copyright (C) 2012  Bartek Przybylski
+  Copyright (C) 2015 ownCloud Inc.
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License version 2,
+  as published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:id="@+id/action_download_file"
+        android:title="@string/filedetails_download"
+        android:icon="@drawable/ic_action_download"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_move"
+        android:title="@string/actionbar_move"
+        android:icon="@android:drawable/ic_menu_set_as"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_copy"
+        android:title="@android:string/copy"
+        android:icon="@android:drawable/ic_menu_set_as"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_remove_file"
+        android:title="@string/common_remove"
+        android:icon="@android:drawable/ic_menu_delete"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_favorite_file"
+        android:title="@string/favorite"
+        android:icon="@android:drawable/ic_menu_set_as"
+        android:orderInCategory="1" />
+    <item
+        android:id="@+id/action_unfavorite_file"
+        android:title="@string/unfavorite"
+        android:icon="@android:drawable/ic_menu_set_as"
+        android:orderInCategory="1" />
+</menu>
diff --git a/res/menu/uploader_menu.xml b/res/menu/uploader_menu.xml
new file mode 100644 (file)
index 0000000..a721c7b
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ownCloud Android client application
+
+  Copyright (C) 2012  Bartek Przybylski
+  Copyright (C) 2015 ownCloud Inc.
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License version 2,
+  as published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <item
+        android:id="@+id/action_sort"
+        android:icon="@android:drawable/ic_menu_sort_by_size"
+        android:orderInCategory="2"
+        app:showAsAction="always"
+        android:title="@string/actionbar_sort"
+        android:contentDescription="@string/actionbar_sort"/>
+</menu>
\ No newline at end of file
index 696f88e..96f97b8 100644 (file)
   <string name="auth_username">Gebruikersnaam</string>
   <string name="auth_password">Wagwoord</string>
   <string name="file_list_seconds_ago">sekondes gelede</string>
+  <string name="action_share">Deel</string>
   <string name="common_yes">Ja</string>
   <string name="common_no">Nee</string>
   <string name="common_ok">OK</string>
   <string name="common_cancel">Kanseleer</string>
   <string name="common_error">Fout</string>
+  <string name="activity_chooser_send_file_title">Stuur</string>
   <string name="empty"></string>
   <string name="folder_picker_choose_button_text">Kies</string>
+  <string name="share_via_link_expiration_date_label">Stel verval datum</string>
+  <string name="share_via_link_password_label">Beskerm met Wagwoord</string>
 </resources>
index 0a15186..c55da81 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">الإعدادات</string>
   <string name="drawer_item_logs">سجلّ</string>
   <string name="drawer_close">إغلاق</string>
+  <string name="drawer_open">افتح</string>
   <string name="prefs_category_general">عام</string>
   <string name="prefs_category_more">المزيد</string>
   <string name="prefs_accounts">حسابات</string>
   <string name="filedetails_created">انشئ في :</string>
   <string name="filedetails_modified">عُدل في :</string>
   <string name="filedetails_download">تحميل</string>
-  <string name="filedetails_sync_file">تحديث الملف</string>
   <string name="filedetails_renamed_in_upload_msg">تم تغيير اسم الملف إلى  %1$s أثناء الرفع</string>
-  <string name="action_share_file">شارك الرابط</string>
-  <string name="action_unshare_file">الغاء مشاركة الرابط</string>
+  <string name="action_share">شارك</string>
   <string name="common_yes">نعم</string>
   <string name="common_no">لا</string>
   <string name="common_ok">تم</string>
-  <string name="common_cancel_download">إلغاء التحميل</string>
-  <string name="common_cancel_upload">إلغاء الرفع</string>
   <string name="common_cancel">إلغاء</string>
   <string name="common_save_exit">حفظ + خروج</string>
   <string name="common_error">خطأ</string>
   <string name="favorite">المفضلة</string>
   <string name="common_rename">إعادة التسمية</string>
   <string name="common_remove">حذف</string>
-  <string name="confirmation_remove_alert">هل تريد حقاً حذف %1$s ؟</string>
+  <string name="confirmation_remove_file_alert">هل تريد حقاً حذف %1$s ؟</string>
   <string name="confirmation_remove_folder_alert">هل ترغب في حذف %1$s و جهات الإتصال التابعة له؟ </string>
   <string name="confirmation_remove_local">محليا فقط</string>
-  <string name="confirmation_remove_folder_local">المحتويات المحلية فقط</string>
-  <string name="confirmation_remove_remote">الحذف من الخادم</string>
-  <string name="confirmation_remove_remote_and_local">محليا و عن بعد</string>
+  <string name="confirmation_remove_folder_local">محليا فقط</string>
   <string name="remove_success_msg">تم الحذف بنجاح</string>
   <string name="remove_fail_msg">فشل الحذف</string>
   <string name="rename_dialog_title">أدخل اسما جديدا</string>
   <string name="folder_picker_choose_button_text">اختيار</string>
   <string name="prefs_category_security">الأمان</string>
   <string name="auth_host_address">عنوان الخادم</string>
+  <string name="share_dialog_title">مشاركة</string>
+  <string name="share_via_link_section_title">شارك الرابط</string>
+  <string name="share_via_link_expiration_date_label">تعيين تاريخ إنتهاء الصلاحية</string>
+  <string name="share_via_link_password_label">حماية كلمة السر</string>
+  <string name="share_search">البحث</string>
 </resources>
index 1e4b8f3..207fa46 100644 (file)
@@ -23,6 +23,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Aç</string>
   <string name="prefs_category_general">Ümumi</string>
   <string name="prefs_category_more">Daha da</string>
   <string name="prefs_accounts">Hesablar</string>
   <string name="filedetails_created">Yaradıldı:</string>
   <string name="filedetails_modified">Dəyişdirildi:</string>
   <string name="filedetails_download">Yüklə</string>
-  <string name="filedetails_sync_file">Faylı yenilə</string>
   <string name="filedetails_renamed_in_upload_msg">Yüklənmə müddətində fayl buna %1$s yeniləndi</string>
-  <string name="action_share_file">Linki yayımla</string>
-  <string name="action_unshare_file">Link yayımlanmasını dayandır</string>
+  <string name="action_share">Paylaş</string>
   <string name="common_yes">Bəli</string>
   <string name="common_no">Xeyir</string>
   <string name="common_ok">Oldu</string>
-  <string name="common_cancel_download">Endirimi dayandır</string>
-  <string name="common_cancel_upload">Yüklənməni dayandır</string>
   <string name="common_cancel">Dayandır</string>
   <string name="common_save_exit">Saxla &amp; Çıx</string>
   <string name="common_error">Səhv</string>
@@ -183,12 +180,10 @@ Aşağıda göstərilən %5$s-də olan daxili və xarici fayl(lar) link edilmiş
   <string name="favorite">İstəkli</string>
   <string name="common_rename">Adı dəyiş</string>
   <string name="common_remove">Sil</string>
-  <string name="confirmation_remove_alert">Siz həqiqətən %1$s silmək istəyirsiniz?</string>
+  <string name="confirmation_remove_file_alert">Siz həqiqətən %1$s silmək istəyirsiniz?</string>
   <string name="confirmation_remove_folder_alert">Siz həqiqətəndə %1$s və onun kontentini silmək istəyirsiniz?</string>
   <string name="confirmation_remove_local">Yalnız daxili</string>
-  <string name="confirmation_remove_folder_local">Yalnız daxili kontent</string>
-  <string name="confirmation_remove_remote">Serverdən sil</string>
-  <string name="confirmation_remove_remote_and_local">Uzaq və lokal</string>
+  <string name="confirmation_remove_folder_local">Yalnız daxili</string>
   <string name="remove_success_msg">Silmə uğurlu oldu</string>
   <string name="remove_fail_msg">Silmək mümkün olmadı</string>
   <string name="rename_dialog_title">Yeni adı daxil edin</string>
@@ -270,7 +265,6 @@ inzibatçınızla əlaqə saxlayasınız.</string>
   <string name="downloader_download_file_not_found">Bu fayla serverdə artıq uzun müddətdir ki, çatmaq mümkün deyil</string>
   <string name="prefs_category_accounts">Hesablar</string>
   <string name="prefs_add_account">Hesab əlavə et</string>
-  <string name="auth_redirect_non_secure_connection_title">Təhlükəsiz qoşulma, təhlükəsiz olmayan istiqamətə yönlədirilmişdir</string>
   <string name="actionbar_logger">Jurnallar</string>
   <string name="log_send_history_button">Tarixçəni göndər</string>
   <string name="log_send_no_mail_app">Jurnalların ötürülməsi üçün proqram təminatı tapılmadı!</string>
@@ -286,10 +280,14 @@ inzibatçınızla əlaqə saxlayasınız.</string>
   <string name="move_file_invalid_overwrite">Fayl artıq mənsəb qovluğunda mövcuddur</string>
   <string name="move_file_error">Fayl və ya qovluğun köçürülməsi müddətində səhv baş verdi</string>
   <string name="forbidden_permissions_move">bu faylı köçürtmək</string>
+  <string name="copy_file_invalid_overwrite">Fayl artıq mənsəb qovluğunda mövcuddur</string>
   <string name="prefs_category_instant_uploading">Anında yükləmələr</string>
   <string name="prefs_category_security">Təhlükəsizlik</string>
   <string name="prefs_instant_video_upload_path_title">Video ünvanını yüklə</string>
-  <string name="download_folder_failed_content">Qovluğun endirilməsinin %1$s hissəsi tamamlana bilməz </string>
+  <string name="subject_user_shared_with_you">%1$s paylaşdı \"%2$s\" sizinlə</string>
   <string name="auth_refresh_button">Qoşulmanı yenilə</string>
   <string name="auth_host_address">Server ünvanı</string>
+  <string name="share_dialog_title">Paylaşılır</string>
+  <string name="share_via_link_section_title">Linki yayımla</string>
+  <string name="share_search">Axtarış</string>
 </resources>
diff --git a/res/values-bal/strings.xml b/res/values-bal/strings.xml
new file mode 100644 (file)
index 0000000..37e6152
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--TODO re-enable when server-side folder size calculation is available   
+       <item>Biggest - Smallest</item>-->
+  <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
+  <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <!--TODO re-enable when "On Device" is available
+    <string name="drawer_item_on_device">On device</string>-->
+  <string name="empty"></string>
+</resources>
index 3edf84e..30e03e4 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Настройки</string>
   <string name="drawer_item_logs">Логове</string>
   <string name="drawer_close">Затвори</string>
+  <string name="drawer_open">Отвори</string>
   <string name="prefs_category_general">Общи</string>
   <string name="prefs_category_more">Още</string>
   <string name="prefs_accounts">Профили</string>
   <string name="filedetails_created">Създаден на:</string>
   <string name="filedetails_modified">Променен на:</string>
   <string name="filedetails_download">Изтегляне</string>
-  <string name="filedetails_sync_file">Обновяване на файла</string>
   <string name="filedetails_renamed_in_upload_msg">Файлът беше преименуван на %1$s по време на качването.</string>
   <string name="list_layout">Списък с изгледи</string>
-  <string name="action_share_file">Връзка за споделяне</string>
-  <string name="action_unshare_file">Премахване връзка за споделяне</string>
+  <string name="action_share">Споделяне</string>
   <string name="common_yes">Да</string>
   <string name="common_no">Не</string>
   <string name="common_ok">ОК</string>
-  <string name="common_cancel_download">Отказване на тегленето</string>
-  <string name="common_cancel_upload">Отказване на качването</string>
   <string name="common_cancel">Отказ</string>
   <string name="common_save_exit">Запазване и изход</string>
   <string name="common_error">Грешка</string>
   <string name="favorite">Любими</string>
   <string name="common_rename">Преименуване</string>
   <string name="common_remove">Премахване</string>
-  <string name="confirmation_remove_alert">Наистина ли искате да изтриете %1$s ?</string>
+  <string name="confirmation_remove_file_alert">Наистина ли искате да изтриете %1$s ?</string>
   <string name="confirmation_remove_folder_alert">Наистина ли искате да премахнете %1$s и съдържанието му?</string>
   <string name="confirmation_remove_local">Само локално</string>
-  <string name="confirmation_remove_folder_local">Само локалното съдържание</string>
-  <string name="confirmation_remove_remote">Премахване от сървъра</string>
-  <string name="confirmation_remove_remote_and_local">Отдалечено и локално</string>
+  <string name="confirmation_remove_folder_local">Само локално</string>
   <string name="remove_success_msg">Премахването успешно.</string>
   <string name="remove_fail_msg">Неуспешно прехамхване.</string>
   <string name="rename_dialog_title">Въведете ново име</string>
   <string name="move_file_invalid_overwrite">Файлът вече съществува в отдалечената папка.</string>
   <string name="move_file_error">Настъпи грешка при опита за преместване на този файл или папка.</string>
   <string name="forbidden_permissions_move">за да преместиш този файл</string>
+  <string name="copy_file_invalid_overwrite">Файлът вече съществува в отдалечената папка.</string>
   <string name="prefs_category_instant_uploading">Незабавно качване</string>
   <string name="prefs_category_security">Сигурност</string>
   <string name="prefs_instant_video_upload_path_title">Качване на видео път</string>
-  <string name="download_folder_failed_content">Свалянето на директорията %1$s не може да бъде завършено</string>
   <string name="shared_subject_header">споделен</string>
   <string name="with_you_subject_header">с теб</string>
-  <string name="subject_token">%1$s споделен \"%2$s\" с теб</string>
+  <string name="subject_user_shared_with_you">%1$s споделен \"%2$s\" с теб</string>
   <string name="auth_refresh_button">Обнови връзката</string>
   <string name="auth_host_address">Адрес на сървъра</string>
   <string name="common_error_out_memory">Няма достатъчно памет</string>
   <string name="file_list__footer__files">%1$d файла</string>
   <string name="file_list__footer__files_and_folder">%1$d файла, 1 папка</string>
   <string name="file_list__footer__files_and_folders">%1$d файла, %2$d папки</string>
+  <string name="share_dialog_title">Споделяне</string>
+  <string name="share_via_link_section_title">Връзка за споделяне</string>
+  <string name="share_via_link_expiration_date_label">Задаване на дата на изтичане</string>
+  <string name="share_via_link_password_label">Защитено с парола</string>
+  <string name="share_search">Търсене</string>
 </resources>
index 4907201..a4b0aad 100644 (file)
@@ -17,6 +17,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">খোল</string>
   <string name="prefs_category_general">সাধারণ</string>
   <string name="prefs_category_more">বেশী</string>
   <string name="prefs_accounts">একাউন্ট</string>
   <string name="filedetails_created">তৈরীর নির্ঘন্টঃ</string>
   <string name="filedetails_modified">পরিবর্তিতঃ</string>
   <string name="filedetails_download">ডাউনলোড</string>
-  <string name="filedetails_sync_file">ফাইল নবোদ্যম করুন</string>
   <string name="filedetails_renamed_in_upload_msg">আপলোডের সময় ফাইলের পূণঃনামকরণ করা হয়েছে %1$s</string>
-  <string name="action_share_file">লিংক ভাগাভাগি করেন</string>
-  <string name="action_unshare_file">লিংক ছিনন করেন</string>
+  <string name="action_share">ভাগাভাগি কর</string>
   <string name="common_yes">হ্যাঁ</string>
   <string name="common_no">না</string>
   <string name="common_ok">তথাস্তু</string>
-  <string name="common_cancel_download">ডাউনলোড বাতিল করেন</string>
-  <string name="common_cancel_upload">আপলোড বাতিল কর</string>
   <string name="common_cancel">বাতিল</string>
   <string name="common_save_exit">সংরক্ষণ কর এবং &amp;প্রস্থান</string>
   <string name="common_error">সমস্যা</string>
   <string name="favorite">প্রিয়জন</string>
   <string name="common_rename">পূনঃনামকরণ</string>
   <string name="common_remove">অপসারণ</string>
-  <string name="confirmation_remove_alert">আপনি কি সত্যিই %1$s অপসারণ করতে চান?</string>
+  <string name="confirmation_remove_file_alert">আপনি কি সত্যিই %1$s অপসারণ করতে চান?</string>
   <string name="confirmation_remove_folder_alert">আপনি কি সত্যিই %1$s এবং এর কনটেন্ট অপসারণ করতে চান?</string>
   <string name="confirmation_remove_local">শুধুমাত্র লোকাল</string>
-  <string name="confirmation_remove_folder_local">শুধুমাত্র লোকাল কনটেন্ট</string>
-  <string name="confirmation_remove_remote">সার্ভসার থেকে অপসারণ কর</string>
-  <string name="confirmation_remove_remote_and_local">দুরবর্তী ও স্থানীয়</string>
+  <string name="confirmation_remove_folder_local">শুধুমাত্র লোকাল</string>
   <string name="remove_success_msg">অপসারণ সফল</string>
   <string name="remove_fail_msg">অপসারণ ব্যার্থ</string>
   <string name="rename_dialog_title">একটি নতুন নাম লিখুন</string>
   <string name="downloader_download_file_not_found">সার্ভারে এই ফাইলটি আর প্রাপ্তব্য নয়</string>
   <string name="prefs_category_accounts">একাউন্ট</string>
   <string name="prefs_add_account">একাউন্ট যোগ কর</string>
+  <string name="auth_redirect_non_secure_connection_title">নিরাপদ সংযোগকে একটি অনিরাপদ পথে দিকবদল করা হয়েছে</string>
   <string name="saml_authentication_wrong_pass">ভুল কুটশব্দ</string>
   <string name="actionbar_move">সরাও</string>
   <string name="file_list_empty_moving">এখানে কিছু নেই। একটি ফোল্ডার যোগ করতে পারেন!</string>
   <string name="move_file_not_found">সরাতে ব্যার্থ হলো। ফাইলটি রয়েছে কিনা দেখুন।</string>
   <string name="prefs_category_security">নিরাপত্তা</string>
   <string name="auth_host_address">সার্ভার ঠিকানা</string>
+  <string name="share_dialog_title">ভাগাভাগিরত</string>
+  <string name="share_via_link_section_title">লিংক ভাগাভাগি করেন</string>
+  <string name="share_via_link_expiration_date_label">মেয়াদোত্তীর্ণ হওয়ার তারিখ নির্ধারণ করুন</string>
+  <string name="share_via_link_password_label">কূটশব্দ সুরক্ষিত</string>
+  <string name="share_search">অনুসন্ধান</string>
 </resources>
index d71af21..d8eddb6 100644 (file)
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">খোলা</string>
   <string name="prefs_imprint">অঙ্কিত করা</string>
   <string name="auth_username">ইউজারনেম</string>
   <string name="sync_string_files">ফাইলস</string>
   <string name="uploader_btn_new_folder_text">নতুন ফোল্ডার</string>
   <string name="filedetails_download">ডাউনলোড করুন</string>
+  <string name="action_share">শেয়ার</string>
   <string name="common_cancel">বাতিল করা</string>
   <string name="common_error">ভুল</string>
   <string name="uploader_info_dirname">ফোল্ডারের নাম</string>
   <string name="common_rename">পুনঃনামকরণ</string>
   <string name="common_remove">সরান</string>
   <string name="empty"></string>
+  <string name="share_search">অনুসন্ধান</string>
 </resources>
index 70c1290..569bff0 100644 (file)
@@ -11,6 +11,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Otvori</string>
   <string name="prefs_category_more">Više</string>
   <string name="prefs_help">Pomoć</string>
   <string name="auth_username">Korisničko ime</string>
   <string name="uploader_btn_upload_text">Učitaj</string>
   <string name="uploader_btn_new_folder_text">Novi direktorij</string>
   <string name="filedetails_download">Preuzmite</string>
-  <string name="action_share_file">Podijelite vezu</string>
+  <string name="action_share">Dijeli</string>
   <string name="common_yes">Da</string>
   <string name="common_no">Ne</string>
   <string name="common_ok">Ok</string>
-  <string name="common_cancel_upload">Prekini učitavanje</string>
   <string name="common_cancel">Odustani</string>
   <string name="common_error">Greška</string>
   <string name="common_error_unknown">Nepoznata greška</string>
@@ -38,4 +38,9 @@
   <string name="folder_picker_choose_button_text">Izaberite</string>
   <string name="prefs_category_security">Sigurnost</string>
   <string name="auth_host_address">Adresa servera</string>
+  <string name="share_dialog_title">Dijeljenje</string>
+  <string name="share_via_link_section_title">Podijelite vezu</string>
+  <string name="share_via_link_expiration_date_label">Postavite datum isteka</string>
+  <string name="share_via_link_password_label">Zaštitita lozinkom</string>
+  <string name="share_search">Potraži</string>
 </resources>
index 3987742..e54eda6 100644 (file)
@@ -23,6 +23,9 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_item_settings">configuració</string>
+  <string name="drawer_close">tanca</string>
+  <string name="drawer_open">Obre</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Més</string>
   <string name="prefs_accounts">Comptes</string>
   <string name="filedetails_created">Creat:</string>
   <string name="filedetails_modified">Modificat:</string>
   <string name="filedetails_download">Baixa</string>
-  <string name="filedetails_sync_file">Actualitza el fitxer</string>
   <string name="filedetails_renamed_in_upload_msg">L\'arxiu s\'ha canviat de nom a %1$s durant la càrrega</string>
-  <string name="action_share_file">Enllaç de compartició</string>
-  <string name="action_unshare_file">Deixa de compartir l\'enllaç</string>
+  <string name="action_share">Comparteix</string>
   <string name="common_yes">Sí</string>
   <string name="common_no">No</string>
   <string name="common_ok">D\'acord</string>
-  <string name="common_cancel_download">Cancelar la descàrrega</string>
-  <string name="common_cancel_upload">Cancel·la la pujada</string>
   <string name="common_cancel">Cancel·la</string>
   <string name="common_save_exit">Desa &amp; Surt</string>
   <string name="common_error">Error</string>
   <string name="favorite">Preferits</string>
   <string name="common_rename">Reanomena</string>
   <string name="common_remove">Elimina</string>
-  <string name="confirmation_remove_alert">Esteu segur que voleu eliminar %1$s?</string>
+  <string name="confirmation_remove_file_alert">Esteu segur que voleu eliminar %1$s?</string>
   <string name="confirmation_remove_folder_alert">Estàs segur que vols esborrar %1$s i els seus continguts?</string>
   <string name="confirmation_remove_local">Només local</string>
-  <string name="confirmation_remove_folder_local">Només contiguts locals</string>
-  <string name="confirmation_remove_remote">Elimina del servidor</string>
-  <string name="confirmation_remove_remote_and_local">Remot i local</string>
+  <string name="confirmation_remove_folder_local">Només local</string>
   <string name="remove_success_msg">L\'eliminació ha tingut èxit</string>
   <string name="remove_fail_msg">No s\'ha pogut completar l\'eliminació</string>
   <string name="rename_dialog_title">Introdueix un nom nou</string>
   <string name="downloader_download_file_not_found">El fitxer ja no està disponible en el servidor</string>
   <string name="prefs_category_accounts">Comptes</string>
   <string name="prefs_add_account">Afegeix compte</string>
+  <string name="auth_redirect_non_secure_connection_title">La connexió segura està essent redirigida a través d\'una ruta insegura</string>
   <string name="log_progress_dialog_text">Carregant dades...</string>
   <string name="saml_authentication_required_text">Es requereix autenticació</string>
   <string name="saml_authentication_wrong_pass">Contrasenya incorrecta</string>
   <string name="folder_picker_choose_button_text">Escull</string>
   <string name="prefs_category_security">Seguretat</string>
   <string name="auth_host_address">Adreça del servidor</string>
+  <string name="share_dialog_title">Compartir</string>
+  <string name="share_via_link_section_title">Comparteix l\'enllaç</string>
+  <string name="share_via_link_expiration_date_label">Estableix la data de venciment</string>
+  <string name="share_via_link_password_label">Protegir amb contrasenya</string>
+  <string name="share_search">Cerca</string>
 </resources>
index 0d5ed85..77aba36 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Nastavení</string>
   <string name="drawer_item_logs">Logy</string>
   <string name="drawer_close">Zavřít</string>
+  <string name="drawer_open">Otevřít</string>
   <string name="prefs_category_general">Obecné</string>
   <string name="prefs_category_more">Více</string>
   <string name="prefs_accounts">Účty</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">před pár sekundami</string>
   <string name="file_list_empty">Žádný obsah. Nahrajte něco!</string>
   <string name="file_list_loading">Načítání...</string>
+  <string name="file_list_no_app_for_file_type">Nebyla nalezena aplikace pro tento typ souboru!</string>
   <string name="local_file_list_empty">V tomto adresáři nejsou žádné soubory.</string>
   <string name="filedetails_select_file">Více informací získáte klepnutím na soubor.</string>
   <string name="filedetails_size">Velikost:</string>
   <string name="filedetails_created">Vytvořen:</string>
   <string name="filedetails_modified">Upraven:</string>
   <string name="filedetails_download">Stáhnout</string>
-  <string name="filedetails_sync_file">Obnovit soubor</string>
+  <string name="filedetails_sync_file">Synchronizovat</string>
   <string name="filedetails_renamed_in_upload_msg">Soubor byl v průběhu odesílání přejmenován na %1$s</string>
   <string name="list_layout">Náhled seznamu</string>
-  <string name="action_share_file">Sdílet odkaz</string>
-  <string name="action_unshare_file">Zrušit sdílení odkazu</string>
+  <string name="action_share">Sdílet</string>
   <string name="common_yes">Ano</string>
   <string name="common_no">Ne</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Zrušit stahování</string>
-  <string name="common_cancel_upload">Zrušit odesílání</string>
+  <string name="common_cancel_sync">Zrušit synchronizaci</string>
   <string name="common_cancel">Zrušit</string>
   <string name="common_save_exit">Uložit a ukončit</string>
   <string name="common_error">Chyba</string>
   <string name="unfavorite">Odebrat z oblíbených</string>
   <string name="common_rename">Přejmenovat</string>
   <string name="common_remove">Odstranit</string>
-  <string name="confirmation_remove_alert">Opravdu chcete odstranit %1$s ?</string>
+  <string name="confirmation_remove_file_alert">Opravdu chcete odstranit %1$s ?</string>
   <string name="confirmation_remove_folder_alert">Opravdu chcete odstranit %1$s a jeho obsah?</string>
   <string name="confirmation_remove_local">Pouze místní</string>
-  <string name="confirmation_remove_folder_local">Pouze místní obsah</string>
-  <string name="confirmation_remove_remote">Odstranit ze serveru</string>
-  <string name="confirmation_remove_remote_and_local">Oboje, místní i vzdálené</string>
+  <string name="confirmation_remove_folder_local">Pouze místní</string>
+  <string name="confirmation_remove_file_remote">Ze serveru</string>
+  <string name="confirmation_remove_remote_and_local">Vzdálený &amp; místní</string>
   <string name="remove_success_msg">Úspěšně odstraněno</string>
   <string name="remove_fail_msg">Odstranění nelze dokončit</string>
   <string name="rename_dialog_title">Zadejte nový název</string>
   <string name="ssl_validator_label_validity_to">Pro:</string>
   <string name="ssl_validator_label_signature">Podpis:</string>
   <string name="ssl_validator_label_signature_algorithm">Alogritmus:</string>
+  <string name="digest_algorithm_not_available">Tento algoritmus není na vašem telefonu dostupný.</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Otisk:</string>
+  <string name="certificate_load_problem">Došlo k problému s načtením certifikátu.</string>
   <string name="ssl_validator_null_cert">Certifikát nemohl být zobrazen.</string>
   <string name="ssl_validator_no_info_about_error">- Žádné informace o této chybě</string>
   <string name="placeholder_sentence">Zástupný text</string>
   <string name="conflict_title">Konflikt souboru</string>
   <string name="conflict_message">Které soubory chcete ponechat? Pokud zvolíte obě verze, zkopírovaný soubor bude mít název doplněný o číslo.</string>
   <string name="conflict_keep_both">Ponechat oba</string>
-  <string name="conflict_use_local_version">Použít lokální verzi</string>
-  <string name="conflict_use_server_version">Použít serverovou verzi</string>
+  <string name="conflict_use_local_version">místní verze</string>
+  <string name="conflict_use_server_version">serverová verze</string>
   <string name="preview_image_description">Náhled obrázku</string>
   <string name="preview_image_error_unknown_format">Obrázek nelze zobrazit</string>
   <string name="error__upload__local_file_not_copied">%1$s nelze zkopírovat do místního adresáře %2$s</string>
@@ -268,6 +271,8 @@ správce systému.</string>
   <string name="share_link_file_error">Při pokusu o sdílení tohoto souboru či složky nastala chyba</string>
   <string name="unshare_link_file_no_exist">Nelze ukončit sdílení. Zkontrolujte prosím že soubor existuje</string>
   <string name="unshare_link_file_error">Při pokusu o zrušení sdílení tohoto souboru či složky nastala chyba</string>
+  <string name="update_link_file_no_exist">Nelze aktulizovat. Ověřte že soubor existuje</string>
+  <string name="update_link_file_error">Došlo k chybě při pokusu aktualizovat sdílený odkaz</string>
   <string name="share_link_password_title">Zadejte heslo</string>
   <string name="share_link_empty_password">Musíte zadat heslo</string>
   <string name="activity_chooser_send_file_title">Odeslat</string>
@@ -284,12 +289,13 @@ správce systému.</string>
   <string name="forbidden_permissions_delete">smazat tento soubor</string>
   <string name="share_link_forbidden_permissions">sdílet tento soubor</string>
   <string name="unshare_link_forbidden_permissions">zrušit sdílení tohoto souboru</string>
+  <string name="update_link_forbidden_permissions">aktualizovat tento sdílený odkaz</string>
   <string name="forbidden_permissions_create">vytvořit tento soubor</string>
   <string name="uploader_upload_forbidden_permissions">nahrávat do tohoto adresáře</string>
   <string name="downloader_download_file_not_found">Tento soubor již není dostupný na serveru</string>
   <string name="prefs_category_accounts">Účty</string>
   <string name="prefs_add_account">Přidat účet</string>
-  <string name="auth_redirect_non_secure_connection_title">Bezpečné spojení je přesměrováno na nezabezpečenou trasu.</string>
+  <string name="auth_redirect_non_secure_connection_title">Zabezpečené spojení je přesměrováváno nezabezpečenou trasou.</string>
   <string name="actionbar_logger">Logy</string>
   <string name="log_send_history_button">Odeslat historii</string>
   <string name="log_send_no_mail_app">Nebyla nalezena žádná aplikace pro odesílání logů. Nainstalujte poštovní aplikaci!</string>
@@ -305,14 +311,19 @@ správce systému.</string>
   <string name="move_file_invalid_overwrite">Soubor již v cílovém adresáři existuje</string>
   <string name="move_file_error">Při pokusu o přesun tohoto souboru či složky nastala chyba</string>
   <string name="forbidden_permissions_move">pro přesun tohoto souboru</string>
+  <string name="copy_file_not_found">Nelze zkopírpovat. Zkontrolujte prosím že soubor existuje</string>
+  <string name="copy_file_invalid_into_descendent">Není možné adresář zkopírovat do jeho vlastního podadresáře</string>
+  <string name="copy_file_invalid_overwrite">Soubor již v cílové složce existuje</string>
+  <string name="copy_file_error">Při pokusu o zkopírování tohoto souboru či složky došlo k chybě</string>
+  <string name="forbidden_permissions_copy">pro zkopírování tohoto souboru</string>
   <string name="prefs_category_instant_uploading">Okamžitá odesílání</string>
   <string name="prefs_category_security">Zabezpečení</string>
   <string name="prefs_instant_video_upload_path_title">Cesta pro nahrávání videí</string>
-  <string name="download_folder_failed_content">Stažení adresáře %1$s nemohlo být dokončeno</string>
+  <string name="sync_folder_failed_content">Synchronizaci adresáře %1$s nelze dokončit</string>
   <string name="shared_subject_header">sdílené</string>
   <string name="with_you_subject_header">s vámi</string>
-  <string name="subject_token">%1$s s vámi sdílí \"%2$s\"</string>
-  <string name="saml_subject_token">\"%1$s\" ti byl nasdílen</string>
+  <string name="subject_user_shared_with_you">%1$s s vámi sdílí \"%2$s\"</string>
+  <string name="subject_shared_with_you">\"%1$s\" ti byl nasdílen</string>
   <string name="auth_refresh_button">Obnovit připojení</string>
   <string name="auth_host_address">Adresa serveru</string>
   <string name="common_error_out_memory">Nedostatek paměti</string>
@@ -325,4 +336,18 @@ správce systému.</string>
   <string name="file_list__footer__files">%1$d soubory(ů)</string>
   <string name="file_list__footer__files_and_folder">%1$d soubory(ů), 1 adresář</string>
   <string name="file_list__footer__files_and_folders">%1$d soubory(ů), %2$d adresáře(ů)</string>
+  <string name="share_dialog_title">Sdílení</string>
+  <string name="share_with_user_section_title">Sdílet s uživateli a skupinami</string>
+  <string name="share_no_users">Zatím nebyla s uživateli sdílena žádná data</string>
+  <string name="share_add_user_or_group">Přidat uživatele nebo skupinu</string>
+  <string name="share_via_link_section_title">Sdílet odkaz</string>
+  <string name="share_via_link_expiration_date_label">Nastavit datum vypršení platnosti</string>
+  <string name="share_via_link_password_label">Chránit heslem</string>
+  <string name="share_via_link_password_title">Zabezpečeno</string>
+  <string name="share_get_public_link_button">Vytvořit odkaz</string>
+  <string name="share_search">Hledat</string>
+  <string name="search_users_and_groups_hint">Prohledat uživatele a skupiny</string>
+  <string name="share_group_clarification">%1$s (skupina)</string>
+  <string name="share_sharee_unavailable">Omlouváme se, verze vašeho serveru neumožňuje v klientské aplikaci sdílení dat mezi uživateli.
+\nKontaktujte prosím svého administrátora</string>
 </resources>
index d28261a..5a47c64 100644 (file)
@@ -11,6 +11,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Agor</string>
   <string name="prefs_category_general">Cyffredinol</string>
   <string name="prefs_accounts">Cyfrifon</string>
   <string name="prefs_manage_accounts">Rheoli Cyfrifon</string>
   <string name="filedetails_modified">Addaswyd:</string>
   <string name="filedetails_download">Llwytho i lawr</string>
   <string name="filedetails_renamed_in_upload_msg">Ailenwyd y ffeil i %1$s wrth lwytho i fyny</string>
+  <string name="action_share">Rhannu</string>
   <string name="common_yes">Ie</string>
   <string name="common_no">Na</string>
   <string name="common_ok">Iawn</string>
-  <string name="common_cancel_download">Diddymu llwytho i lawr</string>
-  <string name="common_cancel_upload">Diddymu llwytho i fyny</string>
   <string name="common_cancel">Diddymu</string>
   <string name="common_save_exit">Cadw &amp; Gadael</string>
   <string name="common_error">Gwall</string>
@@ -91,9 +91,7 @@
   <string name="common_rename">Ailenwi</string>
   <string name="common_remove">Gwaredu</string>
   <string name="confirmation_remove_local">Lleol yn unig</string>
-  <string name="confirmation_remove_folder_local">Cynnwys lleol yn unig</string>
-  <string name="confirmation_remove_remote">Gwaredu o\'r gweinydd</string>
-  <string name="confirmation_remove_remote_and_local">Pell a lleol</string>
+  <string name="confirmation_remove_folder_local">Lleol yn unig</string>
   <string name="remove_success_msg">Gwaredwyd yn llwyddiannus</string>
   <string name="remove_fail_msg">Methwyd gwaredu</string>
   <string name="rename_dialog_title">Rhowch enw newydd</string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Cyfrifon</string>
   <string name="folder_picker_choose_button_text">Dewisiwch</string>
+  <string name="share_via_link_expiration_date_label">Gosod dyddiad dod i ben</string>
+  <string name="share_via_link_password_label">Diogelu cyfrinair</string>
+  <string name="share_search">Chwilio</string>
 </resources>
index 1c744d9..2697926 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Indstillinger</string>
   <string name="drawer_item_logs">Logregistreringer</string>
   <string name="drawer_close">Luk</string>
+  <string name="drawer_open">Åbn</string>
   <string name="prefs_category_general">Generel</string>
   <string name="prefs_category_more">Mere</string>
   <string name="prefs_accounts">Konti</string>
   <string name="filedetails_created">Oprettet:</string>
   <string name="filedetails_modified">Ændret:</string>
   <string name="filedetails_download">Hent</string>
-  <string name="filedetails_sync_file">Genopfrisk fil</string>
   <string name="filedetails_renamed_in_upload_msg">Filen blev omdøbt til %1$s under upload</string>
   <string name="list_layout">Listevisning</string>
-  <string name="action_share_file">Del link</string>
-  <string name="action_unshare_file">Ophæv deling</string>
+  <string name="action_share">Del</string>
   <string name="common_yes">Ja</string>
   <string name="common_no">Nej</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Afbryd download</string>
-  <string name="common_cancel_upload">Fortryd upload</string>
   <string name="common_cancel">Annuller</string>
   <string name="common_save_exit">Gem &amp; Afslut</string>
   <string name="common_error">Fejl</string>
   <string name="unfavorite">Fjern markering som foretrukket</string>
   <string name="common_rename">Omdøb</string>
   <string name="common_remove">Fjern</string>
-  <string name="confirmation_remove_alert">Er du sikker på at du vil fjerne %1$s ?</string>
+  <string name="confirmation_remove_file_alert">Er du sikker på at du vil fjerne %1$s ?</string>
   <string name="confirmation_remove_folder_alert">Ønsker du virkelig at slette %1$s og dets indhold?</string>
   <string name="confirmation_remove_local">Kun lokal</string>
-  <string name="confirmation_remove_folder_local">Lokalt indhold kun</string>
-  <string name="confirmation_remove_remote">Fjern fra server</string>
-  <string name="confirmation_remove_remote_and_local">Både fjernt og lokalt</string>
+  <string name="confirmation_remove_folder_local">Kun lokal</string>
+  <string name="confirmation_remove_file_remote">Fra server</string>
+  <string name="confirmation_remove_remote_and_local">Fjernbeliggende og lokalt</string>
   <string name="remove_success_msg">Vellykket fjernelse</string>
   <string name="remove_fail_msg">Fjernelse kunne ikke fuldføres</string>
   <string name="rename_dialog_title">Indtast et nyt navn</string>
   <string name="conflict_title">Filkonflikt</string>
   <string name="conflict_message">Hvilke filer ønsker du at beholde? Hvis du vælger begge versioner, så vil den lokale fil få et tal tilføjet til sit navn.</string>
   <string name="conflict_keep_both">Behold begge</string>
-  <string name="conflict_use_local_version">Benyt lokal version</string>
-  <string name="conflict_use_server_version">Benyt serverversionen</string>
+  <string name="conflict_use_local_version">lokal version</string>
+  <string name="conflict_use_server_version">serverversion</string>
   <string name="preview_image_description">Forhåndsvisning af billede</string>
   <string name="preview_image_error_unknown_format">Dette billede kan ikke vises</string>
   <string name="error__upload__local_file_not_copied">%1$s kunne ikke kopieres til %2$s lokale mappe</string>
   <string name="downloader_download_file_not_found">Filen er ikke længere tilgængelig på serveren</string>
   <string name="prefs_category_accounts">Konti</string>
   <string name="prefs_add_account">Tilføj konto</string>
-  <string name="auth_redirect_non_secure_connection_title">Sikker forbindelse videredirigeres til en usikker rute.</string>
+  <string name="auth_redirect_non_secure_connection_title">Sikker forbindelse videredirigeres gennem en usikker rute.</string>
   <string name="actionbar_logger">Logge</string>
   <string name="log_send_history_button">Send historik</string>
   <string name="log_send_no_mail_app">Der blev ikke fundet apps, der kan sende logge. Installér mail-app\'en!</string>
   <string name="move_file_invalid_overwrite">Filen findes allerede i destinationsmappen</string>
   <string name="move_file_error">Der opstod en fejl under forsøg på at flytte denne mappe eller fil</string>
   <string name="forbidden_permissions_move">til at flytte denne fil</string>
+  <string name="copy_file_not_found">Kunne ikke kopiere. Tjek venligst om filerne findes</string>
+  <string name="copy_file_invalid_into_descendent">Det er ikke muligt at kopiere en mappe til én af dens undermapper</string>
+  <string name="copy_file_invalid_overwrite">Filen findes allerede i destinationsmappen</string>
+  <string name="copy_file_error">Der opstod en fejl under forsøg på at kopiere denne fil eller mappe</string>
+  <string name="forbidden_permissions_copy">til at kopiere denne fil</string>
   <string name="prefs_category_instant_uploading">Øjeblikkelige uploads</string>
   <string name="prefs_category_security">Sikkerhed</string>
   <string name="prefs_instant_video_upload_path_title">Sti til videoupload</string>
-  <string name="download_folder_failed_content">Download af %1$s mappe kunne ikke fuldføres</string>
   <string name="shared_subject_header">delt</string>
   <string name="with_you_subject_header">med dig</string>
-  <string name="subject_token">%1$s delte \"%2$s\" med dig</string>
-  <string name="saml_subject_token">\"%1$s\" er blevet delt med dig</string>
+  <string name="subject_user_shared_with_you">%1$s delte \"%2$s\" med dig</string>
+  <string name="subject_shared_with_you">\"%1$s\" er blevet delt med dig</string>
   <string name="auth_refresh_button">Genopfrisk forbindelsen</string>
   <string name="auth_host_address">Serveradresse</string>
   <string name="common_error_out_memory">Ikke tilstrækkelig hukommelse</string>
   <string name="file_list__footer__files">%1$d filer</string>
   <string name="file_list__footer__files_and_folder">%1$d filer, 1 mape</string>
   <string name="file_list__footer__files_and_folders">%1$d filer, %2$d mapper</string>
+  <string name="share_dialog_title">Deling</string>
+  <string name="share_via_link_section_title">Del link</string>
+  <string name="share_via_link_expiration_date_label">Vælg udløbsdato</string>
+  <string name="share_via_link_password_label">Beskyt med adgangskode</string>
+  <string name="share_search">Søg</string>
 </resources>
index a99ab89..98dcaff 100644 (file)
   <string name="filedetails_created">Erstellt am:</string>
   <string name="filedetails_modified">Verändert am:</string>
   <string name="filedetails_download">Herunterladen</string>
-  <string name="filedetails_sync_file">Datei neu laden</string>
-  <string name="action_share_file">Link teilen</string>
-  <string name="action_unshare_file">Link nicht mehr teilen</string>
+  <string name="action_share">Freigeben</string>
   <string name="common_yes">Ja</string>
   <string name="common_no">Nein</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Herunterladen abbrechen</string>
-  <string name="common_cancel_upload">Hochladen abbrechen</string>
   <string name="common_cancel">Abbrechen</string>
   <string name="common_save_exit">Speichern &amp; Schließen</string>
   <string name="common_error">Fehler</string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Konten</string>
   <string name="auth_host_address">Adresse des Servers</string>
+  <string name="share_via_link_section_title">Link teilen</string>
 </resources>
index 2039297..375303f 100644 (file)
   <string name="common_remove">Löschen</string>
   <string name="confirmation_remove_local">Nur lokal</string>
   <string name="confirmation_remove_folder_local">Nur lokale Inhalte</string>
-  <string name="confirmation_remove_remote">Vom Server entfernen</string>
+  <string name="confirmation_remove_file_remote">Vom Server entfernen</string>
   <string name="confirmation_remove_remote_and_local">Lokal und auf dem Server</string>
   <string name="remove_success_msg">Erfolgreich gelöscht</string>
   <string name="remove_fail_msg">Der Löschvorgang konnte nicht beendet werden</string>
index 436dafe..4014d7e 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Einstellungen</string>
   <string name="drawer_item_logs">Protokolle</string>
   <string name="drawer_close">Schließen</string>
+  <string name="drawer_open">Öffnen</string>
   <string name="prefs_category_general">Allgemein</string>
   <string name="prefs_category_more">Mehr</string>
   <string name="prefs_accounts">Konten</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">Gerade eben</string>
   <string name="file_list_empty">Alles leer. Laden Sie etwas hoch!</string>
   <string name="file_list_loading">Lade…</string>
+  <string name="file_list_no_app_for_file_type">Es wurde keine App für die Datei gefunden!</string>
   <string name="local_file_list_empty">Es befinden sich keine Dateien in diesem Ordner.</string>
   <string name="filedetails_select_file">Klicken Sie auf eine Datei für weitere Informationen.</string>
   <string name="filedetails_size">Größe:</string>
   <string name="filedetails_created">Erstellt:</string>
   <string name="filedetails_modified">Geändert:</string>
   <string name="filedetails_download">Herunterladen</string>
-  <string name="filedetails_sync_file">Datei aktualisieren</string>
+  <string name="filedetails_sync_file">syncronisieren</string>
   <string name="filedetails_renamed_in_upload_msg">Datei wurde wärend des Uploads zu %1$s umbenannt</string>
   <string name="list_layout">Listen-Layout</string>
-  <string name="action_share_file">Link teilen</string>
-  <string name="action_unshare_file">Link nicht mehr teilen</string>
+  <string name="action_share">Share</string>
   <string name="common_yes">Ja</string>
   <string name="common_no">Nein</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Download abbrechen</string>
-  <string name="common_cancel_upload">Upload abbrechen</string>
+  <string name="common_cancel_sync">Synchronisation beenden</string>
   <string name="common_cancel">Abbrechen</string>
   <string name="common_save_exit">Speichern &amp; Schließen</string>
   <string name="common_error">Fehler</string>
   <string name="unfavorite">Nicht mehr favorisieren</string>
   <string name="common_rename">Umbenennen</string>
   <string name="common_remove">Löschen</string>
-  <string name="confirmation_remove_alert">Möchten Sie %1$s wirklich löschen?</string>
+  <string name="confirmation_remove_file_alert">Möchten Sie %1$s wirklich löschen?</string>
   <string name="confirmation_remove_folder_alert">Möchten Sie wirklich %1$s und dessen Inhalte entfernen?</string>
   <string name="confirmation_remove_local">Nur lokal</string>
-  <string name="confirmation_remove_folder_local">Nur lokale Inhalte</string>
-  <string name="confirmation_remove_remote">Vom Server entfernen</string>
-  <string name="confirmation_remove_remote_and_local">Lokal und auf dem Server</string>
+  <string name="confirmation_remove_folder_local">Nur lokal</string>
+  <string name="confirmation_remove_remote">Vom Server</string>
   <string name="remove_success_msg">Erfolgreich gelöscht</string>
   <string name="remove_fail_msg">Der Löschvorgang konnte nicht beendet werden</string>
   <string name="rename_dialog_title">Geben Sie einen neuen Namen ein</string>
   <string name="conflict_title">Dateikonflikt</string>
   <string name="conflict_message">Welche Datei möchtest du behalten? Wenn du beide Versionen auswählst, wird der lokalen Datei eine Zahl am Ende Ihres Dateiname angehangen.</string>
   <string name="conflict_keep_both">Beide behalten</string>
-  <string name="conflict_use_local_version">Benutze lokale Version</string>
-  <string name="conflict_use_server_version">Benutze Version auf dem Server</string>
+  <string name="conflict_use_local_version">lokale Version</string>
+  <string name="conflict_use_server_version">Server Version</string>
   <string name="preview_image_description">Bildvorschau</string>
   <string name="preview_image_error_unknown_format">Dieses Bild kann nicht angezeigt werden</string>
   <string name="error__upload__local_file_not_copied">%1$s konnte nicht in den lokalen %2$s Ordner kopiert werden</string>
   <string name="move_file_invalid_overwrite">Die Datei ist bereits im Zielordner vorhanden</string>
   <string name="move_file_error">Es ist ein Fehler beim Verschieben dieser Datei oder dieses Ordners aufgetreten.</string>
   <string name="forbidden_permissions_move">um diese Datei zu verschieben</string>
+  <string name="copy_file_invalid_overwrite">Die Datei ist bereits im Zielordner vorhanden</string>
+  <string name="forbidden_permissions_copy">um diese Datei zu kopieren</string>
   <string name="prefs_category_instant_uploading">Sofortiges Hochladen</string>
   <string name="prefs_category_security">Sicherheit</string>
   <string name="prefs_instant_video_upload_path_title">Verzeichnis zum Hochladen der Videos</string>
-  <string name="download_folder_failed_content">Herunterladen des %1$s - Ordners konnte nicht abgeschlossen werden</string>
   <string name="shared_subject_header">geteilt</string>
   <string name="with_you_subject_header">Mit Ihnen</string>
-  <string name="subject_token">%1$s hat \"%2$s\" mit Ihnen geteilt</string>
-  <string name="saml_subject_token">\"%1$s\" wurde mit dir geteilt</string>
+  <string name="subject_user_shared_with_you">%1$s hat \"%2$s\" mit Ihnen geteilt</string>
+  <string name="subject_shared_with_you">\"%1$s\" wurde mit dir geteilt</string>
   <string name="auth_refresh_button">Verbindung aktualisieren</string>
   <string name="auth_host_address">Serveradresse</string>
   <string name="common_error_out_memory">Nicht genügend Speicher</string>
   <string name="file_list__footer__files">%1$d Dateien</string>
   <string name="file_list__footer__files_and_folder">%1$d Dateien, 1 Ordner</string>
   <string name="file_list__footer__files_and_folders">%1$d Dateien, %2$d Ordner</string>
+  <string name="share_dialog_title">Teilen</string>
+  <string name="share_with_user_section_title">Mit Benutzern und Gruppen teilen</string>
+  <string name="share_add_user_or_group">Benutzer oder Gruppe hinzufügen</string>
+  <string name="share_via_link_section_title">Link teilen</string>
+  <string name="share_via_link_expiration_date_label">Ein Ablaufdatum setzen</string>
+  <string name="share_via_link_password_label">Passwortschutz</string>
+  <string name="share_search">Suche</string>
+  <string name="search_users_and_groups_hint">Nach Benutzern und Gruppen suchen</string>
 </resources>
index 12a7b13..0618cc4 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Einstellungen</string>
   <string name="drawer_item_logs">Protokolle</string>
   <string name="drawer_close">Schließen</string>
+  <string name="drawer_open">Öffnen</string>
   <string name="prefs_category_general">Allgemein</string>
   <string name="prefs_category_more">Mehr</string>
   <string name="prefs_accounts">Konten</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">Gerade eben</string>
   <string name="file_list_empty">Alles leer. Lade etwas hoch!</string>
   <string name="file_list_loading">Lade…</string>
+  <string name="file_list_no_app_for_file_type">Es wurden keine Apps für den Dateityp gefunden!</string>
   <string name="local_file_list_empty">Es befinden sich keine Dateien in diesem Ordner.</string>
   <string name="filedetails_select_file">Klicken Sie auf eine Datei für weitere Informationen.</string>
   <string name="filedetails_size">Größe:</string>
   <string name="filedetails_created">Erstellt:</string>
   <string name="filedetails_modified">Geändert:</string>
   <string name="filedetails_download">Herunterladen</string>
-  <string name="filedetails_sync_file">Datei aktualisieren</string>
   <string name="filedetails_renamed_in_upload_msg">Datei wurde wärend des Uploads zu %1$s umbenannt</string>
   <string name="list_layout">Listen-Layout</string>
-  <string name="action_share_file">Link teilen</string>
-  <string name="action_unshare_file">Link nicht mehr freigeben</string>
+  <string name="action_share">Teilen</string>
   <string name="common_yes">Ja</string>
   <string name="common_no">Nein</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Download abbrechen</string>
-  <string name="common_cancel_upload">Upload abbrechen</string>
   <string name="common_cancel">Abbrechen</string>
   <string name="common_save_exit">Speichern &amp; schließen</string>
   <string name="common_error">Fehler</string>
   <string name="unfavorite">Favorit entfernen</string>
   <string name="common_rename">Umbenennen</string>
   <string name="common_remove">Löschen</string>
-  <string name="confirmation_remove_alert">Möchtest Du %1$s wirklich löschen?</string>
+  <string name="confirmation_remove_file_alert">Möchtest Du %1$s wirklich löschen?</string>
   <string name="confirmation_remove_folder_alert">Möchtest Du wirklich %1$s und dessen Inhalte entfernen?</string>
   <string name="confirmation_remove_local">Nur lokal</string>
-  <string name="confirmation_remove_folder_local">Nur lokale Inhalte</string>
-  <string name="confirmation_remove_remote">Vom Server entfernen</string>
-  <string name="confirmation_remove_remote_and_local">Lokal und auf dem Server</string>
+  <string name="confirmation_remove_folder_local">Nur lokal</string>
+  <string name="confirmation_remove_remote">Vom Server</string>
+  <string name="confirmation_remove_remote_and_local">Remote &amp; lokal</string>
   <string name="remove_success_msg">Erfolgreich gelöscht</string>
   <string name="remove_fail_msg">Der Löschvorgang konnte nicht beendet werden</string>
   <string name="rename_dialog_title">Gib einen neuen Namen ein</string>
   <string name="conflict_title">Dateikonfilikt</string>
   <string name="conflict_message">Welche Datei möchtest du behalten? Wenn du beide Versionen auswählst, wird der lokalen Datei eine Zahl am Ende Ihres Dateiname angehangen.</string>
   <string name="conflict_keep_both">Beide behalten</string>
-  <string name="conflict_use_local_version">Benutze lokale Version</string>
-  <string name="conflict_use_server_version">Benutze Version auf dem Server</string>
+  <string name="conflict_use_local_version">Lokale Version</string>
+  <string name="conflict_use_server_version">Serverversion</string>
   <string name="preview_image_description">Bildvorschau</string>
   <string name="preview_image_error_unknown_format">Dieses Bild kann nicht angezeigt werden</string>
   <string name="error__upload__local_file_not_copied">%1$s konnte nicht in den lokalen %2$s Ordner kopiert werden</string>
   <string name="downloader_download_file_not_found">Diese Datei steht auf dem Server nicht mehr zur Verfügung</string>
   <string name="prefs_category_accounts">Konten</string>
   <string name="prefs_add_account">Konto hinzufügen</string>
-  <string name="auth_redirect_non_secure_connection_title">Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet.</string>
+  <string name="auth_redirect_non_secure_connection_title">Die gesicherte Verbindung wird durch eine ungesicherte Route geleitet.</string>
   <string name="actionbar_logger">Protokolle</string>
   <string name="log_send_history_button">Verlauf senden</string>
   <string name="log_send_no_mail_app">Keine App zum Versenden der Meldungen gefunden. Bitte installiere die Mail-App!</string>
   <string name="move_file_invalid_overwrite">Die Datei ist bereits im Zielordner vorhanden</string>
   <string name="move_file_error">Es ist ein Fehler beim Verschieben der Datei oder des Ordners aufgetreten.</string>
   <string name="forbidden_permissions_move">um diese Datei zu verschieben</string>
+  <string name="copy_file_not_found">Kopieren nicht möglich. Prüfe, dass die Datei existiert</string>
+  <string name="copy_file_invalid_into_descendent">Es ist nicht möglich, einen Ordner in einen seiner Unterordner zu kopieren</string>
+  <string name="copy_file_invalid_overwrite">Die Datei existiert bereits im Zielverzeichnis</string>
+  <string name="copy_file_error">Es ist ein Fehler beim Kopieren der Datei oder des Ordners aufgetreten.</string>
+  <string name="forbidden_permissions_copy">diese Datei zu kopieren</string>
   <string name="prefs_category_instant_uploading">Sofortiges Hochladen</string>
   <string name="prefs_category_security">Sicherheit</string>
   <string name="prefs_instant_video_upload_path_title">Verzeichnis zum Hochladen der Videos</string>
-  <string name="download_folder_failed_content">Herunterladen des %1$s - Ordners konnte nicht abgeschlossen werden</string>
   <string name="shared_subject_header">geteilt</string>
   <string name="with_you_subject_header">Mit Dir</string>
-  <string name="subject_token">%1$s hat \"%2$s\" mit Dir geteilt</string>
-  <string name="saml_subject_token">\"%1$s\" wurde mit dir geteilt</string>
+  <string name="subject_user_shared_with_you">%1$s hat \"%2$s\" mit Dir geteilt</string>
+  <string name="subject_shared_with_you">\"%1$s\" wurde mit dir geteilt</string>
   <string name="auth_refresh_button">Verbindung aktualisieren</string>
   <string name="auth_host_address">Serveradresse</string>
   <string name="common_error_out_memory">Nicht genügend Speicher</string>
   <string name="file_list__footer__files">%1$d Dateien</string>
   <string name="file_list__footer__files_and_folder">%1$d Dateien, 1 Ordner</string>
   <string name="file_list__footer__files_and_folders">%1$d Dateien, %2$d Ordner</string>
+  <string name="share_dialog_title">Teilen</string>
+  <string name="share_no_users">Es wurden noch keine Dateien mit Benutzern geteilt</string>
+  <string name="share_add_user_or_group">Benutzer oder Gruppe hinzufügen</string>
+  <string name="share_via_link_section_title">Link teilen</string>
+  <string name="share_via_link_expiration_date_label">Setze ein Ablaufdatum</string>
+  <string name="share_via_link_password_label">Passwortschutz</string>
+  <string name="share_search">Suche</string>
 </resources>
index 0ccada8..19cdf9d 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Ρυθμίσεις</string>
   <string name="drawer_item_logs">Αρχεία καταγραφών</string>
   <string name="drawer_close">Κλείσιμο</string>
+  <string name="drawer_open">Άνοιγμα</string>
   <string name="prefs_category_general">Γενικά</string>
   <string name="prefs_category_more">Περισσότερα</string>
   <string name="prefs_accounts">Λογαριασμοί</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">δευτερόλεπτα πριν</string>
   <string name="file_list_empty">Δεν υπάρχει τίποτα εδώ. Μεταφορτώστε κάτι!</string>
   <string name="file_list_loading">Φόρτωση...</string>
+  <string name="file_list_no_app_for_file_type">Δεν βρέθηκε εφαρμογή για αυτόν τον τύπο αρχείου</string>
   <string name="local_file_list_empty">Δεν υπάρχουν αρχεία σε αυτό τον φάκελο.</string>
   <string name="filedetails_select_file">Αγγίξτε κάποιο αρχείο για να προβάλετε περισσότερες πληροφορίες.</string>
   <string name="filedetails_size">Μέγεθος:</string>
   <string name="filedetails_created">Δημιουργήθηκε:</string>
   <string name="filedetails_modified">Τροποποιήθηκε:</string>
   <string name="filedetails_download">Λήψη</string>
-  <string name="filedetails_sync_file">Î\91νανέÏ\89Ï\83η Î±Ï\81Ï\87είοÏ\85</string>
+  <string name="filedetails_sync_file">ΣÏ\85γÏ\87Ï\81ονιÏ\83μÏ\8cÏ\82</string>
   <string name="filedetails_renamed_in_upload_msg">Το αρχείο μετονομάστηκε σε %1$s κατά τη μεταφόρτωση</string>
   <string name="list_layout">Διάταξη Λίστας</string>
-  <string name="action_share_file">Διαμοιρασμός συνδέσμου</string>
-  <string name="action_unshare_file">Ακύρωση διαμοιρασμού συνδέσμου</string>
+  <string name="action_share">Διαμοιράστε</string>
   <string name="common_yes">Ναι</string>
   <string name="common_no">Όχι</string>
   <string name="common_ok">ΟΚ</string>
-  <string name="common_cancel_download">Ακύρωση λήψης</string>
-  <string name="common_cancel_upload">Ακύρωση μεταφόρτωσης</string>
+  <string name="common_cancel_sync">Ακύρωση συγχρονισμού</string>
   <string name="common_cancel">Άκυρο</string>
   <string name="common_save_exit">Αποθήκευση &amp; Έξοδος</string>
   <string name="common_error">Σφάλμα</string>
   <string name="unfavorite">Κατάργηση από τα αγαπημένα</string>
   <string name="common_rename">Μετονομασία</string>
   <string name="common_remove">Αφαίρεση</string>
-  <string name="confirmation_remove_alert">Θέλετε στ\' αλήθεια να αφαιρέσετε το  %1$s;</string>
+  <string name="confirmation_remove_file_alert">Θέλετε στ\' αλήθεια να αφαιρέσετε το  %1$s;</string>
   <string name="confirmation_remove_folder_alert">Θέλετε στ\' αλήθεια να διαγράψετε το %1$s και τα περιεχόμενά του;</string>
   <string name="confirmation_remove_local">Μόνο τοπικά</string>
-  <string name="confirmation_remove_folder_local">Μόνο τοπικό περιεχόμενο</string>
-  <string name="confirmation_remove_remote">Αφαίρεση από το διακομιστή</string>
-  <string name="confirmation_remove_remote_and_local">Απομακρυσμένα και τοπικά</string>
+  <string name="confirmation_remove_folder_local">Μόνο τοπικά</string>
+  <string name="confirmation_remove_file_remote">Από το διακομιστή</string>
+  <string name="confirmation_remove_remote_and_local">Απομακρυσμένα &amp; τοπικά</string>
   <string name="remove_success_msg">Αφαίρεση επιτυχής</string>
   <string name="remove_fail_msg">Η αφαίρεση απέτυχε</string>
   <string name="rename_dialog_title">Εισάγετε νέο όνομα</string>
   <string name="ssl_validator_label_validity_to">Μέχρι:</string>
   <string name="ssl_validator_label_signature">Υπογραφή:</string>
   <string name="ssl_validator_label_signature_algorithm">Αλγόριθμος:</string>
+  <string name="digest_algorithm_not_available">Ο αλγόριθμος digest δεν είναι διαθέσιμος στο τηλέφωνό σας.</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Ψηφιακό αποτύπωμα:</string>
+  <string name="certificate_load_problem">Πρόβλημα φόρτωσης του πιστοποιητικού.</string>
   <string name="ssl_validator_null_cert">Δεν μπορεί να εμφανιστεί το πιστοποιητικό.</string>
   <string name="ssl_validator_no_info_about_error">- Καμμία πληροφορία σχετικά με το σφάλμα</string>
   <string name="placeholder_sentence">Αυτό είναι ένα σημείο κράτησης θέσης</string>
   <string name="conflict_title">Διένεξη αρχείων</string>
   <string name="conflict_message">Ποια αρχεία θέλετε να κρατήσετε; Αν επιλέξετε και τις δύο εκδοχές, στο τοπικό αρχείο θα προστεθεί ένας αριθμός στο όνομά του.</string>
   <string name="conflict_keep_both">Διατήρηση και των δύο</string>
-  <string name="conflict_use_local_version">Χρήση τοπικής εκδοχής</string>
-  <string name="conflict_use_server_version">ΧÏ\81ήÏ\83η ÎµÎºÎ´Î¿Ï\87ήÏ\82 διακομιστή</string>
+  <string name="conflict_use_local_version">τοπική έκδοση</string>
+  <string name="conflict_use_server_version">έκδοÏ\83η διακομιστή</string>
   <string name="preview_image_description">Προεπισκόπηση εικόνας</string>
   <string name="preview_image_error_unknown_format">Αυτή η εικόνα δεν μπορεί να προβληθεί</string>
   <string name="error__upload__local_file_not_copied">Το %1$s δεν μπόρεσε να αντιγραφεί στον τοπικό φάκελο %2$s</string>
   <string name="share_link_empty_password">Πρέπει να εισάγετε ένα κωδικό πρόσβασης.</string>
   <string name="activity_chooser_send_file_title">Αποστολή</string>
   <string name="copy_link">Αντιγραφή συνδέσμου</string>
-  <string name="clipboard_text_copied">Î\91νÏ\84ιγÏ\81αÏ\86θηκε στο πρόχειρο</string>
+  <string name="clipboard_text_copied">Î\91νÏ\84ιγÏ\81άÏ\86ηκε στο πρόχειρο</string>
   <string name="error_cant_bind_to_operations_service">Κρίσιμο σφάλμα: αδύνατη η εκτέλεση λειτουργειών</string>
   <string name="network_error_socket_exception">Ένα σφάλμα προέκυψε κατά τη σύνδεση με το διακομιστή.</string>
   <string name="network_error_socket_timeout_exception">Ένα σφάλμα προέκυψε κατά την αναμονή για το διακομιστή, η λειτουργία δεν ήταν επιτυχής</string>
   <string name="downloader_download_file_not_found">Αυτό το αρχείο δεν είναι πια διαθέσιμο στο διακομιστή</string>
   <string name="prefs_category_accounts">Λογαριασμοί</string>
   <string name="prefs_add_account">Προσθήκη λογαριασμού</string>
-  <string name="auth_redirect_non_secure_connection_title">Ασφαλής σύνδεση ανακατευθύνεται σε μια μη ασφαλή διαδρομή.</string>
+  <string name="auth_redirect_non_secure_connection_title">Ασφαλής σύνδεση ανακατευθύνεται μέσω μιας μη ασφαλούς διαδρομής.</string>
   <string name="actionbar_logger">Αρχεία καταγραφών</string>
   <string name="log_send_history_button">Αποστολή Ιστορικού</string>
   <string name="log_send_no_mail_app">Δεν εντοπίστηκε εφαρμογή αποστολής αναφορών συστήματος. Εγκαταστήστε την εφαρμογή Ηλ. Ταχυδρομείου!!</string>
   <string name="move_file_invalid_overwrite">Το αρχείο υπάρχει ήδη στο φάκελο προορισμού</string>
   <string name="move_file_error">Ένα σφάλμα προέκυψε κατά την προσπάθεια μετακίνησης αυτού του αρχείου ή φακέλου</string>
   <string name="forbidden_permissions_move">για μετακίνηση αυτού του αρχείου</string>
+  <string name="copy_file_not_found">Αδύνατη η αντιγραφή. Παρακαλώ ελέγξτε αν το αρχείο υπάρχει</string>
+  <string name="copy_file_invalid_into_descendent">Δεν είναι δυνατό να αντιγραφεί ο φάκελος σε παράγωγό του φάκελο</string>
+  <string name="copy_file_invalid_overwrite">Το αρχείο υπάρχει ήδη στο φάκελο προορισμού</string>
+  <string name="copy_file_error">Παρουσιάστηκε σφάλμα κατά την προσπάθεια αντιγραφής αυτού του αρχείου ή φακέλου</string>
+  <string name="forbidden_permissions_copy">για αντιγραφή αυτού του αρχείου</string>
   <string name="prefs_category_instant_uploading">Στιγμιαίες Μεταφορτώσεις</string>
   <string name="prefs_category_security">Ασφάλεια</string>
   <string name="prefs_instant_video_upload_path_title">Διαδρομή Μεταφόρτωσης Βίντεο</string>
-  <string name="download_folder_failed_content">Η λήψη του φακέλου %1$s δεν ολοκληρώθηκε με επιτυχία.</string>
+  <string name="sync_folder_failed_content">Ο συγχρονισμός του φακέλου %1$s δεν μπόρεσε να ολοκληρωθεί</string>
   <string name="shared_subject_header">διαμοιρασμένα</string>
   <string name="with_you_subject_header">με εσάς</string>
-  <string name="subject_token">Ο %1$s διαμοιράστηκε το \"%2$s\" με εσάς</string>
-  <string name="saml_subject_token">\"%1$s\" μοιράστηκε μαζί σας</string>
+  <string name="subject_user_shared_with_you">Ο %1$s διαμοιράστηκε το \"%2$s\" με εσάς</string>
+  <string name="subject_shared_with_you">\"%1$s\" μοιράστηκε μαζί σας</string>
   <string name="auth_refresh_button">Ανανέωση σύνδεσης</string>
   <string name="auth_host_address">Διεύθυνση διακομιστή</string>
   <string name="common_error_out_memory">Δεν υπάρχει αρκετή μνήμη</string>
   <string name="file_list__footer__files">%1$d αρχεία</string>
   <string name="file_list__footer__files_and_folder">%1$d αρχεία, 1 φάκελος</string>
   <string name="file_list__footer__files_and_folders">%1$d αρχεία, %2$d φάκελοι</string>
+  <string name="share_dialog_title">Διαμοιρασμός</string>
+  <string name="share_no_users">Δεν έχουν διαμοιραστεί ακόμα δεδομένα με τους χρήστες</string>
+  <string name="share_add_user_or_group">Προσθήκη χρήστη ή ομάδας</string>
+  <string name="share_via_link_section_title">Διαμοιρασμός συνδέσμου</string>
+  <string name="share_via_link_expiration_date_label">Ορισμός ημ. λήξης</string>
+  <string name="share_via_link_password_label">Προστασία συνθηματικού</string>
+  <string name="share_search">Αναζήτηση</string>
+  <string name="search_users_and_groups_hint">Αναζήτηση χρηστών και ομάδων</string>
+  <string name="share_group_clarification">%1$s (ομάδα)</string>
+  <string name="share_sharee_unavailable">Δεν επιτρέπεται ο διαμοιρασμός μεταξύ χρηστών μέσω εφαρμογής, σε αυτή την έκδοση.
+\nΕπικοινωνήστε με το διαχειριστή του συστήματος</string>
 </resources>
index 2ee4e38..c87a88a 100644 (file)
@@ -23,6 +23,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Open</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">More</string>
   <string name="prefs_accounts">Accounts</string>
   <string name="filedetails_created">Created:</string>
   <string name="filedetails_modified">Modified:</string>
   <string name="filedetails_download">Download</string>
-  <string name="filedetails_sync_file">Refresh file</string>
   <string name="filedetails_renamed_in_upload_msg">File was renamed to %1$s during upload</string>
-  <string name="action_share_file">Share link</string>
-  <string name="action_unshare_file">Unshare link</string>
+  <string name="action_share">Share</string>
   <string name="common_yes">Yes</string>
   <string name="common_no">No</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Cancel download</string>
-  <string name="common_cancel_upload">Cancel upload</string>
   <string name="common_cancel">Cancel</string>
   <string name="common_save_exit">Save &amp; Exit</string>
   <string name="common_error">Error</string>
   <string name="unfavorite">Unfavourite</string>
   <string name="common_rename">Rename</string>
   <string name="common_remove">Remove</string>
-  <string name="confirmation_remove_alert">Do you really want to remove %1$s?</string>
+  <string name="confirmation_remove_file_alert">Do you really want to remove %1$s?</string>
   <string name="confirmation_remove_folder_alert">Do you really want to remove %1$s and its contents?</string>
   <string name="confirmation_remove_local">Local only</string>
-  <string name="confirmation_remove_folder_local">Local contents only</string>
-  <string name="confirmation_remove_remote">Remove from server</string>
-  <string name="confirmation_remove_remote_and_local">Remote and local</string>
+  <string name="confirmation_remove_folder_local">Local only</string>
   <string name="remove_success_msg">Removal succeeded</string>
   <string name="remove_fail_msg">Removal failed</string>
   <string name="rename_dialog_title">Enter a new name</string>
   <string name="downloader_download_file_not_found">The file is no longer available on the server</string>
   <string name="prefs_category_accounts">Accounts</string>
   <string name="prefs_add_account">Add account</string>
-  <string name="auth_redirect_non_secure_connection_title">Secure connection is redirected to an unsecured route.</string>
+  <string name="auth_redirect_non_secure_connection_title">Secure connection is redirected through an unsecured route.</string>
   <string name="actionbar_logger">Logs</string>
   <string name="log_send_history_button">Send History</string>
   <string name="log_send_no_mail_app">No app for sending logs found. Install mail app!</string>
   <string name="move_file_invalid_overwrite">The file exists already in the destination folder</string>
   <string name="move_file_error">An error occurred whilst trying to move this file or folder</string>
   <string name="forbidden_permissions_move">to move this file</string>
+  <string name="copy_file_invalid_overwrite">The file exists already in the destination folder</string>
   <string name="prefs_category_instant_uploading">Instant Uploads</string>
   <string name="prefs_category_security">Security</string>
   <string name="prefs_instant_video_upload_path_title">Upload Video Path</string>
-  <string name="download_folder_failed_content">Download of %1$s folder could not be completed</string>
+  <string name="subject_user_shared_with_you">%1$s shared \"%2$s\" with you</string>
   <string name="auth_refresh_button">Refresh connection</string>
   <string name="auth_host_address">Server address</string>
   <string name="common_error_out_memory">Not enough memory</string>
+  <string name="share_dialog_title">Sharing</string>
+  <string name="share_via_link_section_title">Share link</string>
+  <string name="share_via_link_expiration_date_label">Set expiration date</string>
+  <string name="share_via_link_password_label">Password protect</string>
+  <string name="share_search">Search</string>
 </resources>
diff --git a/res/values-en-rUS/strings.xml b/res/values-en-rUS/strings.xml
new file mode 100644 (file)
index 0000000..37e6152
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--TODO re-enable when server-side folder size calculation is available   
+       <item>Biggest - Smallest</item>-->
+  <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
+  <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <!--TODO re-enable when "On Device" is available
+    <string name="drawer_item_on_device">On device</string>-->
+  <string name="empty"></string>
+</resources>
index e4570ad..f9cabdf 100644 (file)
@@ -16,6 +16,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Malfermi</string>
   <string name="prefs_category_general">Ĝeneralo</string>
   <string name="prefs_category_more">Pli</string>
   <string name="prefs_accounts">Kontoj</string>
   <string name="filedetails_modified">Modifita je:</string>
   <string name="filedetails_download">Elŝuti</string>
   <string name="filedetails_renamed_in_upload_msg">La dosiero alinomiĝis al %1$s dum alŝuto</string>
-  <string name="action_share_file">Konhavigi ligilon</string>
-  <string name="action_unshare_file">Malkunhavigi ligilon</string>
+  <string name="action_share">Kunhavigi</string>
   <string name="common_yes">Jes</string>
   <string name="common_no">Ne</string>
   <string name="common_ok">Akcepti</string>
-  <string name="common_cancel_download">Nuligi elŝuton</string>
-  <string name="common_cancel_upload">Nuligi alŝuton</string>
   <string name="common_cancel">Nuligi</string>
   <string name="common_save_exit">Konservi kaj forlasi</string>
   <string name="common_error">Eraro</string>
   <string name="unfavorite">Nefavoratigi</string>
   <string name="common_rename">Alinomigi</string>
   <string name="common_remove">Forigi</string>
-  <string name="confirmation_remove_alert">Ĉu vi vere volas forigi %1$s?</string>
+  <string name="confirmation_remove_file_alert">Ĉu vi vere volas forigi %1$s?</string>
   <string name="confirmation_remove_folder_alert">Ĉu vi vere volas forigi %1$s kaj ĝia enhavo?</string>
   <string name="confirmation_remove_local">Nur loka</string>
-  <string name="confirmation_remove_folder_local">Nur lokaj enhavoj</string>
-  <string name="confirmation_remove_remote">Forigi el la servilo</string>
-  <string name="confirmation_remove_remote_and_local">Kaj malloka kaj loka</string>
+  <string name="confirmation_remove_folder_local">Nur loka</string>
   <string name="remove_success_msg">Forigo sukcesis</string>
   <string name="remove_fail_msg">Forigo ne eblis plenumiĝi</string>
   <string name="rename_dialog_title">Enigu novan nomon</string>
   <string name="actionbar_move">Movi</string>
   <string name="folder_picker_choose_button_text">Elekti</string>
   <string name="move_file_invalid_overwrite">La dosiero jam ekzistas en la cela dosierujo</string>
+  <string name="copy_file_invalid_overwrite">La dosiero jam ekzistas en la cela dosierujo</string>
   <string name="prefs_category_security">Sekuro</string>
   <string name="auth_host_address">Servila adreso</string>
+  <string name="file_list__footer__file">1 dosiero</string>
+  <string name="file_list__footer__files">%1$d dosieroj</string>
+  <string name="share_dialog_title">Kunhavigo</string>
+  <string name="share_via_link_section_title">Kunhavigi ligilon</string>
+  <string name="share_via_link_expiration_date_label">Agordi limdaton</string>
+  <string name="share_via_link_password_label">Protekti per pasvorto</string>
+  <string name="share_search">Serĉi</string>
 </resources>
index 9ca0336..5686138 100644 (file)
        <item>Biggest - Smallest</item>-->
   <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
   <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <string name="drawer_item_all_files">Todos los archivos</string>
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Abrir</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Más</string>
   <string name="prefs_accounts">Cuentas</string>
   <string name="filedetails_created">Creado:</string>
   <string name="filedetails_modified">Modificado:</string>
   <string name="filedetails_download">Descargar</string>
-  <string name="filedetails_sync_file">Actualizar archivo</string>
   <string name="filedetails_renamed_in_upload_msg">El archivo fue renombrado como %1$s durante la subida</string>
-  <string name="action_share_file">Compartir vínculo</string>
-  <string name="action_unshare_file">Dejar de compartir vínculo</string>
+  <string name="action_share">Compartir</string>
   <string name="common_yes">Sí</string>
   <string name="common_no">No</string>
   <string name="common_ok">Aceptar</string>
-  <string name="common_cancel_download">Cancelar descarga</string>
-  <string name="common_cancel_upload">Cancelar subida</string>
   <string name="common_cancel">Cancelar</string>
   <string name="common_save_exit">Guardar y salir</string>
   <string name="common_error">Error</string>
   <string name="favorite">Favorito</string>
   <string name="common_rename">Renombrar</string>
   <string name="common_remove">Borrar</string>
-  <string name="confirmation_remove_alert">¿Realmente quieres eliminar %1$s?</string>
+  <string name="confirmation_remove_file_alert">¿Realmente quieres eliminar %1$s?</string>
   <string name="confirmation_remove_folder_alert">¿Realmente deseas eliminar %1$s y todo su contenido?</string>
   <string name="confirmation_remove_local">Sólo local</string>
-  <string name="confirmation_remove_folder_local">Solo archivos locales</string>
-  <string name="confirmation_remove_remote">Borrar del servidor</string>
-  <string name="confirmation_remove_remote_and_local">Ambos: remoto y local</string>
+  <string name="confirmation_remove_folder_local">Sólo local</string>
   <string name="remove_success_msg">Borrado correctamente</string>
   <string name="remove_fail_msg">El borrado no pudo ser completado</string>
   <string name="rename_dialog_title">Ingrese un nombre</string>
   <string name="downloader_download_file_not_found">El archivo no esta mas disponible en este Servidor</string>
   <string name="prefs_category_accounts">Cuentas</string>
   <string name="prefs_add_account">Añadir cuenta</string>
-  <string name="auth_redirect_non_secure_connection_title">Conexión segura redireccionada a una ruta insegura.</string>
   <string name="actionbar_logger">Registro</string>
   <string name="log_send_history_button">Enviar Historial</string>
   <string name="log_send_no_mail_app">Aplicación para enviar registros no encontrada. Instale una aplicación de correo!</string>
   <string name="move_file_invalid_overwrite">El archivo ya existe en la carpeta destino</string>
   <string name="move_file_error">Un error ocurrió intentando mover el archivo o carpeta</string>
   <string name="forbidden_permissions_move">para mover este archivo</string>
+  <string name="copy_file_invalid_overwrite">El archivo ya existe en la carpeta destino</string>
   <string name="prefs_category_instant_uploading">Subida Instantánea </string>
   <string name="prefs_category_security">Seguridad</string>
   <string name="prefs_instant_video_upload_path_title">Dirección de subida del video</string>
-  <string name="download_folder_failed_content">La descarga de la carpeta %1$s no pudo ser completada</string>
   <string name="auth_host_address">Dirección del servidor</string>
+  <string name="share_dialog_title">Compartiendo</string>
+  <string name="share_via_link_section_title">Compartir vínculo</string>
+  <string name="share_via_link_expiration_date_label">Asignar fecha de vencimiento</string>
+  <string name="share_via_link_password_label">Proteger con contraseña </string>
+  <string name="share_search">Buscar</string>
 </resources>
index 9ea8786..2ba28fd 100644 (file)
   <string name="filedetails_created">Creado:</string>
   <string name="filedetails_modified">Modificado:</string>
   <string name="filedetails_download">Descargar</string>
-  <string name="filedetails_sync_file">refrescar archivo</string>
   <string name="filedetails_renamed_in_upload_msg">El archivo fue renombrado a %1$s durante la subida</string>
+  <string name="action_share">Compartir</string>
   <string name="common_yes">Si</string>
   <string name="common_no">No</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">cancelar bajada</string>
-  <string name="common_cancel_upload">cancelar subida</string>
   <string name="common_cancel">Cancelar</string>
   <string name="common_save_exit">Guardar&amp;Salir</string>
   <string name="common_error">Error</string>
   <string name="auth_unauthorized">usuario o clave incorrecta</string>
   <string name="common_rename">Renombrar</string>
   <string name="common_remove">Remover</string>
-  <string name="confirmation_remove_alert">¿Realmente desea eliminar %1$s?</string>
+  <string name="confirmation_remove_file_alert">¿Realmente desea eliminar %1$s?</string>
   <string name="confirmation_remove_folder_alert">¿Realmente desea eliminar el archivo %1$s y su contenido?</string>
   <string name="confirmation_remove_local">Solo local</string>
-  <string name="confirmation_remove_folder_local">solo contenidos locales </string>
-  <string name="confirmation_remove_remote">Eliminar desde el servidor</string>
-  <string name="confirmation_remove_remote_and_local">Remoto y local</string>
+  <string name="confirmation_remove_folder_local">Solo local</string>
   <string name="remove_success_msg">Removido correctamente</string>
   <string name="remove_fail_msg">Fallo al remover</string>
   <string name="rename_dialog_title">ingresar un nuevo nombre</string>
diff --git a/res/values-es-rES/strings.xml b/res/values-es-rES/strings.xml
new file mode 100644 (file)
index 0000000..37e6152
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--TODO re-enable when server-side folder size calculation is available   
+       <item>Biggest - Smallest</item>-->
+  <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
+  <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <!--TODO re-enable when "On Device" is available
+    <string name="drawer_item_on_device">On device</string>-->
+  <string name="empty"></string>
+</resources>
index d26f51c..2a287bc 100644 (file)
@@ -17,6 +17,8 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_item_settings">Ajustes</string>
+  <string name="drawer_open">Abrir</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Más</string>
   <string name="prefs_accounts">Cuentas</string>
   <string name="filedetails_created">Creado:</string>
   <string name="filedetails_modified">Modificado:</string>
   <string name="filedetails_download">Descargar</string>
-  <string name="filedetails_sync_file">Actualizar archivo</string>
   <string name="filedetails_renamed_in_upload_msg">El archivo fue renombrado como %1$s durante la subida</string>
-  <string name="action_share_file">Enlace compartido</string>
+  <string name="action_share">Compartir</string>
   <string name="common_yes">Sí</string>
   <string name="common_no">No</string>
   <string name="common_ok">Aceptar</string>
-  <string name="common_cancel_download">Cancelar descarga</string>
-  <string name="common_cancel_upload">Cancelar subida</string>
   <string name="common_cancel">Cancelar</string>
   <string name="common_save_exit">Guardar &amp; Salir</string>
   <string name="common_error">Error</string>
   <string name="common_rename">Renombrar</string>
   <string name="common_remove">Borrar</string>
   <string name="confirmation_remove_local">Sólo local</string>
-  <string name="confirmation_remove_folder_local">Sólo archivos locales</string>
-  <string name="confirmation_remove_remote">Eliminar del servidor</string>
-  <string name="confirmation_remove_remote_and_local">Tanto remoto como local</string>
+  <string name="confirmation_remove_folder_local">Sólo local</string>
   <string name="remove_success_msg">Borrado correctamente</string>
   <string name="remove_fail_msg">El borrado no pudo ser completado</string>
   <string name="rename_dialog_title">Introduzca un nombre nuevo</string>
   <string name="folder_picker_choose_button_text">Seleccionar</string>
   <string name="prefs_category_security">Seguridad</string>
   <string name="auth_host_address">Dirección del servidor</string>
+  <string name="share_dialog_title">Compartiendo</string>
+  <string name="share_via_link_section_title">Enlace compartido</string>
+  <string name="share_via_link_expiration_date_label">Establecer fecha de caducidad</string>
+  <string name="share_via_link_password_label">Protección con contraseña</string>
+  <string name="share_search">Buscar</string>
 </resources>
index a7c87e1..ae326b4 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Ajustes</string>
   <string name="drawer_item_logs">Registros</string>
   <string name="drawer_close">Cerrar</string>
+  <string name="drawer_open">Abrir</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Más</string>
   <string name="prefs_accounts">Cuentas</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">hace segundos</string>
   <string name="file_list_empty">No hay nada aquí. ¡Suba algo!</string>
   <string name="file_list_loading">Cargando...</string>
+  <string name="file_list_no_app_for_file_type">¡No se encontró una aplicación para el tipo de archivo!</string>
   <string name="local_file_list_empty">No hay archivos en esta carpeta.</string>
   <string name="filedetails_select_file">Pulsa sobre un archivo para mostrar información adicional.</string>
   <string name="filedetails_size">Tamaño:</string>
   <string name="filedetails_created">Creado:</string>
   <string name="filedetails_modified">Modificado:</string>
   <string name="filedetails_download">Descargar</string>
-  <string name="filedetails_sync_file">Actualizar archivo</string>
+  <string name="filedetails_sync_file">Sincronizar</string>
   <string name="filedetails_renamed_in_upload_msg">El fichero fue renombrado como %1$s durante la subida</string>
   <string name="list_layout">Diseño de lista</string>
-  <string name="action_share_file">Compartir con enlace</string>
-  <string name="action_unshare_file">Dejar de compartir</string>
+  <string name="action_share">Compartir</string>
   <string name="common_yes">Sí</string>
   <string name="common_no">No</string>
   <string name="common_ok">Aceptar</string>
-  <string name="common_cancel_download">Cancelar descarga</string>
-  <string name="common_cancel_upload">Cancelar subida</string>
+  <string name="common_cancel_sync">Cancelar sincronización</string>
   <string name="common_cancel">Cancelar</string>
   <string name="common_save_exit">Guardar &amp; Salir</string>
   <string name="common_error">Error</string>
   <string name="pass_code_configure_your_pass_code_explanation">La contraseña será requerida cada vez que la aplicación sea iniciada</string>
   <string name="pass_code_reenter_your_pass_code">Reintroduzca la contraseña, por favor.</string>
   <string name="pass_code_remove_your_pass_code">Borre su contraseña</string>
-  <string name="pass_code_mismatch">Las contraseñas no son identicas</string>
-  <string name="pass_code_wrong">Contraseña incorrecta</string>
-  <string name="pass_code_removed">Contraseña borrada</string>
+  <string name="pass_code_mismatch">Los códigos de acceso no son idénticos</string>
+  <string name="pass_code_wrong">Código de acceso incorrecto</string>
+  <string name="pass_code_removed">Código de acceso borrado</string>
   <string name="pass_code_stored">Contraseña almacenada</string>
   <string name="media_notif_ticker">Reproductor de música %1$s</string>
   <string name="media_state_playing">%1$s (reproduciendo)</string>
   <string name="unfavorite">No-favorito</string>
   <string name="common_rename">Renombrar</string>
   <string name="common_remove">Borrar</string>
-  <string name="confirmation_remove_alert">¿Realmente desea eliminar %1$s?</string>
+  <string name="confirmation_remove_file_alert">¿Realmente desea eliminar %1$s?</string>
   <string name="confirmation_remove_folder_alert">¿Realmente desea eliminar %1$s y todo su contenido?</string>
   <string name="confirmation_remove_local">Sólo local</string>
-  <string name="confirmation_remove_folder_local">Sólo ficheros locales</string>
-  <string name="confirmation_remove_remote">Eliminar del servidor</string>
-  <string name="confirmation_remove_remote_and_local">Tanto remoto como local</string>
+  <string name="confirmation_remove_folder_local">Sólo local</string>
+  <string name="confirmation_remove_file_remote">Desde el servidor</string>
+  <string name="confirmation_remove_remote_and_local">Remoto &amp; local</string>
   <string name="remove_success_msg">Borrado correctamente</string>
   <string name="remove_fail_msg">El borrado no pudo ser completado</string>
   <string name="rename_dialog_title">Introduzca un nombre nuevo</string>
   <string name="ssl_validator_label_validity_to">A:</string>
   <string name="ssl_validator_label_signature">Firma:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritmo:</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Firma:</string>
+  <string name="certificate_load_problem">Existe un problema al cargar el certificado.</string>
   <string name="ssl_validator_null_cert">No se ha podido mostrar el certificado</string>
   <string name="ssl_validator_no_info_about_error">- No hay información acerca del error</string>
   <string name="placeholder_sentence">Esto es un marcador de posición</string>
   <string name="instant_video_upload_on_wifi">Subir vídeos sólo por WiFi</string>
   <string name="instant_upload_path">/SubidasInstantáneas</string>
   <string name="conflict_title">Conflicto con archivo</string>
-  <string name="conflict_message">¿Qué archivos desea mantener? Si selecciona ambas versiones, el archivo local tendrá un número añadido a su nombre.</string>
+  <string name="conflict_message">¿Cuáles archivos desea mantener? Si selecciona ambas versiones, el archivo local tendrá un número añadido a su nombre.</string>
   <string name="conflict_keep_both">Mantener ambos</string>
-  <string name="conflict_use_local_version">Usar versión local</string>
-  <string name="conflict_use_server_version">Usar versión del servidor</string>
+  <string name="conflict_use_local_version">versión local</string>
+  <string name="conflict_use_server_version">versión del servidor</string>
   <string name="preview_image_description">Previsualización de imagen</string>
   <string name="preview_image_error_unknown_format">No se puede mostrar la imagen</string>
   <string name="error__upload__local_file_not_copied">%1$s se pudo copiar a la carpeta local %2$s</string>
   <string name="downloader_download_file_not_found">Este archivo ya no se encuentra en el servidor</string>
   <string name="prefs_category_accounts">Cuentas</string>
   <string name="prefs_add_account">Agregar cuenta</string>
-  <string name="auth_redirect_non_secure_connection_title">La conexión segura está siendo desviada por una ruta insegura.</string>
+  <string name="auth_redirect_non_secure_connection_title">La conexión segura está siendo redirigida por una ruta insegura.</string>
   <string name="actionbar_logger">Registros</string>
   <string name="log_send_history_button">Enviar historial</string>
   <string name="log_send_no_mail_app">No se ha encontrado una app para enviar logs. Instale la app mail!</string>
   <string name="move_file_invalid_overwrite">El archivo ya existe en la carpeta de destino</string>
   <string name="move_file_error">Hubo un error al tratar de mover este archivo o carpeta</string>
   <string name="forbidden_permissions_move">para mover este archivo</string>
+  <string name="copy_file_not_found">No se puede copiar. Revise si existe el archivo</string>
+  <string name="copy_file_invalid_into_descendent">No se puede copiar una carpeta dentro de una de sus subcarpetas.</string>
+  <string name="copy_file_invalid_overwrite">El fichero ya existe en el directorio de destino</string>
+  <string name="copy_file_error">Hubo un error al tratar de copiar este archivo o carpeta</string>
+  <string name="forbidden_permissions_copy">para copiar este archivo</string>
   <string name="prefs_category_instant_uploading">Subidas instantáneas</string>
   <string name="prefs_category_security">Seguridad</string>
   <string name="prefs_instant_video_upload_path_title">Guardar videos subidos en la carpeta:</string>
-  <string name="download_folder_failed_content">La descarga de la carpeta %1$s no ha podido ser completada</string>
+  <string name="sync_folder_failed_content">La sincronización de la carpeta %1$s no se pudo completar</string>
   <string name="shared_subject_header">compartido</string>
   <string name="with_you_subject_header">con usted</string>
-  <string name="subject_token">%1$s compartió \"%2$s\" conmigo</string>
-  <string name="saml_subject_token">\"%1$s\" ha sido compartido con usted.</string>
+  <string name="subject_user_shared_with_you">%1$s compartió \"%2$s\" conmigo</string>
+  <string name="subject_shared_with_you">\"%1$s\" ha sido compartido con usted.</string>
   <string name="auth_refresh_button">Refrescar la conexión</string>
   <string name="auth_host_address">Dirección del servidor</string>
   <string name="common_error_out_memory">No hay suficiente memoria</string>
   <string name="file_list__footer__files">%1$d archivos</string>
   <string name="file_list__footer__files_and_folder">%1$d archivos, 1 carpeta</string>
   <string name="file_list__footer__files_and_folders">%1$d archivos, %2$d carpetas</string>
+  <string name="share_dialog_title">Compartiendo</string>
+  <string name="share_no_users">Aún no se ha compartido con ningún usuario.</string>
+  <string name="share_add_user_or_group">Añadir usuario o grupo</string>
+  <string name="share_via_link_section_title">Compartir enlace</string>
+  <string name="share_via_link_expiration_date_label">Establecer fecha de caducidad</string>
+  <string name="share_via_link_password_label">Protección con contraseña</string>
+  <string name="share_search">Buscar</string>
+  <string name="search_users_and_groups_hint">Buscar usuarios y grupos</string>
+  <string name="share_group_clarification">%1$s (grupo)</string>
+  <string name="share_sharee_unavailable">Lo siento, compartir no está disponible en su servidor.\nPor favor, contacte con su administrador</string>
 </resources>
index 319cdff..1cf4e6c 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Seaded</string>
   <string name="drawer_item_logs">Logid</string>
   <string name="drawer_close">Sulge</string>
+  <string name="drawer_open">Ava</string>
   <string name="prefs_category_general">Üldine</string>
   <string name="prefs_category_more">Rohkem</string>
   <string name="prefs_accounts">Kontod</string>
   <string name="filedetails_created">Loodud:</string>
   <string name="filedetails_modified">Muudetud:</string>
   <string name="filedetails_download">Lae alla</string>
-  <string name="filedetails_sync_file">Värskenda faili</string>
   <string name="filedetails_renamed_in_upload_msg">Fail nimetati üleslaadimise käigus ümber %1$ </string>
   <string name="list_layout">Nimekirja paigutus</string>
-  <string name="action_share_file">Jaga linki</string>
-  <string name="action_unshare_file">Tühista lingi jagamine</string>
+  <string name="action_share">Jaga</string>
   <string name="common_yes">Jah</string>
   <string name="common_no">Ei</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Tühista allalaadimine</string>
-  <string name="common_cancel_upload">Tühista üleslaadimine</string>
   <string name="common_cancel">Loobu</string>
   <string name="common_save_exit">Salvesta &amp; Välju</string>
   <string name="common_error">Viga</string>
@@ -201,12 +198,12 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi
   <string name="unfavorite">Eemalda lemmik</string>
   <string name="common_rename">Nimeta ümber</string>
   <string name="common_remove">Eemalda</string>
-  <string name="confirmation_remove_alert">Oled sa kindel, et soovid %1$s eemaldada?</string>
+  <string name="confirmation_remove_file_alert">Oled sa kindel, et soovid %1$s eemaldada?</string>
   <string name="confirmation_remove_folder_alert">Kas sa tõesti soovid eemaldada %1$s ja selle sisu?</string>
   <string name="confirmation_remove_local">Ainult kohalik</string>
-  <string name="confirmation_remove_folder_local">Ainult kohalik sisu</string>
-  <string name="confirmation_remove_remote">Eemalda serverist</string>
-  <string name="confirmation_remove_remote_and_local">Eemalolev ja kohalik</string>
+  <string name="confirmation_remove_folder_local">Ainult kohalik</string>
+  <string name="confirmation_remove_file_remote">Serverist</string>
+  <string name="confirmation_remove_remote_and_local">Kaugfail &amp; kohalik</string>
   <string name="remove_success_msg">Eemaldamine oli edukas</string>
   <string name="remove_fail_msg">Eemaldamine ebaõnnestus</string>
   <string name="rename_dialog_title">Sisesta uus nimi</string>
@@ -258,7 +255,11 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi
   <string name="instant_upload_on_wifi">Lae pilte üles ainult läbi WiFi</string>
   <string name="instant_video_upload_on_wifi">Laadi videod üles ainult WiFi-t kasutades</string>
   <string name="instant_upload_path">/InstantUpload</string>
+  <string name="conflict_title">Failikonflikt</string>
+  <string name="conflict_message">Millist faili sa soovid säilitada? Kui valid mõlemad versioonid, siis lisatakse kohaliku faili nimele number.</string>
   <string name="conflict_keep_both">Säilita mõlemad</string>
+  <string name="conflict_use_local_version">kohalik versioon</string>
+  <string name="conflict_use_server_version">serveri versioon</string>
   <string name="preview_image_description">Pildi eelvaade</string>
   <string name="preview_image_error_unknown_format">Seda pilti ei saa näidata</string>
   <string name="error__upload__local_file_not_copied">%1$s ei suudetud kopeerida kohalikku kataloogi %2$s</string>
@@ -290,7 +291,7 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi
   <string name="downloader_download_file_not_found">Fail ei ole serveris enam kättesaadav</string>
   <string name="prefs_category_accounts">Kontod</string>
   <string name="prefs_add_account">Lisa konto</string>
-  <string name="auth_redirect_non_secure_connection_title">Turvaline ühendus suunatakse läbi turvamata ühenduse.</string>
+  <string name="auth_redirect_non_secure_connection_title">Turvalist ühendust suunatakse läbi turvamata ühenduse.</string>
   <string name="actionbar_logger">Logid</string>
   <string name="log_send_history_button">Saada ajalugu</string>
   <string name="log_send_no_mail_app">Logide saatmise rakendust ei leitud. Paigalda postirakendus!</string>
@@ -306,13 +307,18 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi
   <string name="move_file_invalid_overwrite">See fail on juba sihtkaustas olemas</string>
   <string name="move_file_error">Selle faili või kausta liigutamisel tekkis tõrge</string>
   <string name="forbidden_permissions_move">selle faili liigutamiseks</string>
+  <string name="copy_file_not_found">Kopeerimine ebaõnnestus. Palun kontrolli, kas fail on olemas</string>
+  <string name="copy_file_invalid_into_descendent">Kausta ei saa kopeerida tema enda alamkausta</string>
+  <string name="copy_file_invalid_overwrite">See fail on juba sihtkaustas olemas</string>
+  <string name="copy_file_error">Selle faili või kausta kopeerimisel tekkis tõrge</string>
+  <string name="forbidden_permissions_copy">et kopeerida seda faili</string>
   <string name="prefs_category_instant_uploading">Kohesed üleslaadimised</string>
   <string name="prefs_category_security">Turvalisus</string>
   <string name="prefs_instant_video_upload_path_title">Video üleslaadimise asukoht</string>
-  <string name="download_folder_failed_content">Kausta %1$s  allalaadimine ei õnnestunud</string>
   <string name="shared_subject_header">jagatud</string>
   <string name="with_you_subject_header">sinuga</string>
-  <string name="subject_token">%1$s jagas sinuga \"%2$s\"</string>
+  <string name="subject_user_shared_with_you">%1$s jagas sinuga \"%2$s\"</string>
+  <string name="subject_shared_with_you">\"%1$s\" on sinuga jagatud</string>
   <string name="auth_refresh_button">Värskenda ühendust</string>
   <string name="auth_host_address">Serveri aadress</string>
   <string name="common_error_out_memory">Mälu pole piisavalt</string>
@@ -325,4 +331,9 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi
   <string name="file_list__footer__files">%1$d faili</string>
   <string name="file_list__footer__files_and_folder">%1$d faili, 1 kaust</string>
   <string name="file_list__footer__files_and_folders">%1$d faili, %2$d kausta</string>
+  <string name="share_dialog_title">Jagamine</string>
+  <string name="share_via_link_section_title">Jaga linki</string>
+  <string name="share_via_link_expiration_date_label">Määra aegumise kuupäev</string>
+  <string name="share_via_link_password_label">Parooliga kaitstud</string>
+  <string name="share_search">Otsi</string>
 </resources>
index 3ea68c1..c9879c6 100644 (file)
@@ -23,6 +23,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Ireki</string>
   <string name="prefs_category_general">Orokorra</string>
   <string name="prefs_category_more">Gehiago</string>
   <string name="prefs_accounts">Kontuak</string>
   <string name="filedetails_created">Sortuta:</string>
   <string name="filedetails_modified">Aldatuta:</string>
   <string name="filedetails_download">Deskargatu</string>
-  <string name="filedetails_sync_file">Freskatu fitxaegia</string>
   <string name="filedetails_renamed_in_upload_msg">Fitxategiaren izena %1$sra aldatu da igotzean</string>
-  <string name="action_share_file">Elkarbanatu lotura</string>
-  <string name="action_unshare_file">Lotura partekatzeari utzi</string>
+  <string name="action_share">Partekatu</string>
   <string name="common_yes">Bai</string>
   <string name="common_no">Ez</string>
   <string name="common_ok">Ados</string>
-  <string name="common_cancel_download">Utzi deskarga bertan behera </string>
-  <string name="common_cancel_upload">Ezeztatu igoera</string>
   <string name="common_cancel">Ezeztatu</string>
   <string name="common_save_exit">Gorde eta Irten</string>
   <string name="common_error">Errorea</string>
@@ -176,12 +173,10 @@ Mesedez, baimendu berriz</string>
   <string name="favorite">Gogokoa</string>
   <string name="common_rename">Berrizendatu</string>
   <string name="common_remove">Ezabatu</string>
-  <string name="confirmation_remove_alert">Ziur zaude %1$s ezabatu nahi duzula?</string>
+  <string name="confirmation_remove_file_alert">Ziur zaude %1$s ezabatu nahi duzula?</string>
   <string name="confirmation_remove_folder_alert">Ziru zaude %1$s eta bere edukiak ezabatu nahi dituzula?</string>
   <string name="confirmation_remove_local">Bertakoa bakarrik</string>
-  <string name="confirmation_remove_folder_local">Eduki lokalak bakarrik</string>
-  <string name="confirmation_remove_remote">Zerbitzaritik ezabatu</string>
-  <string name="confirmation_remove_remote_and_local">Biak urrunekoa eta bertakoa</string>
+  <string name="confirmation_remove_folder_local">Bertakoa bakarrik</string>
   <string name="remove_success_msg">Ongi ezabatu da</string>
   <string name="remove_fail_msg">Ezin izan da ezabaketa burutu</string>
   <string name="rename_dialog_title">Idatzi izen berri bat</string>
@@ -260,7 +255,7 @@ Mesedez, baimendu berriz</string>
   <string name="downloader_download_file_not_found">Fitxategia jadanik ez dago eskuragarri zerbitzarian</string>
   <string name="prefs_category_accounts">Kontuak</string>
   <string name="prefs_add_account">Gehitu kontua</string>
-  <string name="auth_redirect_non_secure_connection_title">Konexio segurua birbideratu da segurua ez den bide batera.</string>
+  <string name="auth_redirect_non_secure_connection_title">Konexio segurua birbideratu da segurua ez den bide batetik.</string>
   <string name="actionbar_logger">Egunkariak</string>
   <string name="log_send_history_button">Bidali Historia</string>
   <string name="log_send_no_mail_app">Egunkariak bidaltzeko aplikaziorik ez da aurkitu. Instalatu posta aplikazioa!</string>
@@ -275,9 +270,14 @@ Mesedez, baimendu berriz</string>
   <string name="move_file_invalid_overwrite">Fitxategia dagoeneko existitzen da helburuko karpetan</string>
   <string name="move_file_error">Errore bat gertatu da fitxategi edo karpeta hau mugitzen saiatzerakoan</string>
   <string name="forbidden_permissions_move">fitxategi hau mugitzeko</string>
+  <string name="copy_file_invalid_overwrite">Fitxategia dagoeneko existitzen da helburuko karpetan</string>
   <string name="prefs_category_instant_uploading">Berehalako Igoerak</string>
   <string name="prefs_category_security">Segurtasuna</string>
   <string name="prefs_instant_video_upload_path_title">Bideo Igoera Bidea</string>
-  <string name="download_folder_failed_content">%1$s karpetaren deskarga ezin izan da burutu</string>
   <string name="auth_host_address">Zerbitzariaren helbidea</string>
+  <string name="share_dialog_title">Partekatzea</string>
+  <string name="share_via_link_section_title">Elkarbanatu lotura</string>
+  <string name="share_via_link_expiration_date_label">Ezarri muga data</string>
+  <string name="share_via_link_password_label">Babestu pasahitzarekin</string>
+  <string name="share_search">Bilatu</string>
 </resources>
index 0efba32..8dab96b 100644 (file)
   <string name="actionbar_settings">تنظیمات</string>
   <string name="actionbar_see_details">جزئیات</string>
   <string name="actionbar_send_file">ارسال</string>
+  <string name="actionbar_sort">مرتب‌سازی</string>
+  <string name="actionbar_sort_title">مرتب‌سازی بر اساس</string>
   <!--TODO re-enable when server-side folder size calculation is available   
        <item>Biggest - Smallest</item>-->
   <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
   <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <string name="drawer_item_all_files">تمامی فایل‌ها</string>
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_item_settings">تنظیمات</string>
+  <string name="drawer_item_logs">لاگ‌ها</string>
+  <string name="drawer_close">بستن</string>
+  <string name="drawer_open">باز کردن</string>
   <string name="prefs_category_general">عمومی</string>
   <string name="prefs_category_more">بیش‌تر</string>
   <string name="prefs_accounts">حساب‌ها</string>
   <string name="prefs_manage_accounts">مدیریت حسابها</string>
+  <string name="prefs_instant_upload">آپلودهای فوری تصاویر</string>
+  <string name="prefs_instant_upload_summary">آپلود فوری تصاویر گرفته شده توسط دوربین</string>
+  <string name="prefs_instant_video_upload">آپلودهای فوری ویدئو‌</string>
+  <string name="prefs_instant_video_upload_summary">آپلود فوری ویدئو‌های گرفته شده توسط دوربین</string>
   <string name="prefs_log_title">فعال کردن ورود</string>
   <string name="prefs_log_summary">این برای مشکلات ورود استفاده شده است.</string>
   <string name="prefs_log_title_history">تاریخچه ورود</string>
@@ -51,6 +62,7 @@
   <string name="uploader_info_uploading">در حال بارگزاری</string>
   <string name="file_list_seconds_ago">ثانیه‌ها پیش</string>
   <string name="file_list_empty">اینجا هیچ چیز نیست.</string>
+  <string name="file_list_loading">بارگذاری ...</string>
   <string name="local_file_list_empty">هیچ فایلی در این پوشه نیست.</string>
   <string name="filedetails_select_file">روی هر فایل کلیک کنید تا اطلاعات اضافی نمایش داده شود.</string>
   <string name="filedetails_size">اندازه</string>
   <string name="filedetails_created">ایجاد شده توسط:</string>
   <string name="filedetails_modified">تغییر یافته توسط:</string>
   <string name="filedetails_download">بارگیری</string>
-  <string name="filedetails_sync_file">بازنمایی فایل</string>
   <string name="filedetails_renamed_in_upload_msg">فایل در هنگام بارگزاری به %1$s تغییر نام یافت</string>
-  <string name="action_share_file">اشتراک گذاشتن لینک</string>
-  <string name="action_unshare_file">لغو اشتراک گذاشتن لینک</string>
+  <string name="action_share">اشتراک‌گذاری</string>
   <string name="common_yes">بله</string>
   <string name="common_no">نه</string>
   <string name="common_ok">باشه</string>
-  <string name="common_cancel_download">قطع دانلود</string>
-  <string name="common_cancel_upload">متوقف کردن بار گذاری</string>
   <string name="common_cancel">منصرف شدن</string>
   <string name="common_save_exit">ذخیره سازی و خروج</string>
   <string name="common_error">خطا</string>
@@ -84,6 +92,7 @@
   <string name="uploader_upload_succeeded_content_single">%1$s با موفقیت بار گذاری شد</string>
   <string name="uploader_upload_failed_ticker">بارگزاری ناموفق بود</string>
   <string name="uploader_upload_failed_content_single">بارگزاری %1$s نتوانست به طور کامل انجام شود</string>
+  <string name="uploader_upload_failed_credentials_error">آپلود ناموفق، لازم است دوباره وارد شوید</string>
   <string name="downloader_download_in_progress_ticker">در حال بارگیری ...</string>
   <string name="downloader_download_in_progress_content">%1$d%% در حال دانلود %2$s</string>
   <string name="downloader_download_succeeded_ticker">بارگیری موفقیت‌آمیز بود</string>
   <string name="downloader_download_failed_ticker">بارگیری ناموفق بود</string>
   <string name="downloader_download_failed_content">دانلود %1$s نمی توانست به طور کامل انجام شود.</string>
   <string name="downloader_not_downloaded_yet">دانلود هنوز به پایان نرسیده است.</string>
+  <string name="downloader_download_failed_credentials_error">دانلود ناموفق، لازم است دوباره وارد شوید</string>
   <string name="common_choose_account">حساب کاربری را انتخاب کنید</string>
   <string name="sync_fail_ticker">همگام سازی ناموفق</string>
+  <string name="sync_fail_ticker_unauthorized">همگام‌سازی ناموفق، لازم است دوباره وارد شوید</string>
   <string name="sync_fail_content">همگام سازی %1$s نتوانست به طور کامل انجام شود</string>
   <string name="sync_fail_content_unauthorized">رمز عبور نامعتبر برای %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">ناسازگاری ها یافت شدند</string>
   <string name="sync_fail_in_favourites_ticker">همگام سازی پرونده ها ناموفق بود.</string>
   <string name="sync_fail_in_favourites_content">محتوای %1$d فایل ها نمی توانند همگام باشند(%2$d ناسازگاری)</string>
   <string name="sync_foreign_files_forgotten_ticker">بعضی از فایلهای محلی فراموش شده اند</string>
+  <string name="sync_foreign_files_forgotten_content">%1$d fفایل از %2$s پوشه نتوانستند کپی شوند در</string>
   <string name="sync_current_folder_was_removed">پوشه %1$s دیگر وجود ندارد</string>
   <string name="foreign_files_move">انتقال همه</string>
   <string name="foreign_files_success">همه ی فایل ها جا به جا شدند</string>
   <string name="foreign_files_fail">بعضی از فایل ها نمی توانند انتقال یابند</string>
   <string name="foreign_files_local_text">محلی: %1$s</string>
   <string name="foreign_files_remote_text">دور از دسترس:  %1$s</string>
+  <string name="pass_code_enter_pass_code">لطفا رمز خود را وارد کنید</string>
+  <string name="pass_code_configure_your_pass_code">رمز خود را وارد کنید</string>
+  <string name="pass_code_reenter_your_pass_code">رمز خود را مجددا وارد کنید</string>
+  <string name="pass_code_remove_your_pass_code">رمز خود را حذف کنید</string>
+  <string name="pass_code_mismatch">رمزهای وارد شده یکسان نیستند</string>
+  <string name="pass_code_wrong">رمز نادرست</string>
+  <string name="pass_code_removed">رمز حذف شد</string>
+  <string name="pass_code_stored">رمز ذخیره شد</string>
   <string name="media_notif_ticker">%1$s پخش کننده موسیقی</string>
   <string name="media_state_playing">%1$s ( در حال پخش موسیقی )</string>
   <string name="media_state_loading">%1$s (درحال بارگذاری)</string>
   <string name="auth_no_net_conn_title">هیچ ارتباطی به شبکه موجود نیست</string>
   <string name="auth_nossl_plain_ok_title">اتصال امن در دسترس نیست</string>
   <string name="auth_connection_established">اتصال برقرار شد</string>
+  <string name="auth_testing_connection">اجرای تست ارتباط</string>
   <string name="auth_not_configured_title">پیکربندی سرور ناقص است</string>
   <string name="auth_account_not_new">یک اکانت با همین نام کاربری و سرور بر روی این دستگاه موجود می‌باشد.</string>
   <string name="auth_account_not_the_same">نام کاربری وارد شده با نام کاربری این اکانت مطابقت ندارد</string>
   <string name="auth_connecting_auth_server">اتصال به سرور احراز هویت...</string>
   <string name="auth_unsupported_auth_method">سرور این نوع احراز هویت را پشتیبانی نمی‌کند</string>
   <string name="auth_unsupported_multiaccount">%1$s چند اکانته بودن را پشتیبانی نمی‌کند</string>
+  <string name="favorite">برگزیده</string>
   <string name="common_rename">تغییرنام</string>
   <string name="common_remove">حذف</string>
+  <string name="confirmation_remove_alert">آیا واقعا می‌خواهید %1$s حذف شود ؟</string>
+  <string name="confirmation_remove_folder_alert">آیا واقعا می‌خواهید %1$s و محتوای درون آن حذف شود ؟</string>
   <string name="confirmation_remove_local">فقط محلی</string>
-  <string name="confirmation_remove_folder_local">فقط محتوای محلی</string>
-  <string name="confirmation_remove_remote">پاک کردن از سرور</string>
-  <string name="confirmation_remove_remote_and_local">راه دور و محلی</string>
+  <string name="confirmation_remove_folder_local">فقط محلی</string>
+  <string name="confirmation_remove_remote">از سرور</string>
   <string name="remove_success_msg">حذف با موفقیت انجام شد</string>
   <string name="remove_fail_msg">حذف نا موفق بود</string>
   <string name="rename_dialog_title">نام جدید وارد کنید</string>
   <string name="rename_server_fail_msg">نامگذاری نمی تواند به طور کامل انجام شود</string>
   <string name="sync_file_fail_msg">پرونده های دور از دسترس نمی توانند بررسی شوند.</string>
   <string name="sync_file_nothing_to_do_msg">محتوای فایل قبلا همگام شده</string>
+  <string name="create_dir_fail_msg">پوشه نتوانست ایجاد شود</string>
   <string name="filename_forbidden_characters">کاراکترهای ممنوع: / \\ &lt; &gt; : \" | ? *</string>
+  <string name="filename_forbidden_charaters_from_server">نام فایل دارای حداقل یک کاراکتر نامعتبر است</string>
+  <string name="filename_empty">نام فایل نمی تواند خالی باشد</string>
   <string name="wait_a_moment">لحظه‌ای صبر کنید</string>
   <string name="filedisplay_unexpected_bad_get_content">مشکل غیر متقربه، لطفا پرونده را از یک برنامه متفاوت انتخاب کنید.</string>
   <string name="filedisplay_no_file_selected">هیچ پرونده‌ای انتخاب نشده است</string>
   <string name="activity_chooser_title">ارسال لینک به ...</string>
+  <string name="wait_for_tmp_copy_from_private_storage">کپی کردن فایل از حافظه خصوصی</string>
   <string name="oauth_check_onoff">ورود با oAuth2   </string>
   <string name="oauth_login_connection">اتصال به سرور oAuth2 ...</string>
   <string name="ssl_validator_header">هویت این سایت نمی تواند تایید شود</string>
   <string name="instant_upload_on_wifi">تصاویر را فقط از طریق wifi بارگذاری کن</string>
   <string name="instant_video_upload_on_wifi">آپلود ویدیو فقط از طریق WiFi</string>
   <string name="instant_upload_path">آپلود فوری</string>
+  <string name="conflict_title">تضاد در فایل</string>
+  <string name="conflict_message">کدام فایل را می‌خواهید نگه دارید ؟ اگر هردو نسخه را میخواهید، یک عدد به اول نام فایل محلی اضافه خواهد شد.</string>
   <string name="conflict_keep_both">نگهداشتن هر دو</string>
+  <string name="conflict_use_local_version">نسخه‌ی محلی</string>
+  <string name="conflict_use_server_version">نسخه سرور</string>
   <string name="preview_image_description">پیش نمایش تصویر</string>
   <string name="preview_image_error_unknown_format">نمایش این عکس امکانپذیر نمی باشد</string>
+  <string name="error__upload__local_file_not_copied">کپی %1$s به پوشه محلی %2$s امکان پذیر نیست</string>
+  <string name="prefs_instant_upload_path_title">مسیر آپلود</string>
   <string name="share_link_file_error">در حین اشتراک گذاری این فایل یا پوشه خطایی رخ داده است</string>
   <string name="unshare_link_file_error">در حین حذف اشتراک گذاری این فایل یا پوشه خطایی رخ داده است</string>
+  <string name="share_link_password_title">یک رمزعبور را وارد کنید</string>
+  <string name="share_link_empty_password">شما باید یک رمزعبور را وارد کنید</string>
   <string name="activity_chooser_send_file_title">ارسال</string>
+  <string name="copy_link">کپی کردن لینک</string>
   <string name="clipboard_text_copied">کپی به کلیپ بورد</string>
   <string name="network_host_not_available">تکمیل عملیات امکانپذیر نمی باشد، سرور در دسترس نمی باشد</string>
   <string name="empty"></string>
+  <string name="forbidden_permissions">شما دسترسی %s را ندارید</string>
   <string name="forbidden_permissions_rename">برای تغییر نام این فایل</string>
   <string name="forbidden_permissions_delete">برای حذف این فایل</string>
+  <string name="share_link_forbidden_permissions">اشتراک‌گذاری این فایل</string>
+  <string name="unshare_link_forbidden_permissions">حذف اشتراک‌گذاری این فایل</string>
   <string name="forbidden_permissions_create">برای ایجاد این فایل</string>
   <string name="uploader_upload_forbidden_permissions">برای آپلود در این پوشه</string>
   <string name="downloader_download_file_not_found">این فایل دیگر روی سرور وجود ندارد</string>
   <string name="prefs_category_accounts">حساب‌ها</string>
+  <string name="prefs_add_account">ایحاد حساب کاربری</string>
+  <string name="actionbar_logger">لاگ‌ها</string>
+  <string name="log_send_history_button">تاریخچه‌ی ارسال</string>
+  <string name="log_progress_dialog_text">بارگذاری داده...</string>
   <string name="saml_authentication_required_text">احراز هویت مورد نیاز است</string>
   <string name="saml_authentication_wrong_pass">رمز عبور اشتباه است</string>
+  <string name="actionbar_move">انتقال</string>
+  <string name="file_list_empty_moving">اینجا هیچی نیست، میتوانید پوشه اضافه کنید</string>
   <string name="folder_picker_choose_button_text">انتخاب کردن</string>
+  <string name="move_file_not_found">امکان انتقال وجود ندارد، لطفا وجود فایل را بررسی کنید</string>
+  <string name="move_file_invalid_overwrite">این فایل هم‌اکنون در پوشه‌‎ی مقصد وجود دارد</string>
+  <string name="move_file_error">خطایی در زمان تلاش برای انتقال این فایل یا پوشه رخ داده است</string>
+  <string name="forbidden_permissions_move">انتقال این فایل</string>
+  <string name="copy_file_not_found">امکان کپی وجود ندارد، لطفا وجود فایل را بررسی کنید</string>
+  <string name="copy_file_invalid_overwrite">این فایل هم‌اکنون در پوشه‌‎ی مقصد وجود دارد</string>
+  <string name="copy_file_error">یک خطا در زمان تلاش برای کپی این فایل یا شاخه رخ داد</string>
+  <string name="forbidden_permissions_copy">کپی این فایل</string>
+  <string name="prefs_category_instant_uploading">آپلودهای فوری</string>
   <string name="prefs_category_security">امنیت</string>
+  <string name="prefs_instant_video_upload_path_title">مسیر آپلود ویدئو</string>
+  <string name="shared_subject_header">به اشتراک گذاشته شد</string>
+  <string name="with_you_subject_header">با تو</string>
+  <string name="subject_user_shared_with_you">\"%2$s\" توسط %1$s با شما به اشتراک گذاشته شد</string>
+  <string name="subject_shared_with_you">\"%1$s\" با شما به اشتراک گذاشته شد</string>
+  <string name="auth_refresh_button">بروزرسانی ارتباط</string>
   <string name="auth_host_address">آدرس سرور</string>
+  <string name="common_error_out_memory">حافظه کافی وجود ندارد</string>
+  <string name="username">نام کاربری</string>
+  <string name="file_list__footer__folder">1 پوشه</string>
+  <string name="file_list__footer__folders">%1$d پوشه</string>
+  <string name="file_list__footer__file">1 فایل</string>
+  <string name="file_list__footer__file_and_folder">1 فایل، 1 پوشه</string>
+  <string name="file_list__footer__file_and_folders">1 فایل، %1$d پوشه</string>
+  <string name="file_list__footer__files">%1$d  فایل</string>
+  <string name="file_list__footer__files_and_folder">%1$d فایل، 1 پوشه</string>
+  <string name="file_list__footer__files_and_folders">%1$d فایل, %2$d پوشه</string>
+  <string name="share_dialog_title">اشتراک گذاری</string>
+  <string name="share_via_link_section_title">اشتراک گذاشتن لینک</string>
+  <string name="share_via_link_expiration_date_label">تنظیم تاریخ انقضا</string>
+  <string name="share_via_link_password_label">نگهداری کردن رمز عبور</string>
+  <string name="share_search">جست‌و‌جو</string>
 </resources>
index 554b6c8..b0852a2 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Asetukset</string>
   <string name="drawer_item_logs">Lokit</string>
   <string name="drawer_close">Sulje</string>
+  <string name="drawer_open">Avaa</string>
   <string name="prefs_category_general">Yleiset</string>
   <string name="prefs_category_more">Enemmän</string>
   <string name="prefs_accounts">Tilit</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">sekuntia sitten</string>
   <string name="file_list_empty">Täällä ei ole mitään. Lähetä tänne jotakin!</string>
   <string name="file_list_loading">Ladataan…</string>
+  <string name="file_list_no_app_for_file_type">Tälle tiedostotyypille ei löytynyt sovellusta!</string>
   <string name="local_file_list_empty">Tässä kansiossa ei ole tiedostoja</string>
   <string name="filedetails_select_file">Napauta tiedostoa nähdäksesi lisätietoja.</string>
   <string name="filedetails_size">Koko:</string>
   <string name="filedetails_created">Luotu:</string>
   <string name="filedetails_modified">Muokattu:</string>
   <string name="filedetails_download">Lataa</string>
-  <string name="filedetails_sync_file">Päivitä tiedosto</string>
+  <string name="filedetails_sync_file">Synkronoi</string>
   <string name="filedetails_renamed_in_upload_msg">Tiedoston nimeksi muutettiin %1$s siirron yhteydessä</string>
   <string name="list_layout">Luettelon asettelu</string>
-  <string name="action_share_file">Jaa linkki</string>
-  <string name="action_unshare_file">Poista linkin jako</string>
+  <string name="action_share">Jaa</string>
   <string name="common_yes">Kyllä</string>
   <string name="common_no">Ei</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Peru lataus</string>
-  <string name="common_cancel_upload">Peru lähetys</string>
+  <string name="common_cancel_sync">Peru synkronointi</string>
   <string name="common_cancel">Peru</string>
   <string name="common_save_exit">Tallenna ja poistu</string>
   <string name="common_error">Virhe</string>
   <string name="unfavorite">Poista suosikeista</string>
   <string name="common_rename">Nimeä uudelleen</string>
   <string name="common_remove">Poista</string>
-  <string name="confirmation_remove_alert">Haluatko varmasti poistaa kohteen %1$s?</string>
+  <string name="confirmation_remove_file_alert">Haluatko varmasti poistaa kohteen %1$s?</string>
   <string name="confirmation_remove_folder_alert">Haluatko varmasti poistaa kohteen %1$s ja sen sisällön?</string>
   <string name="confirmation_remove_local">Vain paikallinen</string>
-  <string name="confirmation_remove_folder_local">Vain paikallinen sisältö</string>
-  <string name="confirmation_remove_remote">Poista palvelimelta</string>
-  <string name="confirmation_remove_remote_and_local">Sekä etä- että paikallinen</string>
+  <string name="confirmation_remove_folder_local">Vain paikallinen</string>
+  <string name="confirmation_remove_file_remote">Palvelimelta</string>
+  <string name="confirmation_remove_remote_and_local">Etä ja paikallinen</string>
   <string name="remove_success_msg">Poistettu onnistuneesti</string>
   <string name="remove_fail_msg">Poistamista ei voitu suorittaa loppuun asti</string>
   <string name="rename_dialog_title">Anna uusi nimi</string>
   <string name="ssl_validator_label_validity_to">Päättyen:</string>
   <string name="ssl_validator_label_signature">Allekirjoitus:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritmi:</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Sormenjälki:</string>
+  <string name="certificate_load_problem">Varmennetta ladatessa ilmeni ongelmia.</string>
   <string name="ssl_validator_null_cert">Varmennetta ei voi näyttää.</string>
   <string name="ssl_validator_no_info_about_error">- Ei lisätietoja virheestä</string>
   <string name="placeholder_filetype">PNG-kuva</string>
   <string name="conflict_title">Tiedoston ristiriita</string>
   <string name="conflict_message">Mitkä tiedostot haluat säilyttää? Jos valitset kummatkin versiot, paikallisen version tiedoston nimeen lisätään numero.</string>
   <string name="conflict_keep_both">Säilytä molemmat</string>
-  <string name="conflict_use_local_version">Käytä paikallista versiota</string>
-  <string name="conflict_use_server_version">Käytä palvelimen versiota</string>
+  <string name="conflict_use_local_version">paikallinen versio</string>
+  <string name="conflict_use_server_version">palvelimen versio</string>
   <string name="preview_image_description">Kuvan esikatselu</string>
   <string name="preview_image_error_unknown_format">Tätä kuvaa ei voi näyttää</string>
   <string name="prefs_instant_upload_path_title">Lähetyspolku</string>
   <string name="move_file_not_found">Siirto ei onnistu. Tarkista, ettei tiedostoa ole jo olemassa</string>
   <string name="move_file_invalid_overwrite">Tiedosto on jo olemassa kohdekansiossa</string>
   <string name="move_file_error">Tämän tiedoston tai kansion siirtoa yrittäessä tapahtui virhe</string>
+  <string name="copy_file_not_found">Kopiointi epäonnistui. Tarkista onko tiedostoa olemassa</string>
+  <string name="copy_file_invalid_overwrite">Tiedosto on jo kohdekansiossa.</string>
+  <string name="copy_file_error">Tätä tiedostoa tai kansiota kopioitaessa tapahtui virhe</string>
   <string name="prefs_category_instant_uploading">Välittömät lähetykset</string>
   <string name="prefs_category_security">Tietoturva</string>
+  <string name="prefs_instant_video_upload_path_title">Videoiden lähetyspolku</string>
+  <string name="sync_folder_failed_content">Kansion %1$s synkronointia ei voitu suorittaa kokonaan</string>
   <string name="shared_subject_header">jaettu</string>
   <string name="with_you_subject_header">kanssasi</string>
-  <string name="subject_token">%1$s jakoi kohteen \"%2$s\" kanssasi</string>
-  <string name="saml_subject_token">\"%1$s\" on jaettu kanssasi</string>
+  <string name="subject_user_shared_with_you">%1$s jakoi kohteen \"%2$s\" kanssasi</string>
+  <string name="subject_shared_with_you">\"%1$s\" on jaettu kanssasi</string>
   <string name="auth_refresh_button">Päivitä yhteys</string>
   <string name="auth_host_address">Palvelimen osoite</string>
   <string name="common_error_out_memory">Muistia ei ole riittävästi</string>
   <string name="file_list__footer__files">%1$d tiedostoa</string>
   <string name="file_list__footer__files_and_folder">%1$d tiedostoa, 1 kansio</string>
   <string name="file_list__footer__files_and_folders">%1$d tiedostoa, %2$d kansiota</string>
+  <string name="share_dialog_title">Jakaminen</string>
+  <string name="share_with_user_section_title">Jaa käyttäjien ja ryhmien kanssa</string>
+  <string name="share_add_user_or_group">Lisää käyttäjä tai ryhmä</string>
+  <string name="share_via_link_section_title">Jaa linkki</string>
+  <string name="share_via_link_expiration_date_label">Aseta päättymispäivä</string>
+  <string name="share_via_link_password_label">Suojaa salasanalla</string>
+  <string name="share_search">Etsi</string>
+  <string name="search_users_and_groups_hint">Etsi käyttäjiä ja ryhmiä</string>
+  <string name="share_group_clarification">%1$s (ryhmä)</string>
 </resources>
index 8370f52..1a5bc5c 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Paramètres</string>
   <string name="drawer_item_logs">Logs</string>
   <string name="drawer_close">Fermer</string>
+  <string name="drawer_open">Ouvrir</string>
   <string name="prefs_category_general">Général</string>
   <string name="prefs_category_more">Plus</string>
   <string name="prefs_accounts">Comptes</string>
@@ -71,23 +72,22 @@ Téléchargez-le ici : %2$s</string>
   <string name="file_list_seconds_ago">il y a quelques secondes</string>
   <string name="file_list_empty">Il n\'y a rien ici ! Envoyez donc quelque chose :)</string>
   <string name="file_list_loading">Chargement...</string>
+  <string name="file_list_no_app_for_file_type">Aucune app trouvée pour ce type de fichier !</string>
   <string name="local_file_list_empty">Aucun fichier n\'est présent dans ce dossier.</string>
-  <string name="filedetails_select_file">Appuyez sur un fichier pour afficher les informations supplémentaires</string>
+  <string name="filedetails_select_file">Sélectionnez un fichier pour afficher des informations supplémentaires</string>
   <string name="filedetails_size">Taille :</string>
   <string name="filedetails_type">Type :</string>
   <string name="filedetails_created">Créé le :</string>
   <string name="filedetails_modified">Modifié le :</string>
   <string name="filedetails_download">Télécharger</string>
-  <string name="filedetails_sync_file">Actualiser le fichier</string>
+  <string name="filedetails_sync_file">Synchroniser</string>
   <string name="filedetails_renamed_in_upload_msg">Le fichier a été renommé en %s pendant le téléversement</string>
   <string name="list_layout">Affichage en liste</string>
-  <string name="action_share_file">Partager le lien</string>
-  <string name="action_unshare_file">Ne plus partager ce lien</string>
+  <string name="action_share">Partage</string>
   <string name="common_yes">Oui</string>
   <string name="common_no">Non</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Annuler le téléchargement</string>
-  <string name="common_cancel_upload">Annuler le téléversement</string>
+  <string name="common_cancel_sync">Annuler la synchronisation</string>
   <string name="common_cancel">Annuler</string>
   <string name="common_save_exit">Sauvegarder &amp; Quitter</string>
   <string name="common_error">Erreur</string>
@@ -199,15 +199,15 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
   <string name="auth_can_not_auth_against_server">Impossible de s\'authentifier sur ce serveur</string>
   <string name="auth_account_does_not_exist">Le compte n\'existe pas encore sur ce périphérique</string>
   <string name="favorite">Ajouter aux favoris</string>
-  <string name="unfavorite">Supprimer des favoris</string>
+  <string name="unfavorite">Retirer des favoris</string>
   <string name="common_rename">Renommer</string>
   <string name="common_remove">Supprimer</string>
-  <string name="confirmation_remove_alert">Voulez-vous vraiment supprimer %1$s ?</string>
+  <string name="confirmation_remove_file_alert">Voulez-vous vraiment supprimer %1$s ?</string>
   <string name="confirmation_remove_folder_alert">Voulez-vous vraiment supprimer %1$s et son contenu ?</string>
   <string name="confirmation_remove_local">Local seulement</string>
-  <string name="confirmation_remove_folder_local">Contenu local uniquement</string>
-  <string name="confirmation_remove_remote">Effacer du serveur</string>
-  <string name="confirmation_remove_remote_and_local">Distant et local</string>
+  <string name="confirmation_remove_folder_local">Local seulement</string>
+  <string name="confirmation_remove_file_remote">Depuis le serveur</string>
+  <string name="confirmation_remove_remote_and_local">Distant &amp; local</string>
   <string name="remove_success_msg">Suppression effectuée avec succès</string>
   <string name="remove_fail_msg">Suppression impossible</string>
   <string name="rename_dialog_title">Entrez un nouveau nom</string>
@@ -248,6 +248,9 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
   <string name="ssl_validator_label_validity_to">Au :</string>
   <string name="ssl_validator_label_signature">Signature :</string>
   <string name="ssl_validator_label_signature_algorithm">Algorithme :</string>
+  <string name="digest_algorithm_not_available">Cet algorithme de hachage n\'est pas disponible sur votre téléphone.</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Empreinte numérique :</string>
+  <string name="certificate_load_problem">Le chargement du certificat pose problème.</string>
   <string name="ssl_validator_null_cert">Impossible d\'afficher le certificat.</string>
   <string name="ssl_validator_no_info_about_error">- Aucune information sur l\'erreur</string>
   <string name="placeholder_sentence">Ceci est un espace réservé</string>
@@ -259,7 +262,11 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
   <string name="instant_upload_on_wifi">Téléverser les images via une connexion WiFi uniquement</string>
   <string name="instant_video_upload_on_wifi">Téléverser les vidéos via une connexion WiFi uniquement</string>
   <string name="instant_upload_path">/InstantUpload</string>
+  <string name="conflict_title">Conflit de fichiers</string>
+  <string name="conflict_message">Quel(s) fichier(s) voulez-vous garder ? Si vous sélectionnez les deux, un chiffre sera ajouté au nom du fichier local.</string>
   <string name="conflict_keep_both">Garder les deux versions</string>
+  <string name="conflict_use_local_version">version locale</string>
+  <string name="conflict_use_server_version">version serveur</string>
   <string name="preview_image_description">Prévisualisation de l\'image</string>
   <string name="preview_image_error_unknown_format">Cette image ne peut pas être affichée</string>
   <string name="error__upload__local_file_not_copied">%1$s n\'a pas pu être copié dans le dossier local %2$s</string>
@@ -269,23 +276,26 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
   <string name="share_link_file_error">Une erreur est survenue lors de la tentative de partage de ce fichier ou répertoire</string>
   <string name="unshare_link_file_no_exist">Impossible de supprimer le partage. Vérifiez que le fichier est bien présent</string>
   <string name="unshare_link_file_error">Une erreur est survenue lors de la tentative d’annulation du partage de ce fichier ou répertoire</string>
+  <string name="update_link_file_no_exist">Actualisation impossible. Veuillez vérifier si ce fichier existe</string>
+  <string name="update_link_file_error">Une erreur est survenue lors de la tentative de rafraîchissement du lien partagé</string>
   <string name="share_link_password_title">Saisissez un mot de passe</string>
   <string name="share_link_empty_password">Vous devez saisir un mot de passe</string>
   <string name="activity_chooser_send_file_title">Envoyer</string>
   <string name="copy_link">Copier le lien</string>
-  <string name="clipboard_text_copied">Copié dans le presse-papiers</string>
-  <string name="error_cant_bind_to_operations_service">Erreur critique : impossible de réaliser des opérations</string>
+  <string name="clipboard_text_copied">Copié dans le presse-papier</string>
+  <string name="error_cant_bind_to_operations_service">Erreur critique : impossible de réaliser les opérations</string>
   <string name="network_error_socket_exception">Une erreur est survenue pendant la connexion au serveur.</string>
   <string name="network_error_socket_timeout_exception">Une erreur est survenue pendant l\'attente du serveur. L\'opération n\'a pas pu être effectuée</string>
   <string name="network_error_connect_timeout_exception">Une erreur est survenue pendant l\'attente du serveur. L\'opération n\'a pas pu être effectuée</string>
   <string name="network_host_not_available">L\'opération n\'a pas pu être terminée, le serveur n\'est pas disponible</string>
   <string name="empty"></string>
-  <string name="forbidden_permissions">Vous ne possédez pas les droits suffisants %s</string>
-  <string name="forbidden_permissions_rename">afin de renommer ce fichier</string>
-  <string name="forbidden_permissions_delete">afin d’effacer ce fichier</string>
+  <string name="forbidden_permissions">Vous n\'avez pas la permission %s</string>
+  <string name="forbidden_permissions_rename">de renommer ce fichier</string>
+  <string name="forbidden_permissions_delete">d’effacer ce fichier</string>
   <string name="share_link_forbidden_permissions">afin de partager ce fichier</string>
   <string name="unshare_link_forbidden_permissions">afin de ne plus partager ce fichier</string>
-  <string name="forbidden_permissions_create">afin de créer ce fichier</string>
+  <string name="update_link_forbidden_permissions">pour mettre à jour ce lien partagé</string>
+  <string name="forbidden_permissions_create">de créer ce fichier</string>
   <string name="uploader_upload_forbidden_permissions">afin d’importer dans ce répertoire</string>
   <string name="downloader_download_file_not_found">Ce fichier n’est plus disponible sur le serveur</string>
   <string name="prefs_category_accounts">Comptes</string>
@@ -293,7 +303,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
   <string name="auth_redirect_non_secure_connection_title">Le connexion sécurisée est redirigée vers une route non-sécurisée.</string>
   <string name="actionbar_logger">Journaux</string>
   <string name="log_send_history_button">Envoyer l\'historique</string>
-  <string name="log_send_no_mail_app">Aucune application trouvée pour l\'envoi de journaux. Installer une application de courriel !</string>
+  <string name="log_send_no_mail_app">Aucune application trouvée pour l\'envoi de logs. Installer une application de courriel !</string>
   <string name="log_send_mail_subject">Journaux de l\'application Android %1$s</string>
   <string name="log_progress_dialog_text">Chargement des données…</string>
   <string name="saml_authentication_required_text">Authentification requise</string>
@@ -306,13 +316,19 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
   <string name="move_file_invalid_overwrite">Le fichier existe déjà dans le dossier de destination</string>
   <string name="move_file_error">Une erreur est survenue lors de la tentative de déplacement de ce fichier ou dossier</string>
   <string name="forbidden_permissions_move">de déplacer ce fichier</string>
+  <string name="copy_file_not_found">Impossible de copier. Vérifiez que le fichier existe</string>
+  <string name="copy_file_invalid_into_descendent">Il n\'est pas possible de copier un dossier vers un de ses descendants</string>
+  <string name="copy_file_invalid_overwrite">Fichier déjà existant dans le dossier de destination</string>
+  <string name="copy_file_error">Une erreur est survenue lors de la copie de ce fichier ou dossier</string>
+  <string name="forbidden_permissions_copy">de copier ce fichier</string>
   <string name="prefs_category_instant_uploading">Téléversement immédiat</string>
   <string name="prefs_category_security">Sécurité</string>
   <string name="prefs_instant_video_upload_path_title">Répertoire de téléversement des vidéos</string>
-  <string name="download_folder_failed_content">Le téléchargement du dossier %1$s n\'a pas pu être achevé</string>
+  <string name="sync_folder_failed_content">La synchronisation du dossier %1$s n\'a pas pu être terminée</string>
   <string name="shared_subject_header">a partagé</string>
   <string name="with_you_subject_header">avec vous</string>
-  <string name="subject_token">%1$s a partagé \"%2$s\" avec vous</string>
+  <string name="subject_user_shared_with_you">%1$s a partagé \"%2$s\" avec vous</string>
+  <string name="subject_shared_with_you">\"%1$s\" a été partagé avec vous</string>
   <string name="auth_refresh_button">Actualiser la connexion</string>
   <string name="auth_host_address">Adresse du serveur</string>
   <string name="common_error_out_memory">Mémoire insuffisante</string>
@@ -325,4 +341,18 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
   <string name="file_list__footer__files">%1$d fichiers</string>
   <string name="file_list__footer__files_and_folder">%1$d fichiers, 1 dossier</string>
   <string name="file_list__footer__files_and_folders">%1$d fichiers, %2$d dossiers</string>
+  <string name="share_dialog_title">Partage</string>
+  <string name="share_with_user_section_title">Partager avec des utilisateurs et des groupes</string>
+  <string name="share_no_users">Aucune donnée partagée avec des utilisateurs pour le moment</string>
+  <string name="share_add_user_or_group">Ajouter un Utilisateur ou un Groupe</string>
+  <string name="share_via_link_section_title">Partager par lien public</string>
+  <string name="share_via_link_expiration_date_label">Spécifier une date d\'expiration</string>
+  <string name="share_via_link_password_label">Protéger par un mot de passe</string>
+  <string name="share_via_link_password_title">Sécurisé</string>
+  <string name="share_get_public_link_button">Obtenir le lien</string>
+  <string name="share_search">Rechercher</string>
+  <string name="search_users_and_groups_hint">Chercher parmi les utilisateurs et groupes</string>
+  <string name="share_group_clarification">%1$s (groupe)</string>
+  <string name="share_sharee_unavailable">Désolé, la version du serveur ne permet pas aux applications d\'initier des partage avec d\'autres utilisateurs.
+\nVeuillez contacter votre administrateur</string>
 </resources>
index 84962f2..b649f94 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Axustes</string>
   <string name="drawer_item_logs">Rexistros</string>
   <string name="drawer_close">Pechar</string>
+  <string name="drawer_open">Abrir</string>
   <string name="prefs_category_general">Xeral</string>
   <string name="prefs_category_more">Máis</string>
   <string name="prefs_accounts">Contas</string>
@@ -71,6 +72,7 @@ Descárgueo de aquí: %2$s</string>
   <string name="file_list_seconds_ago">segundos atrás</string>
   <string name="file_list_empty">Aquí non hai nada. Envíe algo!</string>
   <string name="file_list_loading">Cargando...</string>
+  <string name="file_list_no_app_for_file_type">Non se atopou un App para este tipo de ficheiro!</string>
   <string name="local_file_list_empty">Non hai ficheiros neste cartafol.</string>
   <string name="filedetails_select_file">Prema nun ficheiro para que amose a información adicional.</string>
   <string name="filedetails_size">Tamaño:</string>
@@ -78,16 +80,14 @@ Descárgueo de aquí: %2$s</string>
   <string name="filedetails_created">Creado:</string>
   <string name="filedetails_modified">Modificado:</string>
   <string name="filedetails_download">Descargar</string>
-  <string name="filedetails_sync_file">Actualizar o ficheiro</string>
+  <string name="filedetails_sync_file">Sincronizar</string>
   <string name="filedetails_renamed_in_upload_msg">O ficheiro foi renomeado a %1$s durante o envío</string>
   <string name="list_layout">Deseño da lista</string>
-  <string name="action_share_file">Ligazón para compartir</string>
-  <string name="action_unshare_file">Deixar de compartir a ligazón</string>
+  <string name="action_share">Compartir</string>
   <string name="common_yes">Si</string>
   <string name="common_no">Non</string>
   <string name="common_ok">Aceptar</string>
-  <string name="common_cancel_download">Cancelar a descarga</string>
-  <string name="common_cancel_upload">Cancelar o envío</string>
+  <string name="common_cancel_sync">Parar a sincronización</string>
   <string name="common_cancel">Cancelar</string>
   <string name="common_save_exit">Gardar e saír</string>
   <string name="common_error">Erro</string>
@@ -198,11 +198,11 @@ Descárgueo de aquí: %2$s</string>
   <string name="unfavorite">Retirar de favoritos</string>
   <string name="common_rename">Renomear</string>
   <string name="common_remove">Retirar</string>
-  <string name="confirmation_remove_alert">Confirma que quere retirar %1$s?</string>
+  <string name="confirmation_remove_file_alert">Confirma que quere retirar %1$s?</string>
   <string name="confirmation_remove_folder_alert">Confirma que quere retirar %1$s e o seu contido?</string>
   <string name="confirmation_remove_local">Só local</string>
-  <string name="confirmation_remove_folder_local">Só contidos locais</string>
-  <string name="confirmation_remove_remote">Retirar do servidor</string>
+  <string name="confirmation_remove_folder_local">Só local</string>
+  <string name="confirmation_remove_remote">Desde servidor</string>
   <string name="confirmation_remove_remote_and_local">Remoto e local</string>
   <string name="remove_success_msg">Retirado correctamente</string>
   <string name="remove_fail_msg">Non foi posíbel retiralo</string>
@@ -258,8 +258,8 @@ Descárgueo de aquí: %2$s</string>
   <string name="conflict_title">Conflito de ficheiro</string>
   <string name="conflict_message">Que ficheiros quere conservar? Se selecciona ambas versións, o ficheiro copiado terá un número engadido ao nome.</string>
   <string name="conflict_keep_both">Manter ambos</string>
-  <string name="conflict_use_local_version">Usar a versión local</string>
-  <string name="conflict_use_server_version">Usar a versión do servidor</string>
+  <string name="conflict_use_local_version">versión local</string>
+  <string name="conflict_use_server_version">versión no servidor</string>
   <string name="preview_image_description">Vista previa da imaxe</string>
   <string name="preview_image_error_unknown_format">Esta imaxe non pode ser amosada</string>
   <string name="error__upload__local_file_not_copied">Non foi posíbel copiar %1$s no cartafol local %2$s</string>
@@ -291,7 +291,7 @@ Descárgueo de aquí: %2$s</string>
   <string name="downloader_download_file_not_found">O ficheiro xa non está dispoñíbel no servidor</string>
   <string name="prefs_category_accounts">Contas</string>
   <string name="prefs_add_account">Engadir unha conta</string>
-  <string name="auth_redirect_non_secure_connection_title">A conexión segura está a ser redirixida a unha ruta non segura.</string>
+  <string name="auth_redirect_non_secure_connection_title">A conexión segura está a ser redirixida a través dunha ruta non segura.</string>
   <string name="actionbar_logger">Rexistros</string>
   <string name="log_send_history_button">Enviar o historial</string>
   <string name="log_send_no_mail_app">Non se atopou unha aplicación para enviar os rexistros. Instale unha aplicación de correo!</string>
@@ -307,14 +307,19 @@ Descárgueo de aquí: %2$s</string>
   <string name="move_file_invalid_overwrite">Este ficheiro xa existe no cartafol de destino</string>
   <string name="move_file_error">Produciuse un erro ao tentar mover este ficheiro ou cartafol.</string>
   <string name="forbidden_permissions_move">para mover este ficheiro</string>
+  <string name="copy_file_not_found">Non se puido copiar. Por favor comprobe que o ficheiro existe</string>
+  <string name="copy_file_invalid_into_descendent">Non é posible copiar un cartafol nun descendente seu</string>
+  <string name="copy_file_invalid_overwrite">Este ficheiro xa existe no cartafol de destino</string>
+  <string name="copy_file_error">Oconteceu un erro mentras se intentaba copiar este ficheiro ou cartafol</string>
+  <string name="forbidden_permissions_copy">copiar este ficheiro</string>
   <string name="prefs_category_instant_uploading">Envío instantáneo</string>
   <string name="prefs_category_security">Seguridade</string>
   <string name="prefs_instant_video_upload_path_title">Enviar a ruta do vídeo</string>
-  <string name="download_folder_failed_content">Non foi posíbel completar a descarga do cartafol %1$s</string>
+  <string name="sync_folder_failed_content">A sincronización do cartafol %1$s non se completou</string>
   <string name="shared_subject_header">compartido</string>
   <string name="with_you_subject_header">con vostede</string>
-  <string name="subject_token">%1$s compartiu «%2$s» con vostede</string>
-  <string name="saml_subject_token">«%1$s» foi compartido con vostede</string>
+  <string name="subject_user_shared_with_you">%1$s compartiu «%2$s» con vostede</string>
+  <string name="subject_shared_with_you">«%1$s» foi compartido con vostede</string>
   <string name="auth_refresh_button">Actualizar a conexión</string>
   <string name="auth_host_address">Enderezo do servidor</string>
   <string name="common_error_out_memory">Non hai memoria abondo</string>
@@ -327,4 +332,15 @@ Descárgueo de aquí: %2$s</string>
   <string name="file_list__footer__files">%1$d ficheiros</string>
   <string name="file_list__footer__files_and_folder">%1$d ficheiros, 1 cartafol</string>
   <string name="file_list__footer__files_and_folders">%1$d ficheiros, %2$d cartafoles</string>
+  <string name="share_dialog_title">Compartindo</string>
+  <string name="share_no_users">Aínda non hai datos compartidos con usuarios</string>
+  <string name="share_add_user_or_group">Engadir Usuario ou Grupo</string>
+  <string name="share_via_link_section_title">Ligazón para compartir</string>
+  <string name="share_via_link_expiration_date_label">Definir a data de caducidade</string>
+  <string name="share_via_link_password_label">Protexido con contrasinal</string>
+  <string name="share_search">Buscar</string>
+  <string name="search_users_and_groups_hint">Buscar usuarios e grupos</string>
+  <string name="share_group_clarification">%1$s (grupo)</string>
+  <string name="share_sharee_unavailable">Sentímolo, pero a versión do seu servidor non permite compartir con usuarios desde o cliente.
+\nPor favor contacte co seu administrador</string>
 </resources>
index 669a55b..693c69e 100644 (file)
@@ -17,6 +17,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">פתיחה</string>
   <string name="prefs_category_general">כללי</string>
   <string name="prefs_category_more">יותר</string>
   <string name="prefs_accounts">חשבונות</string>
   <string name="filedetails_created">מועד היצירה:</string>
   <string name="filedetails_modified">מועד השינוי:</string>
   <string name="filedetails_download">הורדה</string>
-  <string name="filedetails_sync_file">רענון קובץ</string>
   <string name="filedetails_renamed_in_upload_msg">שם הקובץ השתנה ל־ %1$s במהלך ההעלאה</string>
-  <string name="action_share_file">קישור לשיתוף</string>
-  <string name="action_unshare_file">ביטול קישור לשיתוף</string>
+  <string name="action_share">שיתוף</string>
   <string name="common_yes">כן</string>
   <string name="common_no">לא</string>
   <string name="common_ok">אישור</string>
-  <string name="common_cancel_download">ביטול ההורדה</string>
-  <string name="common_cancel_upload">ביטול ההעלאה</string>
   <string name="common_cancel">ביטול</string>
   <string name="common_save_exit">לשמור ולצאת</string>
   <string name="common_error">שגיאה</string>
   <string name="favorite">מועדף</string>
   <string name="common_rename">שינוי שם</string>
   <string name="common_remove">הסרה</string>
-  <string name="confirmation_remove_alert">האם באמת להסיר %1$s?</string>
+  <string name="confirmation_remove_file_alert">האם באמת להסיר %1$s?</string>
   <string name="confirmation_remove_folder_alert">האם באמת להסיר %1$s ואת כל התכולה?</string>
   <string name="confirmation_remove_local">מקומי בלבד</string>
-  <string name="confirmation_remove_folder_local">תכנים מקומיים בלבד</string>
-  <string name="confirmation_remove_remote">הסרה מהשרת</string>
-  <string name="confirmation_remove_remote_and_local">מרוחק ומקומי</string>
+  <string name="confirmation_remove_folder_local">מקומי בלבד</string>
   <string name="remove_success_msg">ההסרה הצליחה</string>
   <string name="remove_fail_msg">ההסרה נכשלה</string>
   <string name="rename_dialog_title">נא להזין שם חדש</string>
   <string name="downloader_download_file_not_found">הקובץ אינו זמין יותר על השרת</string>
   <string name="prefs_category_accounts">חשבונות</string>
   <string name="prefs_add_account">הוספת חשבון</string>
+  <string name="auth_redirect_non_secure_connection_title">חיבור מאובטח מנותב דרך נתיב לא מאובטח</string>
   <string name="folder_picker_choose_button_text">בחירה</string>
   <string name="prefs_category_security">אבטחה</string>
   <string name="auth_host_address">כתובת שרת</string>
+  <string name="share_dialog_title">שיתוף</string>
+  <string name="share_via_link_section_title">קישור לשיתוף</string>
+  <string name="share_via_link_expiration_date_label">הגדרת תאריך תפוגה</string>
+  <string name="share_via_link_password_label">הגנה בססמה</string>
+  <string name="share_search">חיפוש</string>
 </resources>
index 56e55a1..37e6152 100644 (file)
@@ -1,4 +1,10 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <resources>
+  <!--TODO re-enable when server-side folder size calculation is available   
+       <item>Biggest - Smallest</item>-->
+  <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
+  <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <!--TODO re-enable when "On Device" is available
+    <string name="drawer_item_on_device">On device</string>-->
   <string name="empty"></string>
 </resources>
index 9173a6d..ae1a5d7 100644 (file)
@@ -17,6 +17,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">खोलें</string>
   <string name="prefs_category_general">सामान्य </string>
   <string name="prefs_category_more">और अधिक</string>
   <string name="prefs_accounts">खाते </string>
@@ -27,6 +28,7 @@
   <string name="setup_btn_connect">जुड़ें </string>
   <string name="uploader_btn_upload_text">अपलोड </string>
   <string name="uploader_btn_new_folder_text">नया फ़ोल्डर</string>
+  <string name="action_share">साझा करें</string>
   <string name="common_cancel">रद्द करें </string>
   <string name="common_error">त्रुटि</string>
   <string name="ssl_validator_btn_details_see">विवरण </string>
index 1ada651..7e42269 100644 (file)
@@ -23,6 +23,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Otvorite</string>
   <string name="prefs_category_general">Općenito</string>
   <string name="prefs_category_more">više</string>
   <string name="prefs_accounts">Korisnićki računi</string>
   <string name="file_list_seconds_ago">prije par sekundi</string>
   <string name="file_list_empty">Nema ničega u ovoj mapi. Pošalji nešto!</string>
   <string name="filedetails_download">Preuzimanje</string>
-  <string name="action_share_file">Podijelite vezu</string>
+  <string name="action_share">Dijeljenje</string>
   <string name="common_yes">Da</string>
   <string name="common_no">Ne</string>
   <string name="common_ok">U redu</string>
-  <string name="common_cancel_upload">Prekini upload</string>
   <string name="common_cancel">Odustani</string>
   <string name="common_error">Greška</string>
   <string name="common_error_unknown">Nepoznata pogreška</string>
@@ -65,4 +65,9 @@
   <string name="folder_picker_choose_button_text">Odaberite</string>
   <string name="prefs_category_security">Sigurnost</string>
   <string name="auth_host_address">Adresa poslužitelja</string>
+  <string name="share_dialog_title">Dijeljenje zajedničkih resursa</string>
+  <string name="share_via_link_section_title">Podijelite vezu</string>
+  <string name="share_via_link_expiration_date_label">Odredite datum isteka</string>
+  <string name="share_via_link_password_label">Zaštititi lozinkom</string>
+  <string name="share_search">pretraži</string>
 </resources>
index 6fc1193..3fb3b79 100644 (file)
   <string name="actionbar_settings">Beállítások</string>
   <string name="actionbar_see_details">Részletek</string>
   <string name="actionbar_send_file">Küldjük el</string>
+  <string name="actionbar_sort">Rendezés</string>
+  <string name="actionbar_sort_title">Rendezés elve</string>
+  <string-array name="actionbar_sortby">
+    <item>A-Z</item>
+    <item>Újabb - régebbi</item>
+  </string-array>
   <!--TODO re-enable when server-side folder size calculation is available   
        <item>Biggest - Smallest</item>-->
   <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
   <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <string name="drawer_item_all_files">Összes fájl</string>
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
   <string name="drawer_item_settings">Beállítások</string>
+  <string name="drawer_item_logs">Naplófájlok</string>
+  <string name="drawer_close">Bezárás</string>
+  <string name="drawer_open">Megnyitás</string>
   <string name="prefs_category_general">Általános</string>
   <string name="prefs_category_more">Több</string>
   <string name="prefs_accounts">Fiókok</string>
@@ -35,6 +45,7 @@
   <string name="prefs_recommend">Ajánlja egy barátjának</string>
   <string name="prefs_feedback">Visszajelzés</string>
   <string name="prefs_imprint">Impresszum</string>
+  <string name="prefs_remember_last_share_location">Emlékezzen a megosztás helyére</string>
   <string name="recommend_subject">Próbálja ki %1$s-t az okostelefonján!</string>
   <string name="auth_check_server">Szerver állapot ellenörzés</string>
   <string name="auth_host_url">Kiszolgáló címe https://...</string>
@@ -56,6 +67,7 @@
   <string name="uploader_info_uploading">Feltöltés</string>
   <string name="file_list_seconds_ago">pár másodperce</string>
   <string name="file_list_empty">Itt nincs semmi. Töltsön fel valamit!</string>
+  <string name="file_list_loading">Betöltés...</string>
   <string name="local_file_list_empty">Nincs fájl ebben a mappában.</string>
   <string name="filedetails_select_file">Érintsen meg egy fájlt a további információkért.</string>
   <string name="filedetails_size">Méret:</string>
   <string name="filedetails_created">Készült:</string>
   <string name="filedetails_modified">Módosítva:</string>
   <string name="filedetails_download">Letöltés</string>
-  <string name="filedetails_sync_file">File frissítése</string>
+  <string name="filedetails_sync_file">Szinkronizálás</string>
   <string name="filedetails_renamed_in_upload_msg">A feltöltés során az állmányt erre neveztük át: %1$s</string>
-  <string name="action_share_file">Megosztás hivatkozással</string>
-  <string name="action_unshare_file">Megosztás visszavonása</string>
+  <string name="list_layout">Lista Elrendezés</string>
+  <string name="action_share">Megosztás</string>
   <string name="common_yes">Igen</string>
   <string name="common_no">Nem</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">A letöltés megszakítása</string>
-  <string name="common_cancel_upload">A feltöltés megszakítása</string>
+  <string name="common_cancel_sync">Szinkronizálás megállítása</string>
   <string name="common_cancel">Mégsem</string>
   <string name="common_save_exit">Mentés &amp; Kilépés</string>
   <string name="common_error">Hiba</string>
   <string name="auth_no_net_conn_title">Nincs hálózati kapcsolat</string>
   <string name="auth_nossl_plain_ok_title">Nem érhető el biztonságos kapcsolat.</string>
   <string name="auth_connection_established">A kapcsolat létrejött</string>
+  <string name="auth_testing_connection">Kapcsolat ellenőrzése</string>
   <string name="auth_not_configured_title">Hibás a kiszolgáló beállítása</string>
   <string name="auth_account_not_new">Egy bejelentkezési beállítás már létezik ugyanehhez a kiszolgálóhoz és felhasználóhoz</string>
   <string name="auth_account_not_the_same">A megadott felhasználó nem azonos ezzel a belépési jogosultsággal</string>
   <string name="unfavorite">Nem kedvenc</string>
   <string name="common_rename">Átnevezés</string>
   <string name="common_remove">Eltávolítás</string>
-  <string name="confirmation_remove_alert">Tényleg el akarod távolítani %1$s?</string>
+  <string name="confirmation_remove_file_alert">Tényleg el akarod távolítani %1$s?</string>
   <string name="confirmation_remove_folder_alert">Tényleg el akarod távolítani a %1$s és tartalmát?</string>
   <string name="confirmation_remove_local">Csak a helyi példány</string>
-  <string name="confirmation_remove_folder_local">Csak a helyi tartalmat</string>
-  <string name="confirmation_remove_remote">Törlés a szerverről</string>
-  <string name="confirmation_remove_remote_and_local">A szerveren levő és a helyi példány törlése</string>
+  <string name="confirmation_remove_folder_local">Csak a helyi példány</string>
   <string name="remove_success_msg">Az eltávolítás sikerült</string>
   <string name="remove_fail_msg">Az eltávolítás nem sikerült</string>
   <string name="rename_dialog_title">Adj meg egy új nevet</string>
   <string name="sync_file_nothing_to_do_msg">Az állományok már szinkonizálva vannak</string>
   <string name="create_dir_fail_msg">A könyvtárt nem lehet létrehozni</string>
   <string name="filename_forbidden_characters">Nem megendedett karakterek: / \\ &lt; &gt; : \" | ? *</string>
+  <string name="filename_forbidden_charaters_from_server">A fájlnév legalább egy érvénytelen karaktert tartalmaz!</string>
   <string name="filename_empty">A fájl név nem lehet üres</string>
   <string name="wait_a_moment">Egy pillanat...</string>
   <string name="filedisplay_unexpected_bad_get_content">Váratlan hiba; válassza ki a fájlt más programból</string>
   <string name="instant_video_upload_on_wifi">Videó feltöltés csak WIFI-vel</string>
   <string name="instant_upload_path">/InstantUpload</string>
   <string name="conflict_keep_both">Mindkettő megtartása</string>
+  <string name="conflict_use_local_version">helyi verzió</string>
+  <string name="conflict_use_server_version">szerver verzió</string>
   <string name="preview_image_description">Előnézeti kép</string>
   <string name="preview_image_error_unknown_format">Ez a kép nem jeleníthető meg</string>
   <string name="error__upload__local_file_not_copied">%1$s nem lehet másolni a %2$s helyi könyvtárba</string>
+  <string name="prefs_instant_upload_path_title">Feltöltési Elérési Út</string>
   <string name="share_link_file_error">Hiba lépett fel a mappa megosztásakor</string>
   <string name="unshare_link_file_error">Hiba lépett fel a mappa megosztásának visszavonásakor</string>
+  <string name="share_link_password_title">Jelszó beírása</string>
   <string name="activity_chooser_send_file_title">Küldjük el</string>
   <string name="copy_link">Link másolása</string>
   <string name="clipboard_text_copied">Bemásolva a vágólapra</string>
   <string name="actionbar_move">Mozgatás</string>
   <string name="folder_picker_choose_button_text">Válasszon</string>
   <string name="prefs_category_security">Biztonság</string>
+  <string name="shared_subject_header">megosztva</string>
+  <string name="with_you_subject_header">veled</string>
   <string name="auth_host_address">A kiszolgáló címe</string>
+  <string name="common_error_out_memory">Nincs elég memória</string>
+  <string name="username">Felhasználónév</string>
+  <string name="file_list__footer__folder">1 könyvtár</string>
+  <string name="file_list__footer__folders">%1$d könyvtár</string>
+  <string name="file_list__footer__file">1 fájl</string>
+  <string name="file_list__footer__file_and_folder">1 fájl, 1 könyvtár</string>
+  <string name="file_list__footer__file_and_folders">1 fájl, %1$d könyvtár</string>
+  <string name="file_list__footer__files">%1$d fájl</string>
+  <string name="file_list__footer__files_and_folder">%1$d fájl, 1 könyvtár</string>
+  <string name="file_list__footer__files_and_folders">%1$d fájl, %2$d könyvtár</string>
+  <string name="share_dialog_title">Megosztás</string>
+  <string name="share_via_link_section_title">Megosztás hivatkozással</string>
+  <string name="share_via_link_expiration_date_label">Legyen lejárati idő</string>
+  <string name="share_via_link_password_label">Jelszóval is védem</string>
+  <string name="share_search">Keresés</string>
 </resources>
index 4adc364..1debd95 100644 (file)
@@ -1,11 +1,46 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <resources>
+  <string name="about_version">տարբերակ %1$s</string>
+  <string name="actionbar_upload_files">Ֆայլեր</string>
+  <string name="actionbar_mkdir">Նոր պանակ</string>
+  <string name="actionbar_send_file">Ուղարկել</string>
   <!--TODO re-enable when server-side folder size calculation is available   
        <item>Biggest - Smallest</item>-->
   <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
   <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <string name="drawer_item_all_files">Բոլոր ֆայլերը</string>
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_close">Փակել</string>
+  <string name="drawer_open">Բացել</string>
+  <string name="auth_username">Օգտանուն</string>
+  <string name="auth_password">Գաղտնաբառ</string>
+  <string name="sync_string_files">Ֆայլեր</string>
+  <string name="uploader_btn_new_folder_text">Նոր պանակ</string>
+  <string name="file_list_seconds_ago">վրկ. առաջ</string>
+  <string name="filedetails_size">Չափս.</string>
   <string name="filedetails_download">Բեռնել</string>
+  <string name="action_share">Կիսվել</string>
+  <string name="common_yes">Այո</string>
+  <string name="common_no">Ոչ</string>
+  <string name="common_cancel">Չեղարկել</string>
+  <string name="common_error">Սխալ</string>
+  <string name="uploader_info_dirname">Պանակի անուն</string>
+  <string name="common_rename">Վերանվանել</string>
+  <string name="ssl_validator_label_C">Երկիր.</string>
+  <string name="ssl_validator_label_validity_from">Ումից.</string>
+  <string name="ssl_validator_label_validity_to">Ում.</string>
+  <string name="placeholder_filesize">389 ԿԲ</string>
+  <string name="activity_chooser_send_file_title">Ուղարկել</string>
   <string name="empty"></string>
+  <string name="username">Օգտանուն</string>
+  <string name="file_list__footer__folder">1 պանակ</string>
+  <string name="file_list__footer__folders">%1$d պանակ</string>
+  <string name="file_list__footer__file">1 ֆայլ</string>
+  <string name="file_list__footer__file_and_folder">1 ֆայլ, 1 պանակ</string>
+  <string name="file_list__footer__file_and_folders">1 ֆայլ, %1$d պանակ</string>
+  <string name="file_list__footer__files">%1$d ֆայլ</string>
+  <string name="file_list__footer__files_and_folder">%1$d ֆայլ, 1 պանակ</string>
+  <string name="file_list__footer__files_and_folders">%1$d ֆայլ, %2$d պանակ</string>
+  <string name="share_via_link_section_title">Կիսվել հղմամբ</string>
 </resources>
index d1cc465..402b64a 100644 (file)
@@ -11,6 +11,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Aperi</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Plus</string>
   <string name="prefs_accounts">Contos</string>
   <string name="filedetails_size">Dimension:</string>
   <string name="filedetails_type">Typo:</string>
   <string name="filedetails_download">Discargar</string>
-  <string name="action_share_file">Compartir ligamine</string>
+  <string name="action_share">Compartir</string>
   <string name="common_yes">Si</string>
   <string name="common_no">No</string>
   <string name="common_ok">Ok</string>
-  <string name="common_cancel_download">Cancellar discarga</string>
   <string name="common_cancel">Cancellar</string>
   <string name="common_error">Error</string>
   <string name="common_error_unknown">Error Incognite</string>
+  <string name="about_title">A proposito</string>
   <string name="change_password">Cambiar contrasigno</string>
   <string name="delete_account">Deler conto</string>
   <string name="uploader_info_dirname">Nomine de dossier</string>
@@ -44,4 +45,8 @@
   <string name="prefs_category_accounts">Contos</string>
   <string name="saml_authentication_wrong_pass">Contrasigno errate</string>
   <string name="folder_picker_choose_button_text">Seliger</string>
+  <string name="share_via_link_section_title">Compartir ligamine</string>
+  <string name="share_via_link_expiration_date_label">Fixa data de expiration</string>
+  <string name="share_via_link_password_label">Protegite per contrasigno</string>
+  <string name="share_search">Cercar</string>
 </resources>
index e45bdbe..295a8ed 100644 (file)
@@ -4,7 +4,7 @@
   <string name="about_version">versi %1$s</string>
   <string name="actionbar_sync">Segarkan akun</string>
   <string name="actionbar_upload">Unggah</string>
-  <string name="actionbar_upload_from_apps">Konten dari apl lain</string>
+  <string name="actionbar_upload_from_apps">Konten dari aplikasi lain</string>
   <string name="actionbar_upload_files">Berkas</string>
   <string name="actionbar_open_with">Buka dengan</string>
   <string name="actionbar_mkdir">Folder baru</string>
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Pengaturan</string>
   <string name="drawer_item_logs">Log</string>
   <string name="drawer_close">Tutup</string>
+  <string name="drawer_open">Buka</string>
   <string name="prefs_category_general">Umum</string>
   <string name="prefs_category_more">Lainnya</string>
   <string name="prefs_accounts">Akun</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">beberapa detik yang lalu</string>
   <string name="file_list_empty">Tidak ada apa-apa di sini. Unggah sesuatu!</string>
   <string name="file_list_loading">Memuat...</string>
+  <string name="file_list_no_app_for_file_type">Aplikasi tidak ditemukan untuk tipe berkas ini!</string>
   <string name="local_file_list_empty">Tidak ada satupun berkas dalam folder ini.</string>
   <string name="filedetails_select_file">Sentuh pada berkas untuk menampilkan informasi tambahan</string>
   <string name="filedetails_size">Ukuran:</string>
   <string name="filedetails_created">Dibuat:</string>
   <string name="filedetails_modified">Diubah:</string>
   <string name="filedetails_download">Unduh</string>
-  <string name="filedetails_sync_file">Segarkan berkas</string>
   <string name="filedetails_renamed_in_upload_msg">Berkas diubah namanya menjadi %1$s saat pengunggahan</string>
   <string name="list_layout">Daftar Tata Letak</string>
-  <string name="action_share_file">Bagikan tautan</string>
-  <string name="action_unshare_file">Batal bagikan tautan</string>
+  <string name="action_share">Bagikan</string>
   <string name="common_yes">Ya</string>
   <string name="common_no">Tidak</string>
   <string name="common_ok">Oke</string>
-  <string name="common_cancel_download">Batal mengunduh</string>
-  <string name="common_cancel_upload">Batal mengunggah</string>
   <string name="common_cancel">Batal</string>
   <string name="common_save_exit">Simpan &amp; Keluar</string>
   <string name="common_error">Kesalahan</string>
   <string name="common_loading">Memuat ...</string>
-  <string name="common_error_unknown">Galat tidak diketahui</string>
+  <string name="common_error_unknown">Kesalahan tidak diketahui</string>
   <string name="about_title">Tentang</string>
   <string name="change_password">Ubah sandi</string>
   <string name="delete_account">Hapus akun</string>
   <string name="foreign_files_success">Semua berkas sudah dipindahkan</string>
   <string name="foreign_files_fail">Beberapa berkas tidak dapat dipindahkan</string>
   <string name="foreign_files_local_text">Lokal: %1$s</string>
-  <string name="foreign_files_remote_text">Jauh: %1$s</string>
+  <string name="foreign_files_remote_text">Remote: %1$s</string>
   <string name="upload_query_move_foreign_files">Ruang tidak cukup untuk menyalin berkas terpilih kedalam folder %1$s. Apakah Anda ingin memindahkannya saja?</string>
   <string name="pass_code_enter_pass_code">Silakan masukkan kode sandi Anda</string>
   <string name="pass_code_configure_your_pass_code">Masukkan kode sandi Anda</string>
   <string name="media_event_done">%1$s pemutaran selesai</string>
   <string name="media_err_nothing_to_play">Tidak ditemukan berkas media</string>
   <string name="media_err_no_account">Tidak ada akun yang diberikan</string>
-  <string name="media_err_not_in_owncloud">Brkas tidak didalam akun yang sah</string>
+  <string name="media_err_not_in_owncloud">Berkas tidak didalam akun yang sah</string>
   <string name="media_err_unsupported">Kodek media tidak didukung</string>
   <string name="media_err_io">Berkas media tidak dapat dibaca</string>
   <string name="media_err_malformed">Berkas media tidak di enkode dengan benar</string>
   <string name="unfavorite">Hapus favorit</string>
   <string name="common_rename">Ubah nama</string>
   <string name="common_remove">Hapus</string>
-  <string name="confirmation_remove_alert">Apakah Anda yakin ingin menghapus %1$s?</string>
+  <string name="confirmation_remove_file_alert">Apakah Anda yakin ingin menghapus %1$s?</string>
   <string name="confirmation_remove_folder_alert">Apakah Anda yakin ingin menghapus %1$s dan isinya?</string>
   <string name="confirmation_remove_local">Lokal saja</string>
-  <string name="confirmation_remove_folder_local">Konten lokal saja</string>
-  <string name="confirmation_remove_remote">Hapus dari server</string>
-  <string name="confirmation_remove_remote_and_local">Jarak jauh dan lokal</string>
+  <string name="confirmation_remove_folder_local">Lokal saja</string>
+  <string name="confirmation_remove_file_remote">Dari server</string>
+  <string name="confirmation_remove_remote_and_local">Remot &amp; lokal</string>
   <string name="remove_success_msg">Penghapusan berhasil</string>
   <string name="remove_fail_msg">Penghapusan gagal</string>
   <string name="rename_dialog_title">Masukkan nama baru</string>
   <string name="instant_upload_on_wifi">Hanya unggah gambar via WiFi</string>
   <string name="instant_video_upload_on_wifi">Hanya unggah video via WiFi</string>
   <string name="instant_upload_path">/UnggahInstan</string>
+  <string name="conflict_title">Berkas konflik</string>
+  <string name="conflict_message">Berkas mana yang ingin Anda simpan? Jika Anda memilih kedua versi, berkas lokal akan memiliki angka yang ditambahkan pada namanya.</string>
   <string name="conflict_keep_both">Biarkan keduannya</string>
+  <string name="conflict_use_local_version">versi lokal</string>
+  <string name="conflict_use_server_version">versi server</string>
   <string name="preview_image_description">Pratilik gambar</string>
   <string name="preview_image_error_unknown_format">Gambar ini tidak dapat ditampilkan</string>
   <string name="error__upload__local_file_not_copied">%1$s tidak dapat disalin ke folder lokal %2$s</string>
   <string name="downloader_download_file_not_found">Berkas tidak lagi tersedia pada server</string>
   <string name="prefs_category_accounts">Akun</string>
   <string name="prefs_add_account">Tambah akun</string>
-  <string name="auth_redirect_non_secure_connection_title">Sambungan aman dialihkan ke rute yang tidak aman.</string>
+  <string name="auth_redirect_non_secure_connection_title">Sambungan aman dialihkan melalui rute yang tidak aman.</string>
   <string name="actionbar_logger">Log</string>
   <string name="log_send_history_button">Kirim Riwayat</string>
   <string name="log_send_no_mail_app">Tidak ada apl untuk mengirim log. Instal apl mail!</string>
   <string name="move_file_invalid_overwrite">Berkas sudah ada didalam folder tujuan</string>
   <string name="move_file_error">Terjadi kesalahan saat mencoba memindahkan berkas atau folder ini</string>
   <string name="forbidden_permissions_move">untuk memindahkan berkas ini</string>
+  <string name="copy_file_not_found">Tidak dapat menyalin. Silakan periksa apakah berkas ada</string>
+  <string name="copy_file_invalid_into_descendent">Tidak mungkin menyalin folder kedalam turunannya</string>
+  <string name="copy_file_invalid_overwrite">Berkas sudah ada didalam folder tujuan</string>
+  <string name="copy_file_error">Terjadi kesalahan ketika mencoba menyalin berkas atau folder ini</string>
+  <string name="forbidden_permissions_copy">untuk menyalin berkas ini</string>
   <string name="prefs_category_instant_uploading">Unggah Cepat</string>
   <string name="prefs_category_security">Keamanan</string>
   <string name="prefs_instant_video_upload_path_title">Unggah Lokasi Video</string>
-  <string name="download_folder_failed_content">Mengunduh folder %1$s  tidak selesai</string>
   <string name="shared_subject_header">dibagikan</string>
   <string name="with_you_subject_header">kepada Anda</string>
-  <string name="subject_token">%1$s dibagikan \"%2$s\" kepada Anda</string>
+  <string name="subject_user_shared_with_you">%1$s dibagikan \"%2$s\" kepada Anda</string>
+  <string name="subject_shared_with_you">\"%1$s\" telah membagikan dengan Anda</string>
   <string name="auth_refresh_button">Menyegarkan sambungan</string>
   <string name="auth_host_address">Alamat server</string>
   <string name="common_error_out_memory">Memori tidak cukup</string>
   <string name="file_list__footer__files">%1$d berkas</string>
   <string name="file_list__footer__files_and_folder">%1$d berkas, 1 folder</string>
   <string name="file_list__footer__files_and_folders">%1$d berkas, %2$d folder</string>
+  <string name="share_dialog_title">Berbagi</string>
+  <string name="share_no_users">Tidak ada data yang dibagikan dengan pengguna</string>
+  <string name="share_add_user_or_group">Tambah Pengguna atau Grup</string>
+  <string name="share_via_link_section_title">Bagikan tautan</string>
+  <string name="share_via_link_expiration_date_label">Atur tanggal kedaluwarsa</string>
+  <string name="share_via_link_password_label">Lindungi dengan sandi</string>
+  <string name="share_search">Cari</string>
 </resources>
index ac8f0ec..3e89b52 100644 (file)
@@ -10,6 +10,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Opna</string>
   <string name="prefs_category_more">Meira</string>
   <string name="prefs_help">Hjálp</string>
   <string name="auth_username">Notendanafn</string>
   <string name="file_list_seconds_ago">sek.</string>
   <string name="file_list_empty">Ekkert hér. Settu eitthvað inn!</string>
   <string name="filedetails_download">Niðurhal</string>
+  <string name="action_share">Deila</string>
   <string name="common_yes">Já</string>
   <string name="common_no">Nei</string>
   <string name="common_ok">Í lagi</string>
-  <string name="common_cancel_upload">Hætta við innsendingu</string>
   <string name="common_cancel">Hætta við</string>
   <string name="common_error"><strong>Villa</strong></string>
   <string name="change_password">Breyta lykilorði</string>
   <string name="common_remove">Fjarlægja</string>
   <string name="activity_chooser_send_file_title">Senda</string>
   <string name="empty"></string>
+  <string name="actionbar_move">Færa</string>
   <string name="folder_picker_choose_button_text">Veldu</string>
   <string name="auth_host_address">Host nafn netþjóns</string>
+  <string name="share_via_link_section_title">Deila hlekk</string>
+  <string name="share_via_link_expiration_date_label">Setja gildistíma</string>
+  <string name="share_via_link_password_label">Verja með lykilorði</string>
+  <string name="share_search">Leita</string>
 </resources>
index c0e9d98..49b5ce2 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Impostazioni</string>
   <string name="drawer_item_logs">Registri</string>
   <string name="drawer_close">Chiudi</string>
+  <string name="drawer_open">Apri</string>
   <string name="prefs_category_general">Generale</string>
   <string name="prefs_category_more">Altro</string>
   <string name="prefs_accounts">Account</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">secondi fa</string>
   <string name="file_list_empty">Non c\'è niente qui. Carica qualcosa!</string>
   <string name="file_list_loading">Caricamento in corso...</string>
+  <string name="file_list_no_app_for_file_type">Nessuna applicazione trovata per il tipo di file.</string>
   <string name="local_file_list_empty">Non ci sono file in questa cartella.</string>
   <string name="filedetails_select_file">Tocca un file per visualizzare informazioni aggiuntive.</string>
   <string name="filedetails_size">Dimensione:</string>
   <string name="filedetails_created">Creato:</string>
   <string name="filedetails_modified">Modificato:</string>
   <string name="filedetails_download">Scarica</string>
-  <string name="filedetails_sync_file">Aggiorna file</string>
+  <string name="filedetails_sync_file">Sincronizza</string>
   <string name="filedetails_renamed_in_upload_msg">Il file è stato rinominato in %1$s durante il caricamento</string>
   <string name="list_layout">Struttura elenco</string>
-  <string name="action_share_file">Condividi collegamento</string>
-  <string name="action_unshare_file">Rimuovi condivisione collegamento</string>
+  <string name="action_share">Condividi</string>
   <string name="common_yes">Sì</string>
   <string name="common_no">No</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Annulla lo scaricamento</string>
-  <string name="common_cancel_upload">Annulla caricamento</string>
+  <string name="common_cancel_sync">Annulla sincronizzazione</string>
   <string name="common_cancel">Annulla</string>
   <string name="common_save_exit">Salva ed esci</string>
   <string name="common_error">Errore</string>
   <string name="unfavorite">Rimuovi dai preferiti</string>
   <string name="common_rename">Rinomina</string>
   <string name="common_remove">Rimuovi</string>
-  <string name="confirmation_remove_alert">Vuoi davvero rimuovere %1$s?</string>
+  <string name="confirmation_remove_file_alert">Vuoi davvero rimuovere %1$s?</string>
   <string name="confirmation_remove_folder_alert">Vuoi davvero rimuovere %1$s e il suo contenuto?</string>
   <string name="confirmation_remove_local">Solo localmente</string>
-  <string name="confirmation_remove_folder_local">Solo contenuti locali</string>
-  <string name="confirmation_remove_remote">Rimuovi dal server</string>
-  <string name="confirmation_remove_remote_and_local">Sia remoto che locale</string>
+  <string name="confirmation_remove_folder_local">Solo locale</string>
+  <string name="confirmation_remove_file_remote">Dal server</string>
+  <string name="confirmation_remove_remote_and_local">Remota e locale</string>
   <string name="remove_success_msg">Rimozione effettuata con successo</string>
   <string name="remove_fail_msg">La rimozione non può essere completata</string>
   <string name="rename_dialog_title">Digita un nuovo nome</string>
   <string name="ssl_validator_label_validity_to">A:</string>
   <string name="ssl_validator_label_signature">Firma:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritmo:</string>
+  <string name="digest_algorithm_not_available">Questo algoritmo digest non è disponibile sul tuo telefono.</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Impronta digitale:</string>
+  <string name="certificate_load_problem">Si è verificato un problema durante il caricamento del certificato.</string>
   <string name="ssl_validator_null_cert">Il certificato non può essere mostrato.</string>
   <string name="ssl_validator_no_info_about_error">- Nessuna informazione sull\'errore</string>
   <string name="placeholder_sentence">Questo è un segnaposto</string>
   <string name="conflict_title">File in conflitto</string>
   <string name="conflict_message">Quali file vuoi tenere? Se selezioni entrambi le versioni, il file locale avrà un numero aggiunto al suo nome.</string>
   <string name="conflict_keep_both">Mantieni entrambi</string>
-  <string name="conflict_use_local_version">Usa la versione locale</string>
-  <string name="conflict_use_server_version">Usa la versione del server</string>
+  <string name="conflict_use_local_version">Versione locale</string>
+  <string name="conflict_use_server_version">versione del server</string>
   <string name="preview_image_description">Anteprima dell\'immagine</string>
   <string name="preview_image_error_unknown_format">Questa immagine non può essere mostrata</string>
   <string name="error__upload__local_file_not_copied">%1$s non può essere copiato nella cartella locale %2$s</string>
   <string name="share_link_file_error">Si è verificato un errore durante il tentativo di condivisione del file o della cartella</string>
   <string name="unshare_link_file_no_exist">Impossibile rimuovere dalla condivisione. Assicurati che il file esista</string>
   <string name="unshare_link_file_error">Si è verificato un errore durante il tentativo di rimuovere la condivisione del file o della cartella</string>
+  <string name="update_link_file_no_exist">Impossibile aggiornare. Assicurati che il file esista</string>
+  <string name="update_link_file_error">Si è verificato un errore durante il tentativo di aggiornare il collegamento condiviso</string>
   <string name="share_link_password_title">Digita una password</string>
   <string name="share_link_empty_password">Devi digitare una password</string>
   <string name="activity_chooser_send_file_title">Invia</string>
   <string name="forbidden_permissions_delete">per eliminare questo file</string>
   <string name="share_link_forbidden_permissions">per condividere questo file</string>
   <string name="unshare_link_forbidden_permissions">per rimuovere la condivisione di questo file</string>
+  <string name="update_link_forbidden_permissions">per aggiornare questo collegamento condiviso</string>
   <string name="forbidden_permissions_create">per creare il file</string>
   <string name="uploader_upload_forbidden_permissions">per caricare in questa cartella</string>
   <string name="downloader_download_file_not_found">Il file non è più disponibile sul server</string>
   <string name="prefs_category_accounts">Account</string>
   <string name="prefs_add_account">Aggiungi account</string>
-  <string name="auth_redirect_non_secure_connection_title">La connessione sicura è rediretta su un percorso non sicuro.</string>
+  <string name="auth_redirect_non_secure_connection_title">La connessione sicura è rediretta attraverso un percorso non sicuro.</string>
   <string name="actionbar_logger">Registri</string>
   <string name="log_send_history_button">Invia cronologia</string>
   <string name="log_send_no_mail_app">Non è stata trovata alcuna applicazione per l\'invio dei registri. Installa l\'applicazione mail!</string>
   <string name="move_file_invalid_overwrite">Il file esiste già nella cartella di destinazione</string>
   <string name="move_file_error">Si è verificato un errore durante il tentativo di spostare il file o la cartella</string>
   <string name="forbidden_permissions_move">per spostare questo file</string>
+  <string name="copy_file_not_found">Impossibile copiare. Assicurati che il file esista</string>
+  <string name="copy_file_invalid_into_descendent">Impossibile copiare una cartella in una cartella inferiore</string>
+  <string name="copy_file_invalid_overwrite">Il file esiste già nella cartella di destinazione</string>
+  <string name="copy_file_error">Si è verificato un errore durante il tentativo di copiare il file o la cartella</string>
+  <string name="forbidden_permissions_copy">per copiare questo file</string>
   <string name="prefs_category_instant_uploading">Caricamenti istantanei</string>
   <string name="prefs_category_security">Protezione</string>
   <string name="prefs_instant_video_upload_path_title">Percorso di caricamento video</string>
-  <string name="download_folder_failed_content">Lo scaricamento della cartella %1$s non può essere completato</string>
+  <string name="sync_folder_failed_content">La sincronizzazione della cartella %1$s non può essere completata</string>
   <string name="shared_subject_header">condiviso</string>
   <string name="with_you_subject_header">con te</string>
-  <string name="subject_token">%1$s ha condiviso \"%2$s\" con te</string>
-  <string name="saml_subject_token">\"%1$s\" è stato condiviso con te</string>
+  <string name="subject_user_shared_with_you">%1$s ha condiviso \"%2$s\" con te</string>
+  <string name="subject_shared_with_you">\"%1$s\" è stato condiviso con te</string>
   <string name="auth_refresh_button">Aggiorna la connessione</string>
   <string name="auth_host_address">Indirizzo del server</string>
   <string name="common_error_out_memory">Memoria insufficiente</string>
   <string name="file_list__footer__files">%1$d file</string>
   <string name="file_list__footer__files_and_folder">%1$d file, 1 cartella</string>
   <string name="file_list__footer__files_and_folders">%1$d file, %2$d cartelle</string>
+  <string name="share_dialog_title">Condivisione</string>
+  <string name="share_with_user_section_title">Condividi con utenti e gruppi</string>
+  <string name="share_no_users">Ancora nessun dato condiviso con gli utenti </string>
+  <string name="share_add_user_or_group">Aggiungi utente o gruppo</string>
+  <string name="share_via_link_section_title">Condividi collegamento</string>
+  <string name="share_via_link_expiration_date_label">Imposta data di scadenza</string>
+  <string name="share_via_link_password_label">Proteggi con password</string>
+  <string name="share_via_link_password_title">Protetto</string>
+  <string name="share_get_public_link_button">Ottieni collegamento</string>
+  <string name="share_search">Cerca</string>
+  <string name="search_users_and_groups_hint">Cerca utenti e gruppi</string>
+  <string name="share_group_clarification">%1$s (gruppo)</string>
+  <string name="share_sharee_unavailable">Spiacenti, la versione del tuo server non consente la condivisione con utenti dai client.
+\nContatta il tuo amministratore.</string>
 </resources>
index 9034202..f646128 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">設定</string>
   <string name="drawer_item_logs">ログ</string>
   <string name="drawer_close">閉じる</string>
+  <string name="drawer_open">開く</string>
   <string name="prefs_category_general">一般</string>
   <string name="prefs_category_more">もっと見る</string>
   <string name="prefs_accounts">アカウント</string>
@@ -71,6 +72,7 @@
   <string name="file_list_seconds_ago">数秒前</string>
   <string name="file_list_empty">ここには何もありません。何かアップロードしてください。</string>
   <string name="file_list_loading">読込中...</string>
+  <string name="file_list_no_app_for_file_type">この種類のファイルに対応するアプリはありません!</string>
   <string name="local_file_list_empty">このフォルダーにはファイルがありません。</string>
   <string name="filedetails_select_file">ファイルをタップすると追加情報が表示されます。</string>
   <string name="filedetails_size">サイズ:</string>
   <string name="filedetails_sync_file">ファイルを同期</string>
   <string name="filedetails_renamed_in_upload_msg">アップロード中にファイル名を %1$s に変更しました</string>
   <string name="list_layout">リストレイアウト</string>
-  <string name="action_share_file">URLで共有</string>
-  <string name="action_unshare_file">未共有のリンク</string>
+  <string name="action_share">共有</string>
   <string name="common_yes">はい</string>
   <string name="common_no">いいえ</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">ダウンロードをキャンセル</string>
-  <string name="common_cancel_upload">アップロードをキャンセル</string>
+  <string name="common_cancel_sync">同期をキャンセル</string>
   <string name="common_cancel">キャンセル</string>
   <string name="common_save_exit">保存して終了</string>
   <string name="common_error">エラー</string>
   <string name="unfavorite">お気に入りを解除</string>
   <string name="common_rename">名前を変更</string>
   <string name="common_remove">削除</string>
-  <string name="confirmation_remove_alert">本当に %1$s を削除しますか?</string>
+  <string name="confirmation_remove_file_alert">本当に %1$s を削除しますか?</string>
   <string name="confirmation_remove_folder_alert">本当に %1$s およびそのコンテンツを削除してもよろしいですか?</string>
   <string name="confirmation_remove_local">ローカルのみ</string>
-  <string name="confirmation_remove_folder_local">ã\83­ã\83¼ã\82«ã\83«ã\82³ã\83³ã\83\86ã\83³ã\83\84ã\81®ã\81¿</string>
-  <string name="confirmation_remove_remote">サーバーから削除</string>
+  <string name="confirmation_remove_folder_local">ローカルのみ</string>
+  <string name="confirmation_remove_remote">サーバーから</string>
   <string name="confirmation_remove_remote_and_local">リモートとローカルの両方</string>
   <string name="remove_success_msg">削除に成功しました</string>
   <string name="remove_fail_msg">削除を完了できませんでした</string>
   <string name="ssl_validator_label_validity_to">先:</string>
   <string name="ssl_validator_label_signature">署名:</string>
   <string name="ssl_validator_label_signature_algorithm">アルゴリズム:</string>
+  <string name="digest_algorithm_not_available">このスマートフォンでは、ダイジェストアルゴリズムが利用できません。</string>
+  <string name="ssl_validator_label_certificate_fingerprint">フィンガープリント:</string>
+  <string name="certificate_load_problem">証明書の読み込みに問題がありました。</string>
   <string name="ssl_validator_null_cert">証明書が表示できません。</string>
   <string name="ssl_validator_no_info_about_error">-エラーについての詳細情報はありません</string>
   <string name="placeholder_sentence">これはプレースホルダです</string>
   <string name="instant_upload_on_wifi">WiFi経由でのみ画像をアップロード</string>
   <string name="instant_video_upload_on_wifi">WiFi経由でのみ動画をアップロード</string>
   <string name="instant_upload_path">/InstantUpload</string>
+  <string name="conflict_title">ファイルが競合</string>
+  <string name="conflict_message">どちらのファイルを保存したいですか?両方のバージョンを選択した場合は、ファイル名の後ろに数字を追加したファイルのコピーを作成します。</string>
   <string name="conflict_keep_both">両方を保持</string>
+  <string name="conflict_use_local_version">ローカルのもの</string>
+  <string name="conflict_use_server_version">サーバーのもの</string>
   <string name="preview_image_description">イメージプレビュー</string>
   <string name="preview_image_error_unknown_format">この画像は表示できません</string>
   <string name="error__upload__local_file_not_copied">%1$s は、ローカルフォルダー %2$s  にコピーできませんでした。</string>
   <string name="share_link_file_error">このファイルまたはフォルダーを共有する際にエラーが発生しました</string>
   <string name="unshare_link_file_no_exist">共有を解除できません。ファイルがあるか確認してください。</string>
   <string name="unshare_link_file_error">このファイルまたはフォルダーの共有を解除する際にエラーが発生しました</string>
+  <string name="update_link_file_no_exist">更新できません。ファイルがあるか確認してください。</string>
+  <string name="update_link_file_error">共有リンクを更新する際にエラーが発生しました</string>
   <string name="share_link_password_title">パスワードを入力</string>
   <string name="share_link_empty_password">パスワードを入力しなければなりません</string>
   <string name="activity_chooser_send_file_title">送信</string>
   <string name="forbidden_permissions_delete">ファイルを削除</string>
   <string name="share_link_forbidden_permissions">ファイルを共有</string>
   <string name="unshare_link_forbidden_permissions">ファイルの共有を解除</string>
+  <string name="update_link_forbidden_permissions">この共有リンクを更新</string>
   <string name="forbidden_permissions_create">ファイルを作成</string>
   <string name="uploader_upload_forbidden_permissions">フォルダーをアップロード</string>
   <string name="downloader_download_file_not_found">ファイルはサーバー上で利用できません</string>
   <string name="prefs_category_accounts">アカウント</string>
   <string name="prefs_add_account">アカウントを追加</string>
-  <string name="auth_redirect_non_secure_connection_title">暗号化接続は非暗号化接続にリダイレクトされました。</string>
+  <string name="auth_redirect_non_secure_connection_title">暗号化されていない接続を経て、暗号化接続へリダイレクトされました。</string>
   <string name="actionbar_logger">ログ</string>
   <string name="log_send_history_button">ログを送信</string>
   <string name="log_send_no_mail_app">ログを送信するアプリが見つかりませんでした。メールアプリをインストールしてください。</string>
   <string name="move_file_invalid_overwrite">そのファイルは宛先フォルダーにすでに存在します。</string>
   <string name="move_file_error">このファイルまたはフォルダーを移動する際にエラーが発生しました</string>
   <string name="forbidden_permissions_move">このファイルを移動</string>
+  <string name="copy_file_not_found">コピーできません。ファイルがあるか確認してください。</string>
+  <string name="copy_file_invalid_into_descendent">フォルダーを子フォルダーへコピーすることはできません。</string>
+  <string name="copy_file_invalid_overwrite">そのファイルは宛先フォルダーにすでに存在します。</string>
+  <string name="copy_file_error">このファイルまたはフォルダーをコピーする際にエラーが発生しました</string>
+  <string name="forbidden_permissions_copy">このファイルをコピー</string>
   <string name="prefs_category_instant_uploading">自動アップロード</string>
   <string name="prefs_category_security">セキュリティ</string>
   <string name="prefs_instant_video_upload_path_title">動画のアップロードパス</string>
-  <string name="download_folder_failed_content">%1$s フォルダーのダウンロードが完了しませんでした</string>
+  <string name="sync_folder_failed_content">%1$s フォルダーの同期が完了しませんでした。</string>
   <string name="shared_subject_header">共有中</string>
   <string name="with_you_subject_header">あなたと</string>
-  <string name="subject_token">%1$s は \"%2$s\" をあなたと共有しました</string>
+  <string name="subject_user_shared_with_you">%1$s は \"%2$s\" をあなたと共有しました</string>
+  <string name="subject_shared_with_you">\"%1$s\" があなたと共有しました</string>
   <string name="auth_refresh_button">再接続中</string>
   <string name="auth_host_address">サーバーアドレス</string>
   <string name="common_error_out_memory">十分なメモリがありません</string>
   <string name="file_list__footer__files">%1$d ファイル</string>
   <string name="file_list__footer__files_and_folder">%1$d ファイル、1 フォルダー</string>
   <string name="file_list__footer__files_and_folders">%1$d ファイル、%2$d フォルダー</string>
+  <string name="share_dialog_title">共有</string>
+  <string name="share_with_user_section_title">ユーザーとグループで共有</string>
+  <string name="share_no_users">ユーザーと共有されているデータはありません</string>
+  <string name="share_add_user_or_group">ユーザーまたはグループを追加</string>
+  <string name="share_via_link_section_title">URLで共有</string>
+  <string name="share_via_link_expiration_date_label">有効期限を設定</string>
+  <string name="share_via_link_password_label">パスワード保護を有効化</string>
+  <string name="share_via_link_password_title">セキュア</string>
+  <string name="share_get_public_link_button">リンクを取得</string>
+  <string name="share_search">検索</string>
+  <string name="search_users_and_groups_hint">ユーザーとグループを検索</string>
+  <string name="share_group_clarification">%1$s (グループ)</string>
+  <string name="share_sharee_unavailable">申し訳ありませんが、このサーバーのバージョンではこのクライアントアプリ上で他のユーザーと共有することができません。
+        \n管理者に相談してしてください。</string>
 </resources>
index 241d5ba..acdeb62 100644 (file)
@@ -12,6 +12,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">გახსნა</string>
   <string name="prefs_category_general">ზოგადი</string>
   <string name="prefs_category_more">უფრო მეტი</string>
   <string name="prefs_accounts">ანგარიში</string>
   <string name="filedetails_modified">მოდიფიცირებულია:</string>
   <string name="filedetails_download">ჩამოტვირთვა</string>
   <string name="filedetails_renamed_in_upload_msg">ფაილ %1$s–ზე გადარქმეულ იქნა სახელი ატვირთვის დროს</string>
+  <string name="action_share">გაზიარება</string>
   <string name="common_yes">კი</string>
   <string name="common_no">არა</string>
   <string name="common_ok">დიახ</string>
-  <string name="common_cancel_download">ჩამოტვირთვის შეჩერება</string>
-  <string name="common_cancel_upload">ატვირთვის გაუქმება</string>
   <string name="common_cancel">გაუქმება</string>
   <string name="common_save_exit">შენახვა &amp;გამოსვლა</string>
   <string name="common_error">შეცდომა</string>
@@ -99,9 +99,7 @@
   <string name="common_rename">გადარქმევა</string>
   <string name="common_remove">წაშლა</string>
   <string name="confirmation_remove_local">მხოლოდ ლოკალური</string>
-  <string name="confirmation_remove_folder_local">მხოლოდ ლოკალური კონტენტი</string>
-  <string name="confirmation_remove_remote">სერვერიდან წაშლა</string>
-  <string name="confirmation_remove_remote_and_local">დაშორებული და ლოკალური</string>
+  <string name="confirmation_remove_folder_local">მხოლოდ ლოკალური</string>
   <string name="remove_success_msg">წაშლა შარმატებით დასრულდა</string>
   <string name="remove_fail_msg">წაშლა წარუმატებლად დამთავრდა</string>
   <string name="rename_dialog_title">შეიყვანეთ ახალი სახელი</string>
   <string name="folder_picker_choose_button_text">არჩევა</string>
   <string name="prefs_category_security">უსაფრთხოება</string>
   <string name="auth_host_address">სერვერის მისამართი</string>
+  <string name="share_dialog_title">გაზიარება</string>
+  <string name="share_via_link_expiration_date_label">მიუთითე ვადის გასვლის დრო</string>
+  <string name="share_via_link_password_label">პაროლით დაცვა</string>
+  <string name="share_search">ძებნა</string>
 </resources>
index 05de5db..ece7d32 100644 (file)
@@ -23,6 +23,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">បើក</string>
   <string name="prefs_category_general">ទូទៅ</string>
   <string name="prefs_category_more">ច្រើន​ទៀត</string>
   <string name="prefs_accounts">គណនី</string>
   <string name="filedetails_created">បាន​បង្កើត៖</string>
   <string name="filedetails_modified">បាន​កែ​សម្រួល៖</string>
   <string name="filedetails_download">ទាញយក</string>
+  <string name="action_share">ចែក​រំលែក</string>
   <string name="common_yes">ព្រម</string>
   <string name="common_no">ទេ</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">បោះបង់ការទាញយក</string>
-  <string name="common_cancel_upload">បោះបង់​ការ​ផ្ទុកឡើង</string>
   <string name="common_cancel">លើកលែង</string>
   <string name="common_save_exit">រក្សាទុក &amp; ចាកចេញ</string>
   <string name="common_error">កំហុស</string>
@@ -84,8 +84,7 @@
   <string name="common_rename">ប្ដូរ​ឈ្មោះ</string>
   <string name="common_remove">ដកចេញ</string>
   <string name="confirmation_remove_local">ទីកន្លែងតែមួយ</string>
-  <string name="confirmation_remove_remote">ដកចេញពី​សឺវឺ</string>
-  <string name="confirmation_remove_remote_and_local">បញ្ជារ និងទីតាំង</string>
+  <string name="confirmation_remove_folder_local">ទីកន្លែងតែមួយ</string>
   <string name="remove_success_msg">ការដកយកចេញបានជោគជ័យ</string>
   <string name="remove_fail_msg">ការដកយកចេញបានបរាជ័យ</string>
   <string name="rename_dialog_title">បញ្ចូលឈ្មោះថ្មី</string>
   <string name="folder_picker_choose_button_text">ជ្រើស</string>
   <string name="prefs_category_security">សុវត្ថិភាព</string>
   <string name="auth_host_address">អាសយដ្ឋាន​ម៉ាស៊ីន​បម្រើ</string>
+  <string name="share_dialog_title">ការ​ចែក​រំលែក</string>
+  <string name="share_via_link_expiration_date_label">កំណត់​ពេល​ផុត​កំណត់</string>
+  <string name="share_via_link_password_label">ការ​ពារ​ដោយ​ពាក្យ​សម្ងាត់</string>
+  <string name="share_search">ស្វែង​រក</string>
 </resources>
index 056406d..52476d5 100644 (file)
@@ -11,6 +11,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">ತೆರೆ</string>
   <string name="prefs_category_more">ಇನ್ನಷ್ಟು</string>
   <string name="prefs_help">ಸಹಾಯ</string>
   <string name="prefs_imprint">ಮುದ್ರೆ</string>
   <string name="uploader_btn_upload_text">ಪೇರಿಸು</string>
   <string name="uploader_btn_new_folder_text">ಹೊಸ ಕಡತಕೋಶ</string>
   <string name="filedetails_download">ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ</string>
-  <string name="action_share_file">ಸಂಪರ್ಕ ಕೊಂಡಿಯನ್ನು  ಹಂಚಿಕೊಳ್ಳಬಹುದು</string>
+  <string name="action_share">ಹಂಚಿಕೊಳ್ಳಿ</string>
   <string name="common_yes">ಹೌದು</string>
   <string name="common_no">ಇಲ್ಲ</string>
   <string name="common_ok">ಸರಿ</string>
-  <string name="common_cancel_upload">ವರ್ಗಾವಣೆ ರದ್ದು ಮಾಡಿ</string>
   <string name="common_cancel">ರದ್ದು</string>
   <string name="common_error">ತಪ್ಪಾಗಿದೆ</string>
   <string name="common_error_unknown">ಗೊತ್ತಿಲ್ಲದ ದೋಷ</string>
@@ -39,4 +39,9 @@
   <string name="folder_picker_choose_button_text">ಆಯ್ಕೆ</string>
   <string name="prefs_category_security">ಭದ್ರತೆ</string>
   <string name="auth_host_address">ಪರಿಚಾರಕ ಗಣಕಯಂತ್ರದ ವಿಳಾಸ</string>
+  <string name="share_dialog_title">ಹಂಚಿಕೆ</string>
+  <string name="share_via_link_section_title">ಸಂಪರ್ಕ ಕೊಂಡಿಯನ್ನು  ಹಂಚಿಕೊಳ್ಳಬಹುದು</string>
+  <string name="share_via_link_expiration_date_label">ಮುಕ್ತಾಯ ದಿನಾಂಕವನ್ನು ನಿರ್ದರಿಸಿ</string>
+  <string name="share_via_link_password_label">ಗುಪ್ತಪದ ರಕ್ಷಿಸಿಕೂಳ್ಲಿ</string>
+  <string name="share_search">ಹುಡುಕು</string>
 </resources>
index 1cd42cc..2d1574c 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">설정</string>
   <string name="drawer_item_logs">로그</string>
   <string name="drawer_close">닫기</string>
+  <string name="drawer_open">열기</string>
   <string name="prefs_category_general">일반</string>
   <string name="prefs_category_more">더 보기</string>
   <string name="prefs_accounts">계정</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">초 지남</string>
   <string name="file_list_empty">내용이 없습니다. 업로드할 수 있습니다!</string>
   <string name="file_list_loading">불러오는 중...</string>
+  <string name="file_list_no_app_for_file_type">파일 형식을 열 수 있는 앱이 없습니다!</string>
   <string name="local_file_list_empty">이 폴더에 파일이 없습니다.</string>
   <string name="filedetails_select_file">파일을 누르면 추가 정보가 표시됩니다.</string>
   <string name="filedetails_size">크기:</string>
   <string name="filedetails_created">만든 날짜:</string>
   <string name="filedetails_modified">수정한 날짜:</string>
   <string name="filedetails_download">다운로드</string>
-  <string name="filedetails_sync_file">파일 새로 고침</string>
   <string name="filedetails_renamed_in_upload_msg">업로드 중 파일 이름을 %1$s(으)로 변경하였습니다</string>
   <string name="list_layout">목록 레이아웃</string>
-  <string name="action_share_file">링크 공유</string>
-  <string name="action_unshare_file">링크 공유 해제</string>
+  <string name="action_share">공유</string>
   <string name="common_yes">예</string>
   <string name="common_no">아니요</string>
   <string name="common_ok">확인</string>
-  <string name="common_cancel_download">다운로드 취소</string>
-  <string name="common_cancel_upload">업로드 취소</string>
   <string name="common_cancel">취소</string>
   <string name="common_save_exit">저장하고 끝내기</string>
   <string name="common_error">오류</string>
   <string name="unfavorite">책갈피 해제</string>
   <string name="common_rename">이름 바꾸기</string>
   <string name="common_remove">삭제</string>
-  <string name="confirmation_remove_alert">%1$s을(를) 삭제하시겠습니까?</string>
+  <string name="confirmation_remove_file_alert">%1$s을(를) 삭제하시겠습니까?</string>
   <string name="confirmation_remove_folder_alert">%1$s 및 포함된 내용을 삭제하시겠습니까?</string>
   <string name="confirmation_remove_local">로컬만</string>
-  <string name="confirmation_remove_folder_local">로컬 콘텐츠만</string>
-  <string name="confirmation_remove_remote">서버에서 삭제</string>
+  <string name="confirmation_remove_folder_local">로컬만</string>
+  <string name="confirmation_remove_remote">서버</string>
   <string name="confirmation_remove_remote_and_local">서버와 로컬 모두</string>
   <string name="remove_success_msg">성공적으로 삭제함</string>
   <string name="remove_fail_msg">삭제할 수 없음</string>
   <string name="placeholder_sentence">이것은 자리 비움자입니다</string>
   <string name="placeholder_filename">placeholder.txt</string>
   <string name="placeholder_filetype">PNG 그림</string>
-  <string name="placeholder_filesize">389 KB</string>
-  <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
+  <string name="placeholder_filesize">389KB</string>
+  <string name="placeholder_timestamp">2012년 05월 18일 오후 12:23</string>
   <string name="placeholder_media_time">12:23:45</string>
   <string name="instant_upload_on_wifi">Wi-Fi 사용 중일때만 사진 업로드</string>
   <string name="instant_video_upload_on_wifi">Wi-Fi 사용 중일때만 동영상 업로드</string>
   <string name="instant_upload_path">/InstantUpload</string>
+  <string name="conflict_title">파일 충돌</string>
+  <string name="conflict_message">어떤 파일을 유지하시겠습니까? 두 버전을 모두 선택하면 로컬 파일 이름 뒤에 번호가 추가됩니다.</string>
   <string name="conflict_keep_both">모두 저장</string>
+  <string name="conflict_use_local_version">로컬 버전</string>
+  <string name="conflict_use_server_version">서버 버전</string>
   <string name="preview_image_description">사진 미리 보기</string>
   <string name="preview_image_error_unknown_format">이 사진을 미리 볼 수 없습니다</string>
   <string name="error__upload__local_file_not_copied">%1$s을(를) 로컬 폴더 %2$s(으)로 복사할 수 없습니다</string>
   <string name="downloader_download_file_not_found">이 파일을 서버에서 더 이상 사용할 수 없습니다</string>
   <string name="prefs_category_accounts">계정</string>
   <string name="prefs_add_account">계정 추가</string>
-  <string name="auth_redirect_non_secure_connection_title">보안 연결이 안전하지 않은 경로로 넘어갑니다.</string>
+  <string name="auth_redirect_non_secure_connection_title">보안 연결이 보안되지 않는 연결로 전환되었습니다.</string>
   <string name="actionbar_logger">로그</string>
   <string name="log_send_history_button">과거 기록 보내기</string>
   <string name="log_send_no_mail_app">로그를 보낼 앱이 없습니다. 메일 앱을 설치하십시오!</string>
   <string name="move_file_invalid_overwrite">파일이 이미 대상 폴더에 존재합니다</string>
   <string name="move_file_error">이 파일이나 폴더를 이동하는 중 오류가 발생하였습니다</string>
   <string name="forbidden_permissions_move">이 파일을 이동할</string>
+  <string name="copy_file_not_found">복사할 수 없습니다. 파일이 존재하는 지 확인하십시오</string>
+  <string name="copy_file_invalid_into_descendent">폴더를 하위 폴더 아래로 복사할 수 없습니다</string>
+  <string name="copy_file_invalid_overwrite">파일이 이미 대상 폴더에 존재합니다</string>
+  <string name="copy_file_error">이 파일이나 폴더를 복사할 수 없습니다.</string>
+  <string name="forbidden_permissions_copy">이 파일을 복사할</string>
   <string name="prefs_category_instant_uploading">즉시 업로드</string>
   <string name="prefs_category_security">보안</string>
   <string name="prefs_instant_video_upload_path_title">동영상 업로드 경로</string>
-  <string name="download_folder_failed_content">폴더 %1$s을(를) 다운로드할 수 없음</string>
   <string name="shared_subject_header">공유됨</string>
   <string name="with_you_subject_header">여러분과</string>
-  <string name="subject_token">%1$s 님이 \"%2$s\" 항목을 여러분과 공유하였습니다</string>
+  <string name="subject_user_shared_with_you">%1$s 님이 \"%2$s\" 항목을 여러분과 공유하였습니다</string>
+  <string name="subject_shared_with_you">\"%1$s\"을(를) 여러분과 공유하였습니다</string>
   <string name="auth_refresh_button">연결 새로 고침</string>
   <string name="auth_host_address">서버 주소</string>
   <string name="common_error_out_memory">메모리 부족</string>
   <string name="file_list__footer__files">파일 %1$d개</string>
   <string name="file_list__footer__files_and_folder">파일 %1$d개, 폴더 1개</string>
   <string name="file_list__footer__files_and_folders">파일 %1$d개, 폴더 %2$d개</string>
+  <string name="share_dialog_title">공유</string>
+  <string name="share_no_users">No data shared with users yet</string>
+  <string name="share_add_user_or_group">Add User or Group</string>
+  <string name="share_via_link_section_title">링크 공유</string>
+  <string name="share_via_link_expiration_date_label">만료 날짜 설정</string>
+  <string name="share_via_link_password_label">암호 보호</string>
+  <string name="share_search">검색</string>
 </resources>
index 5bbaf79..c40728b 100644 (file)
@@ -9,6 +9,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">بیکەوە</string>
   <string name="prefs_category_general">گشتی</string>
   <string name="prefs_accounts">هەژمارەکان</string>
   <string name="prefs_help">یارمەتی</string>
@@ -26,6 +27,7 @@
   <string name="filedetails_created">درووستبووە:</string>
   <string name="filedetails_modified">گۆردراو:</string>
   <string name="filedetails_download">داگرتن</string>
+  <string name="action_share">هاوبەشی کردن</string>
   <string name="common_yes">بەڵێ</string>
   <string name="common_no">نەخێر</string>
   <string name="common_ok">باشە</string>
@@ -36,4 +38,5 @@
   <string name="empty"></string>
   <string name="prefs_category_accounts">هەژمارەکان</string>
   <string name="auth_host_address">ناونیشانی ڕاژه</string>
+  <string name="share_search">بگەڕێ</string>
 </resources>
diff --git a/res/values-la/strings.xml b/res/values-la/strings.xml
new file mode 100644 (file)
index 0000000..37e6152
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--TODO re-enable when server-side folder size calculation is available   
+       <item>Biggest - Smallest</item>-->
+  <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
+  <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <!--TODO re-enable when "On Device" is available
+    <string name="drawer_item_on_device">On device</string>-->
+  <string name="empty"></string>
+</resources>
index eb2e5cf..55bae32 100644 (file)
@@ -23,6 +23,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Opmaachen</string>
   <string name="prefs_category_general">Allgemeng</string>
   <string name="prefs_category_more">Méi</string>
   <string name="prefs_accounts">Konten</string>
   <string name="filedetails_created">Erstallt:</string>
   <string name="filedetails_modified">Geännert:</string>
   <string name="filedetails_download">Eroflueden</string>
-  <string name="filedetails_sync_file">Fichier opfrëschen</string>
-  <string name="action_share_file">Link deelen</string>
+  <string name="action_share">Deelen</string>
   <string name="common_yes">Jo</string>
   <string name="common_no">Nee</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Eroflueden ofbriechen</string>
-  <string name="common_cancel_upload">Eroplueden ofbriechen</string>
   <string name="common_cancel">Ofbriechen</string>
   <string name="common_save_exit">Späicheren an Zoumaachen</string>
   <string name="common_error">Feeler</string>
   <string name="auth_unsupported_auth_method">De Server ënnerstëtzt dës Authentifizéierungsmethod net</string>
   <string name="common_rename">Ëmbenennen</string>
   <string name="common_remove">Läschen</string>
-  <string name="confirmation_remove_alert">Wëlls du %1$s wierklech läschen?</string>
+  <string name="confirmation_remove_file_alert">Wëlls du %1$s wierklech läschen?</string>
   <string name="confirmation_remove_folder_alert">Wëlls du %1$s an de ganzen Inhalt wierklech läschen?</string>
   <string name="confirmation_remove_local">Nemme lokal</string>
-  <string name="confirmation_remove_folder_local">Nëmme lokal Inhalter</string>
-  <string name="confirmation_remove_remote">Vum Server läschen</string>
-  <string name="confirmation_remove_remote_and_local">Um Server a lokal</string>
+  <string name="confirmation_remove_folder_local">Nemme lokal</string>
   <string name="remove_success_msg">Erfollegräich geläscht</string>
   <string name="remove_fail_msg">Läsche feelgeschloen</string>
   <string name="rename_dialog_title">Gëff en neien Numm an</string>
   <string name="downloader_download_file_not_found">De Fichier ass net méi um Server disponibel</string>
   <string name="prefs_category_accounts">Konten</string>
   <string name="prefs_add_account">Kont dobäisetzen</string>
-  <string name="auth_redirect_non_secure_connection_title">Sécher Connectioun gëtt op eng onsécher Route ëmgeleet.</string>
   <string name="actionbar_logger">Protokoller</string>
   <string name="log_send_history_button">Historique schécken</string>
   <string name="log_send_no_mail_app">Keng App fonnt fir d\'Protokoller ze schécken. Installéier eng Mail-App!</string>
   <string name="move_file_invalid_overwrite">De Fichier existéiert schonn am Zildossier</string>
   <string name="move_file_error">Beim Réckele vun dësem Fichier oder Dossier ass e Feeler opgetrueden</string>
   <string name="forbidden_permissions_move">fir dëse Fichier ze réckelen</string>
+  <string name="copy_file_invalid_overwrite">De Fichier existéiert schonn am Zildossier</string>
   <string name="prefs_category_instant_uploading">Direkt eropgeluede Fichieren</string>
   <string name="prefs_category_security">Sécherheet</string>
   <string name="prefs_instant_video_upload_path_title">Pad fir d\'Eropluede vun de Videoen</string>
-  <string name="download_folder_failed_content">D\'Erofluede vum %1$s-Dossier konnt net ofgeschloss ginn</string>
+  <string name="subject_user_shared_with_you">%1$s huet \"%2$s\" mat dir gedeelt</string>
   <string name="auth_refresh_button">Connectioun opfrëschen</string>
   <string name="auth_host_address">Server-Adress</string>
+  <string name="share_via_link_section_title">Link deelen</string>
+  <string name="share_via_link_expiration_date_label">Verfallsdatum setzen</string>
+  <string name="share_via_link_password_label">Passwuertgeschützt</string>
+  <string name="share_search">Sichen</string>
 </resources>
index fe17441..87c1a8b 100644 (file)
@@ -8,4 +8,5 @@
     <string name="drawer_item_on_device">On device</string>-->
   <string name="common_error_unknown">ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ສາເຫດ</string>
   <string name="empty"></string>
+  <string name="share_dialog_title">ການແບ່ງປັນ</string>
 </resources>
index 6e7855b..201a001 100644 (file)
        <item>Biggest - Smallest</item>-->
   <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
   <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <string name="drawer_item_all_files">Visi failai</string>
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
   <string name="drawer_item_settings">Parinktys</string>
+  <string name="drawer_item_logs">Žurnalai</string>
+  <string name="drawer_close">Užverti</string>
+  <string name="drawer_open">Atverti</string>
   <string name="prefs_category_general">Bendras</string>
   <string name="prefs_category_more">Daugiau</string>
   <string name="prefs_accounts">Paskyros</string>
   <string name="prefs_manage_accounts">Tvarkyti paskyras</string>
+  <string name="prefs_passcode">Užrakto kodas</string>
   <string name="prefs_instant_upload">Momentiniai nuotraukų įkėlimai</string>
   <string name="prefs_instant_upload_summary">Iš karto nusiųsti nufotografuotas nuotraukas</string>
   <string name="prefs_instant_video_upload">Momentiniai video įkėlimai</string>
@@ -44,6 +49,7 @@
   <string name="prefs_remember_last_share_location">Prisiminti bendrinimo vietą</string>
   <string name="prefs_remember_last_upload_location_summary">Prisiminti paskutinio bendrinimo įkėlimo vietą</string>
   <string name="recommend_subject">Išbandykite %1$s savo išmaniajame telefone!</string>
+  <string name="recommend_text">Noriu pakviesti tave naudotis %1$s išmaniajame telefone!\nParsisiųks čia: %2$s</string>
   <string name="auth_check_server">Patikrinti Serverį</string>
   <string name="auth_host_url">Serverio adresas </string>
   <string name="auth_username">Prisijungimo vardas</string>
@@ -64,6 +70,8 @@
   <string name="uploader_info_uploading">Išsiunčiama</string>
   <string name="file_list_seconds_ago">prieš sekundę</string>
   <string name="file_list_empty">Čia tuščia. Įkelkite ką nors!</string>
+  <string name="file_list_loading">Įkeliama...</string>
+  <string name="file_list_no_app_for_file_type">Nėra programėlės šiam failo tipui!</string>
   <string name="local_file_list_empty">Šiame aplanke nėra failų.</string>
   <string name="filedetails_select_file">Palieskite failą, kad parodyti papildomą informaciją.</string>
   <string name="filedetails_size">Dydis:</string>
   <string name="filedetails_created">Sukurta:</string>
   <string name="filedetails_modified">Modifikuota:</string>
   <string name="filedetails_download">Atsisiųsti</string>
-  <string name="filedetails_sync_file">Atnaujinti failą</string>
+  <string name="filedetails_sync_file">Sinchronizuojama</string>
   <string name="filedetails_renamed_in_upload_msg">Įkėlimo metu failas buvo pervadintas į %1$s</string>
-  <string name="action_share_file">Dalintis nuoroda</string>
-  <string name="action_unshare_file">Nebesidalinti nuoroda</string>
+  <string name="list_layout">Sąrašo išdėstymas</string>
+  <string name="action_share">Dalintis</string>
   <string name="common_yes">Taip</string>
   <string name="common_no">Ne</string>
   <string name="common_ok">Gerai</string>
-  <string name="common_cancel_download">Atšaukti parsiuntimą</string>
-  <string name="common_cancel_upload">Atšaukti siuntimą</string>
+  <string name="common_cancel_sync">Atšaukti sinchronizavimą</string>
   <string name="common_cancel">Atšaukti</string>
   <string name="common_save_exit">Išsaugoti ir Išeiti</string>
   <string name="common_error">Klaida</string>
   <string name="uploader_info_dirname">Katalogo pavadinimas</string>
   <string name="uploader_upload_in_progress_ticker">Įkeliama ...</string>
   <string name="uploader_upload_in_progress_content">%1$d%% Siunčiama %2$s</string>
-  <string name="uploader_upload_succeeded_ticker">Nusiuntimas pavyko</string>
+  <string name="uploader_upload_succeeded_ticker">Įkėlimas pavyko</string>
   <string name="uploader_upload_succeeded_content_single">%1$s buvo sėkmingai nusiųstas</string>
   <string name="uploader_upload_failed_ticker">Nusiuntimas nepavyko</string>
   <string name="uploader_upload_failed_content_single">Nepavyko baigti %1$s nusiuntimo</string>
   <string name="sync_fail_content">%1$s sinchronizacija nepavyko</string>
   <string name="sync_fail_content_unauthorized">Netinkamas slaptažodis %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Rastas konfliktas</string>
+  <string name="sync_conflicts_in_favourites_content">%1$d sinchronizuojami failai nebuvo susinchronizuoti</string>
+  <string name="sync_fail_in_favourites_ticker">Sinchronizuojamų failų klaida</string>
   <string name="sync_fail_in_favourites_content">Nepavyko sinchronizuoti %1$d failų turinio (%2$d konfliktų)</string>
   <string name="sync_foreign_files_forgotten_ticker">Keli vietiniai failai buvo užmiršti</string>
+  <string name="sync_foreign_files_forgotten_content">%1$d failai iš %2$s aplanko negali būti nukopijuoti</string>
+  <string name="sync_foreign_files_forgotten_explanation">Iki 1.3.16 versijos, iš šio įrenginio įkelti failai nukopijuoti į vietinį %1$s aplanką, siekiant išvengti duomenų praradimo kai vienas failas sinchronizuojamas su keletu įrenginių.\n\nTodėl visi failai įkelti su ankstesne versija nukopijuoti į %2$s aplanką. Dėja kopijavimas nepavuko dėl klaidos sinchronizuojant paskyrą. Galita palikti failus ir pašalinti ryšį su %3$s, arba perkelti failą(us) į %1$s aplanką ir palikti ryšį su %4$s.\n\nŽemiau pateikti vietiniai failai ir aplankas(ai), bei nutolę failai susieti per  %5$s.</string>
   <string name="sync_current_folder_was_removed">Aplankas %1$s nebeegzistuoja</string>
   <string name="foreign_files_move">Perkelti visus</string>
   <string name="foreign_files_success">Visi failai buvo perkelti</string>
   <string name="foreign_files_fail">Kai kurių failų negalima perkelti</string>
   <string name="foreign_files_local_text">Vietinis: %1$s</string>
   <string name="foreign_files_remote_text">Nuotolinis: %1$s</string>
+  <string name="upload_query_move_foreign_files">Pasirinktiems failams nepakanka vietos %1$s aplanke. Gal juos perkelti?</string>
+  <string name="pass_code_enter_pass_code">Prašau įterpti užraktą</string>
+  <string name="pass_code_configure_your_pass_code">Įveskite užraktą</string>
+  <string name="pass_code_configure_your_pass_code_explanation">Kiekvieną kartą paleidus programėle bus reikalaujamas užraktas</string>
+  <string name="pass_code_reenter_your_pass_code">Prašau pakartoti užraką</string>
+  <string name="pass_code_remove_your_pass_code">Užrakto pašalinimas</string>
+  <string name="pass_code_mismatch">Nesutampa užraktas</string>
+  <string name="pass_code_wrong">Neteisingas užraktas</string>
+  <string name="pass_code_removed">Užraktas pašalintas</string>
+  <string name="pass_code_stored">Užraktas išsaugotas</string>
   <string name="media_notif_ticker">%1$s muzikos grotuvas</string>
   <string name="media_state_playing">%1$s (grojama)</string>
   <string name="media_state_loading">%1$s (įkeliama)</string>
   <string name="auth_no_net_conn_title">Nėra tinklo ryšio</string>
   <string name="auth_nossl_plain_ok_title">Saugus prisijungimas negalimas.</string>
   <string name="auth_connection_established">Ryšys užmegztas</string>
+  <string name="auth_testing_connection">Bandomas sujungimas</string>
   <string name="auth_not_configured_title">Sugadinta serverio konfigūracija</string>
   <string name="auth_account_not_new">To paties vartotojo ir serverio paskyra jau egzistuoja šiame įrenginyje</string>
+  <string name="auth_account_not_the_same">Įvestas vartotojas neatitinka šios paskyros vartotojo</string>
   <string name="auth_unknown_error_title">Įvyko nežinoma klaida!</string>
   <string name="auth_unknown_host_title">Nepavyko rasti mazgo</string>
   <string name="auth_incorrect_path_title">Šis serveris netinkamas</string>
   <string name="auth_connecting_auth_server">Jungiamasi prie autentikacijos serverio...</string>
   <string name="auth_unsupported_auth_method">Serveris nepalaiko šio autentikacijos metodo</string>
   <string name="auth_unsupported_multiaccount">%1$s nepalaiko kelių paskyrų iš karto</string>
+  <string name="auth_fail_get_user_name">Serveris negražina tinkamo vartotojo ID, susisiekite su administratoriumi</string>
   <string name="auth_can_not_auth_against_server">Jungiamasi prie autentikacijos serverio...</string>
+  <string name="auth_account_does_not_exist">Paskyra neegzistuoja įrenginyje</string>
   <string name="favorite">Mėgiamas</string>
+  <string name="unfavorite">Nebemėgti</string>
   <string name="common_rename">Pervadinti</string>
   <string name="common_remove">Pašalinti</string>
-  <string name="confirmation_remove_alert">Ar tikrai norite pašalinti %1$s?</string>
+  <string name="confirmation_remove_file_alert">Ar tikrai norite pašalinti %1$s?</string>
   <string name="confirmation_remove_folder_alert">Ar tikrai norite pašalinti %1$s ir ten esantį turinį?</string>
   <string name="confirmation_remove_local">Tik vietiniai</string>
-  <string name="confirmation_remove_folder_local">Tik vietinis turinys</string>
-  <string name="confirmation_remove_remote">Pašalinti iš serverio</string>
-  <string name="confirmation_remove_remote_and_local">Nutolę ir vietiniai</string>
+  <string name="confirmation_remove_folder_local">Tik vietiniai</string>
+  <string name="confirmation_remove_remote">Iš serverio</string>
+  <string name="confirmation_remove_remote_and_local">Išorinis &amp; vietinis</string>
   <string name="remove_success_msg">Pašalinta sėkmingai</string>
   <string name="remove_fail_msg">Pašalinti nepavyko</string>
   <string name="rename_dialog_title">Įveskite naują pavadinimą</string>
   <string name="sync_file_nothing_to_do_msg">Failo turinys jau sunchronizuotas</string>
   <string name="create_dir_fail_msg">Aplanko sukurti nepavyko</string>
   <string name="filename_forbidden_characters">Neleistini simboliai: / \\ &lt; &gt; : \" | ? *</string>
+  <string name="filename_forbidden_charaters_from_server">Failo vardas sudarytas iš neleistinų simbolių</string>
   <string name="filename_empty">Failo pavadinimas negali būti tuščias</string>
   <string name="wait_a_moment">Truputį palaukite</string>
   <string name="filedisplay_unexpected_bad_get_content">Netikėta problema ; prašome pasirinkti failą iš kitos programėlės</string>
   <string name="filedisplay_no_file_selected">Joks failas nebuvo pasirinktas</string>
   <string name="activity_chooser_title">Siųsti nuorodą asmeniui ...</string>
+  <string name="wait_for_tmp_copy_from_private_storage">Kopijuoti failą iš privačios talpyklos</string>
   <string name="oauth_check_onoff">Prisijungti naudojant oAuth2</string>
   <string name="oauth_login_connection">Jungiamasi prie oAuth2 serverio...</string>
   <string name="ssl_validator_header">Serverio tapatybė negali būti patikrinta</string>
   <string name="ssl_validator_label_validity_to">Iki:</string>
   <string name="ssl_validator_label_signature">Parašas:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritmas:</string>
+  <string name="digest_algorithm_not_available">Tavo telefonas nepalaiko digest algoritmo.</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Kontrolinis kodas:</string>
+  <string name="certificate_load_problem">Klaida įkeliant sertifikatą.</string>
   <string name="ssl_validator_null_cert">Sertifikatas negali būti parodytas.</string>
   <string name="ssl_validator_no_info_about_error">- Nėra informacijos apie klaidą</string>
+  <string name="placeholder_sentence">Rezervas</string>
+  <string name="placeholder_filename">rezervas.txt</string>
   <string name="placeholder_filetype">PNG paveikslėlis</string>
   <string name="placeholder_filesize">389 KB</string>
   <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
   <string name="placeholder_media_time">12:23:45</string>
   <string name="instant_upload_on_wifi">Įkelti nuotraukas tik kai prisijungiama per WiFi</string>
   <string name="instant_video_upload_on_wifi">Įkelti video tik per WiFi</string>
+  <string name="instant_upload_path">/InstantUpload</string>
+  <string name="conflict_title">Failų konfliktas</string>
+  <string name="conflict_message">Kuriuos failus palikti? Jei pažymėsite abi versijas, vietinis failas bus pervadintas, pridedant skaičių prie pavadinimo.</string>
   <string name="conflict_keep_both">Palikti abu</string>
+  <string name="conflict_use_local_version">Vietinė versija</string>
+  <string name="conflict_use_server_version">Versija serveryje</string>
   <string name="preview_image_description">Paveikslėlio peržiūra</string>
   <string name="preview_image_error_unknown_format">Neįmanoma parodyti šio paveikslėlio</string>
+  <string name="error__upload__local_file_not_copied">%1$s negali būti nukopijuota į %2$s vietinį katalogą</string>
+  <string name="prefs_instant_upload_path_title">Įkėlimo kelias</string>
+  <string name="share_link_no_support_share_api">Atsiprašome, bet serveris nepalaiko dalijimosi. Susisiekite su administratoriumi.</string>
+  <string name="share_link_file_no_exist">Nepavyko pasidalinti. Patikrinkite ar failas egzistuoja</string>
   <string name="share_link_file_error">Įvyko klaida bandant dalinti šį failą ar aplanką</string>
+  <string name="unshare_link_file_no_exist">Nepavyksta nebedalinti. Patikrinkite ar failas egzistuoja</string>
   <string name="unshare_link_file_error">Įvyko klaida bandant nebedalinti šio failu ar aplanku</string>
+  <string name="share_link_password_title">Įveskite slaptažodį</string>
+  <string name="share_link_empty_password">Slaptažodis privalomas</string>
   <string name="activity_chooser_send_file_title">Siųsti</string>
   <string name="copy_link">Kopijuoti nuorodą</string>
   <string name="clipboard_text_copied">Nukopijuota į talpyklę</string>
+  <string name="error_cant_bind_to_operations_service">Kritinė klaida: negalima įvykdyti operacijos</string>
+  <string name="network_error_socket_exception">Klaida prisijungiant prie serverio.</string>
+  <string name="network_error_socket_timeout_exception">Klaida prisijungiant prie serverio, operacija neįvykdyta</string>
+  <string name="network_error_connect_timeout_exception">Klaida prisijungiant prie serverio, operacija neįvykdyta</string>
+  <string name="network_host_not_available">Serveris nepasiekiamas, operacija negali būti atlikta</string>
   <string name="empty"></string>
+  <string name="forbidden_permissions">Neturite leidimo %s</string>
+  <string name="forbidden_permissions_rename">pervadinti failo</string>
+  <string name="forbidden_permissions_delete">ištrinti failo</string>
+  <string name="share_link_forbidden_permissions">dalintis failu</string>
+  <string name="unshare_link_forbidden_permissions">nebesidalinti failu</string>
+  <string name="forbidden_permissions_create">sukurti failą</string>
+  <string name="uploader_upload_forbidden_permissions">įkelti į aplanką</string>
+  <string name="downloader_download_file_not_found">Failas neegzistuoja serveryje</string>
   <string name="prefs_category_accounts">Paskyros</string>
+  <string name="prefs_add_account">Pridėti paskyrą</string>
+  <string name="auth_redirect_non_secure_connection_title">Saugus sujungimas nukreiptas per nesaugų kelią</string>
+  <string name="actionbar_logger">Žurnalai</string>
+  <string name="log_send_history_button">Siųsti istoriją</string>
+  <string name="log_send_no_mail_app">Žurnalų siuntimui nėra programėlės. Įdiekite pašto programėlę!</string>
+  <string name="log_send_mail_subject">%1$s Android žurnalai</string>
+  <string name="log_progress_dialog_text">Įkeliama...</string>
+  <string name="saml_authentication_required_text">Reikalinga autentikacija</string>
   <string name="saml_authentication_wrong_pass">Neteisingas slaptažodis</string>
+  <string name="actionbar_move">perkelti</string>
+  <string name="file_list_empty_moving">Nieko nėra. Galite pridėti aplanką!</string>
   <string name="folder_picker_choose_button_text">Pasirinkite</string>
+  <string name="move_file_not_found">Negalima perkelti. Prašau patikrinti ar failas egzistuoja</string>
+  <string name="move_file_invalid_into_descendent">Neįmanoma perkelti aplanko į poaplankį</string>
+  <string name="move_file_invalid_overwrite">Failas aplanke jau egzistuoja</string>
+  <string name="move_file_error">Klaida perkeliant failą ar aplanką</string>
+  <string name="forbidden_permissions_move">perkelti šį failą</string>
+  <string name="copy_file_not_found">Nepavyko nukopijuoti. Patikrinkite ar failas egzistuoja</string>
+  <string name="copy_file_invalid_into_descendent">Neįmanoma nukopijuoti aplanko į poaplankį</string>
+  <string name="copy_file_invalid_overwrite">Failas aplanke jau egzistuoja</string>
+  <string name="copy_file_error">Klaida kopijuojant failą ar aplanką</string>
+  <string name="forbidden_permissions_copy">kopijuoti failo</string>
+  <string name="prefs_category_instant_uploading">Momentinis įkėlimas</string>
   <string name="prefs_category_security">Saugumas</string>
+  <string name="prefs_instant_video_upload_path_title">Vaizdo įrašų įkėlimo kelias</string>
+  <string name="sync_folder_failed_content">%1$s sinchronizavimas negali būti užbaigtas.</string>
+  <string name="shared_subject_header">Dalinamasi</string>
+  <string name="with_you_subject_header">su jumis</string>
+  <string name="subject_user_shared_with_you">%1$s dalinamasi \"%2$s\" su jumis</string>
+  <string name="subject_shared_with_you">\"%1$s\" dalinamasi su jumis</string>
+  <string name="auth_refresh_button">Atnaujinti sujungimą</string>
   <string name="auth_host_address">Serverio adresas</string>
+  <string name="common_error_out_memory">Nepakanka atminties</string>
+  <string name="username">Prisijungimo vardas</string>
+  <string name="file_list__footer__folder">1 aplankalas</string>
+  <string name="file_list__footer__folders">%1$d aplankalai</string>
+  <string name="file_list__footer__file">1 failas</string>
+  <string name="file_list__footer__file_and_folder">1 failas, 1 aplankalas</string>
+  <string name="file_list__footer__file_and_folders">1 failas, %1$d aplankai</string>
+  <string name="file_list__footer__files">%1$d failai</string>
+  <string name="file_list__footer__files_and_folder">%1$d failai, 1 aplankas</string>
+  <string name="file_list__footer__files_and_folders">%1$d failai, %2$d aplankai</string>
+  <string name="share_dialog_title">Dalijimasis</string>
+  <string name="share_no_users">Su vartotojais niekuo nesidalinama</string>
+  <string name="share_add_user_or_group">Pridėti vartotoją ar grupę</string>
+  <string name="share_via_link_section_title">Dalintis nuoroda</string>
+  <string name="share_via_link_expiration_date_label">Nustatykite galiojimo laiką</string>
+  <string name="share_via_link_password_label">Apsaugotas slaptažodžiu</string>
+  <string name="share_search">Ieškoti</string>
+  <string name="search_users_and_groups_hint">Surasti vartotoją ar grupę</string>
+  <string name="share_group_clarification">%1$s (grupė)</string>
+  <string name="share_sharee_unavailable">Serveris nepalaiko dalinimosi su vartotojais kliente.
+\nSusisiekite su administratoriumi.</string>
 </resources>
index 32f3847..0b2930d 100644 (file)
        <item>Biggest - Smallest</item>-->
   <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
   <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <string name="drawer_item_all_files">Visas datnes</string>
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_item_settings">Iestatījumi</string>
+  <string name="drawer_close">Aizvērt</string>
+  <string name="drawer_open">Atvērt</string>
   <string name="prefs_category_general">Vispārīgi</string>
   <string name="prefs_category_more">Vairāk</string>
   <string name="prefs_accounts">Konti</string>
@@ -39,6 +43,8 @@
   <string name="prefs_help">Palīdzība</string>
   <string name="prefs_recommend">Ieteikt draugam</string>
   <string name="prefs_feedback">Atsauksmes</string>
+  <string name="recommend_subject">Izmēģini %1$s uz savu viedtālruni!</string>
+  <string name="auth_check_server">Pārbaudīt serveri</string>
   <string name="auth_username">Lietotājvārds</string>
   <string name="auth_password">Parole</string>
   <string name="sync_string_files">Datnes</string>
@@ -55,6 +61,7 @@
   <string name="uploader_info_uploading">Augšupielādē</string>
   <string name="file_list_seconds_ago">sekundes atpakaļ</string>
   <string name="file_list_empty">Te vēl nekas nav. Rīkojies, sāc augšupielādēt!</string>
+  <string name="file_list_loading">Ielādē…</string>
   <string name="local_file_list_empty">Šajā mapē nav failu</string>
   <string name="filedetails_select_file">Uzsitiet uz datnes, lai redzētu papildinformāciju.</string>
   <string name="filedetails_size">Izmērs:</string>
   <string name="filedetails_created">Izveidota:</string>
   <string name="filedetails_modified">Modificēta:</string>
   <string name="filedetails_download">Lejupielādēt</string>
-  <string name="filedetails_sync_file">Atsvaidzināt failu</string>
   <string name="filedetails_renamed_in_upload_msg">Datne tika pārsaukta uz %1$s augšupielādes laikā</string>
+  <string name="action_share">Dalīties</string>
   <string name="common_yes">Jā</string>
   <string name="common_no">Nē</string>
   <string name="common_ok">Labi</string>
-  <string name="common_cancel_download">Atcelt lejupielādi</string>
-  <string name="common_cancel_upload">Atcelt augšupielādi</string>
   <string name="common_cancel">Atcelt</string>
   <string name="common_save_exit">Saglabāt un iziet</string>
   <string name="common_error">Kļūda</string>
   <string name="common_rename">Pārsaukt</string>
   <string name="common_remove">Izņemt</string>
   <string name="confirmation_remove_local">Tikai lokālos</string>
-  <string name="confirmation_remove_folder_local">Tikai lokālo saturu</string>
-  <string name="confirmation_remove_remote">Izņemt no servera</string>
-  <string name="confirmation_remove_remote_and_local">Attālinātās un lokālās</string>
+  <string name="confirmation_remove_folder_local">Tikai lokālos</string>
+  <string name="confirmation_remove_remote">No servera</string>
   <string name="remove_success_msg">Veiksmīgi izņemts</string>
   <string name="remove_fail_msg">Neizdevās izņemt</string>
   <string name="rename_dialog_title">Ievadīt jaunu nosaukumu</string>
   <string name="rename_server_fail_msg">Nevarēja pabeigt pārsaukšanu</string>
   <string name="sync_file_fail_msg">Nevarēja atzīmēt attālinātas datnes</string>
   <string name="sync_file_nothing_to_do_msg">Datnes saturs jau ir sinhronizēts</string>
+  <string name="create_dir_fail_msg">Mapi nevarēja izveidot</string>
   <string name="wait_a_moment">Uzgaidīt brīdi</string>
   <string name="filedisplay_unexpected_bad_get_content">Negaidīta problēma; lūdzu, izvēlieties datni no citas lietotnes</string>
   <string name="filedisplay_no_file_selected">Netika izvēlēta neviena datne</string>
   <string name="ssl_validator_label_validity_to">Kam:</string>
   <string name="ssl_validator_label_signature">Paraksts:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritms:</string>
+  <string name="placeholder_filetype">PNG attēls</string>
   <string name="instant_upload_on_wifi">Attēlus augšupielādēt tikai caur WiFi</string>
   <string name="instant_upload_path">/TūlītējaAugšupielāde</string>
   <string name="conflict_keep_both">Paturēt abas</string>
+  <string name="preview_image_error_unknown_format">Šo attēlu nevar attēlot</string>
+  <string name="share_link_password_title">Ievadiet paroli</string>
+  <string name="share_link_empty_password">Jums ir jāievada paroli</string>
   <string name="activity_chooser_send_file_title">Sūtīt</string>
+  <string name="copy_link">Kopēt saiti</string>
   <string name="empty"></string>
+  <string name="forbidden_permissions_rename">lai pārsauktu šo datni</string>
+  <string name="forbidden_permissions_delete">lai dzēstu šo datni</string>
+  <string name="share_link_forbidden_permissions">lai dalītu šo datni</string>
+  <string name="unshare_link_forbidden_permissions">lai pārtrauktu šis datnes dalīšanu</string>
+  <string name="forbidden_permissions_create">lai izveidotu datni</string>
   <string name="prefs_category_accounts">Konti</string>
+  <string name="prefs_add_account">Pievienot kontu</string>
+  <string name="log_progress_dialog_text">Ielādē datus…</string>
   <string name="saml_authentication_wrong_pass">Nepareiza parole</string>
+  <string name="actionbar_move">Pārvietot</string>
+  <string name="file_list_empty_moving">Šeit nekā nav. Jūs varat pievienot mapi!</string>
   <string name="folder_picker_choose_button_text">Izvēlieties</string>
+  <string name="forbidden_permissions_move">lai pārvietotu šo datni</string>
+  <string name="forbidden_permissions_copy">lai kopētu šo datni</string>
   <string name="prefs_category_security">Drošība</string>
+  <string name="shared_subject_header">koplietots</string>
+  <string name="with_you_subject_header">ar jums</string>
   <string name="auth_host_address">Servera adrese</string>
+  <string name="username">Lietotājvārds</string>
+  <string name="file_list__footer__folder">1 mape</string>
+  <string name="file_list__footer__file">1 datne</string>
+  <string name="share_dialog_title">Dalīšanās</string>
+  <string name="share_via_link_section_title">Dalīt saiti</string>
+  <string name="share_via_link_expiration_date_label">Iestaties termiņa datumu</string>
+  <string name="share_via_link_password_label">Aizsargāt ar paroli</string>
+  <string name="share_search">Meklēt</string>
 </resources>
index 28329fa..0773d69 100644 (file)
@@ -23,6 +23,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Отвори</string>
   <string name="prefs_category_general">Општо</string>
   <string name="prefs_category_more">Повеќе</string>
   <string name="prefs_accounts">Сметки</string>
   <string name="filedetails_created">Создадено:</string>
   <string name="filedetails_modified">Изменето:</string>
   <string name="filedetails_download">Преземање</string>
-  <string name="filedetails_sync_file">Освежи ја датотеката</string>
   <string name="filedetails_renamed_in_upload_msg">Датотеката беше преименувана во %1$s за време на префрлањето</string>
-  <string name="action_share_file">Сподели ја врската</string>
-  <string name="action_unshare_file">Тргнете го споделувањето на врската</string>
+  <string name="action_share">Сподели</string>
   <string name="common_yes">Да</string>
   <string name="common_no">Не</string>
   <string name="common_ok">Во ред</string>
-  <string name="common_cancel_download">Откажи превземање</string>
-  <string name="common_cancel_upload">Откажи прикачување</string>
   <string name="common_cancel">Откажи</string>
   <string name="common_save_exit">Сними &amp; Излез</string>
   <string name="common_error">Грешка</string>
   <string name="auth_account_does_not_exist">Сметката сеуште не постои на овој уред</string>
   <string name="common_rename">Преименувај</string>
   <string name="common_remove">Отстрани</string>
-  <string name="confirmation_remove_alert">Дали навистина сакаш да ја отстраниш %1$s?</string>
+  <string name="confirmation_remove_file_alert">Дали навистина сакаш да ја отстраниш %1$s?</string>
   <string name="confirmation_remove_folder_alert">Дали навистина сакаш да го отстранам %1$s и неговата содржина?</string>
   <string name="confirmation_remove_local">Само локално</string>
-  <string name="confirmation_remove_folder_local">Само локална содржина</string>
-  <string name="confirmation_remove_remote">Отстрани од серверот</string>
-  <string name="confirmation_remove_remote_and_local">Далечинско и локално</string>
+  <string name="confirmation_remove_folder_local">Само локално</string>
   <string name="remove_success_msg">Одстранувањето е успешно</string>
   <string name="remove_fail_msg">Одстранувањето е неуспешно</string>
   <string name="rename_dialog_title">Внеси ново име</string>
   <string name="downloader_download_file_not_found">Датотеката веќе не е достапна на серверот</string>
   <string name="prefs_category_accounts">Сметки</string>
   <string name="prefs_add_account">Додади сметка</string>
-  <string name="auth_redirect_non_secure_connection_title">Сигурната конекција е преусмерена на несигурна рута.</string>
   <string name="actionbar_logger">Логови</string>
   <string name="log_send_history_button">Прати историја</string>
   <string name="log_send_no_mail_app">Нема апликација за праќање на логови. Инсталирајте апликација за пошта!</string>
   <string name="move_file_invalid_overwrite">Датотеката веќе постои во целната папка</string>
   <string name="move_file_error">Се случи грешка кога пробував да ја преместам оваа датотека или папка</string>
   <string name="forbidden_permissions_move">да ја преместам оваа датотека</string>
+  <string name="copy_file_invalid_overwrite">Датотеката веќе постои во целната папка</string>
   <string name="prefs_category_instant_uploading">Инстант прикачувања</string>
   <string name="prefs_category_security">Безбедност</string>
   <string name="prefs_instant_video_upload_path_title">Прикачи патека на видео</string>
-  <string name="download_folder_failed_content">Превземањето на папката %1$s не може да се заврши</string>
+  <string name="subject_user_shared_with_you">%1$s сподели \"%2$s\" со тебе</string>
   <string name="auth_refresh_button">Освежи ја конекцијата</string>
   <string name="auth_host_address">Адреса на сервер</string>
+  <string name="share_dialog_title">Споделување</string>
+  <string name="share_via_link_section_title">Сподели ја врската</string>
+  <string name="share_via_link_expiration_date_label">Постави рок на траење</string>
+  <string name="share_via_link_password_label">Заштити со лозинка</string>
+  <string name="share_search">Барај</string>
 </resources>
index 92ace9c..9d18045 100644 (file)
   <string name="auth_password">Нууц үг</string>
   <string name="sync_string_files">Файлууд</string>
   <string name="uploader_btn_upload_text">Байршуулах</string>
+  <string name="action_share">Түгээх</string>
   <string name="create_account">Аккаунт үүсгэх</string>
   <string name="common_remove">Устгах</string>
   <string name="empty"></string>
   <string name="prefs_category_security">Аюулгүй байдал</string>
+  <string name="share_dialog_title">Түгээлт</string>
 </resources>
index b2303ba..66752db 100644 (file)
@@ -18,6 +18,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Buka</string>
   <string name="prefs_category_general">Umum</string>
   <string name="prefs_category_more">Lanjutan</string>
   <string name="prefs_accounts">Akaun</string>
   <string name="filedetails_created">Telah dibina:</string>
   <string name="filedetails_modified">Telah diubah:</string>
   <string name="filedetails_download">Muatturun</string>
+  <string name="action_share">Kongsi</string>
   <string name="common_yes">Ya</string>
   <string name="common_no">Tidak</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_upload">Batal muat naik</string>
   <string name="common_cancel">Batal</string>
   <string name="common_save_exit">Simpan &amp; Keluar</string>
   <string name="common_error">Ralat</string>
   <string name="common_rename">Namakan</string>
   <string name="common_remove">Buang</string>
   <string name="confirmation_remove_local">Lokal sahaja</string>
+  <string name="confirmation_remove_folder_local">Lokal sahaja</string>
   <string name="activity_chooser_send_file_title">Hantar</string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Akaun</string>
   <string name="auth_host_address">Alamat pelayan</string>
+  <string name="share_search">Cari</string>
 </resources>
index 48cf4e1..943676d 100644 (file)
@@ -19,4 +19,5 @@
   <string name="common_cancel">ပယ်ဖျက်မည်</string>
   <string name="empty"></string>
   <string name="folder_picker_choose_button_text">ရွေးချယ်</string>
+  <string name="share_via_link_expiration_date_label">သက်တမ်းကုန်ဆုံးမည့်ရက်သတ်မှတ်မည်</string>
 </resources>
index cd1b3b8..8cc58e7 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Innstillinger</string>
   <string name="drawer_item_logs">Logger</string>
   <string name="drawer_close">Lukk</string>
+  <string name="drawer_open">Åpne</string>
   <string name="prefs_category_general">Generelt</string>
   <string name="prefs_category_more">Mer</string>
   <string name="prefs_accounts">Kontoer</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">for få sekunder siden</string>
   <string name="file_list_empty">Ingenting her. Last opp noe!</string>
   <string name="file_list_loading">Laster...</string>
+  <string name="file_list_no_app_for_file_type">Ingen app funnet for filtypen!</string>
   <string name="local_file_list_empty">Det er ingen filer i denne mappen.</string>
   <string name="filedetails_select_file">Trykk på en fil for å vise ekstra informasjon.</string>
   <string name="filedetails_size">Størrelse:</string>
   <string name="filedetails_created">Opprettet:</string>
   <string name="filedetails_modified">Endret:</string>
   <string name="filedetails_download">Last ned</string>
-  <string name="filedetails_sync_file">Oppdater fil</string>
   <string name="filedetails_renamed_in_upload_msg">Filnavnet ble endret til  %1$s under opplasting</string>
   <string name="list_layout">Listeoppsett</string>
-  <string name="action_share_file">Del lenke</string>
-  <string name="action_unshare_file">Avslutt deling av lenke</string>
+  <string name="action_share">Delt ressurs</string>
   <string name="common_yes">Ja</string>
   <string name="common_no">Nei</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Avbryt nedlasting</string>
-  <string name="common_cancel_upload">Avbryt opplasting</string>
   <string name="common_cancel">Avbryt</string>
   <string name="common_save_exit">Lagre og avslutt</string>
   <string name="common_error">Feil</string>
   <string name="unfavorite">Fjern favoritt</string>
   <string name="common_rename">Endre navn</string>
   <string name="common_remove">Fjern</string>
-  <string name="confirmation_remove_alert">Vil du virkelig fjerne %1$s?</string>
+  <string name="confirmation_remove_file_alert">Vil du virkelig fjerne %1$s?</string>
   <string name="confirmation_remove_folder_alert">Vil du virkelig fjerne %1$s inkludert innholdet?</string>
   <string name="confirmation_remove_local">Kun lokalt</string>
-  <string name="confirmation_remove_folder_local">Kun lokalt innhold</string>
-  <string name="confirmation_remove_remote">Fjern fra server</string>
-  <string name="confirmation_remove_remote_and_local">Ekstern og lokal</string>
+  <string name="confirmation_remove_folder_local">Kun lokalt</string>
+  <string name="confirmation_remove_file_remote">Fra server</string>
+  <string name="confirmation_remove_remote_and_local">Ekstern &amp; lokal</string>
   <string name="remove_success_msg">Fjerning var vellykket</string>
   <string name="remove_fail_msg">Fjerning mislyktes</string>
   <string name="rename_dialog_title">Skriv inn et nytt navn</string>
   <string name="instant_upload_on_wifi">Kun last opp bilder via WiFi</string>
   <string name="instant_video_upload_on_wifi">Last opp video kun via WiFi</string>
   <string name="instant_upload_path">/Direkteopplasting</string>
+  <string name="conflict_title">Filkonflikt</string>
+  <string name="conflict_message">Hvilke filer ønsker du å beholder? Hvis du velger begge versjonene, får den lokale filen lagt til et tall i navnet.</string>
   <string name="conflict_keep_both">Behold begge</string>
+  <string name="conflict_use_local_version">lokal versjon</string>
+  <string name="conflict_use_server_version">server-versjon</string>
   <string name="preview_image_description">Bildeforhåndsvisning</string>
   <string name="preview_image_error_unknown_format">Dette bildet kan ikke vises</string>
   <string name="error__upload__local_file_not_copied">%1$s kunne ikke kopieres til lokal mappe %2$s</string>
   <string name="downloader_download_file_not_found">Filen finnes ikke på serveren lenger</string>
   <string name="prefs_category_accounts">Kontoer</string>
   <string name="prefs_add_account">Legg til en konto</string>
-  <string name="auth_redirect_non_secure_connection_title">Sikker forbindelse er omdirigert til en usikker rute.</string>
+  <string name="auth_redirect_non_secure_connection_title">Sikker tilkobling videresendes gjennom en usikker rute.</string>
   <string name="actionbar_logger">Logger</string>
   <string name="log_send_history_button">Send historikk</string>
   <string name="log_send_no_mail_app">Ingen app for sending av logger funnet. Installer epost-app!</string>
   <string name="move_file_invalid_overwrite">Filen finnes allerede i målmappen</string>
   <string name="move_file_error">En feil oppstod ved flytting av denne filen eller mappen</string>
   <string name="forbidden_permissions_move">å flytte denne filen</string>
+  <string name="copy_file_not_found">Kan ikke kopiere. Sjekk om filen eksisterer</string>
+  <string name="copy_file_invalid_into_descendent">Det er ikke mulig å kopiere en mappe inn i sin egen undermappe</string>
+  <string name="copy_file_invalid_overwrite">Filen finnes allerede i målmappen</string>
+  <string name="copy_file_error">En feil oppstod ved kopiering av denne filen eller mappen</string>
+  <string name="forbidden_permissions_copy">å kopiere denne filen</string>
   <string name="prefs_category_instant_uploading">Umiddelbare opplastinger</string>
   <string name="prefs_category_security">Sikkerhet</string>
   <string name="prefs_instant_video_upload_path_title">Sti til video-opplasting</string>
-  <string name="download_folder_failed_content">Nedlasting av %1$s mappen kunne ikke fullføres</string>
   <string name="shared_subject_header">delte</string>
   <string name="with_you_subject_header">med deg</string>
-  <string name="subject_token">%1$s delte \"%2$s\" med deg</string>
+  <string name="subject_user_shared_with_you">%1$s delte \"%2$s\" med deg</string>
+  <string name="subject_shared_with_you">\"%1$s\" er blitt delt med deg</string>
   <string name="auth_refresh_button">Oppfrisk forbindelse</string>
   <string name="auth_host_address">Server-adresse</string>
   <string name="common_error_out_memory">Ikke nok minne</string>
   <string name="file_list__footer__files">%1$d filer</string>
   <string name="file_list__footer__files_and_folder">%1$d filer, 1 mappe</string>
   <string name="file_list__footer__files_and_folders">%1$d filer, %2$d mapper</string>
+  <string name="share_dialog_title">Deling</string>
+  <string name="share_no_users">Ingen data delt med brukere ennå</string>
+  <string name="share_add_user_or_group">Legg til bruker eller gruppe</string>
+  <string name="share_via_link_section_title">Del lenke</string>
+  <string name="share_via_link_expiration_date_label">Sett utløpsdato</string>
+  <string name="share_via_link_password_label">Passordbeskyttet</string>
+  <string name="share_search">Søk</string>
 </resources>
index 1e05442..e44f896 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Instellingen</string>
   <string name="drawer_item_logs">Logs</string>
   <string name="drawer_close">Sluiten</string>
+  <string name="drawer_open">Open</string>
   <string name="prefs_category_general">Algemeen</string>
   <string name="prefs_category_more">Meer</string>
   <string name="prefs_accounts">Accounts</string>
@@ -71,6 +72,7 @@ Download hier: %2$s</string>
   <string name="file_list_seconds_ago">seconden geleden</string>
   <string name="file_list_empty">Er bevindt zich hier niets. Upload een bestand!</string>
   <string name="file_list_loading">Laden...</string>
+  <string name="file_list_no_app_for_file_type">Geen app gevonden voor het bestandstype!</string>
   <string name="local_file_list_empty">Er staan geen bestanden in deze map.</string>
   <string name="filedetails_select_file">Druk op een bestand om extra informatie weer te geven</string>
   <string name="filedetails_size">Grootte:</string>
@@ -78,16 +80,14 @@ Download hier: %2$s</string>
   <string name="filedetails_created">Aangemaakt:</string>
   <string name="filedetails_modified">Aangepast:</string>
   <string name="filedetails_download">Download</string>
-  <string name="filedetails_sync_file">Bestand verversen</string>
+  <string name="filedetails_sync_file">Synchroniseren</string>
   <string name="filedetails_renamed_in_upload_msg">Bestand is tijdens het uploaden hernoemd naar %1$s</string>
   <string name="list_layout">Lijst layout</string>
-  <string name="action_share_file">Deel link</string>
-  <string name="action_unshare_file">Link niet meer delen</string>
+  <string name="action_share">Deel</string>
   <string name="common_yes">Ja</string>
   <string name="common_no">Nee</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Annuleer download</string>
-  <string name="common_cancel_upload">Upload afbreken</string>
+  <string name="common_cancel_sync">Annuleren synchronisatie</string>
   <string name="common_cancel">Annuleren</string>
   <string name="common_save_exit">Opslaan &amp; Afsluiten</string>
   <string name="common_error">Fout</string>
@@ -200,12 +200,12 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar
   <string name="unfavorite">Niet meer favoriet</string>
   <string name="common_rename">Hernoemen</string>
   <string name="common_remove">Verwijderen</string>
-  <string name="confirmation_remove_alert">Wilt u %1$s werkelijk verwijderen?</string>
+  <string name="confirmation_remove_file_alert">Wilt u %1$s werkelijk verwijderen?</string>
   <string name="confirmation_remove_folder_alert">Wilt u %1$s en de inhoud ervan werkelijk verwijderen?</string>
   <string name="confirmation_remove_local">Alleen lokaal</string>
-  <string name="confirmation_remove_folder_local">Alleen lokale inhoud </string>
-  <string name="confirmation_remove_remote">Verwijder van server</string>
-  <string name="confirmation_remove_remote_and_local">Lokaal en op de server</string>
+  <string name="confirmation_remove_folder_local">Alleen lokaal</string>
+  <string name="confirmation_remove_file_remote">Van server</string>
+  <string name="confirmation_remove_remote_and_local">Extern &amp; lokaal</string>
   <string name="remove_success_msg">Succesvol verwijderd</string>
   <string name="remove_fail_msg">Verwijdering kon niet voltooid worden</string>
   <string name="rename_dialog_title">Voer een nieuwe naam in</string>
@@ -246,6 +246,9 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar
   <string name="ssl_validator_label_validity_to">Aan:</string>
   <string name="ssl_validator_label_signature">Handtekening:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritme:</string>
+  <string name="digest_algorithm_not_available">Dit digest algoritme is niet beschikbaar op uw telefoon.</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Vingerafdruk:</string>
+  <string name="certificate_load_problem">Er is een probleem met het laden van het certificaat.</string>
   <string name="ssl_validator_null_cert">Het certificaat kon niet worden getoond.</string>
   <string name="ssl_validator_no_info_about_error">- Geen informatie over de fout</string>
   <string name="placeholder_sentence">Dit is een plaatshouder</string>
@@ -260,8 +263,8 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar
   <string name="conflict_title">Bestandsconflict</string>
   <string name="conflict_message">Welke bestanden wilt u bewaren? Als u beide versies selecteert zal het lokale bestand een nummer aan de naam toegevoegd krijgen.</string>
   <string name="conflict_keep_both">Beide bewaren</string>
-  <string name="conflict_use_local_version">Gebruik de lokale versie</string>
-  <string name="conflict_use_server_version">Gebruik de server-versie</string>
+  <string name="conflict_use_local_version">lokale versie</string>
+  <string name="conflict_use_server_version">serverversie</string>
   <string name="preview_image_description">Afbeelding voorbeeld</string>
   <string name="preview_image_error_unknown_format">Deze afbeelding kan niet worden getoond</string>
   <string name="error__upload__local_file_not_copied">%1$s kon niet worden gekopieerd naar de %2$s lokale map</string>
@@ -272,6 +275,8 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar
   <string name="share_link_file_error">Er trad een fout op bij uw poging dit bestand of deze map te delen</string>
   <string name="unshare_link_file_no_exist">Kan delen niet beëindigen. Ga na of het bestand bestaat</string>
   <string name="unshare_link_file_error">Er trad een fout op bij uw poging het delen van dit bestand of deze map te beëindigen</string>
+  <string name="update_link_file_no_exist">Kan niet bijwerken. Ga na of het bestand bestaat</string>
+  <string name="update_link_file_error">Er trad een fout op bij uw poging deze gedeelde link bij te werken</string>
   <string name="share_link_password_title">Vul het wachtwoord in</string>
   <string name="share_link_empty_password">U moet een wachtwoord opgeven</string>
   <string name="activity_chooser_send_file_title">Versturen</string>
@@ -288,12 +293,13 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar
   <string name="forbidden_permissions_delete">om dit bestand te verwijderen</string>
   <string name="share_link_forbidden_permissions">om dit bestand te delen</string>
   <string name="unshare_link_forbidden_permissions">om dit bestand niet meer te delen</string>
+  <string name="update_link_forbidden_permissions">deze gedeelde link bij te werken</string>
   <string name="forbidden_permissions_create">om dit bestand te creëren</string>
   <string name="uploader_upload_forbidden_permissions">om dit bestand in deze map te uploaden</string>
   <string name="downloader_download_file_not_found">Dit bestand is niet langer beschikbaar op de server</string>
   <string name="prefs_category_accounts">Accounts</string>
   <string name="prefs_add_account">Toevoegen account</string>
-  <string name="auth_redirect_non_secure_connection_title">De beveiligde verbinding is omgeleid naar een onveilige route.</string>
+  <string name="auth_redirect_non_secure_connection_title">De beveiligde verbinding is omgeleid via een onveilige route.</string>
   <string name="actionbar_logger">Logs</string>
   <string name="log_send_history_button">Verstuur geschiedenis</string>
   <string name="log_send_no_mail_app">Geen app voor versturen van logs gevonden. Installeer de mail app!</string>
@@ -301,7 +307,7 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar
   <string name="log_progress_dialog_text">Laden data...</string>
   <string name="saml_authentication_required_text">Authenticatie vereist</string>
   <string name="saml_authentication_wrong_pass">Onjuist wachtwoord</string>
-  <string name="actionbar_move">verplaatsen</string>
+  <string name="actionbar_move">Verplaatsen</string>
   <string name="file_list_empty_moving">Niets hier. U kunt een map toevoegen!</string>
   <string name="folder_picker_choose_button_text">Kies</string>
   <string name="move_file_not_found">Kan niet verplaatsen. Ga na of het bestand wel bestaat</string>
@@ -309,14 +315,19 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar
   <string name="move_file_invalid_overwrite">Het bestand bestaat al in de doelmap</string>
   <string name="move_file_error">Er trad een fout op bij uw poging dit bestand of deze map te verplaatsen</string>
   <string name="forbidden_permissions_move">om dit bestand te verplaatsen</string>
+  <string name="copy_file_not_found">Kan niet kopiëren. Ga na of het bestand wel bestaat</string>
+  <string name="copy_file_invalid_into_descendent">De map kan niet naar een onderliggende map worden gekopieerd</string>
+  <string name="copy_file_invalid_overwrite">Het bestand bestaat al in de doelmap</string>
+  <string name="copy_file_error">Er trad een fout op bij uw poging dit bestand of deze map te kopiëren</string>
+  <string name="forbidden_permissions_copy">om dit bestand te kopiëren</string>
   <string name="prefs_category_instant_uploading">Directe uploads</string>
   <string name="prefs_category_security">Beveiliging</string>
   <string name="prefs_instant_video_upload_path_title">Upload Video Pad</string>
-  <string name="download_folder_failed_content">Download van %1$s map kon niet worden voltooid</string>
+  <string name="sync_folder_failed_content">Synchronisatie van map %1$s kon niet worden voltooid</string>
   <string name="shared_subject_header">gedeeld</string>
   <string name="with_you_subject_header">met u</string>
-  <string name="subject_token">%1$s deelde \"%2$s\" met u</string>
-  <string name="saml_subject_token">\"%1$s\" is gedeeld met u</string>
+  <string name="subject_user_shared_with_you">%1$s deelde \"%2$s\" met u</string>
+  <string name="subject_shared_with_you">\"%1$s\" is gedeeld met u</string>
   <string name="auth_refresh_button">Verversen verbinding</string>
   <string name="auth_host_address">Serveradres</string>
   <string name="common_error_out_memory">Niet voldoende geheugen</string>
@@ -329,4 +340,18 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar
   <string name="file_list__footer__files">%1$d bestanden</string>
   <string name="file_list__footer__files_and_folder">%1$d bestanden, 1 map</string>
   <string name="file_list__footer__files_and_folders">%1$d bestanden, %2$d mappen</string>
+  <string name="share_dialog_title">Delen</string>
+  <string name="share_with_user_section_title">Delen met gebruikers en groepen</string>
+  <string name="share_no_users">Nog geen gegevens met gebruikers gedeeld</string>
+  <string name="share_add_user_or_group">Toevoegen gebruiker of groep</string>
+  <string name="share_via_link_section_title">Deel link</string>
+  <string name="share_via_link_expiration_date_label">Stel vervaldatum in</string>
+  <string name="share_via_link_password_label">Wachtwoord beveiligd</string>
+  <string name="share_via_link_password_title">Beveiligd</string>
+  <string name="share_get_public_link_button">Ophalen link</string>
+  <string name="share_search">Zoeken</string>
+  <string name="search_users_and_groups_hint">Zoeken naar gebruikers en groepen</string>
+  <string name="share_group_clarification">%1$s (groep)</string>
+  <string name="share_sharee_unavailable">Sorry, uw serverversie staat niet toe om binnen de clients te delen met gebruikers.
+Neem contact op met uw beheerder</string>
 </resources>
index b99a620..6392a96 100644 (file)
@@ -17,6 +17,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Opna</string>
   <string name="prefs_category_general">Generelt</string>
   <string name="prefs_category_more">Meir</string>
   <string name="prefs_accounts">Kontoar</string>
   <string name="filedetails_created">Oppretta:</string>
   <string name="filedetails_modified">Endra:</string>
   <string name="filedetails_download">Last ned</string>
-  <string name="action_share_file">Del lenkje</string>
+  <string name="action_share">Del</string>
   <string name="common_yes">Ja</string>
   <string name="common_no">Nei</string>
   <string name="common_ok">Greitt</string>
-  <string name="common_cancel_download">Avbryt nedlasting</string>
-  <string name="common_cancel_upload">Avbryt opplasting</string>
   <string name="common_cancel">Avbryt</string>
   <string name="common_save_exit">Lagra &amp; avslutt</string>
   <string name="common_error">Feil</string>
   <string name="common_rename">Endra namn</string>
   <string name="common_remove">Fjern</string>
   <string name="confirmation_remove_local">Berre lokalt</string>
-  <string name="confirmation_remove_remote">Fjern frå tenaren</string>
-  <string name="confirmation_remove_remote_and_local">Ekstern og lokal</string>
+  <string name="confirmation_remove_folder_local">Berre lokalt</string>
   <string name="remove_success_msg">Fjerning vellukka</string>
   <string name="remove_fail_msg">Fjerning mislukka</string>
   <string name="rename_server_fail_msg">Klarte ikkje å fullføra omdøyping</string>
   <string name="folder_picker_choose_button_text">Vel</string>
   <string name="prefs_category_security">Tryggleik</string>
   <string name="auth_host_address">Tenaradresse</string>
+  <string name="share_dialog_title">Deling</string>
+  <string name="share_via_link_section_title">Del lenkje</string>
+  <string name="share_via_link_expiration_date_label">Set utløpsdato</string>
+  <string name="share_via_link_password_label">Passordvern</string>
+  <string name="share_search">Søk</string>
 </resources>
index 69f2d18..b06c6fe 100644 (file)
 <?xml version='1.0' encoding='UTF-8'?>
 <resources>
+  <string name="about_android">%1$s Android App</string>
   <string name="about_version">version %1$s</string>
-  <string name="actionbar_upload">Amontcarga</string>
+  <string name="actionbar_sync">Actualizar lo compte</string>
+  <string name="actionbar_upload">Mandar</string>
+  <string name="actionbar_upload_from_apps">Contengut d\'autras aplicacions</string>
   <string name="actionbar_upload_files">Fichièrs</string>
-  <string name="actionbar_mkdir">Novèl dorsièr</string>
-  <string name="actionbar_settings">Configuracion</string>
+  <string name="actionbar_open_with">Dobrir amb</string>
+  <string name="actionbar_mkdir">Dorsièr novèl</string>
+  <string name="actionbar_settings">Paramètres</string>
+  <string name="actionbar_see_details">Detalhs</string>
   <string name="actionbar_send_file">Mandar</string>
+  <string name="actionbar_sort">Triar</string>
+  <string name="actionbar_sort_title">Triar</string>
+  <string-array name="actionbar_sortby">
+    <item>per òrdre alfabetic</item>
+    <item>del mai recent al pus ancian</item>
+  </string-array>
   <!--TODO re-enable when server-side folder size calculation is available   
        <item>Biggest - Smallest</item>-->
   <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
   <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <string name="drawer_item_all_files">Totes los fichièrs</string>
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
   <string name="drawer_item_settings">Paramètres</string>
+  <string name="drawer_item_logs">Logs</string>
+  <string name="drawer_close">Tampar</string>
+  <string name="drawer_open">Dobrir</string>
   <string name="prefs_category_general">General</string>
-  <string name="prefs_category_more">Mai d\'aquò</string>
+  <string name="prefs_category_more">Mai</string>
   <string name="prefs_accounts">Comptes</string>
-  <string name="prefs_manage_accounts">Maneja comptes</string>
+  <string name="prefs_manage_accounts">Gestion dels comptes</string>
+  <string name="prefs_passcode">Còde de seguretat</string>
+  <string name="prefs_instant_upload">Mandadís immediat de las fòtos</string>
+  <string name="prefs_instant_upload_summary">Mandar immediatament las fòtos presas per la camèra</string>
+  <string name="prefs_instant_video_upload">Mandadís immediat de las vidèos</string>
+  <string name="prefs_instant_video_upload_summary">Mandar immediatament las vidèos presas per la camèra</string>
+  <string name="prefs_log_title">Activar los logs</string>
+  <string name="prefs_log_summary">Utilizat per enregistrar los problèmas dins los logs</string>
+  <string name="prefs_log_title_history">Istoric dels logs</string>
+  <string name="prefs_log_summary_history">Aquò aficha los logs enregistrats</string>
+  <string name="prefs_log_delete_history_button">Suprimir l\'istoric</string>
   <string name="prefs_help">Ajuda</string>
-  <string name="prefs_imprint">Mencions legalas</string>
-  <string name="auth_username">Nom d\'usancièr</string>
+  <string name="prefs_recommend">Recomandar a un amis</string>
+  <string name="prefs_feedback">Comentaris</string>
+  <string name="prefs_imprint">Mencions</string>
+  <string name="prefs_remember_last_share_location">Memorizar l\'emplaçament de partiment</string>
+  <string name="prefs_remember_last_upload_location_summary">Memorizar lo darrièr emplaçament de mandadís</string>
+  <string name="recommend_subject">Ensajatz %1$s sus vòstre smartphone !</string>
+  <string name="recommend_text">M\'agradariá de vos convidar a utilizar %1$s sus vòstre smartphone !
+Telecargatz-lo aicí : %2$s</string>
+  <string name="auth_check_server">Verificar lo servidor</string>
+  <string name="auth_host_url">Adreça del servidor https://…</string>
+  <string name="auth_username">Nom d\'utilizaire</string>
   <string name="auth_password">Senhal</string>
+  <string name="auth_register">Novèl dins %1$s ?</string>
   <string name="sync_string_files">Fichièrs</string>
-  <string name="setup_btn_connect">Connecta</string>
-  <string name="uploader_btn_upload_text">Amontcarga</string>
-  <string name="uploader_btn_new_folder_text">Novèl dorsièr</string>
-  <string name="uploader_wrn_no_account_title">Cap de compte trobat</string>
+  <string name="setup_btn_connect">Connectar</string>
+  <string name="uploader_btn_upload_text">Mandar</string>
+  <string name="uploader_btn_new_folder_text">Dorsièr novèl</string>
+  <string name="uploader_top_message">Seleccionar lo dorsièr de mandadís :</string>
+  <string name="uploader_wrn_no_account_title">Cap de compte es pas estat trobat</string>
+  <string name="uploader_wrn_no_account_text">Cap de compte %1$s es pas estat trobat. Començar per ne configurar un.</string>
   <string name="uploader_wrn_no_account_setup_btn_text">Configuracion</string>
-  <string name="uploader_wrn_no_account_quit_btn_text">Quita</string>
-  <string name="uploader_info_uploading">Al amontcargar</string>
-  <string name="file_list_seconds_ago">segonda a</string>
-  <string name="file_list_empty">Pas res dedins. Amontcarga qualquaren</string>
+  <string name="uploader_wrn_no_account_quit_btn_text">Quitar</string>
+  <string name="uploader_wrn_no_content_title">Pas res a mandar</string>
+  <string name="uploader_wrn_no_content_text">Cap de contengut pas recebut. Pas res a mandar.</string>
+  <string name="uploader_error_forbidden_content">%1$s es pas autorizat a accedir al contengut partejat</string>
+  <string name="uploader_info_uploading">Mandadís...</string>
+  <string name="file_list_seconds_ago">i a qualques segondas</string>
+  <string name="file_list_empty">I a pas res aicí ! Mandatz doncas quicòm :)</string>
+  <string name="file_list_loading">Cargament...</string>
+  <string name="file_list_no_app_for_file_type">Cap d\'aplicacion pas trobada per aqueste tipe de fichièr !</string>
+  <string name="local_file_list_empty">Cap de fichièr es pas present dins aqueste dorsièr.</string>
+  <string name="filedetails_select_file">Quichatz sus un fichièr per afichar las informacions suplementàrias</string>
   <string name="filedetails_size">Talha :</string>
   <string name="filedetails_type">Tipe :</string>
-  <string name="filedetails_created">Creat :</string>
-  <string name="filedetails_modified">Modificat :</string>
-  <string name="filedetails_download">Avalcarga</string>
-  <string name="action_share_file">Partiment per ligam</string>
+  <string name="filedetails_created">Creat lo :</string>
+  <string name="filedetails_modified">Modificat lo :</string>
+  <string name="filedetails_download">Telecargar</string>
+  <string name="filedetails_sync_file">Sincronizar</string>
+  <string name="filedetails_renamed_in_upload_msg">Lo fichièr es estat renomenat en %s pendent lo mandadís</string>
+  <string name="list_layout">Afichatge en lista</string>
+  <string name="action_share">Partejar</string>
   <string name="common_yes">Òc</string>
   <string name="common_no">Non</string>
-  <string name="common_ok">D\'accòrdi</string>
-  <string name="common_cancel_upload"> Anulla l\'amontcargar</string>
-  <string name="common_cancel">Annula</string>
+  <string name="common_ok">D\'acòrdi</string>
+  <string name="common_cancel_sync">Anullar la sincronizacion</string>
+  <string name="common_cancel">Anullar</string>
+  <string name="common_save_exit">Salvar &amp; Quitar</string>
   <string name="common_error">Error</string>
-  <string name="common_error_unknown">Error Desconeguda </string>
-  <string name="about_title">A prepaus</string>
-  <string name="change_password">Cambia lo senhal</string>
-  <string name="delete_account">Escafa lo compte</string>
-  <string name="create_account">Crea un compte</string>
-  <string name="upload_chooser_title">Avalcarga dempuèi ...</string>
+  <string name="common_loading">Cargament…</string>
+  <string name="common_error_unknown">Error desconeguda </string>
+  <string name="about_title">A prepaus de</string>
+  <string name="change_password">Cambiar de senhal</string>
+  <string name="delete_account">Suprimir aqueste compte</string>
+  <string name="create_account">Crear un compte</string>
+  <string name="upload_chooser_title">Mandar un fichièr dempuèi…</string>
   <string name="uploader_info_dirname">Nom del dorsièr</string>
-  <string name="uploader_upload_in_progress_ticker">Al avalcargar ...</string>
-  <string name="uploader_upload_succeeded_ticker">Capitada d\'avalcargar</string>
-  <string name="common_choose_account">Causís lo compte</string>
+  <string name="uploader_upload_in_progress_ticker">Mandadís…</string>
+  <string name="uploader_upload_in_progress_content">Mandadís del fichièr %2$s : %1$d%% efectuats</string>
+  <string name="uploader_upload_succeeded_ticker">Mandadís capitat</string>
+  <string name="uploader_upload_succeeded_content_single">Lo fichièr %1$s es estat mandat amb succès</string>
+  <string name="uploader_upload_failed_ticker">Fracàs del mandadís</string>
+  <string name="uploader_upload_failed_content_single">Lo mandadís de %1$s a fracassat</string>
+  <string name="uploader_upload_failed_credentials_error">Lo mandadís a fracassat, vos cal vos connectar tornamai</string>
+  <string name="downloader_download_in_progress_ticker">Telecargament en cors…</string>
+  <string name="downloader_download_in_progress_content">Telecargament en cors de %2$s, %1$d%% efectuats</string>
+  <string name="downloader_download_succeeded_ticker">Telecargament capitat</string>
+  <string name="downloader_download_succeeded_content">%1$s es estat telecargat amb succès</string>
+  <string name="downloader_download_failed_ticker">Lo telecargament a fracassat</string>
+  <string name="downloader_download_failed_content">Lo telecargament de %1$s a fracassat</string>
+  <string name="downloader_not_downloaded_yet">Pas encara telecargat</string>
+  <string name="downloader_download_failed_credentials_error">Lo telecargament a fracassat, vos cal vos connectar tornamai</string>
+  <string name="common_choose_account">Causissètz un compte</string>
+  <string name="sync_fail_ticker">La sincronizacion a fracassat</string>
+  <string name="sync_fail_ticker_unauthorized">Fracàs de la sincronizacion, vos cal vos reconnectar</string>
+  <string name="sync_fail_content">La sincronizacion de %1$s a pas pogut èsser acabada</string>
+  <string name="sync_fail_content_unauthorized">Senhal invalid per %1$s</string>
+  <string name="sync_conflicts_in_favourites_ticker">De conflictes son estats trobats</string>
+  <string name="sync_conflicts_in_favourites_content">%1$d fichièrs de gardar sincronizats an pas pogut èsser sincronizats</string>
+  <string name="sync_fail_in_favourites_ticker">La sincronizacion dels fichièrs a fracassat</string>
+  <string name="sync_fail_in_favourites_content">Lo contengut de %1$d fichièrs a pas pogut èsser sincronizat (%2$d conflictes)</string>
+  <string name="sync_foreign_files_forgotten_ticker">Certans fichièrs locals son estats doblidats</string>
+  <string name="sync_foreign_files_forgotten_content">%1$d fichièrs del dorsièr %2$s an pas pogut èsser copiats dins</string>
+  <string name="sync_foreign_files_forgotten_explanation">Dempuèi la version 1.3.16, los fichièrs mandats dempuèi aqueste aparelh son copiats dins lo dorsièr local %1$s per evitar una pèrda de donadas quand un meteis fichièr es sincronizat amb mantun compte.
+
+En rason d\'aquesta modificacion, totes los fichièrs mandats amb de versions anterioras d\'aquesta aplicacion son estats copiats dins lo dorsièr %2$s. Pasmens, una error a empachat l\'acabament d\'aquesta operacion pendent la sincronizacion del compte. Podètz siá daissar los fichièrs tals coma son e suprimir lo ligam cap a %3$s, siá desplaçar los fichièrs dins lo dorsièr %1$s e gardar lo ligam cap a %4$s.
+
+Çaijós la lista dels fichièrs locals, e los fichièrs distants dins %5$s als quals èran ligats.</string>
+  <string name="sync_current_folder_was_removed">Lo dorsièr %1$s existís pas mai</string>
+  <string name="foreign_files_move">Desplaçar tot</string>
+  <string name="foreign_files_success">Totes los fichièrs son estats desplaçats</string>
+  <string name="foreign_files_fail">Certans fichièrs an pas pogut èsser desplaçats</string>
+  <string name="foreign_files_local_text">Local : %1$s</string>
+  <string name="foreign_files_remote_text">Distant : %1$s</string>
+  <string name="upload_query_move_foreign_files">I a pas pro de plaça disponibla per copiar los fichièrs seleccionats dins lo dorsièr %1$s. Volètz los desplaçar a la plaça ?</string>
+  <string name="pass_code_enter_pass_code">Sasissètz vòstre còde de seguretat</string>
+  <string name="pass_code_configure_your_pass_code">Sasissètz vòstre còde de seguretat</string>
+  <string name="pass_code_configure_your_pass_code_explanation">Lo còde de seguretat serà demandat a cada dobertura de l\'aplicacion</string>
+  <string name="pass_code_reenter_your_pass_code">Sasissètz tornamai vòstre còde de seguretat</string>
+  <string name="pass_code_remove_your_pass_code">Suprimir vòstre còde de seguretat</string>
+  <string name="pass_code_mismatch">Los còdes de seguretat son pas identics</string>
+  <string name="pass_code_wrong">Còde de seguretat incorrècte</string>
+  <string name="pass_code_removed">Còde de seguretat suprimit</string>
+  <string name="pass_code_stored">Còde de seguretat enregistrat</string>
+  <string name="media_notif_ticker">%1$s lector de musica</string>
+  <string name="media_state_playing">%1$s (lectura)</string>
+  <string name="media_state_loading">%1$s (cargament)</string>
+  <string name="media_event_done">Lectura de %1$s acabada</string>
+  <string name="media_err_nothing_to_play">Fichièr mèdia introbable </string>
+  <string name="media_err_no_account">Cap de compte es pas estat trobat</string>
+  <string name="media_err_not_in_owncloud">Lo fichièr es pas dins un compte valid</string>
+  <string name="media_err_unsupported">Lo codec d\'aqueste mèdia es pas pres en carga </string>
+  <string name="media_err_io">Lo fichièr mèdia pòt pas èsser legit</string>
+  <string name="media_err_malformed">Lo fichièr mèdia es pas corrèctament encodat</string>
+  <string name="media_err_timeout">Relambi depassat per la lectura del tròç</string>
+  <string name="media_err_invalid_progressive_playback">Lo fichièr mèdia pòt pas èsser difusat</string>
+  <string name="media_err_unknown">Lo fichièr mèdia pòt pas èsser jogat amb lo lector estandard</string>
+  <string name="media_err_security_ex">Error de seguretat a la lectura de %1$s</string>
+  <string name="media_err_io_ex">Error de lectura de fichièr a la lectura de %1$s</string>
+  <string name="media_err_unexpected">Error imprevista a la lectura de %1$s </string>
+  <string name="media_rewind_description">Boton de rembobinatge</string>
+  <string name="media_play_pause_description">Boton de lectura o de pausa</string>
+  <string name="media_forward_description">Boton d\'avança rapida</string>
+  <string name="auth_getting_authorization">Demanda d\'autorizacion…</string>
+  <string name="auth_trying_to_login">Temptativa de connexion…</string>
+  <string name="auth_no_net_conn_title">Pas de connexion ret</string>
+  <string name="auth_nossl_plain_ok_title">Connexion securizada pas disponibla</string>
+  <string name="auth_connection_established">Connexion establida</string>
+  <string name="auth_testing_connection">Tèst de connexion</string>
+  <string name="auth_not_configured_title">Configuracion del servidor erronèa</string>
+  <string name="auth_account_not_new">Un compte pels meteisses utilizaire e servidor existís ja sus aqueste aparelh</string>
+  <string name="auth_account_not_the_same">L\'utilizaire entrat correspond pas a l\'utilizaire d\'aqueste compte</string>
+  <string name="auth_unknown_error_title">Una error desconeguda s\'es produsida.</string>
+  <string name="auth_unknown_host_title">Impossible de trobar l\'òste</string>
+  <string name="auth_incorrect_path_title">Cap d\'instància del servidor es pas estada trobada</string>
+  <string name="auth_timeout_title">Lo servidor a pres tròp de temps a respondre</string>
+  <string name="auth_incorrect_address_title">Adreça invalida</string>
+  <string name="auth_ssl_general_error_title">Fracàs de l\'inicializacion SSL</string>
+  <string name="auth_ssl_unverified_server_title">Impossible de verificar l\'identitat del servidor SSL</string>
+  <string name="auth_bad_oc_version_title">La version del servidor es pas reconeguda</string>
+  <string name="auth_wrong_connection_title">Impossible d\'establir la connexion</string>
+  <string name="auth_secure_connection">Connexion securizada establida</string>
+  <string name="auth_unauthorized">Nom d\'utilizaire o senhal incorrècte</string>
+  <string name="auth_oauth_error">Fracàs d\'autorizacion</string>
+  <string name="auth_oauth_error_access_denied">Accès refusat pel servidor d\'autorizacion</string>
+  <string name="auth_wtf_reenter_URL">Estat imprevist ; sasissètz tornamai l\'URL del servidor</string>
+  <string name="auth_expired_oauth_token_toast">Vòstra autorizacion a expirat. Mercé de vos autentificar tornamai</string>
+  <string name="auth_expired_basic_auth_toast">Sasissètz lo senhal corrent</string>
+  <string name="auth_expired_saml_sso_token_toast">Vòstra session a expirat. Mercé de vos reconnectar</string>
+  <string name="auth_connecting_auth_server">Connexion al servidor d\'autentificacion…</string>
+  <string name="auth_unsupported_auth_method">Lo servidor pren pas en carga pas aqueste metòde d\'autentificacion</string>
+  <string name="auth_unsupported_multiaccount">%1$s pren pas en carga los comptes multiples</string>
+  <string name="auth_fail_get_user_name">Vòstre servidor a tornat un identificant d\'utilizaire incorrècte. Prenètz contacte amb vòstre administrator
+</string>
+  <string name="auth_can_not_auth_against_server">Impossible de s\'autentificar sus aqueste servidor</string>
+  <string name="auth_account_does_not_exist">Lo compte existís pas encara sus aqueste periferic</string>
   <string name="favorite">Apondre als favorits</string>
-  <string name="common_rename">Torna nomenar</string>
+  <string name="unfavorite">Suprimir dels favorits</string>
+  <string name="common_rename">Renomenar</string>
   <string name="common_remove">Suprimir</string>
+  <string name="confirmation_remove_file_alert">Sètz segur que volètz suprimir %1$s ?</string>
+  <string name="confirmation_remove_folder_alert">Sètz segur que volètz suprimir %1$s e son contengut ?</string>
+  <string name="confirmation_remove_local">Local solament</string>
+  <string name="confirmation_remove_folder_local">Local solament</string>
+  <string name="confirmation_remove_file_remote">Dempuèi lo servidor</string>
+  <string name="confirmation_remove_remote_and_local">Distant &amp; local</string>
+  <string name="remove_success_msg">Supression efectuada amb succès</string>
+  <string name="remove_fail_msg">Supression impossibla</string>
+  <string name="rename_dialog_title">Entratz un nom novèl</string>
+  <string name="rename_local_fail_msg">La version locala pòt pas èsser renomenada, reensajatz amb un nom diferent</string>
+  <string name="rename_server_fail_msg">Cambiament de nom impossible</string>
+  <string name="sync_file_fail_msg">Lo fichièr distant a pas pogut èsser verificat</string>
+  <string name="sync_file_nothing_to_do_msg">Lo contengut del fichièr es ja sincronizat</string>
+  <string name="create_dir_fail_msg">Lo dorsièr a pas pogut èsser creat</string>
+  <string name="filename_forbidden_characters">Caractèrs interdiches : / \\ &lt; &gt; : \" | ? *</string>
+  <string name="filename_forbidden_charaters_from_server">Lo nom de fichièr conten al mens un caractèr invalid</string>
+  <string name="filename_empty">Lo nom del fichièr pòt pas èsser void</string>
+  <string name="wait_a_moment">Pacientatz</string>
+  <string name="filedisplay_unexpected_bad_get_content">Problèma imprevist. Ensajatz una autra aplicacion per la seleccion del fichièr</string>
+  <string name="filedisplay_no_file_selected">Cap de fichièr pas seleccionat</string>
+  <string name="activity_chooser_title">Mandar lo ligam cap a…</string>
+  <string name="wait_for_tmp_copy_from_private_storage">Còpia del fichièr dempuèi l\'emmagazinatge privat</string>
+  <string name="oauth_check_onoff">Connexion amb oAuth2</string>
+  <string name="oauth_login_connection">Connexion al servidor oAuth2…</string>
+  <string name="ssl_validator_header">L\'identitat del site pòt pas èsser verificada</string>
+  <string name="ssl_validator_reason_cert_not_trusted">- Lo certificat del servidor es pas segur</string>
+  <string name="ssl_validator_reason_cert_expired">- Lo certificat del servidor a expirat</string>
+  <string name="ssl_validator_reason_cert_not_yet_valid">- Lo certificat del servidor es pas encara valid</string>
+  <string name="ssl_validator_reason_hostname_not_verified">- L\'URL correspond pas al nom d\'òste del certificat</string>
+  <string name="ssl_validator_question">Vos volètz fisaz d\'aqueste certificat malgrat tot ?</string>
+  <string name="ssl_validator_not_saved">Impossible de salvar lo certificat</string>
+  <string name="ssl_validator_btn_details_see">Detalhs</string>
+  <string name="ssl_validator_btn_details_hide">Amagar</string>
+  <string name="ssl_validator_label_subject">Desliurat a :</string>
+  <string name="ssl_validator_label_issuer">Desliurat per :</string>
+  <string name="ssl_validator_label_CN">Nom d\'usatge :</string>
+  <string name="ssl_validator_label_O">Organizacion :</string>
+  <string name="ssl_validator_label_OU">Unitat organizacionala :</string>
   <string name="ssl_validator_label_C">País :</string>
+  <string name="ssl_validator_label_ST">Region :</string>
+  <string name="ssl_validator_label_L">Localizacion :</string>
+  <string name="ssl_validator_label_validity">Validitat :</string>
+  <string name="ssl_validator_label_validity_from">Del :</string>
+  <string name="ssl_validator_label_validity_to">Al :</string>
+  <string name="ssl_validator_label_signature">Signatura :</string>
+  <string name="ssl_validator_label_signature_algorithm">Algoritme :</string>
+  <string name="ssl_validator_null_cert">Impossible d\'afichar lo certificat.</string>
+  <string name="ssl_validator_no_info_about_error">- Pas cap d\'informacion sus l\'error</string>
+  <string name="placeholder_sentence">Aquò es un espaci reservat</string>
+  <string name="placeholder_filename">placeholder.txt</string>
+  <string name="placeholder_filetype">Imatge PNG</string>
+  <string name="placeholder_filesize">389 Ko</string>
+  <string name="placeholder_timestamp">18/05/2012 12:23</string>
+  <string name="placeholder_media_time">12:23:45</string>
+  <string name="instant_upload_on_wifi">Mandar los imatges via una connexion WiFi unicament</string>
+  <string name="instant_video_upload_on_wifi">Mandar las vidèos via una connexion WiFi unicament</string>
+  <string name="instant_upload_path">/InstantUpload</string>
+  <string name="conflict_title">Conflicte de fichièrs</string>
+  <string name="conflict_message">Quin(s) fichièr(s) volètz gardar ? Se seleccionatz los dos, una chifra serà aponduda al nom del fichièr local.</string>
+  <string name="conflict_keep_both">Gardar las doas versions</string>
+  <string name="conflict_use_local_version">version locala</string>
+  <string name="conflict_use_server_version">version servidor</string>
+  <string name="preview_image_description">Previsualizacion de l\'imatge</string>
+  <string name="preview_image_error_unknown_format">Aqueste imatge pòt pas èsser afichada</string>
+  <string name="error__upload__local_file_not_copied">%1$s a pas pogut èsser copiat dins lo dorsièr local %2$s</string>
+  <string name="prefs_instant_upload_path_title">Repertòri de mandadís</string>
+  <string name="share_link_no_support_share_api">O planhèm, lo partiment es pas disponible sus vòstre servidor. Contactatz vòstre administrator.</string>
+  <string name="share_link_file_no_exist">Impossible de partejar. Verificatz que lo fichièr es plan present</string>
+  <string name="share_link_file_error">Una error s\'es produsida al moment de la tentative de partiment d\'aqueste fichièr o repertòri</string>
+  <string name="unshare_link_file_no_exist">Impossible de suprimir lo partiment. Verificatz que lo fichièr es ben present</string>
+  <string name="unshare_link_file_error">Una error s\'es produsida al moment de la temptativa d’anullacion del partiment d\'aqueste fichièr o repertòri</string>
+  <string name="share_link_password_title">Sasissètz un senhal</string>
+  <string name="share_link_empty_password">Vos cal sasir un senhal</string>
   <string name="activity_chooser_send_file_title">Mandar</string>
+  <string name="copy_link">Copiar lo ligam</string>
   <string name="clipboard_text_copied">Copiat dins lo quichapapièrs</string>
+  <string name="error_cant_bind_to_operations_service">Error critica : impossible de realizar d\'operacions</string>
+  <string name="network_error_socket_exception">Una error s\'es produsida pendent la connexion al servidor.</string>
+  <string name="network_error_socket_timeout_exception">Una error s\'es produsida pendent l\'espèra del servidor. L\'operacion a pas pogut èsser efectuada</string>
+  <string name="network_error_connect_timeout_exception">Una error s\'es produsida pendent l\'espèra del servidor. L\'operacion a pas pogut èsser efectuada</string>
+  <string name="network_host_not_available">L\'operacion a pas pogut èsser acabada, lo servidor es pas disponible</string>
   <string name="empty"></string>
+  <string name="forbidden_permissions">Avètz pas la permission %s</string>
+  <string name="forbidden_permissions_rename">de renomenar aqueste fichièr</string>
+  <string name="forbidden_permissions_delete">d’escafar aqueste fichièr</string>
+  <string name="share_link_forbidden_permissions">per fin de partejar aqueste fichièr</string>
+  <string name="unshare_link_forbidden_permissions">per fin de partejar pas mai aqueste fichièr</string>
+  <string name="forbidden_permissions_create">de crear aqueste fichièr</string>
+  <string name="uploader_upload_forbidden_permissions">per fin d’importar dins aqueste repertòri</string>
+  <string name="downloader_download_file_not_found">Aqueste fichièr es pas mai disponible sul servidor</string>
   <string name="prefs_category_accounts">Comptes</string>
+  <string name="prefs_add_account">Apondre un compte</string>
+  <string name="auth_redirect_non_secure_connection_title">La connexion securizada es redirigida cap a una rota non-securizada.</string>
+  <string name="actionbar_logger">Jornals</string>
+  <string name="log_send_history_button">Mandar l\'istoric</string>
+  <string name="log_send_no_mail_app">Cap d\'aplicacion pas trobada pel mandadís de jornals. Installar una aplicacion de corrièl !</string>
+  <string name="log_send_mail_subject">Jornals de l\'aplicacion Android %1$s</string>
+  <string name="log_progress_dialog_text">Cargament de las donadas…</string>
   <string name="saml_authentication_required_text">Autentificacion requesida</string>
   <string name="saml_authentication_wrong_pass">Senhal incorrècte</string>
-  <string name="folder_picker_choose_button_text">Causís</string>
+  <string name="actionbar_move">Desplaçar</string>
+  <string name="file_list_empty_moving">I a pas res aicí. Podètz apondre un dorsièr !</string>
+  <string name="folder_picker_choose_button_text">Causir</string>
+  <string name="move_file_not_found">Impossible de desplaçar. Verificatz que lo fichièr existís</string>
+  <string name="move_file_invalid_into_descendent">Es pas possible de desplaçar un dorsièr cap a un de sos descendents</string>
+  <string name="move_file_invalid_overwrite">Lo fichièr existís ja dins lo dorsièr de destinacion</string>
+  <string name="move_file_error">Una error s\'es produsida al moment de la temptativa de desplaçament d\'aqueste fichièr o dorsièr</string>
+  <string name="forbidden_permissions_move">de desplaçar aqueste fichièr</string>
+  <string name="copy_file_not_found">Impossible de copiar. Verificatz que lo fichièr existís</string>
+  <string name="copy_file_invalid_into_descendent">Es pas possible de copiar un dorsièr cap a un de sos descendents</string>
+  <string name="copy_file_invalid_overwrite">Fichièr ja existent dins lo dorsièr de destinacion</string>
+  <string name="copy_file_error">Una error s\'es produsida al moment de la còpia d\'aqueste fichièr o dorsièr</string>
+  <string name="forbidden_permissions_copy">de copiar aqueste fichièr</string>
+  <string name="prefs_category_instant_uploading">Mandadís immediat</string>
+  <string name="prefs_category_security">Seguretat</string>
+  <string name="prefs_instant_video_upload_path_title">Repertòri de mandadís de las vidèos</string>
+  <string name="sync_folder_failed_content">La sincronizacion del dorsièr %1$s a pas pogut èsser acabad</string>
+  <string name="shared_subject_header">a partejat</string>
+  <string name="with_you_subject_header">amb vos</string>
+  <string name="subject_user_shared_with_you">%1$s a partejat \"%2$s\" amb vos</string>
+  <string name="subject_shared_with_you">\"%1$s\" es estat partejat amb vos</string>
+  <string name="auth_refresh_button">Actualizar la connexion</string>
   <string name="auth_host_address">Adreça del servidor</string>
+  <string name="common_error_out_memory">Memòria insufisenta</string>
   <string name="username">Nom d\'utilizaire</string>
+  <string name="file_list__footer__folder">1 dorsièr</string>
+  <string name="file_list__footer__folders">%1$d dorsièrs</string>
+  <string name="file_list__footer__file">1 fichièr</string>
+  <string name="file_list__footer__file_and_folder">1 fichièr, 1 dorsièr</string>
+  <string name="file_list__footer__file_and_folders">1 fichièr, %1$d dorsièrs</string>
+  <string name="file_list__footer__files">%1$d fichièrs</string>
+  <string name="file_list__footer__files_and_folder">%1$d fichièrs, 1 dorsièr</string>
+  <string name="file_list__footer__files_and_folders">%1$d fichièrs, %2$d dorsièrs</string>
+  <string name="share_dialog_title">Partiment</string>
+  <string name="share_no_users">Cap de donada es pas partejada amb d\'utilizaires pel moment</string>
+  <string name="share_add_user_or_group">Apondre un utilizaire o un grop</string>
+  <string name="share_via_link_section_title">Partejar lo ligam</string>
+  <string name="share_via_link_expiration_date_label">Especificar una data d\'expiracion</string>
+  <string name="share_via_link_password_label">Protegir per un senhal</string>
+  <string name="share_search">Recercar</string>
+  <string name="search_users_and_groups_hint">Recercar d\'utilizaires e de gropes</string>
 </resources>
index a757dba..bee8058 100644 (file)
   <string name="filedetails_created">ਬਣਾਈ:</string>
   <string name="filedetails_modified">ਸੋਧ ਕੀਤੀ:</string>
   <string name="filedetails_download">ਡਾਊਨਲੋਡ</string>
-  <string name="filedetails_sync_file">ਫਾਇਲ ਤਾਜ਼ਾ ਕਰੋ</string>
+  <string name="action_share">ਸਾਂਝਾ ਕਰੋ</string>
   <string name="common_yes">ਹਾਂ</string>
   <string name="common_no">ਨਹੀਂ</string>
   <string name="common_ok">ਠੀਕ ਹੈ</string>
-  <string name="common_cancel_download">ਡਾਊਨਲੋਡ ਕਰਨਾ ਰੱਦ ਕਰੋ</string>
-  <string name="common_cancel_upload">ਅੱਪਲੋਡ ਰੱਦ ਕਰੋ</string>
   <string name="common_cancel">ਰੱਦ ਕਰੋ</string>
   <string name="common_save_exit">ਸੰਭਾਲੋ ਅਤੇ ਬੰਦ ਕਰੋ</string>
   <string name="common_error">ਗਲਤੀ</string>
@@ -89,8 +87,7 @@
   <string name="common_rename">ਨਾਂ ਬਦਲੋ</string>
   <string name="common_remove">ਹਟਾਓ</string>
   <string name="confirmation_remove_local">ਕੇਵਲ ਲੋਕਲ</string>
-  <string name="confirmation_remove_remote">ਸਰਵਰ ਤੋਂ ਹਟਾਓ</string>
-  <string name="confirmation_remove_remote_and_local">ਰਿਮੋਟ ਤੇ ਲੋਕਲ</string>
+  <string name="confirmation_remove_folder_local">ਕੇਵਲ ਲੋਕਲ</string>
   <string name="wait_a_moment">ਪਲ਼ ਭਰ ਲਈ ਉਡੀਕੋ</string>
   <string name="filedisplay_no_file_selected">ਕੋਈ ਫਾਇਲ ਨਹੀਂ ਚੁਣੀ ਗਈ</string>
   <string name="ssl_validator_header">ਇਹ ਸਾਈਟ ਦੀ ਪਛਾਣ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ ਹੈ</string>
   <string name="prefs_category_accounts">ਅਕਾਊਂਟ</string>
   <string name="folder_picker_choose_button_text">ਚੁਣੋ</string>
   <string name="auth_host_address">ਸਰਵਰ ਐਡਰੈਸ</string>
+  <string name="share_search">ਖੋਜ</string>
 </resources>
index 0822459..9d77e88 100644 (file)
        <item>Biggest - Smallest</item>-->
   <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
   <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <string name="drawer_item_all_files">Wszystkie pliki</string>
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_item_settings">Ustawienia</string>
+  <string name="drawer_item_logs">Logi</string>
+  <string name="drawer_close">Zamknij</string>
+  <string name="drawer_open">Otwórz</string>
   <string name="prefs_category_general">Ogólne</string>
   <string name="prefs_category_more">Więcej</string>
   <string name="prefs_accounts">Konta</string>
@@ -65,6 +70,7 @@
   <string name="uploader_info_uploading">Wysyłanie</string>
   <string name="file_list_seconds_ago">sekund temu</string>
   <string name="file_list_empty">Pusto. Wyślij coś!</string>
+  <string name="file_list_loading">Wczytywanie...</string>
   <string name="local_file_list_empty">Nie ma plików w tym folderze.</string>
   <string name="filedetails_select_file">Dotknij plik aby wyświetlić dodatkowe informacje</string>
   <string name="filedetails_size">Rozmiar:</string>
   <string name="filedetails_created">Utworzono:</string>
   <string name="filedetails_modified">Zmodyfikowano:</string>
   <string name="filedetails_download">Pobierz</string>
-  <string name="filedetails_sync_file">Odśwież plik</string>
   <string name="filedetails_renamed_in_upload_msg">Podczas wysyłania nazwa pliku została zmieniona na %1$s</string>
   <string name="list_layout">Lista szablonów wyglądu</string>
-  <string name="action_share_file">Udostępnij link</string>
-  <string name="action_unshare_file">Anuluj udostępnianie</string>
+  <string name="action_share">Udostępnij</string>
   <string name="common_yes">Tak</string>
   <string name="common_no">Nie</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Anuluj pobieranie</string>
-  <string name="common_cancel_upload">Anuluj wysyłanie</string>
   <string name="common_cancel">Anuluj</string>
   <string name="common_save_exit">Zapisz i wyjdź</string>
   <string name="common_error">Błąd</string>
   <string name="unfavorite">Usuń z ulubionych</string>
   <string name="common_rename">Zmień nazwę</string>
   <string name="common_remove">Usuń</string>
-  <string name="confirmation_remove_alert">Czy naprawdę chcesz usunąć %1$s?</string>
+  <string name="confirmation_remove_file_alert">Czy naprawdę chcesz usunąć %1$s?</string>
   <string name="confirmation_remove_folder_alert">Czy naprawdę chcesz usunąć %1$s i jego zawartość?</string>
   <string name="confirmation_remove_local">Tylko lokalnie</string>
-  <string name="confirmation_remove_folder_local">Tylko zasoby lokalne</string>
-  <string name="confirmation_remove_remote">Usuń z serwera</string>
-  <string name="confirmation_remove_remote_and_local">Z serwera i telefonu</string>
+  <string name="confirmation_remove_folder_local">Tylko lokalnie</string>
+  <string name="confirmation_remove_file_remote">Z serwera</string>
   <string name="remove_success_msg">Usunięto</string>
   <string name="remove_fail_msg">Nie można usunąć</string>
   <string name="rename_dialog_title">Wprowadź nową nazwę</string>
   <string name="instant_upload_on_wifi">Wysyłaj zdjęcia tylko przez WiFi</string>
   <string name="instant_video_upload_on_wifi">Aktualizuj filmy tylko przez WiFi</string>
   <string name="instant_upload_path">/InstantUpload</string>
+  <string name="conflict_title">Konflikt pliku</string>
   <string name="conflict_keep_both">Zatrzymaj oba</string>
+  <string name="conflict_use_local_version">lokalna wersja</string>
+  <string name="conflict_use_server_version">wersja zdalna</string>
   <string name="preview_image_description">Podgląd</string>
   <string name="preview_image_error_unknown_format">Ten obrazek nie może zostać wyświetlony</string>
   <string name="error__upload__local_file_not_copied">%1$s nie może zostać skopiowany do lokalnego folderu %2$s</string>
   <string name="move_file_invalid_overwrite">Plik istnieje już w folderze docelowym</string>
   <string name="move_file_error">Pojawił się błąd podczas próby przeniesienia tego pliku lub folderu</string>
   <string name="forbidden_permissions_move">aby przenieść ten plik</string>
+  <string name="copy_file_invalid_overwrite">Plik istnieje już w folderze docelowym</string>
   <string name="prefs_category_instant_uploading">Automatyczne wysyłanie</string>
   <string name="prefs_category_security">Bezpieczeństwo</string>
   <string name="prefs_instant_video_upload_path_title">Katalog wysyłania dla wideo</string>
-  <string name="download_folder_failed_content">Pobieranie %1$s katalogu nie może zostać ukończone</string>
+  <string name="shared_subject_header">udostępniony</string>
+  <string name="with_you_subject_header">z tobą</string>
+  <string name="subject_user_shared_with_you">%1$s wspólne \"%2$s\" z tobą</string>
   <string name="auth_refresh_button">Odśwież połączenie</string>
   <string name="auth_host_address">Adres Serwera</string>
   <string name="common_error_out_memory">Brak wystarczającej pamięci</string>
+  <string name="username">Użytkownik</string>
+  <string name="file_list__footer__folder">1 folder</string>
+  <string name="file_list__footer__folders">%1$d folderów</string>
+  <string name="file_list__footer__file">1 plik</string>
+  <string name="file_list__footer__file_and_folder">1 plik , 1 folder</string>
+  <string name="share_dialog_title">Udostępnianie</string>
+  <string name="share_via_link_section_title">Udostępnij link</string>
+  <string name="share_via_link_expiration_date_label">Ustaw datę wygaśnięcia</string>
+  <string name="share_via_link_password_label">Zabezpiecz hasłem</string>
+  <string name="share_search">Wyszukaj</string>
 </resources>
index 56f898d..075acaf 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Configurações</string>
   <string name="drawer_item_logs">Logs</string>
   <string name="drawer_close">Fechar</string>
+  <string name="drawer_open">Abrir</string>
   <string name="prefs_category_general">Geral</string>
   <string name="prefs_category_more">Mais</string>
   <string name="prefs_accounts">Contas</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">segundos atrás</string>
   <string name="file_list_empty">Nada aqui. Envie alguma coisa!</string>
   <string name="file_list_loading">Carregando...</string>
+  <string name="file_list_no_app_for_file_type">Nenhum aplicativo encontrado por tipo de arquivo!</string>
   <string name="local_file_list_empty">Não existe nenhum arquivo nesta pasta.</string>
   <string name="filedetails_select_file">Toque em um arquivo para mostrar informações adicionais.</string>
   <string name="filedetails_size">Tamanho:</string>
   <string name="filedetails_created">Criado:</string>
   <string name="filedetails_modified">Modificado:</string>
   <string name="filedetails_download">Baixar</string>
-  <string name="filedetails_sync_file">Atualizar arquivo</string>
+  <string name="filedetails_sync_file">Sincronizar</string>
   <string name="filedetails_renamed_in_upload_msg">Arquivo foi renomeado para %1$s durante o envio</string>
   <string name="list_layout">Lista de Layout</string>
-  <string name="action_share_file">Compartilhar link</string>
-  <string name="action_unshare_file">Descompartilhar o link</string>
+  <string name="action_share">Compartilhar</string>
   <string name="common_yes">Sim</string>
   <string name="common_no">Não</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Cancelar o download</string>
-  <string name="common_cancel_upload">Cancelar envio</string>
+  <string name="common_cancel_sync">Cancelar a sincronização</string>
   <string name="common_cancel">Cancelar</string>
   <string name="common_save_exit">Salvar &amp; Sair</string>
   <string name="common_error">Erro</string>
   <string name="unfavorite">Nãofavorito</string>
   <string name="common_rename">Renomear</string>
   <string name="common_remove">Remover</string>
-  <string name="confirmation_remove_alert">Você realmente deseja remover %1$s?</string>
+  <string name="confirmation_remove_file_alert">Você realmente deseja remover %1$s?</string>
   <string name="confirmation_remove_folder_alert">Você realmente deseja remover %1$s e seus conteúdos?</string>
   <string name="confirmation_remove_local">Somente local</string>
-  <string name="confirmation_remove_folder_local">Somente conteúdo local</string>
-  <string name="confirmation_remove_remote">Remover do servidor</string>
-  <string name="confirmation_remove_remote_and_local">Ambos remoto e local</string>
+  <string name="confirmation_remove_folder_local">Somente local</string>
+  <string name="confirmation_remove_file_remote">Do servidor</string>
+  <string name="confirmation_remove_remote_and_local">Remoto &amp; local</string>
   <string name="remove_success_msg">Removido com sucesso</string>
   <string name="remove_fail_msg">Erro ao remover</string>
   <string name="rename_dialog_title">Digite um novo nome</string>
   <string name="ssl_validator_label_validity_to">Para:</string>
   <string name="ssl_validator_label_signature">Assinatura:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritmo:</string>
+  <string name="digest_algorithm_not_available">Este algoritmo de resumo não está disponível no seu telefone.</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Impressão digital:</string>
+  <string name="certificate_load_problem">Existe um problema ao carregar o certificado.</string>
   <string name="ssl_validator_null_cert">O certificado não pode ser mostrado.</string>
   <string name="ssl_validator_no_info_about_error">- Nenhuma informação sobre o erro</string>
   <string name="placeholder_sentence">Este é um espaço reservado</string>
   <string name="conflict_title">Conflito de arquivo</string>
   <string name="conflict_message">Quais arquivos você deseja manter? Se você selecionar ambas as versões, o arquivo local terá um número adicionado ao seu nome.</string>
   <string name="conflict_keep_both">Manter ambos</string>
-  <string name="conflict_use_local_version">Usar a versão local</string>
-  <string name="conflict_use_server_version">Usar a versão servidor</string>
+  <string name="conflict_use_local_version">versão local</string>
+  <string name="conflict_use_server_version">versão do servidor</string>
   <string name="preview_image_description">Pré-visualização da imagem</string>
   <string name="preview_image_error_unknown_format">Esta imagem não pode ser mostrada</string>
   <string name="error__upload__local_file_not_copied">%1$s não pôde ser copiado para pasta local %2$s</string>
   <string name="share_link_password_title">Digite uma senha</string>
   <string name="share_link_empty_password">Você deve digitar uma senha</string>
   <string name="activity_chooser_send_file_title">Enviar</string>
-  <string name="copy_link">Copiar link</string>
+  <string name="copy_link">Copiar link</string>
   <string name="clipboard_text_copied">Copiado para área de transferência</string>
   <string name="error_cant_bind_to_operations_service">Erro crítico: não pode executar operações</string>
   <string name="network_error_socket_exception">Ocorreu um erro durante a conexão com o servidor.</string>
   <string name="downloader_download_file_not_found">Este arquivo não mais está disponível neste servidor</string>
   <string name="prefs_category_accounts">Contas</string>
   <string name="prefs_add_account">Adicionar uma conta</string>
-  <string name="auth_redirect_non_secure_connection_title">Conexão segura esta redirecionada para uma rota não segura.</string>
+  <string name="auth_redirect_non_secure_connection_title">A conexão segura está redirecionada através de uma rota insegura.</string>
   <string name="actionbar_logger">Logs</string>
   <string name="log_send_history_button">Enviar Histórico</string>
   <string name="log_send_no_mail_app">Não foi encontrado nenhum app para envio de logs. Instale o mail app!</string>
   <string name="move_file_invalid_overwrite">O arquivo já existe na pasta de destino</string>
   <string name="move_file_error">Ocorreu um erro ao tentar mover este arquivo ou pasta</string>
   <string name="forbidden_permissions_move">mover este arquivo</string>
+  <string name="copy_file_not_found">Não é possível copiar. Por favor verifique se o arquivo existe</string>
+  <string name="copy_file_invalid_into_descendent">Não é possível copiar uma pasta em uma descendente</string>
+  <string name="copy_file_invalid_overwrite">O arquivo já existe na pasta de destino</string>
+  <string name="copy_file_error">Ocorreu um erro ao tentar copiar este arquivo ou pasta</string>
+  <string name="forbidden_permissions_copy">para copiar este arquivo</string>
   <string name="prefs_category_instant_uploading">Envios Instantâneos</string>
   <string name="prefs_category_security">Segurança</string>
   <string name="prefs_instant_video_upload_path_title">Enviar o Caminho do Vídeo</string>
-  <string name="download_folder_failed_content">Baixar %1$s da pasta não pode ser completado</string>
+  <string name="sync_folder_failed_content">A sincronização da pasta %1$s não pode ser finalizada</string>
   <string name="shared_subject_header">compartilhado</string>
   <string name="with_you_subject_header">com você</string>
-  <string name="subject_token">%1$s compartilhado \"%2$s\" com você</string>
-  <string name="saml_subject_token">\"%1$s\" foi compartilhado com você</string>
+  <string name="subject_user_shared_with_you">%1$s compartilhado \"%2$s\" com você</string>
+  <string name="subject_shared_with_you">\"%1$s\" foi compartilhado com você</string>
   <string name="auth_refresh_button">Reinicializar conexão</string>
   <string name="auth_host_address">Endereço do servidor</string>
   <string name="common_error_out_memory">Não há memoria suficiente</string>
   <string name="file_list__footer__files">%1$d arquivos</string>
   <string name="file_list__footer__files_and_folder">%1$d arquivos, 1 pasta</string>
   <string name="file_list__footer__files_and_folders">%1$d arquivos, %2$d pastas</string>
+  <string name="share_dialog_title">Compartilhamento</string>
+  <string name="share_no_users">Ainda não existe nenhum dado compartilhado com usuários</string>
+  <string name="share_add_user_or_group">Adicionar Usuário ou Grupo</string>
+  <string name="share_via_link_section_title">Compartilhar link</string>
+  <string name="share_via_link_expiration_date_label">Definir data de expiração</string>
+  <string name="share_via_link_password_label">Proteger com senha</string>
+  <string name="share_search">Perquisar</string>
+  <string name="search_users_and_groups_hint">Pesquisar usuários e grupos</string>
+  <string name="share_group_clarification">%1$s (grupo)</string>
+  <string name="share_sharee_unavailable">Desculpe, sua versão do servidor não permite compartilhamento com usuários que também são clientes.
+        \nEntre em contato com o administrador</string>
 </resources>
index ce9565b..7036724 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Definições</string>
   <string name="drawer_item_logs">Registos de Alterações</string>
   <string name="drawer_close">Fechar</string>
+  <string name="drawer_open">Abrir</string>
   <string name="prefs_category_general">Geral</string>
   <string name="prefs_category_more">Mais</string>
   <string name="prefs_accounts">Contas</string>
@@ -69,6 +70,8 @@
   <string name="uploader_info_uploading">A enviar</string>
   <string name="file_list_seconds_ago">segundos atrás</string>
   <string name="file_list_empty">Aqui não existe nada. Envie alguma coisa!</string>
+  <string name="file_list_loading">A carregar...</string>
+  <string name="file_list_no_app_for_file_type">Nenhuma App encontrada por tipo de ficheiro!</string>
   <string name="local_file_list_empty">Não existem ficheiros nesta pasta.</string>
   <string name="filedetails_select_file">Toque num ficheiro para visualizar a informação adicional.</string>
   <string name="filedetails_size">Tamanho:</string>
   <string name="filedetails_created">Criado:</string>
   <string name="filedetails_modified">Modificado:</string>
   <string name="filedetails_download">Transferir</string>
-  <string name="filedetails_sync_file">Atualizar ficheiro</string>
+  <string name="filedetails_sync_file">Sincronizar</string>
   <string name="filedetails_renamed_in_upload_msg">O ficheiro foi renomeado para %1$s durante o envio.</string>
-  <string name="action_share_file">Partilhar a hiperligação</string>
-  <string name="action_unshare_file">Cancelar partilha da hiperligação</string>
+  <string name="list_layout">Apresentação da Lista</string>
+  <string name="action_share">Compartilhar</string>
   <string name="common_yes">Sim</string>
   <string name="common_no">Não</string>
   <string name="common_ok">ACEITAR</string>
-  <string name="common_cancel_download">Cancelar a transferência</string>
-  <string name="common_cancel_upload">Cancelar o envio</string>
+  <string name="common_cancel_sync">Cancelar sincronização</string>
   <string name="common_cancel">Cancelar</string>
   <string name="common_save_exit">Guardar &amp; Sair</string>
   <string name="common_error">Erro</string>
   <string name="unfavorite">Retirar Favorito</string>
   <string name="common_rename">Renomear</string>
   <string name="common_remove">Remover</string>
-  <string name="confirmation_remove_alert">Tem a certeza que deseja remover %1$s ?</string>
+  <string name="confirmation_remove_file_alert">Tem a certeza que deseja remover %1$s ?</string>
   <string name="confirmation_remove_folder_alert">Deseja realmente remover %1$s e o seu conteúdo?</string>
   <string name="confirmation_remove_local">Apenas localmente</string>
-  <string name="confirmation_remove_folder_local">So conteúdos locais</string>
-  <string name="confirmation_remove_remote">Apagar do servidor</string>
-  <string name="confirmation_remove_remote_and_local">ambos os remoto e local</string>
+  <string name="confirmation_remove_folder_local">Apenas localmente</string>
+  <string name="confirmation_remove_file_remote">Do servidor</string>
+  <string name="confirmation_remove_remote_and_local">Remoto &amp; local</string>
   <string name="remove_success_msg">Removido com sucesso</string>
   <string name="remove_fail_msg">Não foi possível remover</string>
   <string name="rename_dialog_title">Introduza um novo nome</string>
   <string name="sync_file_nothing_to_do_msg">O conteúdo do ficheiro já foi sincronizado</string>
   <string name="create_dir_fail_msg">Não foi possivel criar a pasta</string>
   <string name="filename_forbidden_characters">Caracteres não permitidos: / \\ &lt; &gt; : \" | ? *</string>
+  <string name="filename_forbidden_charaters_from_server">O nome de ficheiro contém pelo menos um caráter inválido</string>
   <string name="filename_empty">O nome do ficheiro não pode ser vazio.</string>
   <string name="wait_a_moment">Aguarde um momento</string>
   <string name="filedisplay_unexpected_bad_get_content">Erro inesperado. Por favor tente outra aplicação para seleccionar o ficheiro.</string>
   <string name="filedisplay_no_file_selected">Não selecionou nenhum ficheiro</string>
   <string name="activity_chooser_title">Enviar a ligação para ...</string>
+  <string name="wait_for_tmp_copy_from_private_storage">A copiar o ficheiro do aramazenamento privado</string>
   <string name="oauth_check_onoff">Autenticar-se com oAuth2</string>
   <string name="oauth_login_connection">A ligar ao servidor oAuth2</string>
   <string name="ssl_validator_header">Não foi possível verificar a identidade do site.</string>
   <string name="instant_upload_on_wifi">Só enviar as fotografias via wi-fi</string>
   <string name="instant_video_upload_on_wifi">Só enviar os vídeos por wi-fi</string>
   <string name="instant_upload_path">/Envio Instantâneo </string>
+  <string name="conflict_title">Conflito de ficheiro</string>
+  <string name="conflict_message">Quais os ficheiros que pretende manter? Se selecionar ambas as versões, o ficheiro local irá ter um número adicionado ao seu nome.</string>
   <string name="conflict_keep_both">Manter ambos</string>
+  <string name="conflict_use_local_version">versão local</string>
+  <string name="conflict_use_server_version">versão servidor</string>
   <string name="preview_image_description">Pré-Visualizar imagem</string>
   <string name="preview_image_error_unknown_format">Esta imagem não pode ser mostrada</string>
   <string name="error__upload__local_file_not_copied">Não foi possível copiar %1$s para a pasta local %2$s</string>
   <string name="downloader_download_file_not_found">O ficheiro não está mais disponível no servidor</string>
   <string name="prefs_category_accounts">Contas</string>
   <string name="prefs_add_account">Adicionar conta</string>
-  <string name="auth_redirect_non_secure_connection_title">Ligação segura é redireccionada para um caminho inseguro.</string>
+  <string name="auth_redirect_non_secure_connection_title">Uma ligação segura foi redireccionada por uma rota insegura.</string>
   <string name="actionbar_logger">Registos de Alterações</string>
   <string name="log_send_history_button">Enviar Histórico</string>
   <string name="log_send_no_mail_app">Não foi encontrado o aplicativo para envio de registos . Instale app e-mail!</string>
   <string name="move_file_invalid_overwrite">O ficheiro já existe na pasta de destino</string>
   <string name="move_file_error">Ocorreu um ocorreu quando tentava mover este ficheiro ou pasta</string>
   <string name="forbidden_permissions_move">para mover este ficheiro</string>
+  <string name="copy_file_not_found">Não é possível copiar. Por favor, verifique se o ficheiro existe</string>
+  <string name="copy_file_invalid_into_descendent">Não é possível copiar esta pasta para a descendente</string>
+  <string name="copy_file_invalid_overwrite">O ficheiro já existe na pasta de destino</string>
+  <string name="copy_file_error">Ocorreu um ocorreu quando tentava copiar este ficheiro ou pasta</string>
+  <string name="forbidden_permissions_copy">para copiar este ficheiro</string>
   <string name="prefs_category_instant_uploading">Envios Instantâneos</string>
   <string name="prefs_category_security">Segurança</string>
   <string name="prefs_instant_video_upload_path_title">Envio do Caminho do Vídeo</string>
-  <string name="download_folder_failed_content">Não foi possível completar o download da pasta %1$s</string>
+  <string name="sync_folder_failed_content">Não foi possível completar a sincronização da pasta %1$s</string>
   <string name="shared_subject_header">partilhado</string>
   <string name="with_you_subject_header">consigo</string>
+  <string name="subject_user_shared_with_you">%1$s partilhou \"%2$s\" consigo</string>
+  <string name="subject_shared_with_you">\"%1$s\" foi partilhado consigo</string>
   <string name="auth_refresh_button">Recarregar ligação</string>
   <string name="auth_host_address">Endereço do servidor</string>
   <string name="common_error_out_memory">Falta de memória</string>
   <string name="username">Nome de utilizador</string>
+  <string name="file_list__footer__folder">1 pasta</string>
+  <string name="file_list__footer__folders">%1$d pastas</string>
+  <string name="file_list__footer__file">1 ficheiro</string>
+  <string name="file_list__footer__file_and_folder">1 ficheiro, 1 pasta</string>
+  <string name="file_list__footer__file_and_folders">1 ficheiro, %1$d pastas</string>
+  <string name="file_list__footer__files">%1$d ficheiros</string>
+  <string name="file_list__footer__files_and_folder">%1$d ficheiros, 1 pasta</string>
+  <string name="file_list__footer__files_and_folders">%1$d ficheiros, %2$d pastas</string>
+  <string name="share_dialog_title">Partilha</string>
+  <string name="share_no_users">Ainda não foram partilhados os dados com os utilizadores</string>
+  <string name="share_add_user_or_group">Adicionar Utilziador ou Grupo</string>
+  <string name="share_via_link_section_title">Compartilhar hiperligação</string>
+  <string name="share_via_link_expiration_date_label">Definir a data de expiração</string>
+  <string name="share_via_link_password_label">Proteger com Palavra-passe</string>
+  <string name="share_search">Procurar</string>
 </resources>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
new file mode 100644 (file)
index 0000000..37e6152
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--TODO re-enable when server-side folder size calculation is available   
+       <item>Biggest - Smallest</item>-->
+  <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
+  <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <!--TODO re-enable when "On Device" is available
+    <string name="drawer_item_on_device">On device</string>-->
+  <string name="empty"></string>
+</resources>
index cd989a4..040e114 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Setări</string>
   <string name="drawer_item_logs">Înregistrări</string>
   <string name="drawer_close">Închide</string>
+  <string name="drawer_open">Deschide</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Mai mult</string>
   <string name="prefs_accounts">Conturi</string>
   <string name="filedetails_created">Creat:</string>
   <string name="filedetails_modified">Modificat:</string>
   <string name="filedetails_download">Descarcă</string>
-  <string name="filedetails_sync_file">Împrospătare fișier</string>
   <string name="filedetails_renamed_in_upload_msg">Fișierul a fost redenumit %1$s în timpul încărcării</string>
   <string name="list_layout">Aspect listă</string>
-  <string name="action_share_file">Partajază legătură</string>
-  <string name="action_unshare_file">Departajează legătura</string>
+  <string name="action_share">Partajează</string>
   <string name="common_yes">Da</string>
   <string name="common_no">Nu</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Anulează descărcarea</string>
-  <string name="common_cancel_upload">Anulează încărcarea</string>
   <string name="common_cancel">Anulează</string>
   <string name="common_save_exit">Salvare și ieșire</string>
   <string name="common_error">Eroare</string>
   <string name="auth_can_not_auth_against_server">Nu se poate autentifica cu acest server</string>
   <string name="auth_account_does_not_exist">Contul nu există încă în dispozitiv</string>
   <string name="favorite">Favorit</string>
+  <string name="unfavorite">Defavoritați</string>
   <string name="common_rename">Redenumește</string>
   <string name="common_remove">Elimină</string>
-  <string name="confirmation_remove_alert">Doriti sigur sa stergeti %1$s?</string>
+  <string name="confirmation_remove_file_alert">Doriti sigur sa stergeti %1$s?</string>
   <string name="confirmation_remove_folder_alert">Sigur vrei să elimini %1$s și conținutul său?</string>
   <string name="confirmation_remove_local">Doar local</string>
-  <string name="confirmation_remove_folder_local">Doar continut local</string>
-  <string name="confirmation_remove_remote">Elimină de pe server</string>
-  <string name="confirmation_remove_remote_and_local">De la distanță și local</string>
+  <string name="confirmation_remove_folder_local">Doar local</string>
+  <string name="confirmation_remove_file_remote">De pe server</string>
+  <string name="confirmation_remove_remote_and_local">Ambele</string>
   <string name="remove_success_msg">Eliminat cu succes</string>
   <string name="remove_fail_msg">Eliminarea nu a reușit</string>
   <string name="rename_dialog_title">Introduceţi un nou nume</string>
   <string name="instant_upload_on_wifi">Încarcă poze doar prin WiFi</string>
   <string name="instant_video_upload_on_wifi">Încarcă videoclipuri doar via WiFi</string>
   <string name="instant_upload_path">/Încărcare instantă</string>
+  <string name="conflict_title">Conflict de fișiere</string>
+  <string name="conflict_message">Care fișiere doriți să păstrați? Dacă selectați „ambele”, fișierului local i se va adăuga un număr numelui său.</string>
   <string name="conflict_keep_both">Pastreaza amandoua</string>
+  <string name="conflict_use_local_version">versiunea locală</string>
+  <string name="conflict_use_server_version">versiunea de pe server</string>
   <string name="preview_image_description">Previzualizare imagine</string>
   <string name="preview_image_error_unknown_format">Aceasta imagine nu poate fi arătată</string>
   <string name="error__upload__local_file_not_copied">%1$s nu a putut fi copiat in dosarul local %2$s </string>
   <string name="unshare_link_file_error">A apărut o eroare în timp ce încerca să departajeze sau unshare acest fișier sau folder</string>
   <string name="share_link_password_title">Introduceţi parola</string>
   <string name="share_link_empty_password">Trebuie să introduci o parolă</string>
-  <string name="activity_chooser_send_file_title">Expediază</string>
+  <string name="activity_chooser_send_file_title">Trimite</string>
   <string name="copy_link">Link copiat</string>
   <string name="clipboard_text_copied">Copiat în clipboard</string>
   <string name="error_cant_bind_to_operations_service">Eroare critică: nu se pot executa operațiunile</string>
   <string name="downloader_download_file_not_found">Fișierul nu mai este disponibil pe server</string>
   <string name="prefs_category_accounts">Conturi</string>
   <string name="prefs_add_account">Adaugă cont</string>
-  <string name="auth_redirect_non_secure_connection_title">Conexiunea securizată este redirecționată către un traseu neasigurat.</string>
   <string name="actionbar_logger">Înregistrări</string>
   <string name="log_send_history_button">Trimite Istoria</string>
   <string name="log_send_no_mail_app">App-ul de trimitere a inregistrărilor nu a fost găsit. Instalează mail app-ul!</string>
   <string name="move_file_invalid_overwrite">Fișierul există deja în dosarul de destinație</string>
   <string name="move_file_error">O eroare apare la transferarea acestui fișier sau dosar</string>
   <string name="forbidden_permissions_move">pentru a muta acest fișier</string>
+  <string name="copy_file_invalid_overwrite">Fișierul există deja în dosarul de destinație</string>
   <string name="prefs_category_instant_uploading">Încărcări instante</string>
   <string name="prefs_category_security">Securitate</string>
   <string name="prefs_instant_video_upload_path_title">Calea de încărcare Video</string>
-  <string name="download_folder_failed_content">Descărcarea fișierului %1$s nu s-a finisat</string>
   <string name="shared_subject_header">partajat</string>
   <string name="with_you_subject_header">cu tine</string>
-  <string name="subject_token">%1$s a partajat fișierul \"%2$s\" cu tine</string>
+  <string name="subject_user_shared_with_you">%1$s a partajat fișierul \"%2$s\" cu tine</string>
+  <string name="subject_shared_with_you">„%1$s” a fost partajat cu dumneavoastră</string>
   <string name="auth_refresh_button">Reîmprospătează conexiunea</string>
   <string name="auth_host_address">Adresa server-ului</string>
   <string name="common_error_out_memory">Memorie insuficientă </string>
   <string name="file_list__footer__files">%1$d fișiere</string>
   <string name="file_list__footer__files_and_folder">%1$d fișiere, 1 folder</string>
   <string name="file_list__footer__files_and_folders">%1$d fișiere, %2$d foldere</string>
+  <string name="share_dialog_title">Partajare</string>
+  <string name="share_via_link_section_title">Partajază legătură</string>
+  <string name="share_via_link_expiration_date_label">Specifică data expirării</string>
+  <string name="share_via_link_password_label">Protejare cu parolă</string>
+  <string name="share_search">Căutare</string>
 </resources>
index 6675918..cfbee73 100644 (file)
   <string name="fd_keep_in_sync">Обновлять файл</string>
   <string name="common_rename">Переименовать</string>
   <string name="common_remove">Удалить</string>
-  <string name="confirmation_remove_alert">Вы действительно хотите удалить %1$s?</string>
+  <string name="confirmation_remove_file_alert">Вы действительно хотите удалить %1$s?</string>
   <string name="confirmation_remove_folder_alert">Вы действительно хотите удалить %1$s и все содержимое ?</string>
   <string name="confirmation_remove_local">Только локально</string>
   <string name="confirmation_remove_folder_local">Только локальное содержимое</string>
-  <string name="confirmation_remove_remote">Удалить с сервера</string>
+  <string name="confirmation_remove_file_remote">Удалить с сервера</string>
   <string name="confirmation_remove_remote_and_local">Оба, удаленный и локальный</string>
   <string name="remove_success_msg">Успешное удаление</string>
   <string name="remove_fail_msg">Удаление не может быть завершено</string>
index 4ef6bf1..4546e71 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Настройки</string>
   <string name="drawer_item_logs">Журналы</string>
   <string name="drawer_close">Закрыть</string>
+  <string name="drawer_open">Открыть</string>
   <string name="prefs_category_general">Основные</string>
   <string name="prefs_category_more">Больше</string>
   <string name="prefs_accounts">Учётные записи</string>
@@ -71,6 +72,7 @@
   <string name="file_list_seconds_ago">несколько секунд назад</string>
   <string name="file_list_empty">Здесь ничего нет. Загрузите что-нибудь!</string>
   <string name="file_list_loading">Загрузка...</string>
+  <string name="file_list_no_app_for_file_type">Не найдено приложений для этого типа файла.</string>
   <string name="local_file_list_empty">В этом каталоге нет файлов.</string>
   <string name="filedetails_select_file">Нажмите на файл для отображения дополнительной информации.</string>
   <string name="filedetails_size">Размер:</string>
   <string name="filedetails_created">Создан:</string>
   <string name="filedetails_modified">Изменён:</string>
   <string name="filedetails_download">Скачать</string>
-  <string name="filedetails_sync_file">Ð\9eбновиÑ\82Ñ\8c Ñ\84айл</string>
+  <string name="filedetails_sync_file">СинÑ\85Ñ\80онизаÑ\86иÑ\8f</string>
   <string name="filedetails_renamed_in_upload_msg">Файл был переименован в %1$s во время загрузки</string>
   <string name="list_layout">Макет списка</string>
-  <string name="action_share_file">Поделиться ссылкой</string>
-  <string name="action_unshare_file">Убрать ссылку</string>
+  <string name="action_share">Общий доступ</string>
   <string name="common_yes">Да</string>
   <string name="common_no">Нет</string>
   <string name="common_ok">ОК</string>
-  <string name="common_cancel_download">Отменить скачивание</string>
-  <string name="common_cancel_upload">Отменить загрузку</string>
+  <string name="common_cancel_sync">Отменить синхронизацию</string>
   <string name="common_cancel">Отмена</string>
   <string name="common_save_exit">Сохранить и выйти</string>
   <string name="common_error">Ошибка</string>
   <string name="unfavorite">Убрать из избранного</string>
   <string name="common_rename">Переименовать</string>
   <string name="common_remove">Удалить</string>
-  <string name="confirmation_remove_alert">Вы действительно хотите удалить %1$s?</string>
+  <string name="confirmation_remove_file_alert">Вы действительно хотите удалить %1$s?</string>
   <string name="confirmation_remove_folder_alert">Вы действительно хотите удалить %1$s и его содержимое?</string>
   <string name="confirmation_remove_local">Только локально</string>
-  <string name="confirmation_remove_folder_local">Только локальные данные</string>
-  <string name="confirmation_remove_remote">УдалиÑ\82Ñ\8c Ñ\81 сервера</string>
-  <string name="confirmation_remove_remote_and_local">Удалённо и локально</string>
+  <string name="confirmation_remove_folder_local">Только локально</string>
+  <string name="confirmation_remove_remote">Ð\9eÑ\82 сервера</string>
+  <string name="confirmation_remove_remote_and_local">Удаленно и локально</string>
   <string name="remove_success_msg">Удаление завершено</string>
   <string name="remove_fail_msg">Ошибка удаления</string>
   <string name="rename_dialog_title">Введите новое имя</string>
   <string name="ssl_validator_label_validity_to">По:</string>
   <string name="ssl_validator_label_signature">Подпись:</string>
   <string name="ssl_validator_label_signature_algorithm">Алгоритм:</string>
+  <string name="digest_algorithm_not_available">Этот хэш алгоритм не доступен на этом телефоне.</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Отпечаток пальца:</string>
+  <string name="certificate_load_problem">Проблема при загрузке сертификата.</string>
   <string name="ssl_validator_null_cert">Сертификат не может быть показан.</string>
   <string name="ssl_validator_no_info_about_error">- Нет информации об ошибке</string>
   <string name="placeholder_sentence">Это заполнитель</string>
   <string name="instant_upload_on_wifi">Загрузка изображений только через Wi-Fi</string>
   <string name="instant_video_upload_on_wifi">Загрузка видео только через WiFi</string>
   <string name="instant_upload_path">/InstantUpload</string>
+  <string name="conflict_title">Конфликт файлов</string>
+  <string name="conflict_message">Какие файлы Вы хотите сохранить? При выборе обеих версий, к названию локального файла будет добавлена цифра</string>
   <string name="conflict_keep_both">Сохранить оба</string>
+  <string name="conflict_use_local_version">локальная версия</string>
+  <string name="conflict_use_server_version">удаленная версия</string>
   <string name="preview_image_description">Предпросмотр</string>
   <string name="preview_image_error_unknown_format">Это изображение не может быть отображено</string>
   <string name="error__upload__local_file_not_copied">%1$s невозможно скопировать в локальный каталог %2$s </string>
   <string name="share_link_file_error">При попытке поделиться этим файлом или каталогом произошла ошибка</string>
   <string name="unshare_link_file_no_exist">Невозможно закрыть доступ. Убедитесь что файл существует</string>
   <string name="unshare_link_file_error">При попытке закрыть доступ к этому файлу или каталогу произошла ошибка</string>
+  <string name="update_link_file_no_exist">Не удается обновить. Пожалуйста, проверьте, существует ли файл</string>
+  <string name="update_link_file_error">Произошла ошибка при попытке обновить общую ссылку</string>
   <string name="share_link_password_title">Введите пароль</string>
   <string name="share_link_empty_password">Вы должны ввести пароль</string>
   <string name="activity_chooser_send_file_title">Отправить</string>
   <string name="forbidden_permissions_delete">для удаления этого файла</string>
   <string name="share_link_forbidden_permissions">для открытия доступа к этому файлу</string>
   <string name="unshare_link_forbidden_permissions">для закрытия доступа к этому файлу</string>
+  <string name="update_link_forbidden_permissions">обновить эту общую ссылку</string>
   <string name="forbidden_permissions_create">для создания файла</string>
   <string name="uploader_upload_forbidden_permissions">для загрузки в этот каталог</string>
   <string name="downloader_download_file_not_found">Этот файл больше недоступен на сервере</string>
   <string name="prefs_category_accounts">Учётные записи</string>
   <string name="prefs_add_account">Добавить учетную запись</string>
-  <string name="auth_redirect_non_secure_connection_title">Ð\97аÑ\89иÑ\89Ñ\91нное Ñ\81оединение Ð¿ÐµÑ\80енапÑ\80авлено Ð¿Ð¾ Ð½ÐµÐ±ÐµÐ·Ð¾Ð¿Ð°Ñ\81номÑ\83 Ð¼Ð°Ñ\80Ñ\88Ñ\80Ñ\83Ñ\82Ñ\83</string>
+  <string name="auth_redirect_non_secure_connection_title">Ð\91езопаÑ\81ное Ñ\81оединение Ð¿ÐµÑ\80енапÑ\80авлено Ñ\87еÑ\80ез Ð½ÐµÐ±ÐµÐ·Ð¾Ð¿Ð°Ñ\81нÑ\8bй Ð¼Ð°Ñ\80Ñ\88Ñ\80Ñ\83Ñ\82.</string>
   <string name="actionbar_logger">Журналы</string>
   <string name="log_send_history_button">История Отправлений</string>
   <string name="log_send_no_mail_app">Приложение для отправки журнала не найдено. Установите почтовое приложение!</string>
   <string name="move_file_invalid_overwrite">Файл уже существует в каталоге назначения</string>
   <string name="move_file_error">Произошла ошибка при попытке перемещения этого файла или каталога</string>
   <string name="forbidden_permissions_move">для перемещения этого файла</string>
+  <string name="copy_file_not_found">Не удалось произвести копирование. Пожалуйста проверьте существование файла</string>
+  <string name="copy_file_invalid_into_descendent">Нельзя произвести копирование папки в унаследованную папку</string>
+  <string name="copy_file_invalid_overwrite">Файл уже существует в каталоге назначения</string>
+  <string name="copy_file_error">Произошла ошибка во время копирования этого файла или папки</string>
+  <string name="forbidden_permissions_copy">для копирования этого файла</string>
   <string name="prefs_category_instant_uploading">Мгновенные загрузки</string>
   <string name="prefs_category_security">Безопасность</string>
   <string name="prefs_instant_video_upload_path_title">Путь для загрузки Видео</string>
-  <string name="download_folder_failed_content">Не удалось завершить скачивание каталога %1$s</string>
+  <string name="sync_folder_failed_content">Синхронизация папки %1$s не может быть завершена</string>
   <string name="shared_subject_header">поделился</string>
   <string name="with_you_subject_header">с вами</string>
-  <string name="subject_token">%1$s предоставил вам доступ к \"%2$s\"</string>
+  <string name="subject_user_shared_with_you">%1$s предоставил вам доступ к \"%2$s\"</string>
+  <string name="subject_shared_with_you">Вам предоставлен доступ к \"%1$s\"</string>
   <string name="auth_refresh_button">Обновить соединение</string>
   <string name="auth_host_address">Адрес сервера</string>
   <string name="common_error_out_memory">Недостаточно памяти</string>
   <string name="file_list__footer__files">%1$d файлов</string>
   <string name="file_list__footer__files_and_folder">%1$d файлов, 1 каталог</string>
   <string name="file_list__footer__files_and_folders">%1$d файлов, %2$d каталогов</string>
+  <string name="share_dialog_title">Общий доступ</string>
+  <string name="share_with_user_section_title">Поделиться с пользователями и группами</string>
+  <string name="share_no_users">Нет данных используемых совместно с другими пользователями</string>
+  <string name="share_add_user_or_group">Добавить пользователя или группу</string>
+  <string name="share_via_link_section_title">Поделиться ссылкой</string>
+  <string name="share_via_link_expiration_date_label">Установить срок действия</string>
+  <string name="share_via_link_password_label">Защитить паролем</string>
+  <string name="share_via_link_password_title">Безопасный</string>
+  <string name="share_get_public_link_button">Получить ссылку</string>
+  <string name="share_search">Найти</string>
+  <string name="search_users_and_groups_hint">Поиск пользователей и групп</string>
+  <string name="share_group_clarification">%1$s (группа)</string>
+  <string name="share_sharee_unavailable">Извините, версия вашего сервера не позволяет поделиться с пользователями через клиент. \nПожалуйста обратитесь к администратору</string>
 </resources>
index dce26ee..2531d9b 100644 (file)
@@ -9,6 +9,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">විවෘත කරන්න</string>
   <string name="prefs_category_general">සාමාන්‍යයෙන්</string>
   <string name="prefs_category_more">වැඩි</string>
   <string name="prefs_accounts">ගිණුම්</string>
   <string name="filedetails_created">සෑදු දිනය:</string>
   <string name="filedetails_modified">වෙනස් කළ දිනය:</string>
   <string name="filedetails_download">භාගත කරන්න</string>
+  <string name="action_share">බෙදා හදා ගන්න</string>
   <string name="common_yes">ඔව්</string>
   <string name="common_no">එපා</string>
   <string name="common_ok">හරි</string>
-  <string name="common_cancel_upload">උඩුගත කිරීම අත් හරින්න</string>
   <string name="common_cancel">එපා</string>
   <string name="common_save_exit">සුරැක &amp; පිටවන්න</string>
   <string name="common_error">දෝශය</string>
@@ -66,8 +67,7 @@
   <string name="common_rename">නැවත නම් කරන්න</string>
   <string name="common_remove">ඉවත් කරන්න </string>
   <string name="confirmation_remove_local">පෙදෙසි පමණක්</string>
-  <string name="confirmation_remove_remote">සේවාදායකයාගෙන් ඉවත් කරන්න</string>
-  <string name="confirmation_remove_remote_and_local">දුරස්ථ හා පෙදෙසි </string>
+  <string name="confirmation_remove_folder_local">පෙදෙසි පමණක්</string>
   <string name="remove_success_msg">සාර්ථක ඉවත්කිරීමක්</string>
   <string name="remove_fail_msg">ඉවත් කිරීම සම්පූර්ණ කළ නොහැක</string>
   <string name="rename_server_fail_msg">නැවත නම් කිරීම සම්පුර්ණ කළ නොහැකි විය</string>
@@ -79,4 +79,8 @@
   <string name="prefs_category_accounts">ගිණුම්</string>
   <string name="folder_picker_choose_button_text">තෝරන්න</string>
   <string name="auth_host_address">සේවාදායකයේ ලිපිනය</string>
+  <string name="share_dialog_title">හුවමාරු කිරීම</string>
+  <string name="share_via_link_expiration_date_label">කල් ඉකුත් විමේ දිනය දමන්න</string>
+  <string name="share_via_link_password_label">මුර පදයකින් ආරක්ශාකරන්න</string>
+  <string name="share_search">සොයන්න</string>
 </resources>
index d3e366f..5d9f412 100644 (file)
   <string name="drawer_item_settings">Nastavenia</string>
   <string name="drawer_item_logs">Logy</string>
   <string name="drawer_close">Zavrieť</string>
+  <string name="drawer_open">Otvoriť</string>
   <string name="prefs_category_general">Všeobecné</string>
   <string name="prefs_category_more">Viac</string>
   <string name="prefs_accounts">Účty</string>
   <string name="prefs_manage_accounts">Správa účtov</string>
+  <string name="prefs_passcode">Heslo</string>
   <string name="prefs_instant_upload">Okamžité nahratie obrázka</string>
   <string name="prefs_instant_upload_summary">Okamžite nahrať obrázok zaznamenaný fotoaparátom</string>
   <string name="prefs_instant_video_upload">Okamžité nahranie videa</string>
@@ -68,6 +70,8 @@
   <string name="uploader_info_uploading">Nahrávanie</string>
   <string name="file_list_seconds_ago">pred sekundami</string>
   <string name="file_list_empty">Žiadny súbor. Nahrajte niečo!</string>
+  <string name="file_list_loading">Načítavam...</string>
+  <string name="file_list_no_app_for_file_type">Nenašla sa aplikácia pre tento typ súboru!</string>
   <string name="local_file_list_empty">V tomto priečinku nie sú žiadne súbory.</string>
   <string name="filedetails_select_file">Viac informácií získate kliknutím na súbor.</string>
   <string name="filedetails_size">Veľkosť:</string>
   <string name="filedetails_created">Vytvorený:</string>
   <string name="filedetails_modified">Zmenený:</string>
   <string name="filedetails_download">Stiahnuť</string>
-  <string name="filedetails_sync_file">Obnoviť súbor</string>
+  <string name="filedetails_sync_file">Synchronizovať</string>
   <string name="filedetails_renamed_in_upload_msg">Súbor bol premenovaný na %1$s počas nahrávania</string>
-  <string name="action_share_file">Zdieľať linku</string>
-  <string name="action_unshare_file">Zrušiť zdieľanie odkazu</string>
+  <string name="list_layout">Rozvrhnutie zoznamu</string>
+  <string name="action_share">Zdieľať</string>
   <string name="common_yes">Áno</string>
   <string name="common_no">Nie</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Zrušiť sťahovanie</string>
-  <string name="common_cancel_upload">Zrušiť odosielanie</string>
+  <string name="common_cancel_sync">Zrušiť synchronizáciu</string>
   <string name="common_cancel">Zrušiť</string>
   <string name="common_save_exit">Uložiť a ukončiť</string>
   <string name="common_error">Chyba</string>
   <string name="upload_query_move_foreign_files">Nie je dostatok miesta na skopírovanie vybraných súborov do priečinka %1$s. Želáte si ich namiesto toho presunúť?</string>
   <string name="pass_code_enter_pass_code">Prosím, vložte svoje heslo:</string>
   <string name="pass_code_configure_your_pass_code">Vložte svoje heslo</string>
+  <string name="pass_code_configure_your_pass_code_explanation">Heslo bude nutné zadať vždy po štarte aplikácie</string>
   <string name="pass_code_reenter_your_pass_code">Prosím, vložte znovu svoje heslo:</string>
   <string name="pass_code_remove_your_pass_code">Zmazať svoje heslo</string>
+  <string name="pass_code_mismatch">Heslá sa nezhodujú</string>
+  <string name="pass_code_wrong">Nesprávne heslo</string>
   <string name="pass_code_removed">Bezpečnostný kód odstránený</string>
   <string name="pass_code_stored">Bezpečnostný kód uložený</string>
   <string name="media_notif_ticker">Prehrávač hudby %1$s</string>
   <string name="unfavorite">Odobrať z obľúbených</string>
   <string name="common_rename">Premenuj</string>
   <string name="common_remove">Odober</string>
-  <string name="confirmation_remove_alert">Naozaj chcete odstrániť %1$s?</string>
+  <string name="confirmation_remove_file_alert">Naozaj chcete odstrániť %1$s?</string>
   <string name="confirmation_remove_folder_alert">Naozaj chcete odstrániť %1$s a jeho obsah?</string>
   <string name="confirmation_remove_local">Iba lokálne</string>
-  <string name="confirmation_remove_folder_local">Len lokálny obsah</string>
-  <string name="confirmation_remove_remote">Zmazať zo servera</string>
-  <string name="confirmation_remove_remote_and_local">Vzdialené a lokálne</string>
+  <string name="confirmation_remove_folder_local">Iba lokálne</string>
+  <string name="confirmation_remove_file_remote">Zo servera</string>
+  <string name="confirmation_remove_remote_and_local">Vzdialene aj lokálne</string>
   <string name="remove_success_msg">Úspešne odstránené</string>
   <string name="remove_fail_msg">Odstránenie zlyhalo</string>
   <string name="rename_dialog_title">Zadajte nové meno</string>
   <string name="sync_file_nothing_to_do_msg">Obsah súboru je zosynchronizovaný</string>
   <string name="create_dir_fail_msg">Priečinok nie je možné vytvoriť</string>
   <string name="filename_forbidden_characters">Zakázané znaky: / \\ &lt; &gt; : \" | ? *</string>
+  <string name="filename_forbidden_charaters_from_server">Názov súboru obsahuje nevhodný znak</string>
   <string name="filename_empty">Názov súboru nemôže byť prázdny</string>
   <string name="wait_a_moment">Počkať chvíľu</string>
   <string name="filedisplay_unexpected_bad_get_content">Neočakávaný problém; skúste vybrať súbor inou aplikáciou</string>
   <string name="filedisplay_no_file_selected">Nebol vybraný súbor</string>
   <string name="activity_chooser_title">Odošli link do ...</string>
+  <string name="wait_for_tmp_copy_from_private_storage">Kopírovanie súboru z privátneho úložiska</string>
   <string name="oauth_check_onoff">Prihlásiť sa z oAuth2</string>
   <string name="oauth_login_connection">Pripájam sa na oAuth2 server…</string>
   <string name="ssl_validator_header">Identitu stránky nemožno overiť</string>
   <string name="ssl_validator_label_validity_to">Do: </string>
   <string name="ssl_validator_label_signature">Podpis:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritmus:</string>
+  <string name="digest_algorithm_not_available">Algoritmus digest nie je na vašom telefóne dostupný.</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Odtlačok:</string>
+  <string name="certificate_load_problem">Nastal problém s načítaním certifikátu.</string>
   <string name="ssl_validator_null_cert">Certifikát nemohol byť zobrazený.</string>
   <string name="ssl_validator_no_info_about_error">- Žiadne informácie o tejto chybe</string>
   <string name="placeholder_sentence">Toto je \"placeholder\"</string>
   <string name="instant_upload_on_wifi">Odoslať fotografie iba cez WiFi</string>
   <string name="instant_video_upload_on_wifi">Nahrávať videá len cez WiFi</string>
   <string name="instant_upload_path">/InstantUpload</string>
+  <string name="conflict_title">Konflikt súborov</string>
+  <string name="conflict_message">Ktoré súbory si prajate ponachať? Pokiaľ to budú obe verzie, lokálnej pribudne k názvu číslo.</string>
   <string name="conflict_keep_both">Ponechať oba</string>
+  <string name="conflict_use_local_version">lokálnu verziu</string>
+  <string name="conflict_use_server_version">serverovú verziu</string>
   <string name="preview_image_description">Ukážka obrazu</string>
   <string name="preview_image_error_unknown_format">Obrázok nemožno zobraziť</string>
   <string name="error__upload__local_file_not_copied">%1$s nemožno skopírovať do lokálneho priečinka %2$s</string>
   <string name="downloader_download_file_not_found">Súbor už na serveri nie je dostupný</string>
   <string name="prefs_category_accounts">Účty</string>
   <string name="prefs_add_account">Pridať účet</string>
-  <string name="auth_redirect_non_secure_connection_title">Zabezpečené pripojenie je presmerované na nezabezpečenú trasu.</string>
+  <string name="auth_redirect_non_secure_connection_title">Zabezpečené spojenie je presmerované nezabezpečenou cestou.</string>
   <string name="actionbar_logger">Logy</string>
   <string name="log_send_history_button">Odoslať históriu</string>
   <string name="log_send_no_mail_app">Nebola nájdená aplikácia pre odosielanie log protokolov. Nainštalujte si mailovú aplikáciu!</string>
   <string name="move_file_invalid_overwrite">Súbor už v cieľovom priečinku existuje</string>
   <string name="move_file_error">Pri pokuse o presun tohoto súboru alebo priečinka nastala chyba</string>
   <string name="forbidden_permissions_move">pre presun tohoto súboru</string>
+  <string name="copy_file_not_found">Nemožno kopírovať. Overte či súbor ešte existuje</string>
+  <string name="copy_file_invalid_into_descendent">Nemožno kopírovať priečinok do jeho podpriečinka</string>
+  <string name="copy_file_invalid_overwrite">Súbor už v cieľovom priečinku existuje</string>
+  <string name="copy_file_error">Počas kopírovania súboru alebo zložky sa vyskytla chyba</string>
+  <string name="forbidden_permissions_copy">kopírovať súbor</string>
   <string name="prefs_category_instant_uploading">Okamžité nahratie</string>
   <string name="prefs_category_security">Zabezpečenie</string>
   <string name="prefs_instant_video_upload_path_title">Cesta pre nahrávanie videí</string>
-  <string name="download_folder_failed_content">Sťahovanie %1$s priečinka nebolo dokončené</string>
+  <string name="sync_folder_failed_content">Synchronizáciu priečinka %1$s nebolo možné dokončiť</string>
   <string name="shared_subject_header">zdieľané</string>
   <string name="with_you_subject_header">s vami</string>
-  <string name="subject_token">%1$s vám zdieľal \"%2$s\"</string>
+  <string name="subject_user_shared_with_you">%1$s vám zdieľal \"%2$s\"</string>
+  <string name="subject_shared_with_you">\"%1$s\" bol s vami nazdieľaný</string>
   <string name="auth_refresh_button">Obnoviť pripojenie</string>
   <string name="auth_host_address">Adresa servera</string>
   <string name="common_error_out_memory">Nedostatok pamäte</string>
   <string name="username">Používateľské meno</string>
+  <string name="file_list__footer__folder">1 priečinok</string>
+  <string name="file_list__footer__folders">%1$d prieč.</string>
+  <string name="file_list__footer__file">1 súbor</string>
+  <string name="file_list__footer__file_and_folder">1 súbor, 1 priečinok</string>
+  <string name="file_list__footer__file_and_folders">1 súbor, %1$d prieč.</string>
+  <string name="file_list__footer__files">%1$d súb.</string>
+  <string name="file_list__footer__files_and_folder">%1$d súb., 1 priečinok</string>
+  <string name="file_list__footer__files_and_folders">%1$d súb., %2$d prieč.</string>
+  <string name="share_dialog_title">Zdieľanie</string>
+  <string name="share_no_users">Zatiaľ s používateľmi nezdieľate žiadne dáta.</string>
+  <string name="share_add_user_or_group">Pridať používateľa alebo skupinu</string>
+  <string name="share_via_link_section_title">Zdieľať linku</string>
+  <string name="share_via_link_expiration_date_label">Nastaviť dátum expirácie</string>
+  <string name="share_via_link_password_label">Chrániť heslom</string>
+  <string name="share_search">Hľadať</string>
+  <string name="search_users_and_groups_hint">Vyhľadať používateľov alebo skupiny</string>
+  <string name="share_group_clarification">%1$s (skupina)</string>
+  <string name="share_sharee_unavailable">Je nám ľúto, vaša verzia servera neumožňuje zdieľanie s používateľmi alebo skupinami.
+\nProsím, obráťte sa na svojho správcu</string>
 </resources>
index e13d17d..9e4fdd1 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Nastavitve</string>
   <string name="drawer_item_logs">Dnevnik</string>
   <string name="drawer_close">Zapri</string>
+  <string name="drawer_open">Odpri</string>
   <string name="prefs_category_general">Splošno</string>
   <string name="prefs_category_more">Več</string>
   <string name="prefs_accounts">Računi</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">pred nekaj sekundami</string>
   <string name="file_list_empty">Tukaj še ni ničesar. Najprej je treba datoteke poslati v oblak!</string>
   <string name="file_list_loading">Poteka nalaganje ...</string>
+  <string name="file_list_no_app_for_file_type">Ne najdem aplikacije za to vrsto datoteke!</string>
   <string name="local_file_list_empty">V tej mapi ni datotek.</string>
   <string name="filedetails_select_file">Pritisnite na datoteko za prikaz dodatnih podrobnosti.</string>
   <string name="filedetails_size">Velikost:</string>
   <string name="filedetails_created">Ustvarjeno:</string>
   <string name="filedetails_modified">Spremenjeno:</string>
   <string name="filedetails_download">Prejmi</string>
-  <string name="filedetails_sync_file">Osveži datoteko</string>
+  <string name="filedetails_sync_file">Sinhroniziraj</string>
   <string name="filedetails_renamed_in_upload_msg">Datoteka je bila med nalaganjem preimenovana v %1$s</string>
   <string name="list_layout">Postavitev seznama</string>
-  <string name="action_share_file">Povezava za souporabo</string>
-  <string name="action_unshare_file">Odstrani možnost souporabe</string>
+  <string name="action_share">Souporaba</string>
   <string name="common_yes">Da</string>
   <string name="common_no">Ne</string>
   <string name="common_ok">V redu</string>
-  <string name="common_cancel_download">Prekliči prejem</string>
-  <string name="common_cancel_upload">Prekliči pošiljanje</string>
+  <string name="common_cancel_sync">Prekliči sinhronizacijo</string>
   <string name="common_cancel">Prekliči</string>
   <string name="common_save_exit">Shrani in končaj</string>
   <string name="common_error">Napaka</string>
   <string name="unfavorite">Odstrani priljubljeno</string>
   <string name="common_rename">Preimenuj</string>
   <string name="common_remove">Odstrani</string>
-  <string name="confirmation_remove_alert">Ali res želite odstraniti %1$s?</string>
+  <string name="confirmation_remove_file_alert">Ali res želite odstraniti %1$s?</string>
   <string name="confirmation_remove_folder_alert">Ali res želite odstraniti %1$s skupaj s celotno vsebino?</string>
   <string name="confirmation_remove_local">Le krajevno</string>
-  <string name="confirmation_remove_folder_local">Le krajevno vsebino</string>
-  <string name="confirmation_remove_remote">Odstrani s strežnika</string>
-  <string name="confirmation_remove_remote_and_local">Oddaljeno in krajevno</string>
+  <string name="confirmation_remove_folder_local">Le krajevno</string>
+  <string name="confirmation_remove_file_remote">S strežnika</string>
+  <string name="confirmation_remove_remote_and_local">Oddaljeno &amp; krajevno</string>
   <string name="remove_success_msg">Odstranitev je uspešno končana</string>
   <string name="remove_fail_msg">Odstranjevanje je spodletelo</string>
   <string name="rename_dialog_title">Vnesite novo ime</string>
   <string name="ssl_validator_label_validity_to">Do:</string>
   <string name="ssl_validator_label_signature">Podpis:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritem:</string>
+  <string name="digest_algorithm_not_available">Ta algoritem ni na voljo na vašem telefonu.</string>
+  <string name="certificate_load_problem">Imam težavo z nalaganjem certifikata.</string>
   <string name="ssl_validator_null_cert">Potrdila ni mogoče pokazati.</string>
   <string name="ssl_validator_no_info_about_error">– Ni podatkov o napaki</string>
   <string name="placeholder_sentence">To je vsebnik predmetov</string>
   <string name="instant_upload_on_wifi">Pošiljaj slike le preko povezav Wi-Fi</string>
   <string name="instant_video_upload_on_wifi">Pošlji posnetke le preko povezave Wi-Fi</string>
   <string name="instant_upload_path">/Poslano</string>
+  <string name="conflict_title">Neskladje datotek</string>
+  <string name="conflict_message">Katere datoteke želite ohraniti? Če izberete obe različici, bo krajevni datoteki dodatna k imenu še številka.</string>
   <string name="conflict_keep_both">Ohrani obe</string>
+  <string name="conflict_use_local_version">krajevna različica</string>
+  <string name="conflict_use_server_version">različica strežnika</string>
   <string name="preview_image_description">Predogled slike</string>
   <string name="preview_image_error_unknown_format">Te slike ni mogoče prikazati</string>
   <string name="error__upload__local_file_not_copied">Datoteke %1$s ni mogoče kopirati v krajevno mapo %2$s</string>
   <string name="share_link_file_error">Prišlo je do napake med poskusom omogočanja souporabe te datoteke ali mape</string>
   <string name="unshare_link_file_no_exist">Ni mogoče prekiniti souporabe. Preverite, ali datoteka obstaja.</string>
   <string name="unshare_link_file_error">Prišlo je do napake med poskusom odstranjevanja souporabe te datoteke ali mape</string>
+  <string name="update_link_file_no_exist">Nemorem posodobiti. Prosim, preverite ali datoteka obstaja.</string>
+  <string name="update_link_file_error">Prišlo je do napake med posodabljanjem povezav</string>
   <string name="share_link_password_title">Vpis gesla</string>
   <string name="share_link_empty_password">Vpisati je treba geslo.</string>
   <string name="activity_chooser_send_file_title">Pošlji</string>
   <string name="forbidden_permissions_delete">za izbris datoteke.</string>
   <string name="share_link_forbidden_permissions">za omogočanje souporabe datoteke.</string>
   <string name="unshare_link_forbidden_permissions">za preklic souporabe datoteke.</string>
+  <string name="update_link_forbidden_permissions">za posodobitev te povezave za souporabo</string>
   <string name="forbidden_permissions_create">za ustvarjanje datoteke.</string>
   <string name="uploader_upload_forbidden_permissions">za pošiljanje datoteke v oblak.</string>
   <string name="downloader_download_file_not_found">Datoteka na strežniku ni več na voljo.</string>
   <string name="move_file_invalid_overwrite">Datoteka v ciljni mapi že obstaja.</string>
   <string name="move_file_error">Prišlo je do napake med premikanjem datoteke v mapo</string>
   <string name="forbidden_permissions_move">med premikanjem datoteke</string>
+  <string name="copy_file_not_found">Ne morem kopirati. Prosim, preverite ali datoteka obstaja.</string>
+  <string name="copy_file_invalid_into_descendent">Ni mogoče kopirati mape v podrejeno mapo.</string>
+  <string name="copy_file_invalid_overwrite">Datoteka v ciljni mapi že obstaja.</string>
+  <string name="copy_file_error">Prišlo je do napake med kopiranjem datoteke v mapo</string>
+  <string name="forbidden_permissions_copy">za kopiranje te datoteke</string>
   <string name="prefs_category_instant_uploading">Takojšnje pošiljanje v oblak</string>
   <string name="prefs_category_security">Varnost</string>
   <string name="prefs_instant_video_upload_path_title">Pot videa za pošiljanje</string>
-  <string name="download_folder_failed_content">Imenika %1$s  ni mogoče prejeti v celoti</string>
+  <string name="sync_folder_failed_content">Sinhronizacija mape %1$s ne more biti zaključena</string>
   <string name="shared_subject_header">v souporabi</string>
   <string name="with_you_subject_header">z vami</string>
-  <string name="subject_token">Uporabnik %1$s je omogočil souporabo \"%2$s\" z vami</string>
+  <string name="subject_user_shared_with_you">Uporabnik %1$s je omogočil souporabo \"%2$s\" z vami</string>
+  <string name="subject_shared_with_you">\"%1$s\" je oddan v souporabo z vami</string>
   <string name="auth_refresh_button">Osveži povezavo</string>
   <string name="auth_host_address">Naslov strežnika</string>
   <string name="common_error_out_memory">Ni dovolj pomnilnika</string>
   <string name="file_list__footer__files">%1$d datotek</string>
   <string name="file_list__footer__files_and_folder">%1$d datotek, 1 mapa</string>
   <string name="file_list__footer__files_and_folders">%1$d datotek, %2$d map</string>
+  <string name="share_dialog_title">Souporaba</string>
+  <string name="share_with_user_section_title">Deli z uporabniki in skupinami</string>
+  <string name="share_no_users">Podatki še niso bili deljeni z uporabniki</string>
+  <string name="share_add_user_or_group">Dodaj uporabnika ali skupino</string>
+  <string name="share_via_link_section_title">Povezava za souporabo</string>
+  <string name="share_via_link_expiration_date_label">Nastavi datum preteka</string>
+  <string name="share_via_link_password_label">Zaščiti z geslom</string>
+  <string name="share_via_link_password_title">Varovano</string>
+  <string name="share_get_public_link_button">Vzami povezavo</string>
+  <string name="share_search">Poišči</string>
+  <string name="search_users_and_groups_hint">Poišči uporabniku in skupine</string>
+  <string name="share_group_clarification">%1$s (skupina)</string>
+  <string name="share_sharee_unavailable">Žal, vaš strežnik ne dovoljuje deljenja z uporabniki med strankami.
+        \nKontaktirajte skrbnika.</string>
 </resources>
index cf074a6..3bb0088 100644 (file)
 <?xml version='1.0' encoding='UTF-8'?>
 <resources>
-  <string name="actionbar_upload">Ngarko</string>
-  <string name="actionbar_upload_files">Skedarët</string>
-  <string name="actionbar_mkdir">Dosje e\'re</string>
-  <string name="actionbar_settings">Parametrat</string>
-  <string name="actionbar_send_file">Dërgo</string>
+  <string name="about_android">Aplikacioni Android %1$s</string>
+  <string name="about_version">version %1$s</string>
+  <string name="actionbar_sync">Rifreskoni llogarinë</string>
+  <string name="actionbar_upload">Ngarkoni</string>
+  <string name="actionbar_upload_from_apps">Lëndë nga aplikacione të tjera</string>
+  <string name="actionbar_upload_files">Kartela</string>
+  <string name="actionbar_open_with">Hape me</string>
+  <string name="actionbar_mkdir">Dosje e re</string>
+  <string name="actionbar_settings">Rregullime</string>
+  <string name="actionbar_see_details">Hollësi</string>
+  <string name="actionbar_send_file">Dërgoje</string>
+  <string name="actionbar_sort">Renditi</string>
+  <string name="actionbar_sort_title">Renditi sipas</string>
+  <string-array name="actionbar_sortby">
+    <item>A-Z</item>
+    <item>Më e reja - Më e vjetra</item>
+  </string-array>
   <!--TODO re-enable when server-side folder size calculation is available   
        <item>Biggest - Smallest</item>-->
   <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
   <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <string name="drawer_item_all_files">Krejt kartelat</string>
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
-  <string name="prefs_category_general">Përgjithshme</string>
+  <string name="drawer_item_settings">Llogari</string>
+  <string name="drawer_item_logs">Regjistra</string>
+  <string name="drawer_close">Mbylle</string>
+  <string name="drawer_open">Hape</string>
+  <string name="prefs_category_general">Të përgjithshme</string>
   <string name="prefs_category_more">Më tepër</string>
-  <string name="prefs_accounts">Llogarit</string>
+  <string name="prefs_accounts">Llogari</string>
+  <string name="prefs_manage_accounts">Administroni Llogari</string>
+  <string name="prefs_passcode">Kyçje kodkalimi</string>
+  <string name="prefs_instant_upload">Ngarkime të menjëhershme fotosh</string>
+  <string name="prefs_instant_upload_summary">Ngarkoni menjëherë foto të bëra nga kamera</string>
+  <string name="prefs_instant_video_upload">Ngarkime të menjëhershme videosh</string>
+  <string name="prefs_instant_video_upload_summary">Ngarkoni menjëherë video të bëra nga kamera</string>
+  <string name="prefs_log_title">Aktivizoni Regjistrimet</string>
+  <string name="prefs_log_summary">Kjo përdoret për të regjistruar probleme</string>
+  <string name="prefs_log_title_history">Historik Regjistrimesh</string>
+  <string name="prefs_log_summary_history">Kjo shfaq regjistrimet e bëra</string>
+  <string name="prefs_log_delete_history_button">Fshije Historikun</string>
   <string name="prefs_help">Ndihmë</string>
-  <string name="prefs_imprint">Stampoj</string>
-  <string name="auth_username">Përdoruesi</string>
-  <string name="auth_password">Kodi</string>
-  <string name="sync_string_files">Skedarët</string>
-  <string name="setup_btn_connect">Lidhu</string>
-  <string name="uploader_btn_upload_text">Ngarko</string>
-  <string name="uploader_btn_new_folder_text">Dosje e\'re</string>
-  <string name="uploader_wrn_no_account_title">Nuk u gjend asnjë llogari</string>
-  <string name="uploader_wrn_no_account_text">Nuk ka %1$s llogari në pajisjen tuaj. Ju lutemi të krijojnë një llogari të parë.</string>
-  <string name="uploader_wrn_no_account_setup_btn_text">Ndërto</string>
-  <string name="uploader_wrn_no_account_quit_btn_text">Dil</string>
-  <string name="uploader_info_uploading">Ngarko</string>
+  <string name="prefs_recommend">Këshillojani një shoku</string>
+  <string name="prefs_feedback">Përshtypje</string>
+  <string name="prefs_imprint">Imprint</string>
+  <string name="prefs_remember_last_share_location">Mba mend vend ndarjeje me të tjerët</string>
+  <string name="prefs_remember_last_upload_location_summary">Mba mend vendin e fundit të ngarkimit për ndarje me të tjerët</string>
+  <string name="recommend_subject">Provojeni %1$s te telefoni juaj!</string>
+  <string name="recommend_text">Dua t\’ju ftoj të përdorni %1$s në telefonin tuaj!\nShkarkojeni prej këtu: %2$s</string>
+  <string name="auth_check_server">Kontrollo Shërbyesin</string>
+  <string name="auth_host_url">Adresë https://… e shërbyesit</string>
+  <string name="auth_username">Emër përdoruesi</string>
+  <string name="auth_password">Fjalëkalim</string>
+  <string name="auth_register">Rishtar te %1$s?</string>
+  <string name="sync_string_files">Kartela</string>
+  <string name="setup_btn_connect">Lidhuni</string>
+  <string name="uploader_btn_upload_text">Ngarkoni</string>
+  <string name="uploader_btn_new_folder_text">Dosje e re</string>
+  <string name="uploader_top_message">Zgjidhni dosje ngarkimi:</string>
+  <string name="uploader_wrn_no_account_title">S\’u gjet llogari</string>
+  <string name="uploader_wrn_no_account_text">S\’ka llogari %1$s te pajisja juaj. Ju lutemi, rregulloni së pari një llogari.</string>
+  <string name="uploader_wrn_no_account_setup_btn_text">Rregullim</string>
+  <string name="uploader_wrn_no_account_quit_btn_text">Dilni</string>
+  <string name="uploader_wrn_no_content_title">Pa lëndë për ngarkim</string>
+  <string name="uploader_wrn_no_content_text">S\’u mor lëndë. Asgjë për t\’u ngarkuar.</string>
+  <string name="uploader_error_forbidden_content">%1$s nuk i lejohet të hyjë në lëndë të përbashkët</string>
+  <string name="uploader_info_uploading">Ngarkim</string>
   <string name="file_list_seconds_ago">sekonda më parë</string>
-  <string name="file_list_empty">Këtu nuk ka asgje. Ngarko dicka</string>
-  <string name="filedetails_select_file">Trokitje e lehtë në një dokument për të shfaqur informacion shtesë.</string>
-  <string name="filedetails_size">Dimensioni:</string>
-  <string name="filedetails_type">Tipi:</string>
-  <string name="filedetails_created">Krijuar:</string>
-  <string name="filedetails_modified">Modifikuar:</string>
-  <string name="filedetails_download">Shkarko</string>
-  <string name="action_share_file">Ndaje lidhjen</string>
+  <string name="file_list_empty">Këtu nuk ka gjë. Ngarkoni diçka!</string>
+  <string name="file_list_loading">Po ngarkohet…</string>
+  <string name="file_list_no_app_for_file_type">S\’u gjet aplikacion për llojin e kartelës!</string>
+  <string name="local_file_list_empty">Në këtë dosje s\’ka kartela.</string>
+  <string name="filedetails_select_file">Prekni mbi një kartelë që të shfaqen të dhëna shtesë.</string>
+  <string name="filedetails_size">Madhësi:</string>
+  <string name="filedetails_type">Lloj:</string>
+  <string name="filedetails_created">Krijuar më:</string>
+  <string name="filedetails_modified">Ndryshuar më:</string>
+  <string name="filedetails_download">Shkarkoje</string>
+  <string name="filedetails_sync_file">Njëkohëso</string>
+  <string name="filedetails_renamed_in_upload_msg">Kartela u riemërtua si %1$s gjatë ngarkimit</string>
+  <string name="list_layout">Skemë Liste</string>
+  <string name="action_share">Ndaje</string>
   <string name="common_yes">Po</string>
   <string name="common_no">Jo</string>
-  <string name="common_ok">Ok</string>
-  <string name="common_cancel_upload">Anulo ngarkimin</string>
-  <string name="common_cancel">Anulo</string>
-  <string name="common_error">Veprim i gabuar</string>
-  <string name="common_error_unknown">Gabim panjohur</string>
+  <string name="common_ok">OK</string>
+  <string name="common_cancel_sync">Anuloje njëkohësimin</string>
+  <string name="common_cancel">Anuloje</string>
+  <string name="common_save_exit">Ruaje &amp; Dil</string>
+  <string name="common_error">Gabim</string>
+  <string name="common_loading">Po ngarkohet …</string>
+  <string name="common_error_unknown">Gabim i panjohur</string>
   <string name="about_title">Rreth</string>
-  <string name="change_password">Ndrysho fjalëkalimin</string>
-  <string name="delete_account">Fshi llogarin</string>
-  <string name="create_account">Krijo llogari</string>
-  <string name="upload_chooser_title">Ngarko nga...</string>
-  <string name="uploader_info_dirname">Emri i Skedarit</string>
-  <string name="uploader_upload_in_progress_ticker">Ngarkim...</string>
-  <string name="uploader_upload_in_progress_content">%1$d%% Ngarkim %2$s</string>
-  <string name="uploader_upload_succeeded_ticker">Ngarkimi me sukses.</string>
+  <string name="change_password">Ndryshoni fjalëkalimin</string>
+  <string name="delete_account">Fshini llogarinë</string>
+  <string name="create_account">Krijoni llogari</string>
+  <string name="upload_chooser_title">Ngarkojeni prej …</string>
+  <string name="uploader_info_dirname">Emër dosjeje</string>
+  <string name="uploader_upload_in_progress_ticker">Po ngarkohet …</string>
+  <string name="uploader_upload_in_progress_content">%1$d%% Po ngarkohet %2$s</string>
+  <string name="uploader_upload_succeeded_ticker">Ngarkimi doli me sukses</string>
   <string name="uploader_upload_succeeded_content_single">%1$s u ngarkua me sukses</string>
   <string name="uploader_upload_failed_ticker">Ngarkimi dështoi</string>
-  <string name="uploader_upload_failed_content_single">Ngarkimi i %1$s nuk mund te behej</string>
-  <string name="downloader_download_in_progress_ticker">Shkarkimi...</string>
-  <string name="downloader_download_in_progress_content">%1$d%% Shkarkimi %2$s</string>
-  <string name="downloader_download_succeeded_ticker">Shkarkimi me sukses</string>
+  <string name="uploader_upload_failed_content_single">Ngarkimi i %1$s s\’u plotësua dot</string>
+  <string name="uploader_upload_failed_credentials_error">Ngarkimi dështoi, lypset të ribëni hyrjen</string>
+  <string name="downloader_download_in_progress_ticker">Po shkarkohet …</string>
+  <string name="downloader_download_in_progress_content">%1$d%% Shkarkim %2$s</string>
+  <string name="downloader_download_succeeded_ticker">Shkarkimi doli me sukses</string>
   <string name="downloader_download_succeeded_content">%1$s u shkarkua me sukses</string>
-  <string name="downloader_download_failed_ticker">Shkarkimi dështoj</string>
-  <string name="common_choose_account">Zgjidhni Llogarine</string>
-  <string name="auth_no_net_conn_title">Nuk ka lidhje ne Rrjet</string>
+  <string name="downloader_download_failed_ticker">Shkarkimi dështoi</string>
+  <string name="downloader_download_failed_content">Shkarkimi i %1$s s\’u plotësua dot</string>
+  <string name="downloader_not_downloaded_yet">Ende e pashkarkuar</string>
+  <string name="downloader_download_failed_credentials_error">Shkarkimi dështoi, lypset të ribëni hyrjen</string>
+  <string name="common_choose_account">Zgjidhni llogari</string>
+  <string name="sync_fail_ticker">Njëkohësimi dështoi</string>
+  <string name="sync_fail_ticker_unauthorized">Njëkohësimi dështoi, lypset të ribëni hyrjen</string>
+  <string name="sync_fail_content">Njëkohësimi i %1$s s\’u plotësua dot</string>
+  <string name="sync_fail_content_unauthorized">Fjalëkalim i pavlefshëm për %1$s</string>
+  <string name="sync_conflicts_in_favourites_ticker">U hasën përplasje</string>
+  <string name="sync_fail_in_favourites_content">Lënda e %1$d kartelave s\’u njëkohësua dot (%2$d përplasje)</string>
+  <string name="sync_foreign_files_forgotten_ticker">Disa kartela vendore u harruan</string>
+  <string name="sync_foreign_files_forgotten_content">%1$d kartela nga dosja %2$s s\’u kopjuan dot</string>
+  <string name="sync_foreign_files_forgotten_explanation">Nga versioni 1.3.16 e tutje, kartelat e ngarkuara nga kjo pajisje kopjohen te dosja vendore %1$s, për të parandaluar humbje të dhënash, kur një kartelë e vetme njëkohësohet me disa llogari.\n\nPër shkak të këtij ndryshimi, krejt kartelat e ngarkuara nën versione të mëparshëm të këtij aplikacioni u kopjuan në dosjen %2$s. Por plotësimin e këtij veprimi e pengoi një gabim gjatë njëkohësimit të llogarisë. Ose mund t\’i lini kartelat siç janë, dhe të hiqni lidhjen për te %3$s, ose të kaloni kartelat te dosja %1$s dhe të mbani lidhjen për te %4$s.\n\nMë poshtë radhiten kartelat vendore, dhe kartelat e largëta te %5$s me të cilat lidhen.</string>
+  <string name="sync_current_folder_was_removed">Dosja %1$s s\’ekziston më</string>
+  <string name="foreign_files_move">Zhvendosi krejt</string>
+  <string name="foreign_files_success">U zhvendosën krejt kartelat</string>
+  <string name="foreign_files_fail">Disa kartela s\’u zhvendosën dot</string>
+  <string name="foreign_files_local_text">Vendore: %1$s</string>
+  <string name="foreign_files_remote_text">E largët: %1$s</string>
+  <string name="upload_query_move_foreign_files">S\’ka hapësirë të mjaftueshme për të kopjuar te dosja %1$s kartelat e përzgjedhur. Doni t\i zhvendosni më mirë? </string>
+  <string name="pass_code_enter_pass_code">Ju lutemi, futni kodkalimin tuaj</string>
+  <string name="pass_code_configure_your_pass_code">Jepni kodkalimin tuaj</string>
+  <string name="pass_code_configure_your_pass_code_explanation">Kodkalimi do të kërkohet sa herë që niset aplikacioni</string>
+  <string name="pass_code_reenter_your_pass_code">Ju lutemi, rifutni kodkalimin tuaj</string>
+  <string name="pass_code_remove_your_pass_code">Hiqeni kodkalimin tuaj</string>
+  <string name="pass_code_mismatch">Kodkalimet s\’janë të njëjtë</string>
+  <string name="pass_code_wrong">Kodkalim i pasaktë</string>
+  <string name="pass_code_removed">Kodkalimi u hoq</string>
+  <string name="pass_code_stored">Kodkalimi u depozitua</string>
+  <string name="media_notif_ticker">Lojtësi %1$s i muzikës</string>
+  <string name="media_state_playing">%1$s (po luhet)</string>
+  <string name="media_state_loading">%1$s (po ngarkohet)</string>
+  <string name="media_event_done">Luajtja e %1$s përfundoi</string>
+  <string name="media_err_nothing_to_play">S\’u gjetën kartela media</string>
+  <string name="media_err_no_account">S\’u dha llogari</string>
+  <string name="media_err_not_in_owncloud">Kartelë jo në llogari të vlefshme</string>
+  <string name="media_err_unsupported">Kodek mediash i pambuluar</string>
+  <string name="media_err_io">S\’u lexua dot kartela media</string>
+  <string name="media_err_malformed">Kartelë media e koduar jo si duhet</string>
+  <string name="media_err_timeout">Mbaroi koha, teksa përpiqej të luhej</string>
+  <string name="media_err_invalid_progressive_playback">Kartela media s\’mund të transmetohet</string>
+  <string name="media_err_unknown">Kartela media s\’mund të luhet me lojtësin standard</string>
+  <string name="media_err_security_ex">Gabim sigurie gjatë përpjekjes për luajtje të %1$s</string>
+  <string name="media_err_io_ex">Gabim input-i gjatë përpjekjes për luajtje të %1$s</string>
+  <string name="media_err_unexpected">Gabim i papritur gjatë përpjekjes për luajtje të %1$s</string>
+  <string name="media_rewind_description">Butoni Mbrapsht</string>
+  <string name="media_play_pause_description">Butoni Luaje ose Pushoje</string>
+  <string name="media_forward_description">Butoni Përpara</string>
+  <string name="auth_getting_authorization">Po merret autorizim…</string>
+  <string name="auth_trying_to_login">Po përpiqet të bëhet hyrja…</string>
+  <string name="auth_no_net_conn_title">Pa lidhje rrjeti</string>
+  <string name="auth_nossl_plain_ok_title">S\’ka lidhje të sigurt.</string>
   <string name="auth_connection_established">Lidhja u vendos</string>
-  <string name="auth_secure_connection">Lidhja e Sigurt vendos</string>
-  <string name="common_rename">Riemërto</string>
-  <string name="common_remove">Hiq</string>
-  <string name="activity_chooser_send_file_title">Dërgo</string>
+  <string name="auth_testing_connection">Po provohet lidhja</string>
+  <string name="auth_not_configured_title">Formësim i keqformuar shërbyesi</string>
+  <string name="auth_account_not_new">Ka tashmë në pajisje një llogari për të njëjtin përdorues dhe shërbyes</string>
+  <string name="auth_account_not_the_same">Përdoruesi i dhënë s\’përputhet me përdoruesin e kësaj llogarie</string>
+  <string name="auth_unknown_error_title">Ndodhi një gabim i panjohur!</string>
+  <string name="auth_unknown_host_title">S\’u gjet dot strehë</string>
+  <string name="auth_incorrect_path_title">S\’u gjet dot instancë shërbyesi</string>
+  <string name="auth_timeout_title">Shërbyesit iu desh shumë kohë për përgjigje</string>
+  <string name="auth_incorrect_address_title">URL e keqformuar</string>
+  <string name="auth_ssl_general_error_title">Gatitja e SSL-së dështoi</string>
+  <string name="auth_ssl_unverified_server_title">S\’u verifikua dot identiteti i shërbyesit SSL</string>
+  <string name="auth_bad_oc_version_title">Version i papranuar shërbyesi</string>
+  <string name="auth_wrong_connection_title">S\’u vendos dot lidhja</string>
+  <string name="auth_secure_connection">U vendos lidhje e sigurt</string>
+  <string name="auth_unauthorized">Emër përdoruesi ose fjalëkalim i gabuar</string>
+  <string name="auth_oauth_error">Autorizim jo i suksesshëm</string>
+  <string name="auth_oauth_error_access_denied">Hyrje e mohuar nga shërbyesi i autorizimeve</string>
+  <string name="auth_wtf_reenter_URL">Gjendje e papritur; ju lutemi, rijepni URL-në e shërbyesit</string>
+  <string name="auth_expired_oauth_token_toast">Autorizimi juaj skadoi. Ju lutemi, autorizohuni sërish</string>
+  <string name="auth_expired_basic_auth_toast">Ju lutemi, jepni fjalëkalimin e tanishëm</string>
+  <string name="auth_expired_saml_sso_token_toast">Sesioni juaj skadoi. Ju lutemi, rilidhuni</string>
+  <string name="auth_connecting_auth_server">Po lidhet te shërbyesi i mirëfilltësimeve…</string>
+  <string name="auth_unsupported_auth_method">Shërbyesi s\’e mbulon këtë metodë mirëfilltësimesh</string>
+  <string name="auth_unsupported_multiaccount">%1$s s\’mbulon llogari të shumëfishta</string>
+  <string name="auth_fail_get_user_name">Shërbyesi juaj s\’po përgjigje me id të saktë përdoruesi, ju lutemi, lidhuni me një admin</string>
+  <string name="auth_can_not_auth_against_server">S\’mund të bëhet mirëfilltësim kundrejt këtij shërbyesi</string>
+  <string name="auth_account_does_not_exist">Llogaria s\’ekziston ende te pajisja</string>
+  <string name="favorite">Vëre te Të parapëlqyerit</string>
+  <string name="unfavorite">Hiqe nga Të parapëlqyerit</string>
+  <string name="common_rename">Riemërtojeni</string>
+  <string name="common_remove">Hiqe</string>
+  <string name="confirmation_remove_alert">Doni vërtet të hiqet %1$s?</string>
+  <string name="confirmation_remove_folder_alert">Doni vërtet të hiqet %1$s dhe lënda e tij?</string>
+  <string name="confirmation_remove_local">Vetëm vendorja</string>
+  <string name="confirmation_remove_folder_local">Vetëm vendorja</string>
+  <string name="confirmation_remove_remote">Nga shërbyesi</string>
+  <string name="confirmation_remove_remote_and_local">E largëta &amp; dhe vendorja</string>
+  <string name="remove_success_msg">Heqja doli me sukses</string>
+  <string name="remove_fail_msg">Heqja dështoi</string>
+  <string name="rename_dialog_title">Jepni një emër të ri</string>
+  <string name="rename_local_fail_msg">Kopja vendore s\’u riemërtua dot; provoni një emër tjetër</string>
+  <string name="rename_server_fail_msg">Riemërtimi s\’u plotësua dot</string>
+  <string name="sync_file_fail_msg">S\’u kap dot kartela</string>
+  <string name="sync_file_nothing_to_do_msg">Lëndë kartele tashmë e njëkohësuar</string>
+  <string name="create_dir_fail_msg">S\’u krijua dot dosja</string>
+  <string name="filename_forbidden_characters">Shenja të ndaluara: / \\ &lt; &gt; : \" | ? *</string>
+  <string name="filename_forbidden_charaters_from_server">Emri i kartelës përmban të paktën një shenjë të pavlefshme</string>
+  <string name="filename_empty">Emri i kartelës s\’mund të jetë i zbrazët</string>
+  <string name="wait_a_moment">Pritni një çast</string>
+  <string name="filedisplay_unexpected_bad_get_content">Problem i papritur; ju lutemi, përzgjidhni një kartelë nga një aplikacion tjetër</string>
+  <string name="filedisplay_no_file_selected">S\’u përzgjodh kartelë</string>
+  <string name="activity_chooser_title">Dërgoni lidhje te …</string>
+  <string name="wait_for_tmp_copy_from_private_storage">Po kopjohet kartelë nga depo private</string>
+  <string name="oauth_check_onoff">Hyrje me oAuth2</string>
+  <string name="oauth_login_connection">Po lidhet me shërbyesin oAuth2…</string>
+  <string name="ssl_validator_header">Identiteti i sajtit s\’u verifikua dot</string>
+  <string name="ssl_validator_reason_cert_not_trusted">- Dëshmia e shërbyesit s\’është e besuar</string>
+  <string name="ssl_validator_reason_cert_expired">- Dëshmia e shërbyesit skadoi</string>
+  <string name="ssl_validator_reason_cert_not_yet_valid">- Datat e vlefshmërisë së dëshmisë së shërbyesit i përkasin të ardhmes</string>
+  <string name="ssl_validator_reason_hostname_not_verified">- URL-ja s\’përputhet me emrin e strehëemrit te dëshmia</string>
+  <string name="ssl_validator_question">Doni të besohet kjo dëshmi sido qoftë?</string>
+  <string name="ssl_validator_not_saved">Dëshmia s\’u ruajt dot</string>
+  <string name="ssl_validator_btn_details_see">Hollësi</string>
+  <string name="ssl_validator_btn_details_hide">Fshihe</string>
+  <string name="ssl_validator_label_subject">Lëshuar për:</string>
+  <string name="ssl_validator_label_issuer">Lëshuar nga:</string>
+  <string name="ssl_validator_label_CN">Emër i rëndomtë:</string>
+  <string name="ssl_validator_label_O">Organizëm:</string>
+  <string name="ssl_validator_label_OU">Njësi organizative:</string>
+  <string name="ssl_validator_label_C">Vend:</string>
+  <string name="ssl_validator_label_ST">Shtet:</string>
+  <string name="ssl_validator_label_L">Vendndodhje:</string>
+  <string name="ssl_validator_label_validity">Vlefshmëri:</string>
+  <string name="ssl_validator_label_validity_from">Nga:</string>
+  <string name="ssl_validator_label_validity_to">Deri më:</string>
+  <string name="ssl_validator_label_signature">Nënshkrim:</string>
+  <string name="ssl_validator_label_signature_algorithm">Algoritëm:</string>
+  <string name="digest_algorithm_not_available">Ky algoritëm digest s’është i passhëm në telefonin tuaj.</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Shenja gishtash:</string>
+  <string name="certificate_load_problem">Pati një problem gjatë ngarkimit të dëshmisë.</string>
+  <string name="ssl_validator_null_cert">Dëshmia s\’u shfaq dot.</string>
+  <string name="ssl_validator_no_info_about_error">- Pa të dhëna rreth gabimit</string>
+  <string name="placeholder_sentence">Kjo është një vendmbajtëse</string>
+  <string name="placeholder_filename">placeholder.txt</string>
+  <string name="placeholder_filetype">Figurë PNG</string>
+  <string name="placeholder_filesize">389 KB</string>
+  <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
+  <string name="placeholder_media_time">12:23:45</string>
+  <string name="instant_upload_on_wifi">Fotot ngarkoji vetëm përmes WiFi-it</string>
+  <string name="instant_video_upload_on_wifi">Videot ngarkoji vetëm përmes WiFi-it</string>
+  <string name="instant_upload_path">/InstantUpload</string>
+  <string name="conflict_title">Përplasje kartelash</string>
+  <string name="conflict_message">Cilat kartela doni të mbani? Nëse përzgjidhni të dy versionet, kartelës vendore do t\’i shtohet një numër te emri.</string>
+  <string name="conflict_keep_both">Mbaji të dyja</string>
+  <string name="conflict_use_local_version">versionin vendor</string>
+  <string name="conflict_use_server_version">versionin e shërbyesit</string>
+  <string name="preview_image_description">Paraparje figure</string>
+  <string name="preview_image_error_unknown_format">Kjo figurë nuk mund të shfaqet</string>
+  <string name="error__upload__local_file_not_copied">%1$s s\’u kopjua dot te dosja vendore %2$s</string>
+  <string name="prefs_instant_upload_path_title">Shteg Ngarkimi</string>
+  <string name="share_link_no_support_share_api">Na ndjeni, ndarja me të tjerët s\’është e aktivizuar te shërbyesi juaj. Ju lutemi, lidhuni me përgjegjësin tuaj.</string>
+  <string name="share_link_file_no_exist">S\’arrin të ndajë me të tjerët. Ju lutemi, kontrolloni nëse kartela ekziston apo jo</string>
+  <string name="share_link_file_error">Ndodhi një gabim teksa përpiqej të ndahej me të tjerët kjo kartelë apo dosje</string>
+  <string name="unshare_link_file_no_exist">S\’arrin të zhbëjë ndarjen me të tjerët. Ju lutemi, kontrolloni nëse kartela ekziston</string>
+  <string name="unshare_link_file_error">Ndodhi një gabim teksa përpiqej të zhbëhej ndarja me të tjerët e kësaj kartele apo dosjeje</string>
+  <string name="update_link_file_no_exist">S’u arrit të përditësohej gjë. Ju lutemi, kontrolloni nëse ekziston apo jo kartela.</string>
+  <string name="update_link_file_error">Ndodhi një gabim teksa provohej të përditësohej lidhja e ndarë me të tjerët</string>
+  <string name="share_link_password_title">Jepni një fjalëkalim</string>
+  <string name="share_link_empty_password">Duhet të jepni një fjalëkalim</string>
+  <string name="activity_chooser_send_file_title">Dërgoje</string>
+  <string name="copy_link">Kopjoje lidhjen</string>
+  <string name="clipboard_text_copied">U kopjua te e papastra</string>
+  <string name="error_cant_bind_to_operations_service">Gabim kritik: nuk mund të kryhen veprime</string>
+  <string name="network_error_socket_exception">Ndodhi një gabim teksa po lidhej me shërbyesin.</string>
+  <string name="network_error_socket_timeout_exception">Ndodhi një gabim teksa po pritej për shërbyesin, veprimi s\’u krye dot</string>
+  <string name="network_error_connect_timeout_exception">Ndodhi një gabim teksa po pritej për shërbyesin, veprimi s\’u krye dot</string>
+  <string name="network_host_not_available">Veprimi s\’u plotësua dot, shërbyesi është i pakapshëm</string>
   <string name="empty"></string>
-  <string name="prefs_category_accounts">Llogarit</string>
+  <string name="forbidden_permissions">Nuk keni leje %s</string>
+  <string name="forbidden_permissions_rename">për riemërtim të kësaj kartele</string>
+  <string name="forbidden_permissions_delete">për fshirje të kësaj kartele</string>
+  <string name="share_link_forbidden_permissions">për ndarje me të tjerët të kësaj kartele</string>
+  <string name="unshare_link_forbidden_permissions">për zhbërje të ndarjes me të tjerët të kësaj kartele</string>
+  <string name="update_link_forbidden_permissions">që të përditësohet kjo lidhje e ndarë me të tjerët</string>
+  <string name="forbidden_permissions_create">për krijim kartele</string>
+  <string name="uploader_upload_forbidden_permissions">për ngarkim në këtë dosje</string>
+  <string name="downloader_download_file_not_found">Kartela s\’gjendet më te shërbyesi</string>
+  <string name="prefs_category_accounts">Llogari</string>
+  <string name="prefs_add_account">Shtoni llogari</string>
+  <string name="auth_redirect_non_secure_connection_title">Lidhja e sigurt është ridrejtuar përmes një rruge të pasigurt.</string>
+  <string name="actionbar_logger">Regjistra</string>
+  <string name="log_send_history_button">Historik Dërgimesh</string>
+  <string name="log_send_no_mail_app">S\’u gjet aplikacion për dërgim regjistrash. Instaloni aplikacion email-esh!</string>
+  <string name="log_send_mail_subject">Regjistra aplikacioni %1$s për Android</string>
+  <string name="log_progress_dialog_text">Po ngarkohen të dhëna…</string>
+  <string name="saml_authentication_required_text">Lypset mirëfilltësim</string>
   <string name="saml_authentication_wrong_pass">Fjalëkalim i gabuar</string>
-  <string name="folder_picker_choose_button_text">Zgjidh</string>
-  <string name="prefs_category_security">Siguria</string>
-  <string name="auth_host_address">Adresa e serverit</string>
+  <string name="actionbar_move">Zhvendose</string>
+  <string name="file_list_empty_moving">S\’ka gjë këtu. Mund të shtoni një dosje!</string>
+  <string name="folder_picker_choose_button_text">Zgjidhni</string>
+  <string name="move_file_not_found">S\’arrin të zhvendosë. Ju lutemi, kontrolloni nëse ekziston apo jo kartela</string>
+  <string name="move_file_invalid_into_descendent">S\’është e mundur të zhvendoset një dosje në një tjetër brenda saj</string>
+  <string name="move_file_invalid_overwrite">Kartela gjendet tashmë te dosja vendmbërritje</string>
+  <string name="move_file_error">Ndodhi një gabim teksa përpiqej të zhvendosej kjo kartelë apo dosje</string>
+  <string name="forbidden_permissions_move">për zhvendosje të kësaj kartele</string>
+  <string name="copy_file_not_found">S\’arrin të kopjojë. Ju lutemi, kontrolloni nëse ekziston apo jo kartela</string>
+  <string name="copy_file_invalid_into_descendent">S\’është e mundur të kopjohet një dosje në një tjetër brenda saj</string>
+  <string name="copy_file_invalid_overwrite">Kartela gjendet tashmë te dosja vendmbërritje</string>
+  <string name="copy_file_error">Ndodhi një gabim teksa përpiqej të kopjohej kjo kartelë apo dosje</string>
+  <string name="forbidden_permissions_copy">për kopjim të kësaj kartele</string>
+  <string name="prefs_category_instant_uploading">Ngarkime të Menjëhershme</string>
+  <string name="prefs_category_security">Siguri</string>
+  <string name="prefs_instant_video_upload_path_title">Shteg Ngarkimi Videosh</string>
+  <string name="sync_folder_failed_content">Njëkohësimi i dosjes %1$s s’u plotësua dot</string>
+  <string name="shared_subject_header">ndarë</string>
+  <string name="with_you_subject_header">me ju</string>
+  <string name="subject_user_shared_with_you">%1$s ndau me ju \"%2$s\"</string>
+  <string name="subject_shared_with_you">\"%1$s\" është ndarë me ju</string>
+  <string name="auth_refresh_button">Rifreskoni lidhjen</string>
+  <string name="auth_host_address">Adresë shërbyesi</string>
+  <string name="common_error_out_memory">Pa kujtesë të mjaftueshme</string>
+  <string name="username">Emër përdoruesi</string>
+  <string name="file_list__footer__folder">1 dosje</string>
+  <string name="file_list__footer__folders">%1$d dosje</string>
+  <string name="file_list__footer__file">1 kartelë</string>
+  <string name="file_list__footer__file_and_folder">1 kartelë, 1 dosje</string>
+  <string name="file_list__footer__file_and_folders">1 kartelë, %1$d dosje</string>
+  <string name="file_list__footer__files">%1$d kartelë</string>
+  <string name="file_list__footer__files_and_folder">%1$d kartela, 1 dosje</string>
+  <string name="file_list__footer__files_and_folders">%1$d kartela, %2$d dosje</string>
+  <string name="share_dialog_title">Ndarje me të tjerët</string>
+  <string name="share_with_user_section_title">Ndajeni me përdorues dhe grupe</string>
+  <string name="share_no_users">Ende pa të dhëna të ndara me përdorues</string>
+  <string name="share_add_user_or_group">Shtoni Përdorues ose Grup</string>
+  <string name="share_via_link_section_title">Lidhje ndarjeje</string>
+  <string name="share_via_link_expiration_date_label">Caktoni datë skadimi</string>
+  <string name="share_via_link_password_label">Mbroje me fjalëkalim</string>
+  <string name="share_via_link_password_title">E siguruar</string>
+  <string name="share_get_public_link_button">Merreni lidhjen</string>
+  <string name="share_search">Kërko</string>
+  <string name="search_users_and_groups_hint">Kërkoni për grupe dhe përdorues</string>
+  <string name="share_group_clarification">%1$s (grup)</string>
+  <string name="share_sharee_unavailable">Na ndjeni, versioni juaj i shërbyesit nuk lejon ndarje me përdorues brenda klientësh.
+        \nJu lutemi, lidhuni me përgjegjësin tuaj</string>
 </resources>
index 6380fe3..9b967f9 100644 (file)
@@ -12,6 +12,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Otvori</string>
   <string name="prefs_category_general">Opšte</string>
   <string name="prefs_accounts">Nalozi</string>
   <string name="prefs_manage_accounts">Upravljaj nalozima</string>
   <string name="filedetails_size">Veličina:</string>
   <string name="filedetails_type">Tip:</string>
   <string name="filedetails_download">Preuzmi</string>
-  <string name="action_share_file">Podeli prečicu</string>
+  <string name="action_share">Deljenje</string>
   <string name="common_yes">Da</string>
   <string name="common_no">Ne</string>
   <string name="common_ok">Ok</string>
-  <string name="common_cancel_upload">Otkaži otpremanje</string>
   <string name="common_cancel">Otkaži</string>
   <string name="common_error">Greška</string>
   <string name="common_error_unknown">Nepoznata greška</string>
@@ -72,4 +72,8 @@
   <string name="empty"></string>
   <string name="prefs_category_accounts">Nalozi</string>
   <string name="folder_picker_choose_button_text">Izaberi</string>
+  <string name="share_via_link_section_title">Veza deljenja</string>
+  <string name="share_via_link_expiration_date_label">Datum isteka</string>
+  <string name="share_via_link_password_label">Zaštita lozinkom</string>
+  <string name="share_search">Traži</string>
 </resources>
index 7ced047..c20addc 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Поставке</string>
   <string name="drawer_item_logs">Записници</string>
   <string name="drawer_close">Затвори</string>
+  <string name="drawer_open">Отвори</string>
   <string name="prefs_category_general">Опште</string>
   <string name="prefs_category_more">Остало</string>
   <string name="prefs_accounts">Налози</string>
   <string name="filedetails_created">Направљен:</string>
   <string name="filedetails_modified">Измењен:</string>
   <string name="filedetails_download">Преузми</string>
-  <string name="filedetails_sync_file">Освежи фајл</string>
   <string name="filedetails_renamed_in_upload_msg">Фајл је преименован у %1$s током отпремања</string>
   <string name="list_layout">Распоред листе</string>
-  <string name="action_share_file">Веза дељења</string>
-  <string name="action_unshare_file">Не дели везом</string>
+  <string name="action_share">Дељење</string>
   <string name="common_yes">Да</string>
   <string name="common_no">Не</string>
   <string name="common_ok">У реду</string>
-  <string name="common_cancel_download">Откажи преузимање</string>
-  <string name="common_cancel_upload">Откажи отпремање</string>
   <string name="common_cancel">Откажи</string>
   <string name="common_save_exit">Сачувај и изађи</string>
   <string name="common_error">Грешка</string>
   <string name="unfavorite">Неомиљени</string>
   <string name="common_rename">Преименуј</string>
   <string name="common_remove">Уклони</string>
-  <string name="confirmation_remove_alert">Желите да уклоните %1$s?</string>
+  <string name="confirmation_remove_file_alert">Желите да уклоните %1$s?</string>
   <string name="confirmation_remove_folder_alert">Желите да уклоните %1$s и њен садржај?</string>
   <string name="confirmation_remove_local">Само локално</string>
-  <string name="confirmation_remove_folder_local">Само локални садржај</string>
-  <string name="confirmation_remove_remote">Уклони са сервера</string>
-  <string name="confirmation_remove_remote_and_local">Удаљено и локално</string>
+  <string name="confirmation_remove_folder_local">Само локално</string>
   <string name="remove_success_msg">Уклањање успешно</string>
   <string name="remove_fail_msg">Уклањање неуспешно</string>
   <string name="rename_dialog_title">Унесите нов назив</string>
   <string name="downloader_download_file_not_found">Фајл није више доступан на серверу</string>
   <string name="prefs_category_accounts">Налози</string>
   <string name="prefs_add_account">Додај налог</string>
-  <string name="auth_redirect_non_secure_connection_title">Безбедна веза је преусмерена на небезбедну руту</string>
   <string name="actionbar_logger">Записници</string>
   <string name="log_send_history_button">Историјат слања</string>
   <string name="log_send_no_mail_app">Нема начина за слање записника. Инсталирајте апликацију е-поште!</string>
   <string name="move_file_invalid_overwrite">Фајл већ постоји у одредишној фасцикли</string>
   <string name="move_file_error">Дошло је до грешке при премештању фајла или фасцикле</string>
   <string name="forbidden_permissions_move">да преместите овај фајл</string>
+  <string name="copy_file_invalid_overwrite">Фајл већ постоји у одредишној фасцикли</string>
+  <string name="forbidden_permissions_copy">да копирате овај фајл</string>
   <string name="prefs_category_instant_uploading">Тренутна отпремања</string>
   <string name="prefs_category_security">Безбедност</string>
   <string name="prefs_instant_video_upload_path_title">Путања отпремања видеа</string>
-  <string name="download_folder_failed_content">Преузимање фасцикле %1$s не може бити довршено</string>
   <string name="shared_subject_header">дељено</string>
   <string name="with_you_subject_header">са вама</string>
-  <string name="subject_token">%1$s подели „%2$s“ са вама</string>
+  <string name="subject_user_shared_with_you">%1$s подели „%2$s“ са вама</string>
   <string name="auth_refresh_button">Освежи везу</string>
   <string name="auth_host_address">Адреса сервера</string>
   <string name="common_error_out_memory">Нема довољно меморије</string>
   <string name="file_list__footer__files">%1$d фајлова</string>
   <string name="file_list__footer__files_and_folder">%1$d фајлова, 1 фасцикла</string>
   <string name="file_list__footer__files_and_folders">%1$d фајлова, %2$d фасцикли</string>
+  <string name="share_dialog_title">Дељење</string>
+  <string name="share_via_link_section_title">Веза дељења</string>
+  <string name="share_via_link_expiration_date_label">Постави датум истека</string>
+  <string name="share_via_link_password_label">Заштићено лозинком</string>
+  <string name="share_search">Тражи</string>
 </resources>
index 2efdb1a..b7d36b6 100644 (file)
        <item>Biggest - Smallest</item>-->
   <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
   <!--<string name="drawer_item_accounts">Accounts</string>-->
+  <string name="drawer_item_all_files">Alla filer</string>
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_item_settings">Inställningar</string>
+  <string name="drawer_item_logs">Loggar</string>
+  <string name="drawer_close">Stäng</string>
+  <string name="drawer_open">Öppna</string>
   <string name="prefs_category_general">Allmänt</string>
   <string name="prefs_category_more">Mer</string>
   <string name="prefs_accounts">Konton</string>
   <string name="prefs_manage_accounts">Hantera konton</string>
+  <string name="prefs_passcode">Lösenordslås</string>
   <string name="prefs_instant_upload">Direktuppladdning av kamerabilder</string>
   <string name="prefs_instant_upload_summary">Direktuppladning av bilder tagna med kameran</string>
   <string name="prefs_instant_video_upload">Direktuppladning av video</string>
@@ -64,6 +70,8 @@
   <string name="uploader_info_uploading">Laddar upp</string>
   <string name="file_list_seconds_ago">sekunder sedan</string>
   <string name="file_list_empty">Ingenting här. Ladda upp något!</string>
+  <string name="file_list_loading">Laddar...</string>
+  <string name="file_list_no_app_for_file_type">Ingen app funnen för filtypen!</string>
   <string name="local_file_list_empty">Det finns inga filer i den här mappen.</string>
   <string name="filedetails_select_file">Peka på en fil för att visa mer information.</string>
   <string name="filedetails_size">Storlek:</string>
   <string name="filedetails_created">Skapad:</string>
   <string name="filedetails_modified">Ändrad:</string>
   <string name="filedetails_download">Ladda ner</string>
-  <string name="filedetails_sync_file">Ladda om fil</string>
+  <string name="filedetails_sync_file">Synkronisera</string>
   <string name="filedetails_renamed_in_upload_msg">Filen bytte namn till %1$s under uppladdningen</string>
-  <string name="action_share_file">Dela länk</string>
-  <string name="action_unshare_file">Sluta dela länk</string>
+  <string name="list_layout">Listvy</string>
+  <string name="action_share">Dela</string>
   <string name="common_yes">Ja</string>
   <string name="common_no">Nej</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Avbryt nedladdning</string>
-  <string name="common_cancel_upload">Avbryt uppladdning</string>
+  <string name="common_cancel_sync">Stoppa synkroniseringen</string>
   <string name="common_cancel">Avbryt</string>
   <string name="common_save_exit">Spara &amp; Avsluta</string>
   <string name="common_error">Fel</string>
   <string name="foreign_files_local_text">Lokal: %1$s</string>
   <string name="foreign_files_remote_text">Fjärr: %1$s</string>
   <string name="upload_query_move_foreign_files">Det finns inte tillräckligt med ledigt utrymme för att kopiera de valda filerna till %1$s mappen. Skulle du vilja flytta dem istället?</string>
+  <string name="pass_code_enter_pass_code">Var god ange ditt lösenord</string>
+  <string name="pass_code_configure_your_pass_code">Skriv in ditt lösenord</string>
+  <string name="pass_code_configure_your_pass_code_explanation">Lösenordet kommer efterfrågas varje gång du startar appen</string>
+  <string name="pass_code_reenter_your_pass_code">Var god ange ditt lösenord igen</string>
+  <string name="pass_code_remove_your_pass_code">Ta bort lösenordet</string>
+  <string name="pass_code_mismatch">Lösenorden matchar inte</string>
+  <string name="pass_code_wrong">Ogiltigt lösenord</string>
+  <string name="pass_code_removed">Lösenord borttaget</string>
+  <string name="pass_code_stored">Lösenord sparat</string>
   <string name="media_notif_ticker">%1$ musikspelare</string>
   <string name="media_state_playing">%1$s (spelar)</string>
   <string name="media_state_loading">%1$s (buffrar)</string>
   <string name="auth_no_net_conn_title">Ingen nätverksanslutning</string>
   <string name="auth_nossl_plain_ok_title">Säker anslutning inte tillgänglig.</string>
   <string name="auth_connection_established">Anslutning etablerad</string>
+  <string name="auth_testing_connection">Testar anslutning</string>
   <string name="auth_not_configured_title">Felaktig konfiguration</string>
   <string name="auth_account_not_new">En användare med samma namn och server finns redan i denna aparat</string>
   <string name="auth_account_not_the_same">Den angivna användaren matchar inte användaren för detta konto</string>
   <string name="auth_fail_get_user_name">Din server returnerar inte ett korrekt användare id, vänligen kontakta en administratör
        </string>
   <string name="auth_can_not_auth_against_server">Kan inte autentisera mot servern</string>
+  <string name="auth_account_does_not_exist">Det finns inget konto på denna enhet än</string>
   <string name="favorite">Favorit</string>
   <string name="unfavorite">Avfavoritisera</string>
   <string name="common_rename">Byt namn</string>
   <string name="common_remove">Radera</string>
-  <string name="confirmation_remove_alert">Vill du verkligen ta bort %1$s?</string>
+  <string name="confirmation_remove_file_alert">Vill du verkligen ta bort %1$s?</string>
   <string name="confirmation_remove_folder_alert">Vill du verkligen ta bort %1$s och dess innehåll?</string>
   <string name="confirmation_remove_local">Endast lokalt</string>
-  <string name="confirmation_remove_folder_local">Endast lokalt innehåll</string>
-  <string name="confirmation_remove_remote">Radera från server</string>
-  <string name="confirmation_remove_remote_and_local">Både server och lokalt</string>
+  <string name="confirmation_remove_folder_local">Endast lokalt</string>
+  <string name="confirmation_remove_remote">Från servern</string>
+  <string name="confirmation_remove_remote_and_local">Fjärr &amp; lokal</string>
   <string name="remove_success_msg">Lyckad radering</string>
   <string name="remove_fail_msg">Radering kunde inte slutföras</string>
   <string name="rename_dialog_title">Ange ett nytt namn</string>
   <string name="sync_file_nothing_to_do_msg">Filinnehåll redan synkroniserat</string>
   <string name="create_dir_fail_msg">Mapp kunde inte skapas</string>
   <string name="filename_forbidden_characters">Förbjudna tecken är: / \\ &lt; &gt; : \" | ? *</string>
+  <string name="filename_forbidden_charaters_from_server">Filnamnet innehåller minst ett ogiltigt tecken</string>
   <string name="filename_empty">Filnamnet får inte lämnas blankt</string>
   <string name="wait_a_moment">Var god vänta</string>
   <string name="filedisplay_unexpected_bad_get_content">Oväntat problem; prova annat program för aktuell fil</string>
   <string name="filedisplay_no_file_selected">Ingen fil vald</string>
   <string name="activity_chooser_title">Sänd länk till ...</string>
+  <string name="wait_for_tmp_copy_from_private_storage">Kopierar fil från privat lagring</string>
   <string name="oauth_check_onoff">Logga in med oAuth2.</string>
   <string name="oauth_login_connection">Ansluter till oAuth2 servern…</string>
   <string name="ssl_validator_header">Webbplatsens identitet kunde inte verifieras</string>
   <string name="ssl_validator_label_validity_to">Till:</string>
   <string name="ssl_validator_label_signature">Signatur:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritm:</string>
+  <string name="digest_algorithm_not_available">Hashfunktionen är inte tillgänglig på din telefon.</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Fingeravtryck:</string>
+  <string name="certificate_load_problem">Certifikatet kan inte laddas</string>
   <string name="ssl_validator_null_cert">Certifikatet kunde inte visas.</string>
   <string name="ssl_validator_no_info_about_error">- Ingen information om felet</string>
   <string name="placeholder_sentence">Detta är en platshållare</string>
   <string name="instant_upload_on_wifi">Ladda upp bilder endast via WiFi</string>
   <string name="instant_video_upload_on_wifi">Ladda upp videos endast via WIFI</string>
   <string name="instant_upload_path">/DirektUppladdning</string>
+  <string name="conflict_title">Filkonflikt</string>
+  <string name="conflict_message">Vilka filer vill du behålla? Om du markerar båda kommer den lokala filen få ett nummer tillagt i slutet på filnamnet.</string>
   <string name="conflict_keep_both">Behåll båda</string>
+  <string name="conflict_use_local_version">lokala versionen</string>
+  <string name="conflict_use_server_version">serverversionen</string>
   <string name="preview_image_description">Förhandsvisa bild</string>
   <string name="preview_image_error_unknown_format">Denna bild kan inte visas</string>
   <string name="error__upload__local_file_not_copied">%1$s kunde inte kopieras till %2$s lokal mapp</string>
   <string name="share_link_file_error">Ett fel uppstod vid försök att dela denna fil eller mapp</string>
   <string name="unshare_link_file_no_exist">Lyckades ej sluta dela. Vänligen kontrollera om filen existerar</string>
   <string name="unshare_link_file_error">Ett fel uppstod vid försök att sluta dela denna fil eller mapp</string>
+  <string name="update_link_file_no_exist">Kunde inte uppdatera. Var god kolla om filen existerar.</string>
+  <string name="update_link_file_error">Ett fel uppstod medan den delade länken försökte uppdateras</string>
   <string name="share_link_password_title">Ange ett lösenord</string>
   <string name="share_link_empty_password">Du måste ange ett lösenord</string>
   <string name="activity_chooser_send_file_title">Skicka</string>
   <string name="forbidden_permissions_delete">att radera denna fil</string>
   <string name="share_link_forbidden_permissions">att dela denna fil</string>
   <string name="unshare_link_forbidden_permissions">att avbryta delningen utav denna fil</string>
+  <string name="update_link_forbidden_permissions">för att uppdatera denna delade länken</string>
   <string name="forbidden_permissions_create">att skapa filen</string>
   <string name="uploader_upload_forbidden_permissions">att ladda upp i den här mappen</string>
   <string name="downloader_download_file_not_found">Filen är inte längre tillgänglig på servern</string>
   <string name="prefs_category_accounts">Konton</string>
   <string name="prefs_add_account">Lägg till konto</string>
-  <string name="auth_redirect_non_secure_connection_title">Säker anslutning är omdirigerad till en osäker väg.</string>
+  <string name="auth_redirect_non_secure_connection_title">Den säkra kopplingen omdirigeras via en osäker rutt.</string>
   <string name="actionbar_logger">Loggar</string>
   <string name="log_send_history_button">Skickat historik</string>
   <string name="log_send_no_mail_app">Ingen app för att skicka loggar hittades. Installera mail appen!</string>
   <string name="move_file_invalid_overwrite">Filen existerar redan i destinationsmappen</string>
   <string name="move_file_error">Ett fel uppstod vid försök att flytta denna fil eller mapp</string>
   <string name="forbidden_permissions_move">att flytta den här filen</string>
+  <string name="copy_file_not_found">Kunde inte kopiera. Var god kontrollera om filen existerar.</string>
+  <string name="copy_file_invalid_into_descendent">Det är inte möjligt att kopiera en mapp in i en egen undermapp</string>
+  <string name="copy_file_invalid_overwrite">Filen existerar redan i destinationsmappen</string>
+  <string name="copy_file_error">Ett fel uppstod, kunde inte kopiera filen eller mappen</string>
+  <string name="forbidden_permissions_copy">att kopiera denna fil</string>
   <string name="prefs_category_instant_uploading">Direktuppladning</string>
   <string name="prefs_category_security">Säkerhet</string>
   <string name="prefs_instant_video_upload_path_title">Uppladdnings-sökväg för video</string>
-  <string name="download_folder_failed_content">Neddladning utav %1$s mappen kunde inte slutföras</string>
+  <string name="sync_folder_failed_content">Synkronisering av %1$s mapp kunde inte slutföras</string>
+  <string name="shared_subject_header">delad</string>
+  <string name="with_you_subject_header">med dig</string>
+  <string name="subject_user_shared_with_you">%1$s delade \"%2$s\" med dig</string>
+  <string name="subject_shared_with_you">\"%1$s\" har delats med dig</string>
+  <string name="auth_refresh_button">Uppdatera uppkopplingen</string>
   <string name="auth_host_address">Serveradress</string>
+  <string name="common_error_out_memory">Inte tillräckligt med minne</string>
+  <string name="username">Användarnamn</string>
+  <string name="file_list__footer__folder">1 mapp</string>
+  <string name="file_list__footer__folders">%1$d mappar</string>
+  <string name="file_list__footer__file">1 fil</string>
+  <string name="file_list__footer__file_and_folder">1 fil, 1 mapp</string>
+  <string name="file_list__footer__file_and_folders">1 fil, %1$d mappar</string>
+  <string name="file_list__footer__files">%1$d filer</string>
+  <string name="file_list__footer__files_and_folder">%1$d filer, 1 mapp</string>
+  <string name="file_list__footer__files_and_folders">%1$d filer, %2$d mappar</string>
+  <string name="share_dialog_title">Dela</string>
+  <string name="share_with_user_section_title">Dela med användare och grupper</string>
+  <string name="share_no_users">Ingen data delar med användare än</string>
+  <string name="share_add_user_or_group">Lägg till Användare eller Grupp</string>
+  <string name="share_via_link_section_title">Dela länk</string>
+  <string name="share_via_link_expiration_date_label">Sätt utgångsdatum</string>
+  <string name="share_via_link_password_label">Lösenordsskydda</string>
+  <string name="share_via_link_password_title">Säkrad</string>
+  <string name="share_get_public_link_button">Hämta länk</string>
+  <string name="share_search">Sök</string>
+  <string name="search_users_and_groups_hint">Sök användare och grupper</string>
+  <string name="share_group_clarification">%1$s (grupp)</string>
+  <string name="share_sharee_unavailable">Tyvärr tillåter inte din serverversion delning med användare inom klienter. \nVar god kontakta din administrator.</string>
 </resources>
index 37b569a..43b6e82 100644 (file)
@@ -11,6 +11,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">திறக்க</string>
   <string name="prefs_category_general">பொதுவான</string>
   <string name="prefs_category_more">மேலதிக</string>
   <string name="prefs_accounts">கணக்குகள்</string>
   <string name="filedetails_modified">மாற்றப்பட்டது:</string>
   <string name="filedetails_download">பதிவிறக்குக</string>
   <string name="filedetails_renamed_in_upload_msg">பதிவேற்றும்போது கோப்பின் பெயரானது %1$s ஆக பெயர்மாற்றப்பட்டது</string>
+  <string name="action_share">பகிர்வு</string>
   <string name="common_yes">ஆம்</string>
   <string name="common_no">இல்லை</string>
   <string name="common_ok">சரி </string>
-  <string name="common_cancel_download">பதிவிறக்கலை இரத்துசெய்க</string>
-  <string name="common_cancel_upload">பதிவேற்றலை இரத்து செய்க</string>
   <string name="common_cancel">இரத்து செய்க</string>
   <string name="common_save_exit">சேமிக்க மற்றும் amp; வெளியேறு</string>
   <string name="common_error">வழு</string>
@@ -87,9 +87,7 @@
   <string name="common_rename">பெயர்மாற்றம்</string>
   <string name="common_remove">அகற்றுக</string>
   <string name="confirmation_remove_local">உள்ளூர் மட்டும்</string>
-  <string name="confirmation_remove_folder_local">இடத்துரி உள்ளடக்கங்கள் மட்டும்</string>
-  <string name="confirmation_remove_remote">சேவையகத்திலிருந்து அகற்றுக</string>
-  <string name="confirmation_remove_remote_and_local">தொலைவு மற்றும் உள்ளூர்</string>
+  <string name="confirmation_remove_folder_local">உள்ளூர் மட்டும்</string>
   <string name="remove_success_msg">வெற்றிகரமாக அகற்றப்பட்டது</string>
   <string name="remove_fail_msg">நீக்கலை நிறைவு செய்ய முடியவில்லை</string>
   <string name="rename_dialog_title">புதிய பெயரொன்றை நுழைக்க</string>
   <string name="prefs_category_accounts">கணக்குகள்</string>
   <string name="folder_picker_choose_button_text">தெரிவுசெய்க </string>
   <string name="auth_host_address">சேவையக முகவரி</string>
+  <string name="share_via_link_expiration_date_label">காலாவதி தேதியை குறிப்பிடுக</string>
+  <string name="share_via_link_password_label">கடவுச்சொல்லை பாதுகாத்தல்</string>
+  <string name="share_search">தேடுதல்</string>
 </resources>
index 50d6fc2..c54b083 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">ตั้งค่า</string>
   <string name="drawer_item_logs">บันทึก</string>
   <string name="drawer_close">ปิด</string>
+  <string name="drawer_open">เปิด</string>
   <string name="prefs_category_general">ทั่วไป</string>
   <string name="prefs_category_more">เพิ่มเติม</string>
   <string name="prefs_accounts">บัญชี</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">วินาที ก่อนหน้านี้</string>
   <string name="file_list_empty">ยังไม่มีไฟล์ใดๆเลย ลองอัพโหลดดูสิ!</string>
   <string name="file_list_loading">กำลังโหลด...</string>
+  <string name="file_list_no_app_for_file_type">ไม่พบแอพฯ ที่จะใช้เปิดไฟล์ประเภทนี้!</string>
   <string name="local_file_list_empty">ยังไม่มีไฟล์ในโฟลเดอร์นี้</string>
   <string name="filedetails_select_file">แตะที่ไฟล์ เพื่อแสดงข้อมูลเพิ่มเติม</string>
   <string name="filedetails_size">ขนาด:</string>
   <string name="filedetails_created">สร้างเมื่อ:</string>
   <string name="filedetails_modified">แก้ไขเมื่อ:</string>
   <string name="filedetails_download">ดาวน์โหลด</string>
-  <string name="filedetails_sync_file">à¸\9fืà¹\89à¸\99à¸\9fูà¹\84à¸\9fลà¹\8c</string>
+  <string name="filedetails_sync_file">à¸\9bระสาà¸\99à¸\82à¹\89อมูล</string>
   <string name="filedetails_renamed_in_upload_msg">ไฟล์ได้ถูกเปลี่ยนชื่อเป็น %1$s ในระหว่างการอัพโหลด</string>
   <string name="list_layout">เค้าโครงรายการ</string>
-  <string name="action_share_file">แชร์ลิงค์</string>
-  <string name="action_unshare_file">ยกเลิกการแชร์ลิงค์</string>
+  <string name="action_share">แชร์</string>
   <string name="common_yes">ตกลง</string>
   <string name="common_no">ไม่ตกลง</string>
   <string name="common_ok">ตกลง</string>
-  <string name="common_cancel_download">ยกเลิกการดาวน์โหลด</string>
-  <string name="common_cancel_upload">ยกเลิกการอัพโหลด</string>
+  <string name="common_cancel_sync">ยกเลิกการประสานข้อมูล</string>
   <string name="common_cancel">ยกเลิก</string>
   <string name="common_save_exit">บันทึก &amp; ออก</string>
   <string name="common_error">ข้อผิดพลาด</string>
   <string name="unfavorite">ออกจากรายการโปรด</string>
   <string name="common_rename">เปลี่ยนชื่อ</string>
   <string name="common_remove">ลบออก</string>
-  <string name="confirmation_remove_alert">คุณต้องการที่จะลบ %1$s?</string>
+  <string name="confirmation_remove_file_alert">คุณต้องการที่จะลบ %1$s?</string>
   <string name="confirmation_remove_folder_alert">คุณต้องการที่จะลบ %1$s และเนื้อหาของมัน?</string>
   <string name="confirmation_remove_local">เฉพาะต้นทางเท่านั้น</string>
-  <string name="confirmation_remove_folder_local">à¹\80à¸\99ืà¹\89อหาต้นทางเท่านั้น</string>
-  <string name="confirmation_remove_remote">ลà¸\9aออà¸\81à¸\88าà¸\81à¹\80à¸\8bิรà¹\8cà¸\9fà¹\80วอรà¹\8c</string>
-  <string name="confirmation_remove_remote_and_local">à¸\95à¹\89à¸\99à¸\97าà¸\87à¹\81ละà¸\9bลายทาง</string>
+  <string name="confirmation_remove_folder_local">à¹\80à¸\89à¸\9eาะต้นทางเท่านั้น</string>
+  <string name="confirmation_remove_remote">จากเซิร์ฟเวอร์</string>
+  <string name="confirmation_remove_remote_and_local">รีà¹\82มà¸\97 &amp; à¸\95à¹\89à¸\99ทาง</string>
   <string name="remove_success_msg">ลบเรียบร้อยแล้ว</string>
   <string name="remove_fail_msg">ไม่สามารถลบได้</string>
   <string name="rename_dialog_title">กรอกชื่อใหม่</string>
   <string name="ssl_validator_label_validity_to">ถึง:</string>
   <string name="ssl_validator_label_signature">ลายเซ็นต์:</string>
   <string name="ssl_validator_label_signature_algorithm">อัลกอริทึ่ม:</string>
+  <string name="digest_algorithm_not_available">อัลกอริทึมย่อยนี้ไม่สามารถใช้งานบนโทรศัพท์ของคุณ</string>
+  <string name="ssl_validator_label_certificate_fingerprint">ลายนิ้วมือ:</string>
+  <string name="certificate_load_problem">มีปัญหาในการโหลดใบรับรอง</string>
   <string name="ssl_validator_null_cert">ไม่สามารถแสดงใบรับรอง</string>
   <string name="ssl_validator_no_info_about_error">- ไม่มีข้อมูลเกี่ยวกับข้อผิดพลาด</string>
   <string name="placeholder_sentence">นี่คือ placeholder</string>
   <string name="conflict_title">ไฟล์ที่ขัดแย้ง</string>
   <string name="conflict_message">ไฟล์ใดที่คุณต้องการที่จะเก็บ? หากคุณเลือกทั้งสองรุ่น ไฟล์ต้นทางจะมีจำนวนชื่อเพิ่ม</string>
   <string name="conflict_keep_both">เก็บไว้ทั้งสองอย่าง</string>
-  <string name="conflict_use_local_version">à¹\83à¸\8aà¹\89รุà¹\88à¸\99à¸\97ัà¹\88วà¹\84à¸\9b</string>
-  <string name="conflict_use_server_version">à¹\83à¸\8aà¹\89รุà¹\88à¸\99à¸\82อà¸\87เซิร์ฟเวอร์</string>
+  <string name="conflict_use_local_version">à¹\80วอรà¹\8cà¸\8aัà¸\99à¸\95à¹\89à¸\99à¸\97าà¸\87</string>
+  <string name="conflict_use_server_version">à¹\80วอรà¹\8cà¸\8aัà¸\99เซิร์ฟเวอร์</string>
   <string name="preview_image_description">แสดงรูปภาพตัวอย่าง</string>
   <string name="preview_image_error_unknown_format">ไม่สามารถแสดงรูปภาพนี้ได้</string>
   <string name="error__upload__local_file_not_copied">%1$s ไม่สามารถคัดลอกไปยังโฟลเดอร์ %2$s ในเครื่อง</string>
   <string name="forbidden_permissions_delete">เพื่อลบไฟล์นี้</string>
   <string name="share_link_forbidden_permissions">เพื่อแชร์ไฟล์นี้</string>
   <string name="unshare_link_forbidden_permissions">เพื่อเลิกแชร์ไฟล์นี้</string>
+  <string name="update_link_forbidden_permissions">เพื่ออัพเดทลิงค์นี้ที่ถูกแชร์</string>
   <string name="forbidden_permissions_create">เพื่อสร้างไฟล์</string>
   <string name="uploader_upload_forbidden_permissions">เพื่ออัพโหลดในโฟลเดอร์นี้</string>
   <string name="downloader_download_file_not_found">ไฟล์ไม่พร้อมใช้งานบนเซิร์ฟเวอร์</string>
   <string name="prefs_category_accounts">บัญชี</string>
   <string name="prefs_add_account">เพิ่มบัญชี</string>
-  <string name="auth_redirect_non_secure_connection_title">à¸\81ารà¹\80à¸\8aืà¹\88อมà¸\95à¹\88อà¸\97ีà¹\88à¸\9bลอà¸\94ภัยà¸\96ูà¸\81à¹\80à¸\9bลีà¹\88ยà¸\99à¹\80สà¹\89à¸\99à¸\97าà¸\87à¹\84à¸\9bยัà¸\87à¹\80สà¹\89à¸\99à¸\97าà¸\87ที่ไม่ปลอดภัย</string>
+  <string name="auth_redirect_non_secure_connection_title">à¹\80à¸\8aืà¹\88อมà¸\95à¹\88อà¸\97ีà¹\88à¸\9bลอà¸\94ภัยà¸\96ูà¸\81à¹\80à¸\9bลีà¹\88ยà¸\99à¹\80สà¹\89à¸\99à¸\97าà¸\87à¸\9cà¹\88าà¸\99à¹\80ราà¹\80à¸\95อรà¹\8cที่ไม่ปลอดภัย</string>
   <string name="actionbar_logger">บันทึก</string>
   <string name="log_send_history_button">ส่งประวัติ</string>
   <string name="log_send_no_mail_app">ไม่พบการส่งบันทึกของแอพฯ ติดตั้งแอพฯเมล!</string>
   <string name="move_file_invalid_overwrite">มีไฟล์อยู่แล้วในโฟลเดอร์ปลายทาง</string>
   <string name="move_file_error">เกิดข้อผิดพลาดขณะพยายามที่จะย้ายไฟล์หรือโฟลเดอร์นี้</string>
   <string name="forbidden_permissions_move">เพื่อย้ายไฟล์นี้</string>
+  <string name="copy_file_not_found">ไม่สามารถคัดลอก กรุณาตรวจสอบว่ามีไฟล์นั้นอยู่</string>
+  <string name="copy_file_invalid_into_descendent">มันเป็นไปไม่ได้ที่จะคัดลอกลงในโฟลเดอร์โฟลเดอร์ย่อย</string>
+  <string name="copy_file_invalid_overwrite">มีไฟล์อยู่แล้วในโฟลเดอร์ปลายทาง</string>
+  <string name="copy_file_error">เกิดข้อผิดพลาดขณะพยายามคัดลอกไฟล์หรือโฟลเดอร์นี้</string>
+  <string name="forbidden_permissions_copy">เพื่อคัดลอกไฟล์นี้</string>
   <string name="prefs_category_instant_uploading">อัพโหลดทันที</string>
   <string name="prefs_category_security">ความปลอดภัย</string>
   <string name="prefs_instant_video_upload_path_title">อัพโหลดเส้นทางวิดีโอ</string>
-  <string name="download_folder_failed_content">การดาวน์โหลดโฟลเดอร์ %1$s อาจไม่สำเร็จ</string>
+  <string name="sync_folder_failed_content">ประสานข้อมูลโฟลเดอร์ %1$s ไม่สำเร็จ</string>
   <string name="shared_subject_header">ถูกแชร์</string>
   <string name="with_you_subject_header">กับคุณ</string>
-  <string name="subject_token">%1$s ได้แชร์ \"%2$s\" กับคุณ</string>
-  <string name="saml_subject_token">\"%1$s\" ได้ถูกแชร์กับคุณ</string>
+  <string name="subject_user_shared_with_you">%1$s ได้แชร์ \"%2$s\" กับคุณ</string>
+  <string name="subject_shared_with_you">\"%1$s\" ได้ถูกแชร์กับคุณ</string>
   <string name="auth_refresh_button">ฟื้นฟูการเชื่อมต่อ</string>
   <string name="auth_host_address">ที่อยู่เซิร์ฟเวอร์</string>
   <string name="common_error_out_memory">หน่วยความจำไม่พอ</string>
   <string name="file_list__footer__files">%1$d ไฟล์</string>
   <string name="file_list__footer__files_and_folder">%1$d ไฟล์, 1 โฟลเดอร์</string>
   <string name="file_list__footer__files_and_folders">%1$d ไฟล์, %2$d โฟลเดอร์</string>
+  <string name="share_dialog_title">การแชร์ข้อมูล</string>
+  <string name="share_with_user_section_title">แชร์กับผู้ใช้และกลุ่ม</string>
+  <string name="share_no_users">ยังไม่มีข้อมูลที่แชร์กับผู้ใช้ในตอนนี้</string>
+  <string name="share_add_user_or_group">เพิ่มผู้ใช่หรือกลุ่ม</string>
+  <string name="share_via_link_section_title">แชร์ลิงค์</string>
+  <string name="share_via_link_expiration_date_label">กำหนดวันที่หมดอายุ</string>
+  <string name="share_via_link_password_label">รหัสผ่านป้องกัน</string>
+  <string name="share_via_link_password_title">ความปลอดภัย</string>
+  <string name="share_get_public_link_button">รับลิงค์</string>
+  <string name="share_search">ค้นหา</string>
+  <string name="search_users_and_groups_hint">ค้นหาผู้ใช้และกลุ่ม</string>
+  <string name="share_group_clarification">%1$s (กลุ่ม)</string>
+  <string name="share_sharee_unavailable">ขออภัย รุ่นเซิร์ฟเวอร์ของคุณไม่อนุญาตให้แชร์กับผู้ใช้ภายในไคลเอนต์
+\nกรุณาติดต่อผู้ดูแลระบบ</string>
 </resources>
index 13e90b6..bad3ccc 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">Ayarlar</string>
   <string name="drawer_item_logs">Günlükler</string>
   <string name="drawer_close">Kapat</string>
+  <string name="drawer_open">Aç</string>
   <string name="prefs_category_general">Genel</string>
   <string name="prefs_category_more">Daha fazla</string>
   <string name="prefs_accounts">Hesaplar</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">saniyeler önce</string>
   <string name="file_list_empty">Burada hiçbir şey yok. Bir şeyler yükleyin!</string>
   <string name="file_list_loading">Yükleniyor...</string>
+  <string name="file_list_no_app_for_file_type">Dosya tipi için uygulama bulunamadı!</string>
   <string name="local_file_list_empty">Bu klasörde dosya yok.</string>
   <string name="filedetails_select_file">Ek bilgileri görmek için dosyaya dokunun.</string>
   <string name="filedetails_size">Boyut:</string>
   <string name="filedetails_created">Oluşturulma:</string>
   <string name="filedetails_modified">Değiştirilme:</string>
   <string name="filedetails_download">İndir</string>
-  <string name="filedetails_sync_file">Dosyayı yenile</string>
+  <string name="filedetails_sync_file">Eşitleme</string>
   <string name="filedetails_renamed_in_upload_msg">Dosya adı, yükleme sırasında %1$s olarak değiştirildi</string>
   <string name="list_layout">Liste Yerleşimi</string>
-  <string name="action_share_file">Paylaşma bağlantısı</string>
-  <string name="action_unshare_file">Bağlantı paylaşımını kaldır</string>
+  <string name="action_share">Paylaş</string>
   <string name="common_yes">Evet</string>
   <string name="common_no">Hayır</string>
   <string name="common_ok">Tamam</string>
-  <string name="common_cancel_download">İndirmeyi iptal et</string>
-  <string name="common_cancel_upload">Yüklemeyi iptal et</string>
+  <string name="common_cancel_sync">Eşitlemeyi iptal et</string>
   <string name="common_cancel">İptal</string>
   <string name="common_save_exit">Kaydet ve Çık</string>
   <string name="common_error">Hata</string>
         </string>
   <string name="auth_can_not_auth_against_server">Bu sunucuya karşı kimlik doğrulama yapılamaz</string>
   <string name="auth_account_does_not_exist">Hesap henüz cihazda mevcut değil</string>
-  <string name="favorite">Sık kullanılan</string>
+  <string name="favorite">Favorilere ekle</string>
   <string name="unfavorite">Favoriden kaldır</string>
   <string name="common_rename">Yeniden adlandır</string>
   <string name="common_remove">Kaldır</string>
-  <string name="confirmation_remove_alert">Gerçekten %1$s dosyasını kaldırmak istiyor musunuz?</string>
+  <string name="confirmation_remove_file_alert">Gerçekten %1$s dosyasını kaldırmak istiyor musunuz?</string>
   <string name="confirmation_remove_folder_alert">Gerçekten %1$s ve içeriğini kaldırmak istediğinizden emin misiniz?</string>
   <string name="confirmation_remove_local">Sadece yerel</string>
-  <string name="confirmation_remove_folder_local">Sadece yerel içerik</string>
-  <string name="confirmation_remove_remote">Sunucudan kaldır</string>
+  <string name="confirmation_remove_folder_local">Sadece yerel</string>
+  <string name="confirmation_remove_file_remote">Sunucudan</string>
   <string name="confirmation_remove_remote_and_local">Uzak ve yerel</string>
   <string name="remove_success_msg">Kaldırma başarılı</string>
   <string name="remove_fail_msg">Kaldırma başarısız</string>
   <string name="ssl_validator_label_validity_to">Bitiş:</string>
   <string name="ssl_validator_label_signature">İmza:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritma:</string>
+  <string name="digest_algorithm_not_available">Özümlenen algoritma telefonunuz için mevcut değil</string>
+  <string name="ssl_validator_label_certificate_fingerprint">Parmak izi:</string>
+  <string name="certificate_load_problem">Sertifika yüklemesinde problem var.</string>
   <string name="ssl_validator_null_cert">Sertifika gösterilemedi.</string>
   <string name="ssl_validator_no_info_about_error">- Hata hakkında bilgi yok</string>
   <string name="placeholder_sentence">Bu bir yer tutucudur</string>
   <string name="instant_upload_on_wifi">Fotoğrafları sadece kablosuzda (WiFi) yükle</string>
   <string name="instant_video_upload_on_wifi">Videoları sadece kablosuzda (WiFi) yükle</string>
   <string name="instant_upload_path">/AnındaYükle</string>
+  <string name="conflict_title">Dosya çakışması</string>
+  <string name="conflict_message">Hangi dosyaları saklamak istiyorsunuz? Her ikisini de saklamayı seçerseniz yerel dosyanın adına bir sayı eklenecek.</string>
   <string name="conflict_keep_both">İkisini de koru</string>
+  <string name="conflict_use_local_version">yerel sürüm</string>
+  <string name="conflict_use_server_version">sunucu sürümü</string>
   <string name="preview_image_description">Resim önizleme</string>
   <string name="preview_image_error_unknown_format">Bu resim gösterilemiyor</string>
   <string name="error__upload__local_file_not_copied">%1$s, %2$s yerel klasörüne kopyalanamadı</string>
   <string name="downloader_download_file_not_found">Bu dosya artık sunucuda mevcut değil</string>
   <string name="prefs_category_accounts">Hesaplar</string>
   <string name="prefs_add_account">Hesap ekle</string>
-  <string name="auth_redirect_non_secure_connection_title">Güvenli bağlantı, güvenli olmayan bir rotaya yönlendirildi.</string>
+  <string name="auth_redirect_non_secure_connection_title">Güvenli bağlantı, güvenli olmayan bir rotaya yönlendiriliyor.</string>
   <string name="actionbar_logger">Günlükler</string>
   <string name="log_send_history_button">Geçmişi Gönder</string>
   <string name="log_send_no_mail_app">Kayıtları göndermek için uygulama bulunamadı. E-posta uygulamasını yükleyin!</string>
   <string name="move_file_invalid_overwrite">Dosya zaten hedef klasörde mevcut</string>
   <string name="move_file_error">Bu dosya veya klasörü taşımaya çalışılırken bir hata oluştu</string>
   <string name="forbidden_permissions_move">bu dosyayı taşımak için</string>
+  <string name="copy_file_not_found">Kopyalama başarısız. Lütfen dosyanın mevcut olup olmadığını denetleyin</string>
+  <string name="copy_file_invalid_into_descendent">Klasörü, kendi alt klasörüne kopyalamak mümkün değil</string>
+  <string name="copy_file_invalid_overwrite">Dosya zaten hedef klasörde mevcut</string>
+  <string name="copy_file_error">Bu dosya veya klasörü kopyalamaya çalışılırken bir hata oluştu</string>
+  <string name="forbidden_permissions_copy">bu dosyayı kopyalamak için</string>
   <string name="prefs_category_instant_uploading">Anında Yüklemeler</string>
   <string name="prefs_category_security">Güvenlik</string>
   <string name="prefs_instant_video_upload_path_title">Video Yükleme Yolu</string>
-  <string name="download_folder_failed_content">%1$s klasörün indirilmesi tamamlanamadı</string>
+  <string name="sync_folder_failed_content">%1$s klasörünün eşitlemesi tamamlanamadı</string>
   <string name="shared_subject_header">sizinle</string>
   <string name="with_you_subject_header">paylaştı</string>
-  <string name="subject_token">%1$s, sizinle \"%2$s\" paylaşımını yaptı</string>
+  <string name="subject_user_shared_with_you">%1$s, sizinle \"%2$s\" paylaşımını yaptı</string>
+  <string name="subject_shared_with_you">\"%1$s\" sizinle paylaşıldı</string>
   <string name="auth_refresh_button">Bağlantıyı yenile</string>
   <string name="auth_host_address">Sunucu adresi</string>
   <string name="common_error_out_memory">Yeterli hafıza yok</string>
   <string name="file_list__footer__files">%1$d dosya</string>
   <string name="file_list__footer__files_and_folder">%1$d dosya, 1 klasör</string>
   <string name="file_list__footer__files_and_folders">%1$d dosya, %2$d klasör</string>
+  <string name="share_dialog_title">Paylaşım</string>
+  <string name="share_no_users">Henüz kullanıcılara paylaşılan veri yok</string>
+  <string name="share_add_user_or_group">Kullanıcı veya Grup ekle</string>
+  <string name="share_via_link_section_title">Paylaşma bağlantısı</string>
+  <string name="share_via_link_expiration_date_label">Son kullanma tarihini ayarla</string>
+  <string name="share_via_link_password_label">Parola koruması</string>
+  <string name="share_search">Ara</string>
+  <string name="search_users_and_groups_hint">Kullanıcı ve Grupları Ara</string>
+  <string name="share_group_clarification">%1$s (grup)</string>
+  <string name="share_sharee_unavailable">Üzgünüz sunucu versiyonunuz istemcilerdeki kullanıcılara paylaşıma izin vermiyor.
+\nLütfen yöneticinize başvurun</string>
 </resources>
diff --git a/res/values-tzl/strings.xml b/res/values-tzl/strings.xml
deleted file mode 100644 (file)
index 37e6152..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<resources>
-  <!--TODO re-enable when server-side folder size calculation is available   
-       <item>Biggest - Smallest</item>-->
-  <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
-  <!--<string name="drawer_item_accounts">Accounts</string>-->
-  <!--TODO re-enable when "On Device" is available
-    <string name="drawer_item_on_device">On device</string>-->
-  <string name="empty"></string>
-</resources>
index 97255fe..bd4ba67 100644 (file)
@@ -11,6 +11,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">ئاچ</string>
   <string name="prefs_category_general">ئادەتتىكى</string>
   <string name="prefs_category_more">تېخىمۇ كۆپ</string>
   <string name="prefs_accounts">ھېساباتلار</string>
   <string name="filedetails_created">قۇرۇلغان ۋاقتى:</string>
   <string name="filedetails_modified">ئۆزگەرتكەن ۋاقىت:</string>
   <string name="filedetails_download">چۈشۈر</string>
+  <string name="action_share">ھەمبەھىر</string>
   <string name="common_yes">ھەئە</string>
   <string name="common_no">ياق</string>
   <string name="common_ok">جەزملە</string>
-  <string name="common_cancel_upload">يۈكلەشتىن ۋاز كەچ</string>
   <string name="common_cancel">ۋاز كەچ</string>
   <string name="common_save_exit">ساقلاپ چېكىن</string>
   <string name="common_error">خاتالىق</string>
@@ -51,4 +52,6 @@
   <string name="prefs_category_accounts">ھېساباتلار</string>
   <string name="prefs_category_security">بىخەتەرلىك</string>
   <string name="auth_host_address">مۇلازىمېتىر ئادرىسى</string>
+  <string name="share_dialog_title">ھەمبەھىر</string>
+  <string name="share_search">ئىزدە</string>
 </resources>
index 485b6ab..37b26e0 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <resources>
-  <string name="about_android">%1$s Android App</string>
+  <string name="about_android">%1$s Android Додаток</string>
   <string name="about_version">версія %1$s</string>
   <string name="actionbar_sync">Оновити account</string>
   <string name="actionbar_upload">Відвантажити</string>
   <string name="drawer_item_settings">Налаштування</string>
   <string name="drawer_item_logs">Журнали</string>
   <string name="drawer_close">Закрити</string>
+  <string name="drawer_open">Відкрити</string>
   <string name="prefs_category_general">Основне</string>
   <string name="prefs_category_more">Більше</string>
   <string name="prefs_accounts">Облікові записи</string>
   <string name="prefs_manage_accounts">Управління обліковими записами</string>
+  <string name="prefs_passcode">Захистити паролем</string>
   <string name="prefs_instant_upload">Миттєві зображення</string>
   <string name="prefs_instant_upload_summary">Миттєві зображення з камери</string>
   <string name="prefs_instant_video_upload">Миттєві відео</string>
@@ -69,6 +71,7 @@
   <string name="file_list_seconds_ago">секунди тому</string>
   <string name="file_list_empty">Тут нічого немає. Відвантажте що-небудь!</string>
   <string name="file_list_loading">Завантаження…</string>
+  <string name="file_list_no_app_for_file_type">Застосунку для цього типу файла не знайдено!</string>
   <string name="local_file_list_empty">В цій теці немає файлів.</string>
   <string name="filedetails_select_file">Натисніть на файлі для відображення додаткової інформації</string>
   <string name="filedetails_size">Розмір:</string>
   <string name="filedetails_created">Створено:</string>
   <string name="filedetails_modified">Змінено:</string>
   <string name="filedetails_download">Завантажити</string>
-  <string name="filedetails_sync_file">Оновити файл</string>
   <string name="filedetails_renamed_in_upload_msg">Файл був переіменований в %1$s протягом вивантаження</string>
-  <string name="action_share_file">Опублікувати посилання</string>
-  <string name="action_unshare_file">Видалити посилання</string>
+  <string name="list_layout">Вигляд списку</string>
+  <string name="action_share">Поділитися</string>
   <string name="common_yes">Так</string>
   <string name="common_no">Ні</string>
   <string name="common_ok">OK</string>
-  <string name="common_cancel_download">Скасувати завантаження</string>
-  <string name="common_cancel_upload">Перервати завантаження</string>
   <string name="common_cancel">Відмінити</string>
   <string name="common_save_exit">Зберегти &amp; Вихід</string>
   <string name="common_error">Помилка</string>
   <string name="foreign_files_local_text">Локально: %1$s</string>
   <string name="foreign_files_remote_text">Віддалено: %1$s</string>
   <string name="upload_query_move_foreign_files">Недостатньо місця для копіювання обраних файлів у теку %1$s. Чи бажаєте ви перемістити їх замість копіювання?</string>
+  <string name="pass_code_enter_pass_code">Будь ласка, введіть Ваш код доступу</string>
+  <string name="pass_code_configure_your_pass_code">Введіть Ваш код доступу</string>
+  <string name="pass_code_configure_your_pass_code_explanation">Код доступу буде запрошено кожного разу після завантаження додатку</string>
+  <string name="pass_code_reenter_your_pass_code">Будь ласка, введіть код доступу повторно</string>
+  <string name="pass_code_remove_your_pass_code">Видалити пароль</string>
+  <string name="pass_code_mismatch">Коди доступу не співпадають</string>
+  <string name="pass_code_wrong">Невірний код доступу</string>
+  <string name="pass_code_removed">Код доступу знято</string>
+  <string name="pass_code_stored">Код доступу збережено</string>
   <string name="media_notif_ticker">%1$s музичний плеєр</string>
   <string name="media_state_playing">%1$s (відтворення)</string>
   <string name="media_state_loading">%1$s (завантаження)</string>
   <string name="auth_can_not_auth_against_server">Аутентифікація на цьому сервері неможлива</string>
   <string name="auth_account_does_not_exist">Користвача в пристрої не існуе</string>
   <string name="favorite">Улюблений</string>
+  <string name="unfavorite">Прибрати з вибраного</string>
   <string name="common_rename">Перейменувати</string>
   <string name="common_remove">Видалити</string>
-  <string name="confirmation_remove_alert">Ви дійсно бажаєте видалити %1$s?</string>
+  <string name="confirmation_remove_file_alert">Ви дійсно бажаєте видалити %1$s?</string>
   <string name="confirmation_remove_folder_alert">Ви дійсно бажаєте видалити %1$s та весь вміст?</string>
   <string name="confirmation_remove_local">Лише локально</string>
-  <string name="confirmation_remove_folder_local">Ð\9bиÑ\88е Ð»Ð¾ÐºÐ°Ð»Ñ\8cний Ð·Ð¼Ñ\96Ñ\81Ñ\82</string>
-  <string name="confirmation_remove_remote">Ð\92идалиÑ\82и Ñ\96з серверу</string>
-  <string name="confirmation_remove_remote_and_local">Віддалено і локально</string>
+  <string name="confirmation_remove_folder_local">Ð\9bиÑ\88е Ð»Ð¾ÐºÐ°Ð»Ñ\8cно</string>
+  <string name="confirmation_remove_remote">Ð\97 серверу</string>
+  <string name="confirmation_remove_remote_and_local">Видалити &amp; локальний</string>
   <string name="remove_success_msg">Успішно видалено</string>
   <string name="remove_fail_msg">Видалення не вдалось</string>
   <string name="rename_dialog_title">Введіть нове ім\'я</string>
   <string name="instant_upload_on_wifi">Завантажувати зображення тільки через WiFi</string>
   <string name="instant_video_upload_on_wifi">Завантажувати відео тільки через WiFi</string>
   <string name="instant_upload_path">/InstantUpload</string>
+  <string name="conflict_title">Конфлікт файлу</string>
+  <string name="conflict_message">Які файли Ви хочете зберегти? Якщо Ви оберете обидві версії, локальний файл матиме номер, що додається до його імені.</string>
   <string name="conflict_keep_both">Залишити обидва</string>
+  <string name="conflict_use_local_version">Локальна версія</string>
+  <string name="conflict_use_server_version">Версія сервера</string>
   <string name="preview_image_description">Попередній перегляд зображення</string>
   <string name="preview_image_error_unknown_format">Не вдалося показати зображення</string>
   <string name="error__upload__local_file_not_copied">%1$s неможливо скопіювати до %2$s</string>
   <string name="move_file_invalid_overwrite">Файл вже існує в теці призначення</string>
   <string name="move_file_error">Виникла помилка при спробі перемістити файл або теку</string>
   <string name="forbidden_permissions_move">перемістити цей файл</string>
+  <string name="copy_file_not_found">Неможливо скопіювати. Будь ласка, перевірте, чи існує файл</string>
+  <string name="copy_file_invalid_into_descendent">Неможливо копіювати теку до підтеки</string>
+  <string name="copy_file_invalid_overwrite">Файл вже існує в теці призначення</string>
+  <string name="copy_file_error">Виникла помилка під час спроби скопіювати даний файл чи папку</string>
+  <string name="forbidden_permissions_copy">скопіювати даний файл</string>
   <string name="prefs_category_instant_uploading">Миттєво завантаження</string>
   <string name="prefs_category_security">Безпека</string>
   <string name="prefs_instant_video_upload_path_title">Шлях завантаження відео</string>
-  <string name="download_folder_failed_content">Скачування теки %1$s не може бути завершено</string>
+  <string name="shared_subject_header">поширений</string>
   <string name="with_you_subject_header">з Вами</string>
-  <string name="subject_token">%1$s поділився \"%2$s\" з вами</string>
+  <string name="subject_user_shared_with_you">%1$s поділився \"%2$s\" з вами</string>
+  <string name="subject_shared_with_you">З Вами поділилися \"%1$s\"</string>
   <string name="auth_refresh_button">Оновити з\'єднання</string>
   <string name="auth_host_address">Ареса серверу</string>
   <string name="common_error_out_memory">Недостатньо пам\'яті</string>
   <string name="file_list__footer__files">%1$d файлів</string>
   <string name="file_list__footer__files_and_folder">%1$d файлів, 1 тека</string>
   <string name="file_list__footer__files_and_folders">%1$d файлів, %2$d тек</string>
+  <string name="share_dialog_title">Спільний доступ</string>
+  <string name="share_via_link_section_title">Поділитись посиланням</string>
+  <string name="share_via_link_expiration_date_label">Встановити термін дії</string>
+  <string name="share_via_link_password_label">Захистити паролем</string>
+  <string name="share_search">Пошук</string>
 </resources>
index 0c1462d..2e39141 100644 (file)
@@ -8,6 +8,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">کھولیں</string>
   <string name="prefs_category_more">مزید</string>
   <string name="prefs_help">مدد</string>
   <string name="auth_username">یوزر نیم</string>
@@ -15,7 +16,7 @@
   <string name="setup_btn_connect">منسلک</string>
   <string name="file_list_seconds_ago">سیکنڈز پہلے</string>
   <string name="filedetails_download">ڈاؤن لوڈ،</string>
-  <string name="action_share_file">اشتراک لنک</string>
+  <string name="action_share">اشتراک</string>
   <string name="common_yes">ہاں</string>
   <string name="common_no">نہیں</string>
   <string name="common_ok">اوکے</string>
@@ -25,4 +26,8 @@
   <string name="activity_chooser_send_file_title">بھجیں</string>
   <string name="empty"></string>
   <string name="folder_picker_choose_button_text">منتخب کریں</string>
+  <string name="share_via_link_section_title">اشتراک لنک</string>
+  <string name="share_via_link_expiration_date_label">تاریخ معیاد سیٹ کریں</string>
+  <string name="share_via_link_password_label">محفوظ پاسورڈ</string>
+  <string name="share_search">تلاش</string>
 </resources>
index ab237e8..4fdc212 100644 (file)
@@ -1,13 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
-       
-       <style name="Theme.ownCloud.ButtonStyle" parent="@android:style/Widget.Holo.Light.Button">
-               <item name="android:background">@android:drawable/btn_default</item>
-               <item name="android:textColor">@color/button_text_color</item>
-       </style>
 
        <!-- Notifications -->
-       <!-- Notifications -->
        <style  name="Theme.ownCloud.NotificationText.Title" 
                parent="@android:style/TextAppearance.StatusBar.EventContent.Title" > 
                <item name="android:textSize">18sp</item>
diff --git a/res/values-v21/styles.xml b/res/values-v21/styles.xml
new file mode 100644 (file)
index 0000000..04d9ac9
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ownCloud Android client application
+
+  Copyright (C) 2015 ownCloud Inc.
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License version 2,
+  as published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+       <style name="ProgressDialogTheme" parent="ownCloud.Dialog">
+       </style>
+    <style name="Theme.ownCloud.NoActionBar">
+        <item name="windowActionBar">false</item>
+        <item name="windowNoTitle">true</item>
+        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
+        <item name="android:statusBarColor">@android:color/transparent</item>
+    </style>
+</resources>
\ No newline at end of file
index fdaec2a..e6482b4 100644 (file)
@@ -17,6 +17,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">Mở</string>
   <string name="prefs_category_general">Tổng hợp</string>
   <string name="prefs_category_more">hơn</string>
   <string name="prefs_accounts">Tài khoản</string>
   <string name="filedetails_created">Đã tạo:</string>
   <string name="filedetails_modified">Đã chỉnh sửa:</string>
   <string name="filedetails_download">Tải về</string>
-  <string name="filedetails_sync_file">Cập nhật lại tập tin</string>
   <string name="filedetails_renamed_in_upload_msg">Tập tin đã bị đổi tên thành %1$s trong quá trình tải lên</string>
-  <string name="action_share_file">Chia sẻ liên kết</string>
-  <string name="action_unshare_file">Liên kết không chia sẻ</string>
+  <string name="action_share">Chia sẻ</string>
   <string name="common_yes">Yes</string>
   <string name="common_no">Không</string>
   <string name="common_ok">Chấp nhận</string>
-  <string name="common_cancel_download">Hủy tải về</string>
-  <string name="common_cancel_upload">Hủy upload</string>
   <string name="common_cancel">Hủy</string>
   <string name="common_save_exit">Lưu &amp; Thoát</string>
   <string name="common_error">Lỗi</string>
   <string name="common_rename">Sửa tên</string>
   <string name="common_remove">Xóa</string>
   <string name="confirmation_remove_local">Chỉ cục bộ</string>
-  <string name="confirmation_remove_folder_local">Chỉ nội dung trên máy</string>
-  <string name="confirmation_remove_remote">Xóa từ máy chủ</string>
-  <string name="confirmation_remove_remote_and_local">Remote và local</string>
+  <string name="confirmation_remove_folder_local">Chỉ cục bộ</string>
   <string name="remove_success_msg">Xóa thành công</string>
   <string name="remove_fail_msg">Xóa không thành công</string>
   <string name="rename_dialog_title">Nhập tên mới</string>
   <string name="prefs_category_accounts">Tài khoản</string>
   <string name="folder_picker_choose_button_text">Chọn</string>
   <string name="auth_host_address">Địa chỉ máy chủ</string>
+  <string name="share_dialog_title">Chia sẻ</string>
+  <string name="share_via_link_section_title">Chia sẻ liên kết</string>
+  <string name="share_via_link_expiration_date_label">Đặt ngày kết thúc</string>
+  <string name="share_via_link_password_label">Mật khẩu bảo vệ</string>
+  <string name="share_search">Tìm kiếm</string>
 </resources>
index 5551587..25ca1f9 100644 (file)
@@ -27,6 +27,7 @@
   <string name="drawer_item_settings">设置</string>
   <string name="drawer_item_logs">日志</string>
   <string name="drawer_close">关闭</string>
+  <string name="drawer_open">打开</string>
   <string name="prefs_category_general">常规</string>
   <string name="prefs_category_more">更多</string>
   <string name="prefs_accounts">账号</string>
@@ -70,6 +71,7 @@
   <string name="file_list_seconds_ago">几秒前</string>
   <string name="file_list_empty">这里还什么都没有。上传些东西吧!</string>
   <string name="file_list_loading">加载中...</string>
+  <string name="file_list_no_app_for_file_type">找不到用于打开此类型文件的应用</string>
   <string name="local_file_list_empty">在该文件夹中不存在文件。</string>
   <string name="filedetails_select_file">点击一个文件可以显示额外的信息。</string>
   <string name="filedetails_size">大小:</string>
   <string name="filedetails_created">创建于:</string>
   <string name="filedetails_modified">修改于:</string>
   <string name="filedetails_download">下载</string>
-  <string name="filedetails_sync_file">刷新文件</string>
   <string name="filedetails_renamed_in_upload_msg">上传过程中文件被更名为了 %1$s</string>
   <string name="list_layout">列表布局</string>
-  <string name="action_share_file">分享链接</string>
-  <string name="action_unshare_file">取消分享链接</string>
+  <string name="action_share">共享</string>
   <string name="common_yes">是</string>
   <string name="common_no">否</string>
   <string name="common_ok">确定</string>
-  <string name="common_cancel_download">取消下载</string>
-  <string name="common_cancel_upload">取消上传</string>
   <string name="common_cancel">取消</string>
   <string name="common_save_exit">保存并退出</string>
   <string name="common_error">错误</string>
   <string name="auth_can_not_auth_against_server">无法通过此服务器认证</string>
   <string name="auth_account_does_not_exist">设备中还未存在该帐号</string>
   <string name="favorite">收藏</string>
+  <string name="unfavorite">取消收藏</string>
   <string name="common_rename">重命名</string>
   <string name="common_remove">删除</string>
-  <string name="confirmation_remove_alert">你确定要删除 %1$s 吗?</string>
+  <string name="confirmation_remove_file_alert">你确定要删除 %1$s 吗?</string>
   <string name="confirmation_remove_folder_alert">您确定要删除 %1$s 及其内容吗?</string>
   <string name="confirmation_remove_local">仅本地</string>
-  <string name="confirmation_remove_folder_local">仅本地内容</string>
-  <string name="confirmation_remove_remote">从服务器删除</string>
-  <string name="confirmation_remove_remote_and_local">远程和本地都</string>
+  <string name="confirmation_remove_folder_local">仅本地</string>
+  <string name="confirmation_remove_file_remote">来自服务器</string>
+  <string name="confirmation_remove_remote_and_local">远程 &amp; 本地</string>
   <string name="remove_success_msg">成功删除</string>
   <string name="remove_fail_msg">无法完成删除</string>
   <string name="rename_dialog_title">请输出新的名字</string>
   <string name="conflict_title">文件冲突</string>
   <string name="conflict_message">您想要保留哪个文件?如果您同时选中了两个版本,本地的文件的文件名将被加上一个数字</string>
   <string name="conflict_keep_both">保留两者</string>
-  <string name="conflict_use_local_version">使用本地版本</string>
-  <string name="conflict_use_server_version">使用服务器版本</string>
+  <string name="conflict_use_local_version">本地版本</string>
+  <string name="conflict_use_server_version">服务器版本</string>
   <string name="preview_image_description">图片预览</string>
   <string name="preview_image_error_unknown_format">无法显示图片</string>
   <string name="error__upload__local_file_not_copied">无法复制 %1$s 到本地目录 %2$s</string>
   <string name="downloader_download_file_not_found">该文件在服务器上不可用</string>
   <string name="prefs_category_accounts">账号</string>
   <string name="prefs_add_account">添加账号</string>
-  <string name="auth_redirect_non_secure_connection_title">安全连接被重定向到非安全路径.</string>
+  <string name="auth_redirect_non_secure_connection_title">安全连接是通过一个非安全路由定向的。</string>
   <string name="actionbar_logger">日志</string>
   <string name="log_send_history_button">发送历史</string>
   <string name="log_send_no_mail_app">未找到可以发送日志的程序。请安装 mail!</string>
   <string name="move_file_invalid_overwrite">该文件已经存在在目标文件夹</string>
   <string name="move_file_error">尝试移动该文件或文件夹时发生错误</string>
   <string name="forbidden_permissions_move">移动该文件</string>
+  <string name="copy_file_not_found">无法复制文件。请检查文件是否存在</string>
+  <string name="copy_file_invalid_into_descendent">将一个目录移动到它的子目录是不可能的</string>
+  <string name="copy_file_invalid_overwrite">该文件已经存在在目标文件夹</string>
+  <string name="copy_file_error">尝试复制这个文件或文件夹时发生了错误</string>
+  <string name="forbidden_permissions_copy">复制这个文件</string>
   <string name="prefs_category_instant_uploading">即时上传</string>
   <string name="prefs_category_security">安全</string>
   <string name="prefs_instant_video_upload_path_title">视频上传路径</string>
-  <string name="download_folder_failed_content">%1$s 文件夹的下载无法完成</string>
   <string name="shared_subject_header">已共享</string>
   <string name="with_you_subject_header">与你</string>
+  <string name="subject_user_shared_with_you">%1$s和你分享了“%2$s”</string>
+  <string name="subject_shared_with_you">已与你分享“%1$s”</string>
   <string name="auth_refresh_button">刷新连接</string>
   <string name="auth_host_address">服务器地址</string>
   <string name="common_error_out_memory">内存不足</string>
   <string name="file_list__footer__files">%1$d 个文件</string>
   <string name="file_list__footer__files_and_folder">%1$d 个文件,1 个文件夹</string>
   <string name="file_list__footer__files_and_folders">%1$d 个文件,%2$d 个文件夹</string>
+  <string name="share_dialog_title">共享</string>
+  <string name="share_via_link_section_title">分享链接</string>
+  <string name="share_via_link_expiration_date_label">设置过期日期</string>
+  <string name="share_via_link_password_label">密码保护</string>
+  <string name="share_search">搜索</string>
 </resources>
index c283a8b..aba6546 100644 (file)
@@ -13,6 +13,7 @@
   <!--<string name="drawer_item_accounts">Accounts</string>-->
   <!--TODO re-enable when "On Device" is available
     <string name="drawer_item_on_device">On device</string>-->
+  <string name="drawer_open">開啟</string>
   <string name="prefs_category_general">一般</string>
   <string name="prefs_category_more">更多</string>
   <string name="prefs_accounts">帳號</string>
   <string name="filedetails_created">建立時間:</string>
   <string name="filedetails_modified">修改時間:</string>
   <string name="filedetails_download">下載</string>
-  <string name="action_share_file">分享連結</string>
-  <string name="action_unshare_file">取消分享連結</string>
+  <string name="action_share">分享</string>
   <string name="common_yes">是</string>
   <string name="common_no">否</string>
   <string name="common_ok">確定</string>
-  <string name="common_cancel_download">取消下戴</string>
-  <string name="common_cancel_upload">取消上戴</string>
   <string name="common_cancel">取消</string>
   <string name="common_save_exit">儲存並離開</string>
   <string name="common_error">錯誤</string>
   <string name="placeholder_filesize">389 KB</string>
   <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
   <string name="placeholder_media_time">12:23:45</string>
-  <string name="activity_chooser_send_file_title">送</string>
+  <string name="activity_chooser_send_file_title">送</string>
   <string name="copy_link">複製連結</string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">帳號</string>
   <string name="saml_authentication_wrong_pass">密碼錯誤</string>
   <string name="prefs_category_security">安全</string>
   <string name="auth_host_address">伺服器地址</string>
+  <string name="share_dialog_title">分享</string>
+  <string name="share_via_link_section_title">分享連結</string>
+  <string name="share_via_link_expiration_date_label">設定分享期限</string>
+  <string name="share_via_link_password_label">密碼保護</string>
+  <string name="share_search">尋找</string>
 </resources>
index 980ba44..7b0ec25 100644 (file)
   <string name="drawer_item_settings">設定</string>
   <string name="drawer_item_logs">紀錄</string>
   <string name="drawer_close"> 關閉</string>
+  <string name="drawer_open">開啟</string>
   <string name="prefs_category_general">一般</string>
   <string name="prefs_category_more">更多</string>
   <string name="prefs_accounts">帳號</string>
   <string name="prefs_manage_accounts">管理帳號</string>
+  <string name="prefs_passcode">密碼鎖</string>
   <string name="prefs_instant_upload">即時圖片上傳</string>
   <string name="prefs_instant_upload_summary">即時上傳相機照片</string>
   <string name="prefs_instant_video_upload">即時影像上傳</string>
@@ -68,6 +70,7 @@
   <string name="uploader_info_uploading">上傳中</string>
   <string name="file_list_seconds_ago">幾秒前</string>
   <string name="file_list_empty">這裡還沒有東西,上傳一些吧!</string>
+  <string name="file_list_loading">載入中…</string>
   <string name="local_file_list_empty">這個目錄中沒有任何檔案.</string>
   <string name="filedetails_select_file">在檔案上輕觸來顯示更多資訊。</string>
   <string name="filedetails_size">容量:</string>
   <string name="filedetails_created">建立:</string>
   <string name="filedetails_modified">修改:</string>
   <string name="filedetails_download">下載</string>
-  <string name="filedetails_sync_file">更新檔案列表</string>
   <string name="filedetails_renamed_in_upload_msg">檔案名稱在上傳時已被更改為 %1$s</string>
-  <string name="action_share_file">分享連結</string>
-  <string name="action_unshare_file">取消共享連結</string>
+  <string name="list_layout">列表版型</string>
+  <string name="action_share">分享</string>
   <string name="common_yes">是</string>
   <string name="common_no">否</string>
   <string name="common_ok">好</string>
-  <string name="common_cancel_download">取消下載</string>
-  <string name="common_cancel_upload">取消上傳</string>
   <string name="common_cancel">取消</string>
   <string name="common_save_exit">儲存並離開</string>
   <string name="common_error">錯誤</string>
   <string name="foreign_files_local_text">本地: %1$s</string>
   <string name="foreign_files_remote_text">遠端: %1$s</string>
   <string name="upload_query_move_foreign_files">無足夠的空間可以複製檔案到 %1$s 目錄. 是否使用移動的方式來處理? </string>
+  <string name="pass_code_enter_pass_code">請輸入您的密碼鎖密碼</string>
+  <string name="pass_code_configure_your_pass_code">輸入您的密碼鎖密碼</string>
+  <string name="pass_code_configure_your_pass_code_explanation">這個密碼在你每次啟動這程式時都會被要求輸入</string>
+  <string name="pass_code_reenter_your_pass_code">請重新輸入您的密碼鎖密碼</string>
+  <string name="pass_code_remove_your_pass_code">移除您的密碼鎖密碼</string>
+  <string name="pass_code_mismatch">密碼不相符</string>
+  <string name="pass_code_wrong">不正確的密碼</string>
+  <string name="pass_code_removed">密碼鎖已被移除</string>
+  <string name="pass_code_stored">密碼鎖已設定</string>
   <string name="media_notif_ticker">%1$s 音樂播放器</string>
   <string name="media_state_playing">%1$s (播放中)</string>
   <string name="media_state_loading">%1$s (載入中)</string>
   <string name="auth_can_not_auth_against_server">無法在這個伺服器上取得認證</string>
   <string name="auth_account_does_not_exist">帳號目前不存在於本裝置</string>
   <string name="favorite">我的最愛</string>
+  <string name="unfavorite">不喜愛的</string>
   <string name="common_rename">重新命名</string>
   <string name="common_remove">移除</string>
-  <string name="confirmation_remove_alert">您真的要移除 %1$s ?</string>
+  <string name="confirmation_remove_file_alert">您真的要移除 %1$s ?</string>
   <string name="confirmation_remove_folder_alert">您真的要移除 %1$s 與裡頭的檔案?</string>
   <string name="confirmation_remove_local">只有本地</string>
   <string name="confirmation_remove_folder_local">只有本地</string>
-  <string name="confirmation_remove_remote">從伺服器移除</string>
-  <string name="confirmation_remove_remote_and_local">遠端本地</string>
+  <string name="confirmation_remove_file_remote">來自伺服器</string>
+  <string name="confirmation_remove_remote_and_local">遠端 &amp; 本地</string>
   <string name="remove_success_msg">成功地移除</string>
   <string name="remove_fail_msg">刪除失敗</string>
   <string name="rename_dialog_title">輸入新名稱</string>
   <string name="sync_file_nothing_to_do_msg">檔案與同步</string>
   <string name="create_dir_fail_msg">資料夾無法建立</string>
   <string name="filename_forbidden_characters">禁止使用字符: / \\ &lt; &gt; : \" | ? *</string>
+  <string name="filename_forbidden_charaters_from_server">檔案名稱含有不合法的字元</string>
   <string name="filename_empty">檔名不能為空的</string>
   <string name="wait_a_moment">請稍後</string>
   <string name="filedisplay_unexpected_bad_get_content">未知的問題; 請選擇其他程式開啟檔案</string>
   <string name="filedisplay_no_file_selected">沒有挑選檔案</string>
   <string name="activity_chooser_title">傳送連結至 ...</string>
+  <string name="wait_for_tmp_copy_from_private_storage">由私有的儲存空間複製檔案中</string>
   <string name="oauth_check_onoff">以 oAuth2 方式登入</string>
   <string name="oauth_login_connection">連線到 oAuth2 伺服器…</string>
   <string name="ssl_validator_header">這個網站的憑證無法被驗證</string>
   <string name="instant_upload_on_wifi">只使用 WiFi 來執行即時圖片上傳的功能</string>
   <string name="instant_video_upload_on_wifi">只使用 WiFi 來執行即時影像上傳的功能</string>
   <string name="instant_upload_path">/InstantUpload</string>
+  <string name="conflict_title">檔案衝突</string>
+  <string name="conflict_message">您要保留那個檔案? 如果您同時選擇兩個版本, 本地的檔案將在檔案名稱後面會加上編號</string>
   <string name="conflict_keep_both">都保留</string>
+  <string name="conflict_use_local_version">本地版本</string>
+  <string name="conflict_use_server_version">伺服器版本</string>
   <string name="preview_image_description">圖片預覽</string>
   <string name="preview_image_error_unknown_format">無法顯示圖片</string>
   <string name="error__upload__local_file_not_copied">%1$s 無法被複製到本地目錄 %2$s</string>
   <string name="downloader_download_file_not_found">這個檔案已經不存在於伺服器中</string>
   <string name="prefs_category_accounts">帳號</string>
   <string name="prefs_add_account">新增帳號</string>
-  <string name="auth_redirect_non_secure_connection_title">安全連線被轉向到一個非安全的連線</string>
   <string name="actionbar_logger">紀錄</string>
   <string name="log_send_history_button">傳送歷史記錄</string>
   <string name="log_send_no_mail_app">找不到可以傳送記錄的電子郵件程式. 請安裝電子郵件軟體!</string>
   <string name="move_file_invalid_overwrite">這個檔案已經存在於目的目錄中</string>
   <string name="move_file_error">在移動檔案或目錄時發生了錯誤</string>
   <string name="forbidden_permissions_move">移動這個檔案</string>
+  <string name="copy_file_invalid_overwrite">這個檔案已經存在於目的目錄中</string>
   <string name="prefs_category_instant_uploading">即時上傳</string>
   <string name="prefs_category_security">安全性</string>
   <string name="prefs_instant_video_upload_path_title">影片上傳路徑</string>
-  <string name="download_folder_failed_content">%1$s 目錄的下載未完成</string>
   <string name="shared_subject_header">以分享的</string>
   <string name="with_you_subject_header">與你</string>
-  <string name="subject_token">%1$s 分享了 \"%2$s\" 給您</string>
+  <string name="subject_user_shared_with_you">%1$s 分享了 \"%2$s\" 給您</string>
+  <string name="subject_shared_with_you">\"%1$s\" 已經與您分享</string>
   <string name="auth_refresh_button">重新連線</string>
   <string name="auth_host_address">伺服器位址</string>
+  <string name="common_error_out_memory">記憶體不足</string>
   <string name="username">使用者名稱</string>
+  <string name="file_list__footer__folder">1 個資料夾</string>
+  <string name="file_list__footer__folders">%1$d 個資料夾</string>
+  <string name="file_list__footer__file">1 個檔案</string>
+  <string name="file_list__footer__file_and_folder">1 個檔案, 1 個資料夾</string>
+  <string name="file_list__footer__file_and_folders">1 個檔案, %1$d 個資料夾</string>
+  <string name="file_list__footer__files">%1$d 個檔案</string>
+  <string name="file_list__footer__files_and_folder">%1$d 個檔案, 1 個資料夾</string>
+  <string name="file_list__footer__files_and_folders">%1$d 個檔案, %2$d 個資料夾</string>
+  <string name="share_dialog_title">分享</string>
+  <string name="share_no_users">目前沒有任何您分享的內容</string>
+  <string name="share_add_user_or_group">新增使用者或是群組</string>
+  <string name="share_via_link_section_title">分享連結</string>
+  <string name="share_via_link_expiration_date_label">指定到期日</string>
+  <string name="share_via_link_password_label">密碼保護</string>
+  <string name="share_search">搜尋</string>
 </resources>
index 22c082c..d51b3c0 100644 (file)
@@ -5,10 +5,19 @@
 
                <attr name="optionOneString" format="string" />
                <attr name="optionOneColor" format="color" />
-    <attr name="optionTwoString" format="string" />
+       <attr name="optionTwoString" format="string" />
                <attr name="optionTwoColor" format="color" />
                <attr name="onBadgeClick" format="string" />
 
        </declare-styleable>
 
+       <string-array name="pref_behaviour_entries">
+               <item>@string/pref_behaviour_entries_keep_file</item>
+               <item>@string/pref_behaviour_entries_move</item>
+       </string-array>
+
+       <string-array name="pref_behaviour_entryValues">
+               <item>NOTHING</item>
+               <item>MOVE</item>
+       </string-array>
 </resources>
\ No newline at end of file
index b42538f..694e231 100644 (file)
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
 <resources>
-    
-    <color name="filelist_icon_backgorund">#DDDDDD</color>
+
+    <color name="owncloud_blue">@color/actionbar_start_color</color>
+    <color name="owncloud_blue_accent">#35537A</color>
     <color name="owncloud_blue_bright">#00ddff</color>
-    <color name="list_item_lastmod_and_filesize_text">#989898</color>
+
+    <color name="list_item_lastmod_and_filesize_text">@color/secondaryTextColor</color>
     <color name="black">#000000</color>
-    <color name="textColor">#303030</color>
-    <color name="list_divider_background">#fff0f0f0</color>
-    
+    <color name="white">#FFFFFF</color>
+    <color name="fab_white">#fafafa</color>
+    <color name="white_pressed">#f1f1f1</color>
+    <color name="half_black">#808080</color>
+    <color name="black_semi_transparent">#B2000000</color>
+    <color name="textColor">@color/black</color>
+    <color name="drawerMenuTextColor">#000000</color>
+    <color name="list_divider_background">#eee</color>
+    <color name="filelist_icon_backgorund">#DDDDDD</color>
+    <color name="dark_background_text_color">#EEEEEE</color>
+    <color name="login_text_color">#757575</color>
+    <color name="login_text_hint_color">#757575</color>
+    <color name="primary_button_color">@color/owncloud_blue_accent</color>
+    <color name="secondary_button_color">#D6D7D7</color>
+    <color name="transparent">#00000000</color>
+    <color name="secondaryTextColor">#a0a0a0</color>
+    <color name="listItemHighlighted">#f8f8f8</color>
+    <color name="highlightTextColor">#55739a</color>
+
+    <!-- Colors -->
+    <color name="color_accent">@color/owncloud_blue_accent</color>
+    <color name="dialog_list_item">#1F1F1F</color>
+
+    <!-- standard material color definitions -->
+    <color name="primary">@color/owncloud_blue</color>
+    <color name="primary_dark">#162233</color>
+
+    <!-- special transparent action bar colors for image preview -->
+    <color name="owncloud_blue_transparent">#201D2D44</color>
+    <color name="owncloud_blue_dark_transparent">#40162233</color>
 </resources>
\ No newline at end of file
index 955f87e..4c384d5 100644 (file)
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
 <resources>
-       <dimen name="file_icon_size">32dp</dimen>
+    <!-- Default screen margins, per the Android Design guidelines. -->
+    <dimen name="activity_horizontal_margin">@dimen/standard_padding</dimen>
+    <dimen name="activity_vertical_margin">@dimen/standard_padding</dimen>
+    <dimen name="nav_drawer_width">260dp</dimen>
+
+    <dimen name="file_icon_size">32dp</dimen>
     <dimen name="file_icon_size_grid">128dp</dimen>
+    <dimen name="standard_padding">16dp</dimen>
+    <dimen name="standard_margin">16dp</dimen>
+
+    <dimen name="two_line_primary_text_size">16sp</dimen>
+    <dimen name="two_line_secondary_text_size">14sp</dimen>
 </resources>
index 287eb69..f47df78 100644 (file)
@@ -23,7 +23,7 @@
         <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
         <!--<item>@string/prefs_accounts</item>-->
         <item>@string/drawer_item_all_files</item>
-        <!--<item>@string/drawer_item_on_device</item>-->
+        <item>@string/drawer_item_on_device</item>
         <item>@string/actionbar_settings</item>
         <item>@string/actionbar_logger</item>
     </string-array>
@@ -33,7 +33,7 @@
         <!-- TODO re-enable when "Accounts" is available in Navigation Drawer-->
         <!--<item>@string/drawer_item_accounts</item>-->
         <item>@string/drawer_item_all_files</item>
-        <!--<item>@string/drawer_item_on_device</item>-->
+        <item>@string/drawer_item_on_device</item>
         <item>@string/drawer_item_settings</item>
         <item>@string/drawer_item_logs</item>
     </string-array>
index 76bdd9f..b23f7b1 100644 (file)
@@ -1,14 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
     <!-- App name  and other strings-->
-    <string name="app_name">ownCloud</string>
-    <string name="account_type">owncloud</string>      <!-- better if was a domain name; but changing it now would require migrate accounts when the app is updated -->
-    <string name="authority">org.owncloud</string>     <!-- better if was the app package with ".provider" appended ; it identifies the provider -->
+    <string name="app_name">ownCloud beta</string>
+    <string name="account_type">owncloud.beta</string> <!-- better if was a domain name; but changing it now would require migrate accounts when the app is updated -->
+    <string name="authority">org.owncloud.beta.provider</string>       <!-- better if was the app package with ".provider" appended ; it identifies the provider -->
+    <string name="authorityCache">org.owncloud.beta.imageCache.provider</string>
     <string name ="db_file">owncloud.db</string>
     <string name ="db_name">ownCloud</string>
-    <string name ="data_folder">owncloud</string>
+    <string name ="data_folder">owncloud-beta</string>
     <string name ="log_name">Owncloud_</string>
-    <string name ="default_display_name_for_root_folder">ownCloud</string>
+    <string name ="default_display_name_for_root_folder">ownCloud beta</string>
     <string name ="user_agent">Mozilla/5.0 (Android) ownCloud-android/%1$s</string>
     
     <!-- URLs and flags related -->
@@ -30,7 +31,7 @@
     <!-- Colors -->
     <color name="login_background_color">#FFFFFF</color>
     <color name="login_logo_background_color">#FFFFFF</color>
-    <color name="background_color">#F7F7F7</color>
+    <color name="background_color">#FFFFFF</color>
     <color name="actionbar_start_color">#1D2D44</color>
     <color name="actionbar_end_color">#1D2D44</color>
     
@@ -46,6 +47,7 @@
     <bool name="recommend_enabled">true</bool>
     <bool name="feedback_enabled">true</bool>
     <string name="url_help">http://owncloud.com/mobile/help</string>
+    <string name="beta_link">https://github.com/owncloud/android/raw/beta/apks/owncloud-beta-</string>
     <string name="url_imprint"></string>
     <string name="mail_recommend">"mailto:"</string>
     <string name="mail_feedback">"mailto:apps@owncloud.com"</string>
index dd8ce04..1df3a15 100644 (file)
     <!-- TODO re-enable when "Accounts" is available in Navigation Drawer -->
     <!--<string name="drawer_item_accounts">Accounts</string>-->
     <string name="drawer_item_all_files">All files</string>
-    <!-- TODO re-enable when "On Device" is available
-    <string name="drawer_item_on_device">On device</string>-->
+    <string name="drawer_item_on_device">On device</string>
     <string name="drawer_item_settings">Settings</string>
     <string name="drawer_item_logs">Logs</string>
        <string name="drawer_close">Close</string>
+    <string name="drawer_open">Open</string>
     <string name="prefs_category_general">General</string>
     <string name="prefs_category_more">More</string>
     <string name="prefs_accounts">Accounts</string>
@@ -61,7 +61,7 @@
     <string name="setup_btn_connect">Connect</string>
     <string name="uploader_btn_upload_text">Upload</string>
     <string name="uploader_btn_new_folder_text">New folder</string>
-    <string name="uploader_top_message">Choose upload folder:</string>
+    <string name="uploader_top_message">Choose upload folder</string>
     <string name="uploader_wrn_no_account_title">No account found</string>
     <string name="uploader_wrn_no_account_text">There are no %1$s accounts on your device. Please setup an account first.</string>
     <string name="uploader_wrn_no_account_setup_btn_text">Setup</string>
@@ -73,6 +73,7 @@
     <string name="file_list_seconds_ago">seconds ago</string>
     <string name="file_list_empty">Nothing in here. Upload something!</string>
     <string name="file_list_loading">Loading&#8230;</string>
+    <string name="file_list_no_app_for_file_type">No App found for file type!</string>
     <string name="local_file_list_empty">There are no files in this folder.</string>
     <string name="filedetails_select_file">Tap on a file to display additional information.</string>
     <string name="filedetails_size">Size:</string>
     <string name="filedetails_created">Created:</string>
     <string name="filedetails_modified">Modified:</string>
     <string name="filedetails_download">Download</string>
-    <string name="filedetails_sync_file">Refresh file</string>
+    <string name="filedetails_sync_file">Synchronize</string>
     <string name="filedetails_renamed_in_upload_msg">File was renamed to %1$s during upload</string>
     <string name="list_layout">List Layout</string>
-    <string name="action_share_file">Share link</string>
-    <string name="action_unshare_file">Unshare link</string>
+    <string name="action_share">Share</string>
     <string name="common_yes">Yes</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>
-    <string name="common_cancel_download">Cancel download</string>
-    <string name="common_cancel_upload">Cancel upload</string>
+    <string name="common_cancel_sync">Cancel synchronization</string>
     <string name="common_cancel">Cancel</string>
     <string name="common_save_exit">Save &amp; Exit</string>
     <string name="common_error">Error</string>
     <string name="sync_fail_ticker_unauthorized">Synchronization failed, you need to relogin</string>
     <string name="sync_fail_content">Synchronization of %1$s could not be completed</string>
     <string name="sync_fail_content_unauthorized">Invalid password for %1$s</string>
-       <string name="sync_conflicts_in_favourites_ticker">Conflicts found</string>
-       <string name="sync_conflicts_in_favourites_content">%1$d kept-in-sync files could not be sync\'ed</string>
+    <string name="sync_conflicts_in_favourites_ticker">Conflicts found</string>
+    <string name="sync_conflicts_in_favourites_content">%1$d kept-in-sync files could not be sync\'ed</string>
     <string name="sync_fail_in_favourites_ticker">Kept-in-sync files failed</string>
     <string name="sync_fail_in_favourites_content">Contents of %1$d files could not be sync\'ed (%2$d conflicts)</string>
     <string name="sync_foreign_files_forgotten_ticker">Some local files were forgotten</string>
     <string name="sync_foreign_files_forgotten_content">%1$d files out of the %2$s folder could not be copied into</string>
     <string name="sync_foreign_files_forgotten_explanation">As of version 1.3.16, files uploaded from this device are copied into the local %1$s folder to prevent data loss when a single file is synced with multiple accounts.\n\nDue to this change, all files uploaded in previous versions of this app were copied into the %2$s folder. However, an error prevented the completion of this operation during account synchronization. You may either leave the file(s) as is and remove the link to %3$s, or move the file(s) into the %1$s folder and retain the link to %4$s.\n\nListed below are the local file(s), and the remote file(s) in %5$s they were linked to.</string>
-       <string name="sync_current_folder_was_removed">Folder %1$s does not exist anymore</string>    
+    <string name="sync_current_folder_was_removed">Folder %1$s does not exist anymore</string>
     <string name="foreign_files_move">"Move all"</string>
     <string name="foreign_files_success">"All files were moved"</string>
     <string name="foreign_files_fail">"Some files could not be moved"</string>
     <string name="media_state_loading">"%1$s (loading)"</string>
     <string name="media_event_done">"%1$s playback finished"</string>
     <string name="media_err_nothing_to_play">No media file found</string>
-       <string name="media_err_no_account">No account provided</string>
-       <string name="media_err_not_in_owncloud">File not in a valid account</string>
-       <string name="media_err_unsupported">Unsupported media codec</string>
-       <string name="media_err_io">Media file could not be read</string>
-       <string name="media_err_malformed">Media file not correctly encoded</string>
-       <string name="media_err_timeout">Timed out while trying to play</string>
-       <string name="media_err_invalid_progressive_playback">Media file cannot be streamed</string>
-       <string name="media_err_unknown">Media file cannot be played with the stock media player</string>
-       <string name="media_err_security_ex">Security error trying to play %1$s</string>
-       <string name="media_err_io_ex">Input error trying to play %1$s</string>
-       <string name="media_err_unexpected">Unexpected error trying to play %1$s</string>
-       <string name="media_rewind_description">Rewind button</string>
-       <string name="media_play_pause_description">Play or pause button</string>
-       <string name="media_forward_description">Fast forward button</string>
+    <string name="media_err_no_account">No account provided</string>
+    <string name="media_err_not_in_owncloud">File not in a valid account</string>
+    <string name="media_err_unsupported">Unsupported media codec</string>
+    <string name="media_err_io">Media file could not be read</string>
+    <string name="media_err_malformed">Media file not correctly encoded</string>
+    <string name="media_err_timeout">Timed out while trying to play</string>
+    <string name="media_err_invalid_progressive_playback">Media file cannot be streamed</string>
+    <string name="media_err_unknown">Media file cannot be played with the stock media player</string>
+    <string name="media_err_security_ex">Security error trying to play %1$s</string>
+    <string name="media_err_io_ex">Input error trying to play %1$s</string>
+    <string name="media_err_unexpected">Unexpected error trying to play %1$s</string>
+    <string name="media_rewind_description">Rewind button</string>
+    <string name="media_play_pause_description">Play or pause button</string>
+    <string name="media_forward_description">Fast forward button</string>
 
        <string name="auth_getting_authorization">Getting authorization&#8230;</string>
        <string name="auth_trying_to_login">Trying to login&#8230;</string>
     <string name="unfavorite">Unfavorite</string>
     <string name="common_rename">Rename</string>
     <string name="common_remove">Remove</string>
-    <string name="confirmation_remove_alert">"Do you really want to remove %1$s?"</string>
+    <string name="confirmation_remove_file_alert">"Do you really want to remove %1$s?"</string>
     <string name="confirmation_remove_folder_alert">"Do you really want to remove %1$s and its contents?"</string>
     <string name="confirmation_remove_local">Local only</string>
-    <string name="confirmation_remove_folder_local">Local contents only</string>
-    <string name="confirmation_remove_remote">Remove from server</string>
-    <string name="confirmation_remove_remote_and_local">Remote and local</string>
+    <string name="confirmation_remove_folder_local">Local only</string>
+    <string name="confirmation_remove_file_remote">From server</string>
+    <string name="confirmation_remove_remote_and_local">Remote &amp; local</string>
     <string name="remove_success_msg">"Removal succeeded"</string>
     <string name="remove_fail_msg">"Removal failed"</string>
     <string name="rename_dialog_title">Enter a new name</string>
     <string name="ssl_validator_label_L">Location:</string>
     <string name="ssl_validator_label_validity">Validity:</string>
     <string name="ssl_validator_label_validity_from">From:</string>
-       <string name="ssl_validator_label_validity_to">To:</string>
-       <string name="ssl_validator_label_signature">Signature:</string>
-       <string name="ssl_validator_label_signature_algorithm">Algorithm:</string>
-       <string name="ssl_validator_null_cert">The certificate could not be shown.</string>
-       <string name="ssl_validator_no_info_about_error">- No information about the error</string>
-                       
+    <string name="ssl_validator_label_validity_to">To:</string>
+    <string name="ssl_validator_label_signature">Signature:</string>
+    <string name="ssl_validator_label_signature_algorithm">Algorithm:</string>
+    <string name="digest_algorithm_not_available">This digest algorithm is not available on your phone.</string>
+    <string name="ssl_validator_label_certificate_fingerprint">Fingerprint:</string>
+    <string name="certificate_load_problem">There is a problem loading the certificate.</string>
+    <string name="ssl_validator_null_cert">The certificate could not be shown.</string>
+    <string name="ssl_validator_no_info_about_error">- No information about the error</string>
+
     <string name="placeholder_sentence">This is a placeholder</string>
     <string name="placeholder_filename">placeholder.txt</string>
     <string name="placeholder_filetype">PNG Image</string>
     <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
     <string name="placeholder_media_time">12:23:45</string>
     
-    <string name="instant_upload_on_wifi">Upload pictures via WiFi only</string>
-    <string name="instant_video_upload_on_wifi">Upload videos via WiFi only</string>
+    <string name="instant_upload_on_wifi">Upload pictures via wifi only</string>
+    <string name="instant_upload_on_charging">Upload when charging only</string>
+    <string name="instant_video_upload_on_wifi">Upload videos via wifi only</string>
+    <string name="instant_video_upload_on_charging">Upload when charging only</string>
     <string name="instant_upload_path">/InstantUpload</string>
     <string name="conflict_title">File conflict</string>
     <string name="conflict_message">Which files do you want to keep? If you select both versions, the local file will have a number added to its name.</string>
     <string name="conflict_keep_both">Keep both</string>
-    <string name="conflict_use_local_version">Use local version</string>
-    <string name="conflict_use_server_version">Use server version</string>
+    <string name="conflict_use_local_version">local version</string>
+    <string name="conflict_use_server_version">server version</string>
     
     <string name="preview_image_description">Image preview</string>
     <string name="preview_image_error_unknown_format">This image cannot be shown</string>
-    
+
     <string name="error__upload__local_file_not_copied">%1$s could not be copied to %2$s local folder</string>
-    <string name="prefs_instant_upload_path_title">Upload Path</string>
+    <string name="prefs_instant_upload_path_title">Upload path</string>
 
        <string name="share_link_no_support_share_api">Sorry, sharing is not enabled on your server. Please contact your
                administrator.</string>
        <string name="share_link_file_error">An error occurred while trying to share this file or folder</string>
        <string name="unshare_link_file_no_exist">Unable to unshare. Please check whether the file exists</string>
        <string name="unshare_link_file_error">An error occurred while trying to unshare this file or folder</string>
+    <string name="update_link_file_no_exist">Unable to update. Please check whether the file exists </string>
+    <string name="update_link_file_error">An error occurred while trying to update the shared link</string>
     <string name="share_link_password_title">Enter a password</string>
     <string name="share_link_empty_password">You must enter a password</string>
 
-       <string name="activity_chooser_send_file_title">Send</string>
+    <string name="activity_chooser_send_file_title">Send</string>
 
-       <string name="copy_link">Copy link</string>
-       <string name="clipboard_text_copied">Copied to clipboard</string>
+    <string name="copy_link">Copy link</string>
+    <string name="clipboard_text_copied">Copied to clipboard</string>
 
-       <string name="error_cant_bind_to_operations_service">Critical error: cannot perform operations</string>
-       
-       <string name="network_error_socket_exception">An error occurred while connecting with the server.</string>
-       <string name="network_error_socket_timeout_exception">An error occurred while waiting for the server, the operation couldn\'t have been done</string>
-       <string name="network_error_connect_timeout_exception">An error occurred while waiting for the server, the operation couldn\'t have been done</string>
-       <string name="network_host_not_available">The operation couldn\'t be completed, server is unavailable</string>
+    <string name="error_cant_bind_to_operations_service">Critical error: cannot perform operations</string>
 
-       <string name="empty" />
-       
-       <string name="forbidden_permissions">You do not have permission %s</string>
-       <string name="forbidden_permissions_rename">to rename this file</string>
-       <string name="forbidden_permissions_delete">to delete this file</string>
-       <string name="share_link_forbidden_permissions">to share this file</string>
-       <string name="unshare_link_forbidden_permissions">to unshare this file</string>
-       <string name="forbidden_permissions_create">to create the file</string>
-       <string name="uploader_upload_forbidden_permissions">to upload in this folder</string>
-       <string name="downloader_download_file_not_found">The file is no longer available on the server</string>
+    <string name="network_error_socket_exception">An error occurred while connecting with the server.</string>
+    <string name="network_error_socket_timeout_exception">An error occurred while waiting for the server, the operation couldn\'t have been done</string>
+    <string name="network_error_connect_timeout_exception">An error occurred while waiting for the server, the operation couldn\'t have been done</string>
+    <string name="network_host_not_available">The operation couldn\'t be completed, server is unavailable</string>
+    <string name="empty" />
 
-       <string name="prefs_category_accounts">Accounts</string>
-       <string name="prefs_add_account">Add account</string>
-       <string name="auth_redirect_non_secure_connection_title">Secure connection is redirected to an unsecured route.</string>
+    <string name="forbidden_permissions">You do not have permission %s</string>
+    <string name="forbidden_permissions_rename">to rename this file</string>
+    <string name="forbidden_permissions_delete">to delete this file</string>
+    <string name="share_link_forbidden_permissions">to share this file</string>
+    <string name="unshare_link_forbidden_permissions">to unshare this file</string>
+    <string name="update_link_forbidden_permissions">to update this shared link</string>
+    <string name="forbidden_permissions_create">to create the file</string>
+    <string name="uploader_upload_forbidden_permissions">to upload in this folder</string>
+    <string name="downloader_download_file_not_found">The file is no longer available on the server</string>
+
+    <string name="file_migration_finish_button">Finish</string>
+    <string name="file_migration_preparing">Preparing for migration...</string>
+    <string name="file_migration_checking_destination">Checking destination...</string>
+    <string name="file_migration_saving_accounts_configuration">Saving accounts configuration...</string>
+    <string name="file_migration_waiting_for_unfinished_sync">Waiting for unfinished synchronizations...</string>
+    <string name="file_migration_migrating">Moving data...</string>
+    <string name="file_migration_updating_index">Updating index...</string>
+    <string name="file_migration_cleaning">Cleaning...</string>
+    <string name="file_migration_restoring_accounts_configuration">Restoring accounts configuration...</string>
+    <string name="file_migration_ok_finished">Finished</string>
+    <string name="file_migration_failed_not_enough_space">ERROR: Not enough space</string>
+    <string name="file_migration_failed_not_writable">ERROR: File is not writable</string>
+    <string name="file_migration_failed_not_readable">ERROR: File is not readable</string>
+    <string name="file_migration_failed_dir_already_exists">ERROR: owncloud directory already exists</string>
+    <string name="file_migration_failed_while_coping">ERROR: While migrating</string>
+    <string name="file_migration_failed_while_updating_index">ERROR: While updating index</string>
+
+    <string name="prefs_category_accounts">Accounts</string>
+    <string name="prefs_add_account">Add account</string>
+    <string name="auth_redirect_non_secure_connection_title">Secure connection is redirected through an unsecured route.</string>
 
        <string name="actionbar_logger">Logs</string>
        <string name="log_send_history_button">Send History</string>
        <string name="file_list_empty_moving">Nothing in here. You can add a folder!</string>
        <string name="folder_picker_choose_button_text">Choose</string>
 
-       <string name="move_file_not_found">Unable to move. Please check whether the file exists</string>
-       <string name="move_file_invalid_into_descendent">It is not possible to move a folder into a descendant</string>
-       <string name="move_file_invalid_overwrite">The file exists already in the destination folder</string>
-       <string name="move_file_error">An error occurred while trying to move this file or folder</string>
-       <string name="forbidden_permissions_move">to move this file</string>
+    <string name="move_file_not_found">Unable to move. Please check whether the file exists</string>
+    <string name="move_file_invalid_into_descendent">It is not possible to move a folder into a descendant</string>
+    <string name="move_file_invalid_overwrite">The file exists already in the destination folder</string>
+    <string name="move_file_error">An error occurred while trying to move this file or folder</string>
+    <string name="forbidden_permissions_move">to move this file</string>
+
 
-       <string name="prefs_category_instant_uploading">Instant Uploads</string>
+    <string name="copy_file_not_found">Unable to copy. Please check whether the file exists</string>
+    <string name="copy_file_invalid_into_descendent">It is not possible to copy a folder into a descendant</string>
+    <string name="copy_file_invalid_overwrite">The file exists already in the destination folder</string>
+    <string name="copy_file_error">An error occurred while trying to copy this file or folder</string>
+    <string name="forbidden_permissions_copy">to copy this file</string>
+
+    <string name="prefs_category_instant_uploading">Instant Uploads</string>
        <string name="prefs_category_security">Security</string>
 
-       <string name="prefs_instant_video_upload_path_title">Upload Video Path</string>
+       <string name="prefs_instant_video_upload_path_title">Upload video path</string>
     <string name="download_folder_failed_content">Download of %1$s folder could not be completed</string>
+    <string name="sync_folder_failed_content">Synchronization of %1$s folder could not be completed</string>
 
        <string name="shared_subject_header">shared</string>
        <string name="with_you_subject_header">with you</string>
     
-       <string name="subject_token">%1$s shared \"%2$s\" with you</string>
-    <string name="saml_subject_token">\"%1$s\" has been shared with you</string>
+       <string name="subject_user_shared_with_you">%1$s shared \"%2$s\" with you</string>
+    <string name="subject_shared_with_you">\"%1$s\" has been shared with you</string>
 
     <string name="auth_refresh_button">Refresh connection</string>
     <string name="auth_host_address">Server address</string>
     <string name="file_list__footer__files">%1$d files</string>
     <string name="file_list__footer__files_and_folder">%1$d files, 1 folder</string>
     <string name="file_list__footer__files_and_folders">%1$d files, %2$d folders</string>
+    <string name="action_switch_grid_view">Switch to grid view</string>
+    <string name="action_switch_list_view">Switch to list view</string>
+    <string name="common_category">Common</string>
+    <string name="pref_cache_size">Cache size</string>
+    <string name="prefs_instant_behaviour_dialogTitle">Upload file to server and ...</string>
+    <string name="prefs_instant_behaviour_title">Behaviour</string>
+    <string name="prefs_instant_behaviour_dialogTitle">Original file will be...</string>
+    <string name="prefs_instant_behaviour_title">Original file will be...</string>
+    <string name="upload_copy_files">Copy file</string>
+    <string name="upload_move_files">Move file</string>
+    <string name="prefs_storage_path">Storage path</string>
+    <string name="prefs_common">Common</string>
+
+    <string name="pref_behaviour_entries_do_nothing">do nothing</string>
+    <string name="pref_behaviour_entries_copy">copy file to OC folder</string>
+    <string name="pref_behaviour_entries_move">move file to OC folder</string>
+    <string name="pref_behaviour_entries_delete">delete origin file</string>
+    <string name="confirmation_remove_files_alert">Do you really want to remove selected items?</string>
+    <string name="confirmation_remove_folders_alert">Do you really want to remove a folder and its content?</string>
+    <string name="confirmation_remove_files">selected items</string>
+    <string name="error_log_exit">Exit</string>
+    <string name="error_log_send">Send Log</string>
+    <string name="error_log_title">Error Log</string>
+    <string name="action_stream_file">Stream file with external player</string>
+    <string name="stream_expose_password">Do you want to stream this file with an external app?\n\nCAUTION: This may expose your password!</string>
+    <string name="set_picture_as">Set picture as</string>
+    <string name="set_as">Set As</string>
+    <string name="pref_behaviour_entries_keep_file">kept in original folder</string>
+    <string name="pref_behaviour_entries_move">moved to ownCloud folder</string>
+
+    <string name="share_dialog_title">Sharing</string>
+    <string name="share_with_user_section_title">Share with users and groups</string>
+    <string name="share_no_users">No data shared with users yet</string>
+    <string name="share_add_user_or_group">Add User or Group</string>
+    <string name="share_via_link_section_title">Share link</string>
+    <string name="share_via_link_expiration_date_label">Set expiration date</string>
+    <string name="share_via_link_password_label">Password protect</string>
+    <string name="share_via_link_password_title">Secured</string>
+    <string name="share_get_public_link_button">Get link</string>
+
+    <string name="share_search">Search</string>
+
+    <string name="search_users_and_groups_hint">Search users and groups</string>
+    <string name="share_group_clarification">%1$s (group)</string>
+
+    <string name="share_sharee_unavailable">Sorry, your server version does not allow share with users within clients.
+        \nPlease contact your administrator</string>
+    <string name="changelog">https://github.com/owncloud/android/raw/beta/CHANGELOG.md</string>
 
 </resources>
index 0d3f14d..934b755 100644 (file)
        <style name="Animations" />
 
        <!-- General ownCloud app style -->
-       <style name="Theme.ownCloud" parent="style/Theme.AppCompat.Light.DarkActionBar">
+       <style name="Theme.ownCloud" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/Theme.ownCloud.Widget.ActionBar</item>
        <item name="actionBarStyle">@style/Theme.ownCloud.Widget.ActionBar</item>
-       <item name="android:buttonStyle">@style/Theme.ownCloud.ButtonStyle</item>
+               <item name="colorPrimary">@color/primary</item>
+               <item name="colorPrimaryDark">@color/primary_dark</item>
+               <item name="colorAccent">@color/color_accent</item>
+               <item name="android:alertDialogTheme">@style/Theme.ownCloud.Dialog</item>
+               <item name="alertDialogTheme">@style/ownCloud.AlertDialog</item>
        </style>
-       
-       <style name="Theme.ownCloud.noActionBar" parent="style/Theme.AppCompat.Light">
-        <item name="android:buttonStyle">@style/Theme.ownCloud.ButtonStyle</item>
+
+       <!-- seperate action bar style for activities without an action bar -->
+       <style name="Theme.ownCloud.noActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
+               <item name="windowNoTitle">true</item>
+               <item name="windowActionBar">false</item>
+               <item name="colorPrimary">@color/primary</item>
+               <item name="colorPrimaryDark">@color/primary_dark</item>
+               <item name="colorAccent">@color/color_accent</item>
+               <item name="android:alertDialogTheme">@style/Theme.ownCloud.Dialog</item>
+               <item name="alertDialogTheme">@style/ownCloud.AlertDialog</item>
     </style>
 
+       <style name="Theme.ownCloud.noActionBar.Login" parent="Theme.ownCloud.noActionBar">
+               <item name="colorAccent">@color/white</item>
+       </style>
+
+       <style name="ownCloud.AlertDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
+               <item name="colorAccent">@color/color_accent</item>
+               <item name="android:textColorPrimary">@color/primary</item>
+       </style>
+
+       <style name="ownCloud.Dialog" parent="Theme.AppCompat.Light.Dialog">
+               <item name="colorAccent">@color/color_accent</item>
+       </style>
+
+       <style name="ProgressDialogTheme" parent="ownCloud.Dialog">
+               <item name="colorAccent">@color/color_accent</item>
+               <item name="android:textColorPrimary">@color/primary</item>
+               <item name="android:windowFrame">@color/transparent</item>
+               <item name="android:windowBackground">@color/transparent</item>
+               <item name="android:windowTitleBackgroundStyle">@drawable/process_dialog_background</item>
+       </style>
+
+       <style name="ownCloud.Button" parent="Widget.AppCompat.Button">
+               <item name="colorButtonNormal">@color/primary</item>
+       </style>
+
+       <style name="Button" parent="Base.Widget.AppCompat.Button">
+               <item name="colorButtonNormal">@color/secondary_button_color</item>
+               <item name="android:textColor">@color/color_accent</item>
+       </style>
+
+       <style name="Button.Primary" parent="Button">
+               <item name="colorButtonNormal">@color/primary_button_color</item>
+               <item name="android:textColor">@color/white</item>
+       </style>
+
+       <style name="Button.Borderless" parent="Base.Widget.AppCompat.Button.Borderless">
+               <item name="android:textColor">@color/color_accent</item>
+       </style>
+
+       <!-- separat translucent action bar style -->
+       <style name="Theme.ownCloud.Overlay" parent="style/Theme.ownCloud">
+               <item name="android:actionBarStyle">@style/Theme.ownCloud.Overlay.ActionBar</item>
+               <item name="windowActionBarOverlay">true</item>
+               <!-- Support library compatibility -->
+               <item name="actionBarStyle">@style/Theme.ownCloud.Overlay.ActionBar</item>
+       </style>
+
+       <!-- ACTION BAR STYLES -->
+       <style name="Theme.ownCloud.Overlay.ActionBar" parent="@style/Widget.AppCompat.ActionBar">
+               <item name="android:background">@color/owncloud_blue_transparent</item>
+               <item name="android:windowActionBarOverlay">true</item>
+
+               <!-- Support library compatibility -->
+               <item name="background">@color/owncloud_blue_transparent</item>
+               <item name="windowActionBarOverlay">true</item>
+       </style>
+
+       <!-- Progress bar -->
+       <style name="Widget.ownCloud.TopProgressBar" parent="style/Widget.AppCompat.ProgressBar.Horizontal">
+               <item name="android:progressDrawable">@drawable/actionbar_progress_horizontal</item>
+               <item name="android:indeterminateDrawable">@drawable/actionbar_progress_indeterminate_horizontal</item>
+       </style>
+
        <style name="Theme.ownCloud.Fullscreen" parent="style/Theme.AppCompat">
         <item name="android:windowFullscreen">true</item>
+               <item name="colorAccent">@color/color_accent</item>
     </style>
        
        
        <style name="Theme.ownCloud.Widget.ActionBar"
                parent="style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
-       <item name="android:background">@drawable/main_header_bg</item>
+       <item name="android:background">@color/owncloud_blue</item>
        <item name="background">@drawable/main_header_bg</item>
        <item name="android:textColor">#ffffff</item>
        <item name="android:shadowColor">#222222</item>
        </style>
 
        <!-- Dialogs -->
-       <style name="Theme.ownCloud.Dialog" parent="@android:style/Theme.Dialog">
+       <style name="Theme.ownCloud.Dialog" parent="style/Theme.AppCompat.Light.Dialog.Alert">
+               <item name="windowNoTitle">false</item>
+               <item name="colorAccent">@color/owncloud_blue_accent</item>
+               <item name="buttonBarButtonStyle">@style/Theme.ownCloud.Dialog.ButtonBar.Button</item>
+               <item name="buttonBarStyle">@style/Theme.ownCloud.Dialog.ButtonBar</item>
+       </style>
+
+       <style name="menu_labels_style">
+               <item name="android:background">@drawable/fab_label_background</item>
+               <item name="android:textColor">@color/fab_white</item>
+       </style>
+
+       <!-- Button Bar hack due to Lollipop bug:
+               https://code.google.com/p/android/issues/detail?id=78302
+       fix see:
+               http://stackoverflow.com/questions/27187353/dialog-buttons-with-long-text-not-wrapping-squeezed-out-material-theme-on-an
+        -->
+       <style name="Theme.ownCloud.Dialog.ButtonBar" parent="style/Widget.AppCompat.Button.ButtonBar.AlertDialog">
+               <!-- Making sure, the button bar uses parent width and is not restricted in height -->
+               <item name="android:layout_width">match_parent</item>
+               <item name="android:layout_height">wrap_content</item>
+               <item name="android:height">@null</item>
+               <item name="android:minHeight">@null</item>
+       </style>
+
+       <style name="Theme.ownCloud.Dialog.ButtonBar.Button" parent="style/Widget.AppCompat.Button.Borderless.Colored">
+               <!-- Setting the weight as follows should result in equally wide buttons filling the alert dialog width,
+            but instead they span further out of the dialog, breaking in multiple lines though -->
+               <item name="android:layout_width">0dp</item>
+               <item name="android:layout_weight">1</item>
+               <!-- setting a fixed width as follows results in narrow buttons with line breaks, but of course this is not a solution -->
+               <!-- <item name="android:width">100dp</item> -->
        </style>
        
        <!-- PopDownMenu -->
                    
     </style>
        
-       <style name="OAuthDialog" parent="@android:style/Theme.Dialog">
-               <item name="android:windowNoTitle">false</item> 
+       <style name="OAuthDialog" parent="style/Theme.AppCompat.Light.Dialog.Alert">
+               <item name="windowNoTitle">false</item>
+               <item name="colorAccent">@color/owncloud_blue_accent</item>
        </style>    
                
        <color name="setup_text_hint">#777777</color>
        <color name="setup_text_typed">#000000</color>
+    <style name="Theme.ownCloud.NoActionBar">
+        <item name="windowActionBar">false</item>
+        <item name="windowNoTitle">true</item>
+    </style>
+    <style name="Theme.ownCloud.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
+    <style name="Theme.ownCloud.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
 </resources>
\ No newline at end of file
index fc5c292..660e0fd 100644 (file)
@@ -1,12 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
-       
-    <!-- Buttons -->
-       <style name="Theme.ownCloud.ButtonStyle" parent="@android:style/Widget.Button">
-               <item name="android:background">@android:drawable/btn_default</item>
-               <item name="android:textColor">@color/button_text_color</item>
-       </style>
-       
+
        <!-- DropDown -->
        <style name="Theme.ownCloud.DropDownStyle"
                parent="style/Widget.AppCompat.Spinner.DropDown.ActionBar">
index 4823a83..e1876e9 100644 (file)
@@ -3,7 +3,7 @@
   ownCloud Android client application
 
   Copyright (C) 2012  Bartek Przybylski
-  Copyright (C) 2015 ownCloud Inc.
+  Copyright (C) 2012-2013 ownCloud Inc.
 
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License version 2,
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
+       <PreferenceCategory android:title="@string/prefs_category_general">
+               <com.owncloud.android.ui.PreferenceWithLongSummary
+                       android:title="@string/prefs_storage_path"
+                       android:key="storage_path" />
+       </PreferenceCategory>
     <PreferenceCategory android:title="@string/prefs_category_accounts" android:key="accounts_category">
     </PreferenceCategory>
-    
+
        <PreferenceCategory android:title="@string/prefs_category_security">
-           <android.preference.CheckBoxPreference android:title="@string/prefs_passcode" android:key="set_pincode" />
+               <android.preference.CheckBoxPreference android:title="@string/prefs_passcode" android:key="set_pincode" />
        </PreferenceCategory>
 
     <PreferenceCategory android:title="@string/prefs_category_instant_uploading" android:key="instant_uploading_category">
-         <com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle android:key="instant_uploading"
+               <com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle android:key="instant_uploading"
                                android:title="@string/prefs_instant_upload"
                                android:summary="@string/prefs_instant_upload_summary"/>
          <com.owncloud.android.ui.PreferenceWithLongSummary
                                                        android:title="@string/prefs_instant_upload_path_title"
                                                        android:key="instant_upload_path" />
            <com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle
-                                               android:title="@string/instant_upload_on_wifi"
-                                               android:key="instant_upload_on_wifi"/>
-           <com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle android:key="instant_video_uploading"
-                               android:title="@string/prefs_instant_video_upload"
-                               android:summary="@string/prefs_instant_video_upload_summary" />
+                       android:dependency="instant_uploading"
+                       android:disableDependentsState="true"
+               android:title="@string/instant_upload_on_wifi"
+               android:key="instant_upload_on_wifi"/>
+               <com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle
+                       android:dependency="instant_uploading"
+                       android:disableDependentsState="true"
+                       android:title="@string/instant_upload_on_charging"
+                       android:key="instant_upload_on_charging"/>
+
+               <com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle
+                       android:key="instant_video_uploading"
+               android:title="@string/prefs_instant_video_upload"
+               android:summary="@string/prefs_instant_video_upload_summary" />
            <com.owncloud.android.ui.PreferenceWithLongSummary
-                                                       android:title="@string/prefs_instant_video_upload_path_title"
-                                                       android:key="instant_video_upload_path" />
+                       android:dependency="instant_video_uploading"
+                       android:disableDependentsState="true"
+                       android:title="@string/prefs_instant_video_upload_path_title"
+                       android:key="instant_video_upload_path" />
            <com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle
-                                               android:title="@string/instant_video_upload_on_wifi"
-                                               android:key="instant_video_upload_on_wifi"/>
-           <!-- DISABLED FOR RELEASE UNTIL FIXED
+                       android:dependency="instant_video_uploading"
+                       android:disableDependentsState="true"
+               android:title="@string/instant_video_upload_on_wifi"
+               android:key="instant_video_upload_on_wifi"/>
+               <com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle
+                       android:dependency="instant_video_uploading"
+                       android:disableDependentsState="true"
+                       android:title="@string/instant_video_upload_on_charging"
+                       android:key="instant_video_upload_on_charging"/>
+               <com.owncloud.android.ui.dialog.OwnCloudListPreference android:key="prefs_instant_behaviour"
+                       android:dialogTitle="@string/prefs_instant_behaviour_dialogTitle"
+                       android:title="@string/prefs_instant_behaviour_title"
+                       android:entries="@array/pref_behaviour_entries"
+                       android:entryValues="@array/pref_behaviour_entryValues"
+                       android:defaultValue="NOTHING"
+                       android:summary="%s"
+                       />
+       </PreferenceCategory>
+
+       <PreferenceCategory android:title="@string/common_category" android:key="common_category">
+               <EditTextPreference android:title="@string/pref_cache_size"
+                                                       android:key="pref_cache_size"
+                                                       android:digits="0123456789"/>
+       </PreferenceCategory>
+
+       <PreferenceCategory android:title="@string/prefs_category_more" android:key="more">
+               <!-- DISABLED FOR RELEASE UNTIL FIXED
            CheckBoxPreference android:key="log_to_file"
                                android:title="@string/prefs_log_title"
                                android:summary="@string/prefs_log_summary"/>
                <Preference             android:key="log_history"
                                android:title="@string/prefs_log_title_history"
                                android:summary="@string/prefs_log_summary_history"/ -->
-                        
-    </PreferenceCategory>
-       
-       <PreferenceCategory android:title="@string/prefs_category_more" android:key="more">
     <Preference android:title="@string/prefs_help" android:key="help" />
     <Preference android:title="@string/prefs_recommend" android:key="recommend" />
     <Preference android:title="@string/prefs_feedback" android:key="feedback" />
     <Preference android:title="@string/prefs_imprint" android:key="imprint" />
-                        
-       <Preference             android:id="@+id/about_app" 
-                                       android:title="@string/about_title" 
+
+       <Preference             android:id="@+id/about_app"
+                                       android:title="@string/about_title"
                                        android:key="about_app" />
-       </PreferenceCategory>
-    
 
+       <Preference android:id="@+id/beta_link"
+                               android:title="Download latest beta version"
+                               android:key="beta_link" />
+
+       <Preference android:id="@+id/changelog_link"
+               android:title="Changelog beta version"
+               android:key="changelog_link" />
+
+       </PreferenceCategory>
 </PreferenceScreen>
diff --git a/res/xml/users_and_groups_searchable.xml b/res/xml/users_and_groups_searchable.xml
new file mode 100644 (file)
index 0000000..9eadd56
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ownCloud Android client application
+
+  @author David A. Velasco
+  Copyright (C) 2015 ownCloud Inc.
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License version 2,
+  as published by the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<!-- Searchable configuration to search users & groups in an OC server -->
+<searchable xmlns:android="http://schemas.android.com/apk/res/android"
+    android:label="@string/app_name"
+    android:hint="@string/search_users_and_groups_hint"
+    android:searchSuggestAuthority="com.owncloud.android.providers.UsersAndGroupsSearchProvider"
+    android:searchSuggestIntentAction="com.owncloud.android.providers.UsersAndGroupsSearchProvider.action.SHARE_WITH"
+    android:searchSuggestThreshold="1" >
+</searchable>
\ No newline at end of file
index ded68e1..7edbd6c 100644 (file)
@@ -22,7 +22,8 @@ echo "Executing Ant setup..."
 call git submodule init
 call git submodule update
 
-call android.bat update project -p libs/android-support-appcompat-v7-exploded-aar --target android-16
+call android.bat update project -p libs/android-support-appcompat-v7-exploded-aar --target android-23
+call android.bat update project -p libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar --target android-23
 call android.bat update lib-project -p owncloud-android-library
 call android.bat update project -p .
 call android.bat update project -p oc_jb_workaround
index a38c32d..216c54d 100755 (executable)
@@ -17,7 +17,8 @@ function initForAnt {
        git submodule update
 
        #Prepare project android-support-appcompat-v7 ; JAR file is not enough, includes resources
-       android update lib-project -p libs/android-support-appcompat-v7-exploded-aar --target android-16
+       android update lib-project -p libs/android-support-appcompat-v7-exploded-aar --target android-23
+       android update lib-project -p libs/com-getbase-floatingactionbutton-1-10-1-exploded-aar --target android-23
        
        #As default it updates the ant scripts
        android update lib-project -p owncloud-android-library
index c805f9f..401f607 100644 (file)
@@ -23,16 +23,21 @@ package com.owncloud.android;
 import android.app.Activity;
 import android.app.Application;
 import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.os.Build;
 import android.os.Bundle;
+import android.os.Environment;
+import android.preference.PreferenceManager;
 
 import com.owncloud.android.authentication.PassCodeManager;
 import com.owncloud.android.datamodel.ThumbnailsCacheManager;
 import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
 import com.owncloud.android.lib.common.OwnCloudClientManagerFactory.Policy;
 import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.utils.ExceptionHandler;
 
 
 /**
@@ -54,15 +59,24 @@ public class MainApp extends Application {
 
     private static Context mContext;
 
-    // TODO Enable when "On Device" is recovered?
-    // TODO better place
-    // private static boolean mOnlyOnDevice = false;
+    private static String storagePath;
+
+    private static boolean mOnlyOnDevice = false;
 
     
     public void onCreate(){
         super.onCreate();
         MainApp.mContext = getApplicationContext();
+
+        // Setup handler for uncaught exceptions.
+        Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler());
         
+
+        SharedPreferences appPrefs =
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
+        MainApp.storagePath = appPrefs.getString("storage_path", Environment.
+                              getExternalStorageDirectory().getAbsolutePath());
+
         boolean isSamlAuth = AUTH_ON.equals(getString(R.string.auth_method_saml_web_sso));
 
         OwnCloudClientManagerFactory.setUserAgent(getUserAgent());
@@ -82,7 +96,7 @@ public class MainApp extends Application {
             // Set folder for store logs
             Log_OC.setLogDataFolder(dataFolder);
 
-            Log_OC.startLogging();
+            Log_OC.startLogging(MainApp.storagePath);
             Log_OC.d("Debug", "start logging");
         }
 
@@ -135,6 +149,14 @@ public class MainApp extends Application {
         return MainApp.mContext;
     }
 
+    public static String getStoragePath(){
+        return MainApp.storagePath;
+    }
+
+    public static void setStoragePath(String path){
+        MainApp.storagePath = path;
+    }
+
     // Methods to obtain Strings referring app_name 
     //   From AccountAuthenticator 
     //   public static final String ACCOUNT_TYPE = "owncloud";    
@@ -176,14 +198,13 @@ public class MainApp extends Application {
         return getAppContext().getResources().getString(R.string.log_name);
     }
 
-    // TODO Enable when "On Device" is recovered ?
-//    public static void showOnlyFilesOnDevice(boolean state){
-//        mOnlyOnDevice = state;
-//    }
-//
-//    public static boolean getOnlyOnDevice(){
-//        return mOnlyOnDevice;
-//    }
+    public static void showOnlyFilesOnDevice(boolean state){
+        mOnlyOnDevice = state;
+    }
+
+    public static boolean getOnlyOnDevice(){
+        return mOnlyOnDevice;
+    }
 
     // user agent
     public static String getUserAgent() {
index c44b043..78d95e4 100644 (file)
@@ -19,7 +19,7 @@ package com.owncloud.android.authentication;
 import android.accounts.AccountAuthenticatorResponse;
 import android.accounts.AccountManager;
 import android.os.Bundle;
-import android.support.v7.app.ActionBarActivity;
+import android.support.v7.app.AppCompatActivity;
 
 /*
  * Base class for implementing an Activity that is used to help implement an AbstractAccountAuthenticator. 
@@ -32,7 +32,7 @@ import android.support.v7.app.ActionBarActivity;
  * then error AccountManager.ERROR_CODE_CANCELED will be called on the response.
  */
 
-public class AccountAuthenticatorActivity extends ActionBarActivity {
+public class AccountAuthenticatorActivity extends AppCompatActivity {
 
     private AccountAuthenticatorResponse mAccountAuthenticatorResponse = null;
     private Bundle mResultBundle = null;
index 87766b5..2f05a3e 100644 (file)
@@ -289,4 +289,15 @@ public class AccountUtils {
         return serverVersion;\r
     }\r
 \r
+    public static boolean hasSearchUsersSupport(Account account){\r
+        OwnCloudVersion serverVersion = null;\r
+        if (account != null) {\r
+            AccountManager accountMgr = AccountManager.get(MainApp.getAppContext());\r
+            String serverVersionStr = accountMgr.getUserData(account, Constants.KEY_OC_VERSION);\r
+            if (serverVersionStr != null) {\r
+                serverVersion = new OwnCloudVersion(serverVersionStr);\r
+            }\r
+        }\r
+        return (serverVersion != null ? serverVersion.isSearchUsersSupported() : false);\r
+    }\r
 }\r
index e8f42d9..418cdd5 100644 (file)
@@ -23,9 +23,6 @@
 \r
 package com.owncloud.android.authentication;\r
 \r
-import java.security.cert.X509Certificate;\r
-import java.util.Map;\r
-\r
 import android.accounts.Account;\r
 import android.accounts.AccountManager;\r
 import android.app.Dialog;\r
@@ -93,6 +90,9 @@ import com.owncloud.android.ui.dialog.SslUntrustedCertDialog;
 import com.owncloud.android.ui.dialog.SslUntrustedCertDialog.OnSslUntrustedCertListener;\r
 import com.owncloud.android.utils.DisplayUtils;\r
 \r
+import java.security.cert.X509Certificate;\r
+import java.util.Map;\r
+\r
 /**\r
  * This Activity is used to add an ownCloud account to the App\r
  */\r
@@ -250,8 +250,32 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         \r
         /// initialize general UI elements\r
         initOverallUi();\r
-        \r
+\r
         mOkButton = findViewById(R.id.buttonOK);\r
+        mOkButton.setOnClickListener(new View.OnClickListener() {\r
+\r
+            @Override\r
+            public void onClick(View v) {\r
+                onOkClick();\r
+            }\r
+        });\r
+\r
+        findViewById(R.id.centeredRefreshButton).setOnClickListener(new View.OnClickListener() {\r
+\r
+            @Override\r
+            public void onClick(View v) {\r
+                checkOcServer();\r
+            }\r
+        });\r
+\r
+        findViewById(R.id.embeddedRefreshButton).setOnClickListener(new View.OnClickListener() {\r
+\r
+            @Override\r
+            public void onClick(View v) {\r
+                checkOcServer();\r
+            }\r
+        });\r
+\r
 \r
         /// initialize block to be moved to single Fragment to check server and get info about it \r
         initServerPreFragment(savedInstanceState);\r
@@ -683,7 +707,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         \r
         mHostUrlInput.removeTextChangedListener(mHostUrlInputWatcher);\r
         mHostUrlInput.setOnFocusChangeListener(null);\r
-        \r
+\r
         super.onPause();\r
     }\r
     \r
@@ -723,7 +747,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
                 mOAuthTokenEndpointText.getText().toString().trim());\r
         \r
         getServerInfoIntent.putExtra(\r
-                OperationsService.EXTRA_OAUTH2_QUERY_PARAMETERS, \r
+                OperationsService.EXTRA_OAUTH2_QUERY_PARAMETERS,\r
                 queryParameters);\r
         \r
         if (mOperationsServiceBinder != null) {\r
@@ -782,6 +806,8 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         showRefreshButton(false);\r
 \r
         if (uri.length() != 0) {\r
+            uri = stripIndexPhpOrAppsFiles(uri, mHostUrlInput);\r
+\r
             // Handle internationalized domain names\r
             uri = DisplayUtils.convertIdn(uri, true);\r
 \r
@@ -792,8 +818,8 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             Intent getServerInfoIntent = new Intent();\r
             getServerInfoIntent.setAction(OperationsService.ACTION_GET_SERVER_INFO);\r
             getServerInfoIntent.putExtra(\r
-                OperationsService.EXTRA_SERVER_URL,\r
-                normalizeUrlSuffix(uri)\r
+                    OperationsService.EXTRA_SERVER_URL,\r
+                    normalizeUrlSuffix(uri)\r
             );\r
             if (mOperationsServiceBinder != null) {\r
                 mWaitingForOpId = mOperationsServiceBinder.queueNewOperation(getServerInfoIntent);\r
@@ -870,10 +896,8 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
      * is postponed until it is available.\r
      * \r
      * IMPORTANT ENTRY POINT 4\r
-     * \r
-     * @param view      OK button\r
      */\r
-    public void onOkClick(View view) {\r
+    public void onOkClick() {\r
         // this check should be unnecessary\r
         if (mServerInfo.mVersion == null || \r
                 !mServerInfo.mVersion.isVersionValid()  || \r
@@ -1126,6 +1150,17 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
         return url;\r
     }\r
 \r
+    private String stripIndexPhpOrAppsFiles(String url, EditText mHostUrlInput) {\r
+        if (url.endsWith("/index.php")) {\r
+            url = url.substring(0, url.lastIndexOf("/index.php"));\r
+            mHostUrlInput.setText(url);\r
+        } else if (url.contains("/index.php/apps/")) {\r
+            url = url.substring(0, url.lastIndexOf("/index.php/apps/"));\r
+            mHostUrlInput.setText(url);\r
+        }\r
+\r
+        return url;\r
+    }\r
 \r
     // TODO remove, if possible\r
     private String trimUrlWebdav(String url){       \r
@@ -1146,7 +1181,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
 \r
         switch (result.getCode()) {\r
         case OK_SSL:\r
-            mServerStatusIcon = android.R.drawable.ic_secure;\r
+            mServerStatusIcon = R.drawable.ic_lock;\r
             mServerStatusText = R.string.auth_secure_connection;\r
             break;\r
 \r
@@ -1157,7 +1192,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
                 mServerStatusIcon = R.drawable.ic_ok;\r
             } else {\r
                 mServerStatusText = R.string.auth_nossl_plain_ok_title;\r
-                mServerStatusIcon = android.R.drawable.ic_partial_secure;\r
+                mServerStatusIcon = R.drawable.ic_lock_open;\r
             }\r
             break;\r
 \r
@@ -1207,7 +1242,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
             mServerStatusText = R.string.auth_unknown_error_title;\r
             break;\r
         case OK_REDIRECT_TO_NON_SECURE_CONNECTION:\r
-            mServerStatusIcon = android.R.drawable.ic_partial_secure;\r
+            mServerStatusIcon = R.drawable.ic_lock_open;\r
             mServerStatusText = R.string.auth_redirect_non_secure_connection_title;\r
             break;\r
         default:\r
@@ -1227,7 +1262,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
 \r
         switch (result.getCode()) {\r
         case OK_SSL:\r
-            mAuthStatusIcon = android.R.drawable.ic_secure;\r
+            mAuthStatusIcon = R.drawable.ic_lock;\r
             mAuthStatusText = R.string.auth_secure_connection;\r
             break;\r
 \r
@@ -1238,7 +1273,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
                 mAuthStatusIcon = R.drawable.ic_ok;\r
             } else {\r
                 mAuthStatusText = R.string.auth_nossl_plain_ok_title;\r
-                mAuthStatusIcon = android.R.drawable.ic_partial_secure;\r
+                mAuthStatusIcon = R.drawable.ic_lock_open;\r
             }\r
             break;\r
 \r
@@ -1356,6 +1391,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
     public void onAuthenticatorTaskCallback(RemoteOperationResult result) {\r
         mWaitingForOpId = Long.MAX_VALUE;\r
         dismissDialog(WAIT_DIALOG_TAG);\r
+        mAsyncTask = null;\r
 \r
         if (result.isSuccess()) {\r
             Log_OC.d(TAG, "Successful access - time to save the account");\r
@@ -1607,18 +1643,6 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
     }\r
 \r
     /**\r
-     * Called when the refresh button in the input field for ownCloud host is clicked.\r
-     * \r
-     * Performs a new check on the URL in the input field.\r
-     * \r
-     * @param view      Refresh 'button'\r
-     */\r
-    public void onRefreshClick(View view) {\r
-        checkOcServer();\r
-    }\r
-\r
-\r
-    /**\r
      * Called when the eye icon in the password field is clicked.\r
      * \r
      * Toggles the visibility of the password in the field. \r
index e60233d..5fcccba 100644 (file)
@@ -74,7 +74,7 @@ public class PassCodeManager {
                 ){
 
             Intent i = new Intent(MainApp.getAppContext(), PassCodeActivity.class);
-            i.setAction(PassCodeActivity.ACTION_REQUEST);
+            i.setAction(PassCodeActivity.ACTION_CHECK);
             i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
             activity.startActivity(i);
 
index c5fc94d..3e07375 100644 (file)
 
 package com.owncloud.android.datamodel;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
 import android.accounts.Account;
 import android.content.ContentProviderClient;
 import android.content.ContentProviderOperation;
@@ -45,11 +37,27 @@ import android.provider.MediaStore;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.db.ProviderMeta.ProviderTableMeta;
 import com.owncloud.android.lib.common.utils.Log_OC;
-import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.lib.resources.shares.OCShare;
 import com.owncloud.android.lib.resources.shares.ShareType;
+import com.owncloud.android.lib.resources.status.CapabilityBooleanType;
+import com.owncloud.android.lib.resources.status.OCCapability;
 import com.owncloud.android.utils.FileStorageUtils;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.Vector;
+
 public class FileDataStorageManager {
 
     public static final int ROOT_PARENT_ID = 0;
@@ -60,7 +68,7 @@ public class FileDataStorageManager {
 
     private static String TAG = FileDataStorageManager.class.getSimpleName();
 
-    
+
     public FileDataStorageManager(Account account, ContentResolver cr) {
         mContentProviderClient = null;
         mContentResolver = cr;
@@ -73,7 +81,7 @@ public class FileDataStorageManager {
         mAccount = account;
     }
 
-    
+
     public void setAccount(Account account) {
         mAccount = account;
     }
@@ -82,22 +90,14 @@ public class FileDataStorageManager {
         return mAccount;
     }
 
-    public void setContentResolver(ContentResolver cr) {
-        mContentResolver = cr;
-    }
-
     public ContentResolver getContentResolver() {
         return mContentResolver;
     }
 
-    public void setContentProviderClient(ContentProviderClient cp) {
-        mContentProviderClient = cp;
-    }
-
     public ContentProviderClient getContentProviderClient() {
         return mContentProviderClient;
     }
-    
+
 
     public OCFile getFileByPath(String path) {
         Cursor c = getCursorForValue(ProviderTableMeta.FILE_PATH, path);
@@ -141,24 +141,22 @@ public class FileDataStorageManager {
         return fileExists(ProviderTableMeta.FILE_PATH, path);
     }
 
-    
-    public Vector<OCFile> getFolderContent(OCFile f/*, boolean onlyOnDevice*/) {
+
+    public Vector<OCFile> getFolderContent(OCFile f, boolean onlyOnDevice) {
         if (f != null && f.isFolder() && f.getFileId() != -1) {
-            // TODO Enable when "On Device" is recovered ?
-            return getFolderContent(f.getFileId()/*, onlyOnDevice*/);
+            return getFolderContent(f.getFileId(), onlyOnDevice);
 
         } else {
             return new Vector<OCFile>();
         }
     }
-    
-    
-    public Vector<OCFile> getFolderImages(OCFile folder/*, boolean onlyOnDevice*/) {
+
+
+    public Vector<OCFile> getFolderImages(OCFile folder, boolean onlyOnDevice) {
         Vector<OCFile> ret = new Vector<OCFile>(); 
         if (folder != null) {
             // TODO better implementation, filtering in the access to database instead of here
-            // TODO Enable when "On Device" is recovered ?
-            Vector<OCFile> tmp = getFolderContent(folder/*, onlyOnDevice*/);
+            Vector<OCFile> tmp = getFolderContent(folder, onlyOnDevice);
             OCFile current = null; 
             for (int i=0; i<tmp.size(); i++) {
                 current = tmp.get(i);
@@ -174,16 +172,15 @@ public class FileDataStorageManager {
         boolean overriden = false;
         ContentValues cv = new ContentValues();
         cv.put(ProviderTableMeta.FILE_MODIFIED, file.getModificationTimestamp());
-        cv.put( 
-            ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA, 
-            file.getModificationTimestampAtLastSyncForData()
+        cv.put(
+                ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA,
+                file.getModificationTimestampAtLastSyncForData()
         );
         cv.put(ProviderTableMeta.FILE_CREATION, file.getCreationTimestamp());
         cv.put(ProviderTableMeta.FILE_CONTENT_LENGTH, file.getFileLength());
         cv.put(ProviderTableMeta.FILE_CONTENT_TYPE, file.getMimetype());
         cv.put(ProviderTableMeta.FILE_NAME, file.getFileName());
-        //if (file.getParentId() != DataStorageManager.ROOT_PARENT_ID)
-            cv.put(ProviderTableMeta.FILE_PARENT, file.getParentId());
+        cv.put(ProviderTableMeta.FILE_PARENT, file.getParentId());
         cv.put(ProviderTableMeta.FILE_PATH, file.getRemotePath());
         if (!file.isFolder())
             cv.put(ProviderTableMeta.FILE_STORAGE_PATH, file.getStoragePath());
@@ -192,18 +189,20 @@ public class FileDataStorageManager {
         cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, file.getLastSyncDateForData());
         cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.isFavorite() ? 1 : 0);
         cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag());
-        cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, file.isShareByLink() ? 1 : 0);
+        cv.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, file.isSharedViaLink() ? 1 : 0);
+        cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, file.isSharedWithSharee() ? 1 : 0);
         cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink());
         cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions());
         cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId());
         cv.put(ProviderTableMeta.FILE_UPDATE_THUMBNAIL, file.needsUpdateThumbnail());
         cv.put(ProviderTableMeta.FILE_IS_DOWNLOADING, file.isDownloading());
-        
+        cv.put(ProviderTableMeta.FILE_ETAG_IN_CONFLICT, file.getEtagInConflict());
+
         boolean sameRemotePath = fileExists(file.getRemotePath());
         if (sameRemotePath ||
-                fileExists(file.getFileId())        ) {  // for renamed files
+                fileExists(file.getFileId())) {  // for renamed files; no more delete and create
 
-            OCFile oldFile = null;
+            OCFile oldFile;
             if (sameRemotePath) {
                 oldFile = getFileByPath(file.getRemotePath());
                 file.setFileId(oldFile.getFileId());
@@ -215,12 +214,12 @@ public class FileDataStorageManager {
             if (getContentResolver() != null) {
                 getContentResolver().update(ProviderTableMeta.CONTENT_URI, cv,
                         ProviderTableMeta._ID + "=?",
-                        new String[] { String.valueOf(file.getFileId()) });
+                        new String[]{String.valueOf(file.getFileId())});
             } else {
                 try {
                     getContentProviderClient().update(ProviderTableMeta.CONTENT_URI,
                             cv, ProviderTableMeta._ID + "=?",
-                            new String[] { String.valueOf(file.getFileId()) });
+                            new String[]{String.valueOf(file.getFileId())});
                 } catch (RemoteException e) {
                     Log_OC.e(TAG,
                             "Fail to insert insert file to database "
@@ -246,37 +245,31 @@ public class FileDataStorageManager {
                 long new_id = Long.parseLong(result_uri.getPathSegments()
                         .get(1));
                 file.setFileId(new_id);
-            }            
+            }
         }
 
-//        if (file.isFolder()) {
-//            updateFolderSize(file.getFileId());
-//        } else {
-//            updateFolderSize(file.getParentId());
-//        }
-        
         return overriden;
     }
 
 
     /**
      * Inserts or updates the list of files contained in a given folder.
-     * 
+     * <p/>
      * CALLER IS THE RESPONSIBLE FOR GRANTING RIGHT UPDATE OF INFORMATION, NOT THIS METHOD.
      * HERE ONLY DATA CONSISTENCY SHOULD BE GRANTED
-     *  
+     *
      * @param folder
      * @param updatedFiles
      * @param filesToRemove
      */
     public void saveFolder(
             OCFile folder, Collection<OCFile> updatedFiles, Collection<OCFile> filesToRemove
-        ) {
-        
-        Log_OC.d(TAG,  "Saving folder " + folder.getRemotePath() + " with " + updatedFiles.size() 
+    ) {
+
+        Log_OC.d(TAG,  "Saving folder " + folder.getRemotePath() + " with " + updatedFiles.size()
                 + " children and " + filesToRemove.size() + " files to remove");
 
-        ArrayList<ContentProviderOperation> operations = 
+        ArrayList<ContentProviderOperation> operations =
                 new ArrayList<ContentProviderOperation>(updatedFiles.size());
 
         // prepare operations to insert or update files to save in the given folder
@@ -284,8 +277,8 @@ public class FileDataStorageManager {
             ContentValues cv = new ContentValues();
             cv.put(ProviderTableMeta.FILE_MODIFIED, file.getModificationTimestamp());
             cv.put(
-                ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA, 
-                file.getModificationTimestampAtLastSyncForData()
+                    ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA,
+                    file.getModificationTimestampAtLastSyncForData()
             );
             cv.put(ProviderTableMeta.FILE_CREATION, file.getCreationTimestamp());
             cv.put(ProviderTableMeta.FILE_CONTENT_LENGTH, file.getFileLength());
@@ -302,21 +295,23 @@ public class FileDataStorageManager {
             cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, file.getLastSyncDateForData());
             cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.isFavorite() ? 1 : 0);
             cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag());
-            cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, file.isShareByLink() ? 1 : 0);
+            cv.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, file.isSharedViaLink() ? 1 : 0);
+            cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, file.isSharedWithSharee() ? 1 : 0);
             cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink());
             cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions());
             cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId());
             cv.put(ProviderTableMeta.FILE_UPDATE_THUMBNAIL, file.needsUpdateThumbnail());
             cv.put(ProviderTableMeta.FILE_IS_DOWNLOADING, file.isDownloading());
+            cv.put(ProviderTableMeta.FILE_ETAG_IN_CONFLICT, file.getEtagInConflict());
 
             boolean existsByPath = fileExists(file.getRemotePath());
             if (existsByPath || fileExists(file.getFileId())) {
                 // updating an existing file
                 operations.add(ContentProviderOperation.newUpdate(ProviderTableMeta.CONTENT_URI).
                         withValues(cv).
-                        withSelection(  ProviderTableMeta._ID + "=?", 
-                                new String[] { String.valueOf(file.getFileId()) })
-                                .build());
+                        withSelection(ProviderTableMeta._ID + "=?",
+                                new String[]{String.valueOf(file.getFileId())})
+                        .build());
 
             } else {
                 // adding a new file
@@ -324,23 +319,22 @@ public class FileDataStorageManager {
                         withValues(cv).build());
             }
         }
-        
+
         // prepare operations to remove files in the given folder
-        String where = ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?" + " AND " + 
+        String where = ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?" + " AND " +
                 ProviderTableMeta.FILE_PATH + "=?";
         String [] whereArgs = null;
         for (OCFile file : filesToRemove) {
             if (file.getParentId() == folder.getFileId()) {
                 whereArgs = new String[]{mAccount.name, file.getRemotePath()};
-                //Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_FILE, "" + file.getFileId());
                 if (file.isFolder()) {
                     operations.add(ContentProviderOperation.newDelete(
                             ContentUris.withAppendedId(
                                     ProviderTableMeta.CONTENT_URI_DIR, file.getFileId()
                             )
                     ).withSelection(where, whereArgs).build());
-                    
-                    File localFolder = 
+
+                    File localFolder =
                             new File(FileStorageUtils.getDefaultSavePathFor(mAccount.name, file));
                     if (localFolder.exists()) {
                         removeLocalFolder(localFolder);
@@ -351,7 +345,7 @@ public class FileDataStorageManager {
                                     ProviderTableMeta.CONTENT_URI_FILE, file.getFileId()
                             )
                     ).withSelection(where, whereArgs).build());
-                    
+
                     if (file.isDown()) {
                         String path = file.getStoragePath();
                         new File(path).delete();
@@ -360,13 +354,13 @@ public class FileDataStorageManager {
                 }
             }
         }
-        
+
         // update metadata of folder
         ContentValues cv = new ContentValues();
         cv.put(ProviderTableMeta.FILE_MODIFIED, folder.getModificationTimestamp());
         cv.put(
-            ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA, 
-            folder.getModificationTimestampAtLastSyncForData()
+                ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA,
+                folder.getModificationTimestampAtLastSyncForData()
         );
         cv.put(ProviderTableMeta.FILE_CREATION, folder.getCreationTimestamp());
         cv.put(ProviderTableMeta.FILE_CONTENT_LENGTH, 0);
@@ -379,16 +373,17 @@ public class FileDataStorageManager {
         cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, folder.getLastSyncDateForData());
         cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, folder.isFavorite() ? 1 : 0);
         cv.put(ProviderTableMeta.FILE_ETAG, folder.getEtag());
-        cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, folder.isShareByLink() ? 1 : 0);
+        cv.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, folder.isSharedViaLink() ? 1 : 0);
+        cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, folder.isSharedWithSharee() ? 1 : 0);
         cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, folder.getPublicLink());
         cv.put(ProviderTableMeta.FILE_PERMISSIONS, folder.getPermissions());
         cv.put(ProviderTableMeta.FILE_REMOTE_ID, folder.getRemoteId());
-        
+
         operations.add(ContentProviderOperation.newUpdate(ProviderTableMeta.CONTENT_URI).
                 withValues(cv).
-                withSelection(  ProviderTableMeta._ID + "=?", 
-                        new String[] { String.valueOf(folder.getFileId()) })
-                        .build());
+                withSelection(ProviderTableMeta._ID + "=?",
+                        new String[]{String.valueOf(folder.getFileId())})
+                .build());
 
         // apply operations in batch
         ContentProviderResult[] results = null;
@@ -413,7 +408,7 @@ public class FileDataStorageManager {
             long newId;
             Iterator<OCFile> filesIt = updatedFiles.iterator();
             OCFile file = null;
-            for (int i=0; i<results.length; i++) {
+            for (int i = 0; i < results.length; i++) {
                 if (filesIt.hasNext()) {
                     file = filesIt.next();
                 } else {
@@ -428,59 +423,25 @@ public class FileDataStorageManager {
                 }
             }
         }
-        
-        //updateFolderSize(folder.getFileId());
-        
-    }
 
+    }
 
-//    /**
-//     * 
-//     * @param id
-//     */
-//    private void updateFolderSize(long id) {
-//        if (id > FileDataStorageManager.ROOT_PARENT_ID) {
-//            Log_OC.d(TAG, "Updating size of " + id);
-//            if (getContentResolver() != null) {
-//                getContentResolver().update(ProviderTableMeta.CONTENT_URI_DIR, 
-//                        new ContentValues(),    
-                            // won't be used, but cannot be null; crashes in KLP
-//                        ProviderTableMeta._ID + "=?",
-//                        new String[] { String.valueOf(id) });
-//            } else {
-//                try {
-//                    getContentProviderClient().update(ProviderTableMeta.CONTENT_URI_DIR, 
-//                            new ContentValues(),    
-                                // won't be used, but cannot be null; crashes in KLP
-//                            ProviderTableMeta._ID + "=?",
-//                            new String[] { String.valueOf(id) });
-//                    
-//                } catch (RemoteException e) {
-//                    Log_OC.e(
-//    TAG, "Exception in update of folder size through compatibility patch " + e.getMessage());
-//                }
-//            }
-//        } else {
-//            Log_OC.e(TAG,  "not updating size for folder " + id);
-//        }
-//    }
-    
 
     public boolean removeFile(OCFile file, boolean removeDBData, boolean removeLocalCopy) {
         boolean success = true;
         if (file != null) {
             if (file.isFolder()) {
                 success = removeFolder(file, removeDBData, removeLocalCopy);
-                
+
             } else {
                 if (removeDBData) {
-                    Uri file_uri = ContentUris.withAppendedId(
-                        ProviderTableMeta.CONTENT_URI_FILE, 
-                        file.getFileId()
-                    );
-                    String where = ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?" + " AND " + 
+                    //Uri file_uri = Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_FILE,
+                    // ""+file.getFileId());
+                    Uri file_uri = ContentUris.withAppendedId(ProviderTableMeta.CONTENT_URI_FILE,
+                            file.getFileId());
+                    String where = ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?" + " AND " +
                             ProviderTableMeta.FILE_PATH + "=?";
-                    String [] whereArgs = new String[]{mAccount.name, file.getRemotePath()};
+                    String[] whereArgs = new String[]{mAccount.name, file.getRemotePath()};
                     int deleted = 0;
                     if (getContentProviderClient() != null) {
                         try {
@@ -491,7 +452,7 @@ public class FileDataStorageManager {
                     } else {
                         deleted = getContentResolver().delete(file_uri, where, whereArgs);
                     }
-                    success &= (deleted > 0); 
+                    success &= (deleted > 0);
                 }
                 String localPath = file.getStoragePath();
                 if (removeLocalCopy && file.isDown() && localPath != null && success) {
@@ -503,18 +464,19 @@ public class FileDataStorageManager {
                         // maybe unnecessary, but should be checked TODO remove if unnecessary
                         file.setStoragePath(null);
                         saveFile(file);
+                        saveConflict(file, null);
                     }
                 }
             }
         }
         return success;
     }
-    
+
 
     public boolean removeFolder(OCFile folder, boolean removeDBData, boolean removeLocalContent) {
         boolean success = true;
         if (folder != null && folder.isFolder()) {
-            if (removeDBData &&  folder.getFileId() != -1) {
+            if (removeDBData && folder.getFileId() != -1) {
                 success = removeFolderInDb(folder);
             }
             if (removeLocalContent && success) {
@@ -525,9 +487,9 @@ public class FileDataStorageManager {
     }
 
     private boolean removeFolderInDb(OCFile folder) {
-        Uri folder_uri = Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_DIR, "" + 
+        Uri folder_uri = Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_DIR, "" +
                 folder.getFileId());   // URI for recursive deletion
-        String where = ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?" + " AND " + 
+        String where = ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?" + " AND " +
                 ProviderTableMeta.FILE_PATH + "=?";
         String [] whereArgs = new String[]{mAccount.name, folder.getRemotePath()};
         int deleted = 0;
@@ -538,7 +500,7 @@ public class FileDataStorageManager {
                 e.printStackTrace();
             }
         } else {
-            deleted = getContentResolver().delete(folder_uri, where, whereArgs); 
+            deleted = getContentResolver().delete(folder_uri, where, whereArgs);
         }
         return deleted > 0;
     }
@@ -549,8 +511,7 @@ public class FileDataStorageManager {
         File localFolder = new File(localFolderPath);
         if (localFolder.exists()) {
             // stage 1: remove the local files already registered in the files database
-            // TODO Enable when "On Device" is recovered ?
-            Vector<OCFile> files = getFolderContent(folder.getFileId()/*, false*/);
+            Vector<OCFile> files = getFolderContent(folder.getFileId(), false);
             if (files != null) {
                 for (OCFile file : files) {
                     if (file.isFolder()) {
@@ -594,57 +555,58 @@ public class FileDataStorageManager {
         return success;
     }
 
-    
+
     /**
      * Updates database and file system for a file or folder that was moved to a different location.
-     * 
+     *
      * TODO explore better (faster) implementations
      * TODO throw exceptions up !
      */
     public void moveLocalFile(OCFile file, String targetPath, String targetParentPath) {
 
         if (file != null && file.fileExists() && !OCFile.ROOT_PATH.equals(file.getFileName())) {
-            
+
             OCFile targetParent = getFileByPath(targetParentPath);
             if (targetParent == null) {
-                throw new IllegalStateException("Parent folder of the target path does not exist!!");
+                throw new IllegalStateException(
+                        "Parent folder of the target path does not exist!!");
             }
-            
+
             /// 1. get all the descendants of the moved element in a single QUERY
             Cursor c = null;
             if (getContentProviderClient() != null) {
                 try {
                     c = getContentProviderClient().query(
-                        ProviderTableMeta.CONTENT_URI, 
-                        null,
-                        ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " + 
-                                ProviderTableMeta.FILE_PATH + " LIKE ? ",
-                        new String[] { 
-                                mAccount.name, 
-                                file.getRemotePath() + "%"  
-                        }, 
-                        ProviderTableMeta.FILE_PATH + " ASC "
+                            ProviderTableMeta.CONTENT_URI,
+                            null,
+                            ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " +
+                                    ProviderTableMeta.FILE_PATH + " LIKE ? ",
+                            new String[]{
+                                    mAccount.name,
+                                    file.getRemotePath() + "%"
+                            },
+                            ProviderTableMeta.FILE_PATH + " ASC "
                     );
                 } catch (RemoteException e) {
                     Log_OC.e(TAG, e.getMessage());
                 }
-                
+
             } else {
                 c = getContentResolver().query(
-                    ProviderTableMeta.CONTENT_URI, 
-                    null,
-                    ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " + 
-                            ProviderTableMeta.FILE_PATH + " LIKE ? ",
-                    new String[] { 
-                            mAccount.name, 
-                            file.getRemotePath() + "%"  
-                    }, 
-                    ProviderTableMeta.FILE_PATH + " ASC "
+                        ProviderTableMeta.CONTENT_URI,
+                        null,
+                        ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " +
+                                ProviderTableMeta.FILE_PATH + " LIKE ? ",
+                        new String[]{
+                                mAccount.name,
+                                file.getRemotePath() + "%"
+                        },
+                        ProviderTableMeta.FILE_PATH + " ASC "
                 );
             }
 
             /// 2. prepare a batch of update operations to change all the descendants
-            ArrayList<ContentProviderOperation> operations = 
+            ArrayList<ContentProviderOperation> operations =
                     new ArrayList<ContentProviderOperation>(c.getCount());
             String defaultSavePath = FileStorageUtils.getSavePath(mAccount.name);
             List<String> originalPathsToTriggerMediaScan = new ArrayList<String>();
@@ -656,36 +618,36 @@ public class FileDataStorageManager {
                     ContentValues cv = new ContentValues(); // keep construction in the loop
                     OCFile child = createFileInstance(c);
                     cv.put(
-                        ProviderTableMeta.FILE_PATH, 
-                        targetPath + child.getRemotePath().substring(lengthOfOldPath)
+                            ProviderTableMeta.FILE_PATH,
+                            targetPath + child.getRemotePath().substring(lengthOfOldPath)
                     );
-                    if (child.getStoragePath() != null && 
+                    if (child.getStoragePath() != null &&
                             child.getStoragePath().startsWith(defaultSavePath)) {
                         // update link to downloaded content - but local move is not done here!
-                        String targetLocalPath = defaultSavePath + targetPath + 
+                        String targetLocalPath = defaultSavePath + targetPath +
                                 child.getStoragePath().substring(lengthOfOldStoragePath);
-                        
+
                         cv.put(ProviderTableMeta.FILE_STORAGE_PATH, targetLocalPath);
-                        
+
                         originalPathsToTriggerMediaScan.add(child.getStoragePath());
                         newPathsToTriggerMediaScan.add(targetLocalPath);
-                        
+
                     }
                     if (child.getRemotePath().equals(file.getRemotePath())) {
                         cv.put(
                                 ProviderTableMeta.FILE_PARENT,
                                 targetParent.getFileId()
-                            );
+                        );
                     }
                     operations.add(
-                        ContentProviderOperation.newUpdate(ProviderTableMeta.CONTENT_URI).
-                            withValues(cv).
-                            withSelection(  
-                                    ProviderTableMeta._ID + "=?", 
-                                    new String[] { String.valueOf(child.getFileId()) }
+                            ContentProviderOperation.newUpdate(ProviderTableMeta.CONTENT_URI).
+                                    withValues(cv).
+                                    withSelection(
+                                            ProviderTableMeta._ID + "=?",
+                                            new String[]{String.valueOf(child.getFileId())}
                                     )
-                            .build());
-                    
+                                    .build());
+
                 } while (c.moveToNext());
             }
             c.close();
@@ -700,7 +662,8 @@ public class FileDataStorageManager {
                 }
 
             } catch (Exception e) {
-                Log_OC.e(TAG, "Fail to update " + file.getFileId() + " and descendants in database", e);
+                Log_OC.e(TAG, "Fail to update " + file.getFileId() + " and descendants in database",
+                        e);
             }
 
             /// 4. move in local file system 
@@ -730,11 +693,94 @@ public class FileDataStorageManager {
                 }
             }
         }
-        
+
     }
+
+    public void copyLocalFile(OCFile file, String targetPath) {
+
+        if (file != null && file.fileExists() && !OCFile.ROOT_PATH.equals(file.getFileName())) {
+            String localPath = FileStorageUtils.getDefaultSavePathFor(mAccount.name, file);
+            File localFile = new File(localPath);
+            boolean copied = false;
+            String defaultSavePath = FileStorageUtils.getSavePath(mAccount.name);
+            if (localFile.exists()) {
+                File targetFile = new File(defaultSavePath + targetPath);
+                File targetFolder = targetFile.getParentFile();
+                if (!targetFolder.exists()) {
+                    targetFolder.mkdirs();
+                }
+                copied = FileStorageUtils.copyFile(localFile, targetFile);
+            }
+            Log_OC.d(TAG, "Local file COPIED : " + copied);
+        }
+    }
+
+    public void migrateStoredFiles(String srcPath, String dstPath) throws Exception {
+        Cursor c = null;
+        if (getContentResolver() != null) {
+            c = getContentResolver().query(ProviderTableMeta.CONTENT_URI_FILE,
+                    null,
+                    ProviderTableMeta.FILE_STORAGE_PATH  + " IS NOT NULL",
+                    null,
+                    null);
+
+        } else {
+            try {
+                c = getContentProviderClient().query(ProviderTableMeta.CONTENT_URI_FILE,
+                        new String[]{ProviderTableMeta._ID, ProviderTableMeta.FILE_STORAGE_PATH},
+                        ProviderTableMeta.FILE_STORAGE_PATH + " IS NOT NULL",
+                        null,
+                        null);
+            } catch (RemoteException e) {
+                Log_OC.e(TAG, e.getMessage());
+                throw e;
+            }
+        }
+
+        ArrayList<ContentProviderOperation> operations =
+                new ArrayList<ContentProviderOperation>(c.getCount());
+        if (c.moveToFirst()) {
+            do {
+                ContentValues cv = new ContentValues();
+                long fileId = c.getLong(c.getColumnIndex(ProviderTableMeta._ID));
+                String oldFileStoragePath = c.getString(c.getColumnIndex(ProviderTableMeta.FILE_STORAGE_PATH));
+
+                if (oldFileStoragePath.startsWith(srcPath)) {
+
+                    cv.put(
+                            ProviderTableMeta.FILE_STORAGE_PATH,
+                            oldFileStoragePath.replaceFirst(srcPath, dstPath));
+
+                    operations.add(
+                            ContentProviderOperation.newUpdate(ProviderTableMeta.CONTENT_URI).
+                                    withValues(cv).
+                                    withSelection(
+                                            ProviderTableMeta._ID + "=?",
+                                            new String[]{String.valueOf(fileId)}
+                                    )
+                                    .build());
+                }
+
+            } while (c.moveToNext());
+        }
+        c.close();
+
+        /// 3. apply updates in batch
+        try {
+            if (getContentResolver() != null) {
+                getContentResolver().applyBatch(MainApp.getAuthority(), operations);
+
+            } else {
+                getContentProviderClient().applyBatch(operations);
+            }
+
+        } catch (Exception e) {
+            throw e;
+        }
+    }
+
     
-    
-    private Vector<OCFile> getFolderContent(long parentId/*, boolean onlyOnDevice*/) {
+    private Vector<OCFile> getFolderContent(long parentId, boolean onlyOnDevice) {
 
         Vector<OCFile> ret = new Vector<OCFile>();
 
@@ -745,26 +791,25 @@ public class FileDataStorageManager {
 
         if (getContentProviderClient() != null) {
             try {
-                c = getContentProviderClient().query(req_uri, null, 
-                        ProviderTableMeta.FILE_PARENT + "=?" ,
-                        new String[] { String.valueOf(parentId)}, null);
+                c = getContentProviderClient().query(req_uri, null,
+                        ProviderTableMeta.FILE_PARENT + "=?",
+                        new String[]{String.valueOf(parentId)}, null);
             } catch (RemoteException e) {
                 Log_OC.e(TAG, e.getMessage());
                 return ret;
             }
         } else {
-            c = getContentResolver().query(req_uri, null, 
-                    ProviderTableMeta.FILE_PARENT + "=?" ,
-                    new String[] { String.valueOf(parentId)}, null);
+            c = getContentResolver().query(req_uri, null,
+                    ProviderTableMeta.FILE_PARENT + "=?",
+                    new String[]{String.valueOf(parentId)}, null);
         }
 
         if (c.moveToFirst()) {
             do {
                 OCFile child = createFileInstance(c);
-                // TODO Enable when "On Device" is recovered ?
-                // if (child.isFolder() || !onlyOnDevice || onlyOnDevice && child.isDown()){
+                 if (child.isFolder() || !onlyOnDevice || onlyOnDevice && child.isDown()){
                     ret.add(child);
-                // }
+                 }
             } while (c.moveToNext());
         }
 
@@ -774,8 +819,8 @@ public class FileDataStorageManager {
 
         return ret;
     }
-    
-    
+
+
     private OCFile createRootDir() {
         OCFile file = new OCFile(OCFile.ROOT_PATH);
         file.setMimetype("DIR");
@@ -793,7 +838,7 @@ public class FileDataStorageManager {
                             cmp_key + "=? AND "
                                     + ProviderTableMeta.FILE_ACCOUNT_OWNER
                                     + "=?",
-                                    new String[] { value, mAccount.name }, null);
+                            new String[]{value, mAccount.name}, null);
         } else {
             try {
                 c = getContentProviderClient().query(
@@ -801,7 +846,7 @@ public class FileDataStorageManager {
                         null,
                         cmp_key + "=? AND "
                                 + ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",
-                                new String[] { value, mAccount.name }, null);
+                        new String[]{value, mAccount.name}, null);
             } catch (RemoteException e) {
                 Log_OC.e(TAG,
                         "Couldn't determine file existance, assuming non existance: "
@@ -823,14 +868,14 @@ public class FileDataStorageManager {
                             key + "=? AND "
                                     + ProviderTableMeta.FILE_ACCOUNT_OWNER
                                     + "=?",
-                                    new String[] { value, mAccount.name }, null);
+                            new String[]{value, mAccount.name}, null);
         } else {
             try {
                 c = getContentProviderClient().query(
                         ProviderTableMeta.CONTENT_URI,
                         null,
                         key + "=? AND " + ProviderTableMeta.FILE_ACCOUNT_OWNER
-                        + "=?", new String[] { value, mAccount.name },
+                                + "=?", new String[]{value, mAccount.name},
                         null);
             } catch (RemoteException e) {
                 Log_OC.e(TAG, "Could not get file details: " + e.getMessage());
@@ -839,7 +884,7 @@ public class FileDataStorageManager {
         }
         return c;
     }
-    
+
 
     private OCFile createFileInstance(Cursor c) {
         OCFile file = null;
@@ -880,8 +925,10 @@ public class FileDataStorageManager {
             file.setFavorite(c.getInt(
                     c.getColumnIndex(ProviderTableMeta.FILE_KEEP_IN_SYNC)) == 1 ? true : false);
             file.setEtag(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_ETAG)));
-            file.setShareByLink(c.getInt(
-                    c.getColumnIndex(ProviderTableMeta.FILE_SHARE_BY_LINK)) == 1 ? true : false);
+            file.setShareViaLink(c.getInt(
+                    c.getColumnIndex(ProviderTableMeta.FILE_SHARED_VIA_LINK)) == 1 ? true : false);
+            file.setShareWithSharee(c.getInt(
+                    c.getColumnIndex(ProviderTableMeta.FILE_SHARED_WITH_SHAREE)) == 1 ? true : false);
             file.setPublicLink(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_PUBLIC_LINK)));
             file.setPermissions(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_PERMISSIONS)));
             file.setRemoteId(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_REMOTE_ID)));
@@ -889,42 +936,12 @@ public class FileDataStorageManager {
                     c.getColumnIndex(ProviderTableMeta.FILE_UPDATE_THUMBNAIL)) == 1 ? true : false);
             file.setDownloading(c.getInt(
                     c.getColumnIndex(ProviderTableMeta.FILE_IS_DOWNLOADING)) == 1 ? true : false);
-                    
+            file.setEtagInConflict(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_ETAG_IN_CONFLICT)));
+
         }
         return file;
     }
-    
-    /**
-     * Returns if the file/folder is shared by link or not
-     * @param path  Path of the file/folder
-     * @return
-     */
-    public boolean isShareByLink(String path) {
-        Cursor c = getCursorForValue(ProviderTableMeta.FILE_STORAGE_PATH, path);
-        OCFile file = null;
-        if (c.moveToFirst()) {
-            file = createFileInstance(c);
-        }
-        c.close();
-        return file.isShareByLink();
-    }
-    
-    /**
-     * Returns the public link of the file/folder
-     * @param path  Path of the file/folder
-     * @return
-     */
-    public String getPublicLink(String path) {
-        Cursor c = getCursorForValue(ProviderTableMeta.FILE_STORAGE_PATH, path);
-        OCFile file = null;
-        if (c.moveToFirst()) {
-            file = createFileInstance(c);
-        }
-        c.close();
-        return file.getPublicLink();
-    }
-    
-    
+
     // Methods for Shares
     public boolean saveShare(OCShare share) {
         boolean overriden = false;
@@ -939,26 +956,25 @@ public class FileDataStorageManager {
         cv.put(ProviderTableMeta.OCSHARES_EXPIRATION_DATE, share.getExpirationDate());
         cv.put(ProviderTableMeta.OCSHARES_TOKEN, share.getToken());
         cv.put(
-            ProviderTableMeta.OCSHARES_SHARE_WITH_DISPLAY_NAME, 
-            share.getSharedWithDisplayName()
+                ProviderTableMeta.OCSHARES_SHARE_WITH_DISPLAY_NAME,
+                share.getSharedWithDisplayName()
         );
         cv.put(ProviderTableMeta.OCSHARES_IS_DIRECTORY, share.isFolder() ? 1 : 0);
         cv.put(ProviderTableMeta.OCSHARES_USER_ID, share.getUserId());
-        cv.put(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED, share.getIdRemoteShared());
+        cv.put(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED, share.getRemoteId());
         cv.put(ProviderTableMeta.OCSHARES_ACCOUNT_OWNER, mAccount.name);
-        
-        if (shareExists(share.getIdRemoteShared())) {   // for renamed files
 
+        if (shareExists(share.getRemoteId())) {// for renamed files; no more delete and create
             overriden = true;
             if (getContentResolver() != null) {
                 getContentResolver().update(ProviderTableMeta.CONTENT_URI_SHARE, cv,
                         ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED + "=?",
-                        new String[] { String.valueOf(share.getIdRemoteShared()) });
+                        new String[]{String.valueOf(share.getRemoteId())});
             } else {
                 try {
                     getContentProviderClient().update(ProviderTableMeta.CONTENT_URI_SHARE,
                             cv, ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED + "=?",
-                            new String[] { String.valueOf(share.getIdRemoteShared()) });
+                            new String[]{String.valueOf(share.getRemoteId())});
                 } catch (RemoteException e) {
                     Log_OC.e(TAG,
                             "Fail to insert insert file to database "
@@ -984,33 +1000,62 @@ public class FileDataStorageManager {
                 long new_id = Long.parseLong(result_uri.getPathSegments()
                         .get(1));
                 share.setId(new_id);
-            }            
+            }
         }
 
         return overriden;
     }
 
 
-    public OCShare getFirstShareByPathAndType(String path, ShareType type) {
+    /**
+     * Get first share bound to a file with a known path and given {@link ShareType}.
+     *
+     * @param path          Path of the file.
+     * @param type          Type of the share to get
+     * @param shareWith     Target of the share. Ignored in type is {@link ShareType#PUBLIC_LINK}
+     * @return              First {@OCShare} instance found in DB bound to the file in 'path'
+     */
+    public OCShare getFirstShareByPathAndType(String path, ShareType type, String shareWith) {
         Cursor c = null;
+        if (shareWith == null) {
+            shareWith = "";
+        }
+
+        String selection = ProviderTableMeta.OCSHARES_PATH + "=? AND "
+                + ProviderTableMeta.OCSHARES_SHARE_TYPE + "=? AND "
+                + ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?" ;
+        if (!ShareType.PUBLIC_LINK.equals(type)) {
+            selection += " AND " + ProviderTableMeta.OCSHARES_SHARE_WITH + "=?";
+        }
+
+        String [] selectionArgs;
+        if (ShareType.PUBLIC_LINK.equals(type)) {
+            selectionArgs = new String[]{
+                    path,
+                    Integer.toString(type.getValue()),
+                    mAccount.name
+            };
+        } else {
+            selectionArgs = new String[]{
+                    path,
+                    Integer.toString(type.getValue()),
+                    mAccount.name,
+                    shareWith
+            };
+        }
+
         if (getContentResolver() != null) {
             c = getContentResolver().query(
                     ProviderTableMeta.CONTENT_URI_SHARE,
                     null,
-                    ProviderTableMeta.OCSHARES_PATH + "=? AND "
-                            + ProviderTableMeta.OCSHARES_SHARE_TYPE + "=? AND "
-                            + ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?",
-                    new String[] { path, Integer.toString(type.getValue()), mAccount.name },
+                    selection, selectionArgs,
                     null);
         } else {
             try {
                 c = getContentProviderClient().query(
                         ProviderTableMeta.CONTENT_URI_SHARE,
                         null,
-                        ProviderTableMeta.OCSHARES_PATH + "=? AND "
-                                + ProviderTableMeta.OCSHARES_SHARE_TYPE + "=? AND "
-                                + ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?",
-                        new String[] { path, Integer.toString(type.getValue()), mAccount.name }, 
+                        selection, selectionArgs,
                         null);
 
             } catch (RemoteException e) {
@@ -1025,7 +1070,7 @@ public class FileDataStorageManager {
         c.close();
         return share;
     }
-    
+
     private OCShare createShareInstance(Cursor c) {
         OCShare share = null;
         if (c != null) {
@@ -1036,6 +1081,8 @@ public class FileDataStorageManager {
                     .getColumnIndex(ProviderTableMeta.OCSHARES_ITEM_SOURCE)));
             share.setShareType(ShareType.fromValue(c.getInt(c
                     .getColumnIndex(ProviderTableMeta.OCSHARES_SHARE_TYPE))));
+            share.setShareWith(c.getString(c
+                    .getColumnIndex(ProviderTableMeta.OCSHARES_SHARE_WITH)));
             share.setPermissions(c.getInt(c
                     .getColumnIndex(ProviderTableMeta.OCSHARES_PERMISSIONS)));
             share.setSharedDate(c.getLong(c
@@ -1047,12 +1094,10 @@ public class FileDataStorageManager {
             share.setSharedWithDisplayName(c.getString(c
                     .getColumnIndex(ProviderTableMeta.OCSHARES_SHARE_WITH_DISPLAY_NAME)));
             share.setIsFolder(c.getInt(
-                    c.getColumnIndex(ProviderTableMeta.OCSHARES_IS_DIRECTORY)) == 1 ? true : false);
+                    c.getColumnIndex(ProviderTableMeta.OCSHARES_IS_DIRECTORY)) == 1);
             share.setUserId(c.getLong(c.getColumnIndex(ProviderTableMeta.OCSHARES_USER_ID)));
-            share.setIdRemoteShared(
-                c.getLong(c.getColumnIndex(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED))
-            );
-                    
+            share.setIdRemoteShared(c.getLong(
+                    c.getColumnIndex(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED)));
         }
         return share;
     }
@@ -1066,7 +1111,7 @@ public class FileDataStorageManager {
                             cmp_key + "=? AND "
                                     + ProviderTableMeta.OCSHARES_ACCOUNT_OWNER
                                     + "=?",
-                                    new String[] { value, mAccount.name }, null);
+                            new String[]{value, mAccount.name}, null);
         } else {
             try {
                 c = getContentProviderClient().query(
@@ -1074,7 +1119,7 @@ public class FileDataStorageManager {
                         null,
                         cmp_key + "=? AND "
                                 + ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?",
-                                new String[] { value, mAccount.name }, null);
+                        new String[]{value, mAccount.name}, null);
             } catch (RemoteException e) {
                 Log_OC.e(TAG,
                         "Couldn't determine file existance, assuming non existance: "
@@ -1086,79 +1131,97 @@ public class FileDataStorageManager {
         c.close();
         return retval;
     }
-    
+
     private boolean shareExists(long remoteId) {
         return shareExists(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED, String.valueOf(remoteId));
     }
 
-    private void cleanSharedFiles() {
+    private void resetShareFlagsInAllFiles() {
         ContentValues cv = new ContentValues();
-        cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, false);
+        cv.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, false);
+        cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, false);
         cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, "");
         String where = ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?";
-        String [] whereArgs = new String[]{mAccount.name};
-        
+        String[] whereArgs = new String[]{mAccount.name};
+
         if (getContentResolver() != null) {
             getContentResolver().update(ProviderTableMeta.CONTENT_URI, cv, where, whereArgs);
 
         } else {
             try {
-                getContentProviderClient().update(
-                        ProviderTableMeta.CONTENT_URI, cv, where, whereArgs
-                );
-                
+                getContentProviderClient().update(ProviderTableMeta.CONTENT_URI, cv, where,
+                        whereArgs);
             } catch (RemoteException e) {
-                Log_OC.e(TAG, "Exception in cleanSharedFiles" + e.getMessage());
+                Log_OC.e(TAG, "Exception in resetShareFlagsInAllFiles" + e.getMessage());
             }
         }
     }
 
-    private void cleanSharedFilesInFolder(OCFile folder) {
+    private void resetShareFlagsInFolder(OCFile folder) {
         ContentValues cv = new ContentValues();
-        cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, false);
+        cv.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, false);
+        cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, false);
         cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, "");
-        String where = ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " + 
+        String where = ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " +
                 ProviderTableMeta.FILE_PARENT + "=?";
         String [] whereArgs = new String[] { mAccount.name , String.valueOf(folder.getFileId()) };
-        
+
         if (getContentResolver() != null) {
             getContentResolver().update(ProviderTableMeta.CONTENT_URI, cv, where, whereArgs);
 
         } else {
             try {
-                getContentProviderClient().update(
-                        ProviderTableMeta.CONTENT_URI, cv, where, whereArgs
-                );
-                
+                getContentProviderClient().update(ProviderTableMeta.CONTENT_URI, cv, where,
+                        whereArgs);
+            } catch (RemoteException e) {
+                Log_OC.e(TAG, "Exception in resetShareFlagsInFolder " + e.getMessage());
+            }
+        }
+    }
+
+    private void resetShareFlagInAFile(String filePath){
+        ContentValues cv = new ContentValues();
+        cv.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, false);
+        cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, false);
+        cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, "");
+        String where = ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " +
+                ProviderTableMeta.FILE_PATH+ "=?";
+        String [] whereArgs = new String[] { mAccount.name , filePath };
+
+        if (getContentResolver() != null) {
+            getContentResolver().update(ProviderTableMeta.CONTENT_URI, cv, where, whereArgs);
+
+        } else {
+            try {
+                getContentProviderClient().update(ProviderTableMeta.CONTENT_URI, cv, where,
+                        whereArgs);
             } catch (RemoteException e) {
-                Log_OC.e(TAG, "Exception in cleanSharedFilesInFolder " + e.getMessage());
+                Log_OC.e(TAG, "Exception in resetShareFlagsInFolder " + e.getMessage());
             }
         }
     }
 
     private void cleanShares() {
         String where = ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?";
-        String [] whereArgs = new String[]{mAccount.name};
-        
+        String[] whereArgs = new String[]{mAccount.name};
+
         if (getContentResolver() != null) {
             getContentResolver().delete(ProviderTableMeta.CONTENT_URI_SHARE, where, whereArgs);
 
         } else {
             try {
-                getContentProviderClient().delete(
-                        ProviderTableMeta.CONTENT_URI_SHARE, where, whereArgs
-                );
-                
+                getContentProviderClient().delete(ProviderTableMeta.CONTENT_URI_SHARE, where,
+                        whereArgs);
             } catch (RemoteException e) {
                 Log_OC.e(TAG, "Exception in cleanShares" + e.getMessage());
             }
         }
     }
-    
+
     public void saveShares(Collection<OCShare> shares) {
         cleanShares();
         if (shares != null) {
-            ArrayList<ContentProviderOperation> operations = 
+            ArrayList<ContentProviderOperation> operations =
                     new ArrayList<ContentProviderOperation>(shares.size());
 
             // prepare operations to insert or update files to save in the given folder
@@ -1174,68 +1237,62 @@ public class FileDataStorageManager {
                 cv.put(ProviderTableMeta.OCSHARES_EXPIRATION_DATE, share.getExpirationDate());
                 cv.put(ProviderTableMeta.OCSHARES_TOKEN, share.getToken());
                 cv.put(
-                    ProviderTableMeta.OCSHARES_SHARE_WITH_DISPLAY_NAME, 
-                    share.getSharedWithDisplayName()
+                        ProviderTableMeta.OCSHARES_SHARE_WITH_DISPLAY_NAME,
+                        share.getSharedWithDisplayName()
                 );
                 cv.put(ProviderTableMeta.OCSHARES_IS_DIRECTORY, share.isFolder() ? 1 : 0);
                 cv.put(ProviderTableMeta.OCSHARES_USER_ID, share.getUserId());
-                cv.put(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED, share.getIdRemoteShared());
+                cv.put(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED, share.getRemoteId());
                 cv.put(ProviderTableMeta.OCSHARES_ACCOUNT_OWNER, mAccount.name);
 
-                if (shareExists(share.getIdRemoteShared())) {
+                if (shareExists(share.getRemoteId())) {
                     // updating an existing file
                     operations.add(
                             ContentProviderOperation.newUpdate(ProviderTableMeta.CONTENT_URI_SHARE).
-                            withValues(cv).
-                            withSelection(
-                                    ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED + "=?", 
-                                    new String[] { String.valueOf(share.getIdRemoteShared()) }
-                            ).
-                            build()
-                    );
-
+                                    withValues(cv).
+                                    withSelection(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED + "=?",
+                                            new String[]{String.valueOf(share.getRemoteId())})
+                                    .build());
                 } else {
                     // adding a new file
                     operations.add(
                             ContentProviderOperation.newInsert(ProviderTableMeta.CONTENT_URI_SHARE).
-                            withValues(cv).
-                            build()
+                                    withValues(cv).
+                                    build()
                     );
                 }
             }
-            
+
             // apply operations in batch
             if (operations.size() > 0) {
                 @SuppressWarnings("unused")
                 ContentProviderResult[] results = null;
-                Log_OC.d(TAG, "Sending " + operations.size() + 
+                Log_OC.d(TAG, "Sending " + operations.size() +
                         " operations to FileContentProvider");
                 try {
                     if (getContentResolver() != null) {
-                        results = getContentResolver().applyBatch(
-                                MainApp.getAuthority(), operations
-                        );
-    
+                        results = getContentResolver().applyBatch(MainApp.getAuthority(),
+                                operations);
                     } else {
                         results = getContentProviderClient().applyBatch(operations);
                     }
-    
+
                 } catch (OperationApplicationException e) {
                     Log_OC.e(TAG, "Exception in batch of operations " + e.getMessage());
-    
+
                 } catch (RemoteException e) {
                     Log_OC.e(TAG, "Exception in batch of operations  " + e.getMessage());
                 }
             }
         }
-        
+
     }
-    
+
     public void updateSharedFiles(Collection<OCFile> sharedFiles) {
-        cleanSharedFiles();
-        
+        resetShareFlagsInAllFiles();
+
         if (sharedFiles != null) {
-            ArrayList<ContentProviderOperation> operations = 
+            ArrayList<ContentProviderOperation> operations =
                     new ArrayList<ContentProviderOperation>(sharedFiles.size());
 
             // prepare operations to insert or update files to save in the given folder
@@ -1243,8 +1300,8 @@ public class FileDataStorageManager {
                 ContentValues cv = new ContentValues();
                 cv.put(ProviderTableMeta.FILE_MODIFIED, file.getModificationTimestamp());
                 cv.put(
-                    ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA, 
-                    file.getModificationTimestampAtLastSyncForData()
+                        ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA,
+                        file.getModificationTimestampAtLastSyncForData()
                 );
                 cv.put(ProviderTableMeta.FILE_CREATION, file.getCreationTimestamp());
                 cv.put(ProviderTableMeta.FILE_CONTENT_LENGTH, file.getFileLength());
@@ -1258,78 +1315,75 @@ public class FileDataStorageManager {
                 cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, mAccount.name);
                 cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE, file.getLastSyncDateForProperties());
                 cv.put(
-                    ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, 
-                    file.getLastSyncDateForData()
+                        ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA,
+                        file.getLastSyncDateForData()
                 );
                 cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.isFavorite() ? 1 : 0);
                 cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag());
-                cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, file.isShareByLink() ? 1 : 0);
+                cv.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, file.isSharedViaLink() ? 1 : 0);
+                cv.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, file.isSharedWithSharee() ? 1 : 0);
                 cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink());
                 cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions());
                 cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId());
                 cv.put(
-                    ProviderTableMeta.FILE_UPDATE_THUMBNAIL, 
-                    file.needsUpdateThumbnail() ? 1 : 0
+                        ProviderTableMeta.FILE_UPDATE_THUMBNAIL,
+                        file.needsUpdateThumbnail() ? 1 : 0
                 );
                 cv.put(
                         ProviderTableMeta.FILE_IS_DOWNLOADING,
                         file.isDownloading() ? 1 : 0
                 );
+                cv.put(ProviderTableMeta.FILE_ETAG_IN_CONFLICT, file.getEtagInConflict());
 
                 boolean existsByPath = fileExists(file.getRemotePath());
                 if (existsByPath || fileExists(file.getFileId())) {
                     // updating an existing file
                     operations.add(
                             ContentProviderOperation.newUpdate(ProviderTableMeta.CONTENT_URI).
-                            withValues(cv).
-                            withSelection(
-                                    ProviderTableMeta._ID + "=?", 
-                                    new String[] { String.valueOf(file.getFileId()) }
-                            ).build()
-                    );
+                                    withValues(cv).
+                                    withSelection(ProviderTableMeta._ID + "=?",
+                                            new String[]{String.valueOf(file.getFileId())})
+                                    .build());
 
                 } else {
                     // adding a new file
                     operations.add(
                             ContentProviderOperation.newInsert(ProviderTableMeta.CONTENT_URI).
-                            withValues(cv).
-                            build()
+                                    withValues(cv).
+                                    build()
                     );
                 }
             }
-            
+
             // apply operations in batch
             if (operations.size() > 0) {
                 @SuppressWarnings("unused")
                 ContentProviderResult[] results = null;
-                Log_OC.d(TAG, "Sending " + operations.size() + 
+                Log_OC.d(TAG, "Sending " + operations.size() +
                         " operations to FileContentProvider");
                 try {
                     if (getContentResolver() != null) {
-                        results = getContentResolver().applyBatch(
-                                MainApp.getAuthority(), operations
-                        );
-    
+                        results = getContentResolver().applyBatch(MainApp.getAuthority(), operations);
                     } else {
                         results = getContentProviderClient().applyBatch(operations);
                     }
-    
+
                 } catch (OperationApplicationException e) {
                     Log_OC.e(TAG, "Exception in batch of operations " + e.getMessage());
-    
+
                 } catch (RemoteException e) {
                     Log_OC.e(TAG, "Exception in batch of operations  " + e.getMessage());
                 }
             }
         }
-        
-    } 
-    
-    public void removeShare(OCShare share){
+
+    }
+
+    public void removeShare(OCShare share) {
         Uri share_uri = ProviderTableMeta.CONTENT_URI_SHARE;
-        String where = ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?" + " AND " + 
-                ProviderTableMeta.FILE_PATH + "=?";
-        String [] whereArgs = new String[]{mAccount.name, share.getPath()};
+        String where = ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?" + " AND " +
+                ProviderTableMeta._ID + "=?";
+        String [] whereArgs = new String[]{mAccount.name, Long.toString(share.getId())};
         if (getContentProviderClient() != null) {
             try {
                 getContentProviderClient().delete(share_uri, where, whereArgs);
@@ -1337,41 +1391,135 @@ public class FileDataStorageManager {
                 e.printStackTrace();
             }
         } else {
-            getContentResolver().delete(share_uri, where, whereArgs); 
+            getContentResolver().delete(share_uri, where, whereArgs);
         }
     }
-    
+
     public void saveSharesDB(ArrayList<OCShare> shares) {
-        saveShares(shares);
-
-        ArrayList<OCFile> sharedFiles = new ArrayList<OCFile>();
-
-        for (OCShare share : shares) {
-            // Get the path
-            String path = share.getPath();
-            if (share.isFolder()) {
-                path = path + FileUtils.PATH_SEPARATOR;
-            }           
-
-            // Update OCFile with data from share: ShareByLink  and publicLink
-            OCFile file = getFileByPath(path);
-            if (file != null) {
-                if (share.getShareType().equals(ShareType.PUBLIC_LINK)) {
-                    file.setShareByLink(true);
-                    sharedFiles.add(file);
+        ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
+
+        // Reset flags & Remove shares for this files
+        String filePath = "";
+        for (OCShare share: shares) {
+            if (filePath != share.getPath()){
+                filePath = share.getPath();
+                resetShareFlagInAFile(filePath);
+                operations = prepareRemoveSharesInFile(filePath, operations);
+            }
+        }
+
+       // Add operations to insert shares
+       operations = prepareInsertShares(shares, operations);
+
+        // apply operations in batch
+        if (operations.size() > 0) {
+            Log_OC.d(TAG, "Sending " + operations.size() + " operations to FileContentProvider");
+            try {
+                if (getContentResolver() != null) {
+                    getContentResolver().applyBatch(MainApp.getAuthority(), operations);
+
+                } else {
+                    getContentProviderClient().applyBatch(operations);
                 }
-            } 
+
+            } catch (OperationApplicationException e) {
+                Log_OC.e(TAG, "Exception in batch of operations " + e.getMessage());
+
+            } catch (RemoteException e) {
+                Log_OC.e(TAG, "Exception in batch of operations  " + e.getMessage());
+            }
         }
-        
-        updateSharedFiles(sharedFiles);
+
+//        // TODO: review if it is needed
+//        // Update shared files
+//        ArrayList<OCFile> sharedFiles = new ArrayList<OCFile>();
+//
+//        for (OCShare share : shares) {
+//            // Get the path
+//            String path = share.getPath();
+//            if (share.isFolder()) {
+//                path = path + FileUtils.PATH_SEPARATOR;
+//            }
+//
+//            // Update OCFile with data from share: ShareByLink, publicLink and
+//            OCFile file = getFileByPath(path);
+//            if (file != null) {
+//                if (share.getShareType().equals(ShareType.PUBLIC_LINK)) {
+//                    file.setShareViaLink(true);
+//                    sharedFiles.add(file);
+//                }
+//            }
+//        }
+//
+//        // TODO: Review
+//        updateSharedFiles(sharedFiles);
     }
 
-    
+    public void removeSharesForFile(String remotePath) {
+        resetShareFlagInAFile(remotePath);
+        ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
+        operations = prepareRemoveSharesInFile(remotePath, operations);
+        // apply operations in batch
+        if (operations.size() > 0) {
+            Log_OC.d(TAG, "Sending " + operations.size() + " operations to FileContentProvider");
+            try {
+                if (getContentResolver() != null) {
+                    getContentResolver().applyBatch(MainApp.getAuthority(), operations);
+
+                } else {
+                    getContentProviderClient().applyBatch(operations);
+                }
+
+            } catch (OperationApplicationException e) {
+                Log_OC.e(TAG, "Exception in batch of operations " + e.getMessage());
+
+            } catch (RemoteException e) {
+                Log_OC.e(TAG, "Exception in batch of operations  " + e.getMessage());
+            }
+        }
+    }
+
+
     public void saveSharesInFolder(ArrayList<OCShare> shares, OCFile folder) {
-        cleanSharedFilesInFolder(folder);
+        resetShareFlagsInFolder(folder);
         ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
         operations = prepareRemoveSharesInFolder(folder, operations);
-        
+
+        if (shares != null) {
+            // prepare operations to insert or update files to save in the given folder
+            operations = prepareInsertShares(shares, operations);
+        }
+
+        // apply operations in batch
+        if (operations.size() > 0) {
+            Log_OC.d(TAG, "Sending " + operations.size() + " operations to FileContentProvider");
+            try {
+                if (getContentResolver() != null) {
+                    getContentResolver().applyBatch(MainApp.getAuthority(), operations);
+
+                } else {
+                    getContentProviderClient().applyBatch(operations);
+                }
+
+            } catch (OperationApplicationException e) {
+                Log_OC.e(TAG, "Exception in batch of operations " + e.getMessage());
+
+            } catch (RemoteException e) {
+
+            }
+        }
+
+    }
+
+    /**
+     * Prepare operations to insert or update files to save in the given folder
+     * @param shares        List of shares to insert
+     * @param operations    List of operations
+     * @return
+     */
+    private ArrayList<ContentProviderOperation> prepareInsertShares(
+            ArrayList<OCShare> shares, ArrayList<ContentProviderOperation> operations) {
+
         if (shares != null) {
             // prepare operations to insert or update files to save in the given folder
             for (OCShare share : shares) {
@@ -1386,124 +1534,110 @@ public class FileDataStorageManager {
                 cv.put(ProviderTableMeta.OCSHARES_EXPIRATION_DATE, share.getExpirationDate());
                 cv.put(ProviderTableMeta.OCSHARES_TOKEN, share.getToken());
                 cv.put(
-                    ProviderTableMeta.OCSHARES_SHARE_WITH_DISPLAY_NAME, 
-                    share.getSharedWithDisplayName()
+                        ProviderTableMeta.OCSHARES_SHARE_WITH_DISPLAY_NAME,
+                        share.getSharedWithDisplayName()
                 );
                 cv.put(ProviderTableMeta.OCSHARES_IS_DIRECTORY, share.isFolder() ? 1 : 0);
                 cv.put(ProviderTableMeta.OCSHARES_USER_ID, share.getUserId());
-                cv.put(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED, share.getIdRemoteShared());
+                cv.put(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED, share.getRemoteId());
                 cv.put(ProviderTableMeta.OCSHARES_ACCOUNT_OWNER, mAccount.name);
 
-                /*
-                if (shareExists(share.getIdRemoteShared())) {
-                    // updating an existing share resource
-                    operations.add(
-                            ContentProviderOperation.newUpdate(ProviderTableMeta.CONTENT_URI_SHARE).
-                            withValues(cv).
-                            withSelection(  ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED + "=?", 
-                                    new String[] { String.valueOf(share.getIdRemoteShared()) })
-                                    .build());
-
-                } else {
-                */
                 // adding a new share resource
                 operations.add(
                         ContentProviderOperation.newInsert(ProviderTableMeta.CONTENT_URI_SHARE).
-                        withValues(cv).
-                        build()
+                                withValues(cv).
+                                build()
                 );
-                //}
-            }
-        }
-            
-        // apply operations in batch
-        if (operations.size() > 0) {
-            @SuppressWarnings("unused")
-            ContentProviderResult[] results = null;
-            Log_OC.d(TAG, "Sending " + operations.size() + " operations to FileContentProvider");
-            try {
-                if (getContentResolver() != null) {
-                    results = getContentResolver().applyBatch(MainApp.getAuthority(), operations);
-
-                } else {
-                    results = getContentProviderClient().applyBatch(operations);
-                }
-
-            } catch (OperationApplicationException e) {
-                Log_OC.e(TAG, "Exception in batch of operations " + e.getMessage());
-
-            } catch (RemoteException e) {
-                Log_OC.e(TAG, "Exception in batch of operations  " + e.getMessage());
             }
         }
-        //}
-        
+        return operations;
     }
 
     private ArrayList<ContentProviderOperation> prepareRemoveSharesInFolder(
             OCFile folder, ArrayList<ContentProviderOperation> preparedOperations) {
         if (folder != null) {
-            String where = ProviderTableMeta.OCSHARES_PATH + "=?" + " AND " 
+            String where = ProviderTableMeta.OCSHARES_PATH + "=?" + " AND "
                     + ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?";
             String [] whereArgs = new String[]{ "", mAccount.name };
 
-            // TODO Enable when "On Device" is recovered ?
-            Vector<OCFile> files = getFolderContent(folder /*, false*/);
+            Vector<OCFile> files = getFolderContent(folder, false);
             
             for (OCFile file : files) {
                 whereArgs[0] = file.getRemotePath();
                 preparedOperations.add(
                         ContentProviderOperation.newDelete(ProviderTableMeta.CONTENT_URI_SHARE).
-                        withSelection(where, whereArgs).
-                        build()
+                                withSelection(where, whereArgs).
+                                build()
                 );
             }
         }
         return preparedOperations;
-        
-        /*
-        if (operations.size() > 0) {
-            try {
-                if (getContentResolver() != null) {
-                    getContentResolver().applyBatch(MainApp.getAuthority(), operations);
 
-                } else {
-                    getContentProviderClient().applyBatch(operations);
-                }
+    }
 
-            } catch (OperationApplicationException e) {
-                Log_OC.e(TAG, "Exception in batch of operations " + e.getMessage());
+    private ArrayList<ContentProviderOperation> prepareRemoveSharesInFile(
+            String filePath, ArrayList<ContentProviderOperation> preparedOperations) {
+
+        String where = ProviderTableMeta.OCSHARES_PATH + "=?" + " AND "
+                + ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?";
+        String[] whereArgs = new String[]{filePath, mAccount.name};
+
+        preparedOperations.add(
+                ContentProviderOperation.newDelete(ProviderTableMeta.CONTENT_URI_SHARE).
+                        withSelection(where, whereArgs).
+                        build()
+        );
+
+        return preparedOperations;
+
+    }
+
+    public ArrayList<OCShare> getSharesWithForAFile(String filePath, String accountName){
+        // Condition
+        String where = ProviderTableMeta.OCSHARES_PATH + "=?" + " AND "
+                + ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?"+ "AND"
+                + " (" + ProviderTableMeta.OCSHARES_SHARE_TYPE + "=? OR "
+                + ProviderTableMeta.OCSHARES_SHARE_TYPE +  "=? ) ";
+        String [] whereArgs = new String[]{ filePath, accountName ,
+                Integer.toString(ShareType.USER.getValue()),
+                Integer.toString(ShareType.GROUP.getValue()) };
+
+        Cursor c = null;
+        if (getContentResolver() != null) {
+            c = getContentResolver().query(
+                    ProviderTableMeta.CONTENT_URI_SHARE,
+                    null, where, whereArgs, null);
+        } else {
+            try {
+                c = getContentProviderClient().query(
+                        ProviderTableMeta.CONTENT_URI_SHARE,
+                        null, where, whereArgs, null);
 
             } catch (RemoteException e) {
-                Log_OC.e(TAG, "Exception in batch of operations  " + e.getMessage());
+                Log_OC.e(TAG, "Could not get list of shares with: " + e.getMessage());
+                c = null;
             }
-        }            
-        */
-            
-            /*
-            if (getContentResolver() != null) {
-                
-                getContentResolver().delete(ProviderTableMeta.CONTENT_URI_SHARE, 
-                                            where,
-                                            whereArgs);
-            } else {
-                try {
-                    getContentProviderClient().delete(  ProviderTableMeta.CONTENT_URI_SHARE, 
-                                                        where,
-                                                        whereArgs);
+        }
+        ArrayList<OCShare> shares = new ArrayList<OCShare>();
+        OCShare share = null;
+        if (c.moveToFirst()) {
+            do {
+                share = createShareInstance(c);
+                shares.add(share);
+                // }
+            } while (c.moveToNext());
+        }
+        c.close();
 
-                } catch (RemoteException e) {
-                    Log_OC.e(TAG, "Exception deleting shares in a folder " + e.getMessage());
-                }
-            }
-            */
-        //}
+        return shares;
     }
 
-    public void triggerMediaScan(String path) {
-        Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
-        intent.setData(Uri.fromFile(new File(path)));
-        MainApp.getAppContext().sendBroadcast(intent);
+    public static void triggerMediaScan(String path) {
+        if (path != null) {
+            Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+            intent.setData(Uri.fromFile(new File(path)));
+            MainApp.getAppContext().sendBroadcast(intent);
+        }
     }
 
     public void deleteFileInMediaScan(String path) {
@@ -1548,4 +1682,319 @@ public class FileDataStorageManager {
 
     }
 
+    public void saveConflict(OCFile file, String etagInConflict) {
+        if (!file.isDown()) {
+            etagInConflict = null;
+        }
+        ContentValues cv = new ContentValues();
+        cv.put(ProviderTableMeta.FILE_ETAG_IN_CONFLICT, etagInConflict);
+        int updated = 0;
+        if (getContentResolver() != null) {
+            updated = getContentResolver().update(
+                    ProviderTableMeta.CONTENT_URI_FILE,
+                    cv,
+                    ProviderTableMeta._ID + "=?",
+                    new String[] { String.valueOf(file.getFileId())}
+            );
+        } else {
+            try {
+                updated = getContentProviderClient().update(
+                        ProviderTableMeta.CONTENT_URI_FILE,
+                        cv,
+                        ProviderTableMeta._ID + "=?",
+                        new String[]{String.valueOf(file.getFileId())}
+                );
+            } catch (RemoteException e) {
+                Log_OC.e(TAG, "Failed saving conflict in database " + e.getMessage());
+            }
+        }
+
+        Log_OC.d(TAG, "Number of files updated with CONFLICT: " + updated);
+
+        if (updated > 0) {
+            if (etagInConflict != null) {
+                /// set conflict in all ancestor folders
+
+                long parentId = file.getParentId();
+                Set<String> ancestorIds = new HashSet<String>();
+                while (parentId != FileDataStorageManager.ROOT_PARENT_ID) {
+                    ancestorIds.add(Long.toString(parentId));
+                    parentId = getFileById(parentId).getParentId();
+                }
+
+                if (ancestorIds.size() > 0) {
+                    StringBuffer whereBuffer = new StringBuffer();
+                    whereBuffer.append(ProviderTableMeta._ID).append(" IN (");
+                    for (int i = 0; i < ancestorIds.size() - 1; i++) {
+                        whereBuffer.append("?,");
+                    }
+                    whereBuffer.append("?");
+                    whereBuffer.append(")");
+
+                    if (getContentResolver() != null) {
+                        updated = getContentResolver().update(
+                                ProviderTableMeta.CONTENT_URI_FILE,
+                                cv,
+                                whereBuffer.toString(),
+                                ancestorIds.toArray(new String[]{})
+                        );
+                    } else {
+                        try {
+                            updated = getContentProviderClient().update(
+                                    ProviderTableMeta.CONTENT_URI_FILE,
+                                    cv,
+                                    whereBuffer.toString(),
+                                    ancestorIds.toArray(new String[]{})
+                            );
+                        } catch (RemoteException e) {
+                            Log_OC.e(TAG, "Failed saving conflict in database " + e.getMessage());
+                        }
+                    }
+                } // else file is ROOT folder, no parent to set in conflict
+
+            } else {
+                /// update conflict in ancestor folders
+                // (not directly unset; maybe there are more conflicts below them)
+                String parentPath = file.getRemotePath();
+                if (parentPath.endsWith(OCFile.PATH_SEPARATOR)) {
+                    parentPath = parentPath.substring(0, parentPath.length() - 1);
+                }
+                parentPath = parentPath.substring(0, parentPath.lastIndexOf(OCFile.PATH_SEPARATOR) + 1);
+
+                Log_OC.d(TAG, "checking parents to remove conflict; STARTING with " + parentPath);
+                while (parentPath.length() > 0) {
+
+                    String where =
+                            ProviderTableMeta.FILE_ETAG_IN_CONFLICT + " IS NOT NULL AND " +
+                                    ProviderTableMeta.FILE_CONTENT_TYPE + " != 'DIR' AND " +
+                                    ProviderTableMeta.FILE_ACCOUNT_OWNER + " = ? AND " +
+                                    ProviderTableMeta.FILE_PATH + " LIKE ?";
+                    Cursor descendentsInConflict = getContentResolver().query(
+                            ProviderTableMeta.CONTENT_URI_FILE,
+                            new String[]{ProviderTableMeta._ID},
+                            where,
+                            new String[]{mAccount.name, parentPath + "%"},
+                            null
+                    );
+                    if (descendentsInConflict == null || descendentsInConflict.getCount() == 0) {
+                        Log_OC.d(TAG, "NO MORE conflicts in " + parentPath);
+                        if (getContentResolver() != null) {
+                            updated = getContentResolver().update(
+                                    ProviderTableMeta.CONTENT_URI_FILE,
+                                    cv,
+                                    ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " +
+                                            ProviderTableMeta.FILE_PATH + "=?",
+                                    new String[]{mAccount.name, parentPath}
+                            );
+                        } else {
+                            try {
+                                updated = getContentProviderClient().update(
+                                        ProviderTableMeta.CONTENT_URI_FILE,
+                                        cv,
+                                        ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " +
+                                                ProviderTableMeta.FILE_PATH + "=?"
+                                        , new String[]{mAccount.name, parentPath}
+                                );
+                            } catch (RemoteException e) {
+                                Log_OC.e(TAG, "Failed saving conflict in database " + e.getMessage());
+                            }
+                        }
+
+                    } else {
+                        Log_OC.d(TAG, "STILL " + descendentsInConflict.getCount() + " in " + parentPath);
+                    }
+
+                    if (descendentsInConflict != null) {
+                        descendentsInConflict.close();
+                    }
+
+                    parentPath = parentPath.substring(0, parentPath.length() - 1);  // trim last /
+                    parentPath = parentPath.substring(0, parentPath.lastIndexOf(OCFile.PATH_SEPARATOR) + 1);
+                    Log_OC.d(TAG, "checking parents to remove conflict; NEXT " + parentPath);
+                }
+            }
+        }
+
+    }
+
+    public OCCapability saveCapabilities(OCCapability capability){
+
+        // Prepare capabilities data
+        ContentValues cv = new ContentValues();
+        cv.put(ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME, mAccount.name);
+        cv.put(ProviderTableMeta.CAPABILITIES_VERSION_MAYOR, capability.getVersionMayor());
+        cv.put(ProviderTableMeta.CAPABILITIES_VERSION_MINOR, capability.getVersionMinor());
+        cv.put(ProviderTableMeta.CAPABILITIES_VERSION_MICRO, capability.getVersionMicro());
+        cv.put(ProviderTableMeta.CAPABILITIES_VERSION_STRING, capability.getVersionString());
+        cv.put(ProviderTableMeta.CAPABILITIES_VERSION_EDITION, capability.getVersionEdition());
+        cv.put(ProviderTableMeta.CAPABILITIES_CORE_POLLINTERVAL, capability.getCorePollinterval());
+        cv.put(ProviderTableMeta.CAPABILITIES_SHARING_API_ENABLED, capability.getFilesSharingApiEnabled().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_ENABLED,
+                capability.getFilesSharingPublicEnabled().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_PASSWORD_ENFORCED,
+                capability.getFilesSharingPublicPasswordEnforced().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_ENABLED,
+                capability.getFilesSharingPublicExpireDateEnabled().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_DAYS,
+                capability.getFilesSharingPublicExpireDateDays());
+        cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_ENFORCED,
+                capability.getFilesSharingPublicExpireDateEnforced().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_SEND_MAIL,
+                capability.getFilesSharingPublicSendMail().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_UPLOAD,
+                capability.getFilesSharingPublicUpload().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_SHARING_USER_SEND_MAIL,
+                capability.getFilesSharingUserSendMail().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_SHARING_RESHARING, capability.getFilesSharingResharing().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_SHARING_FEDERATION_OUTGOING,
+                capability.getFilesSharingFederationOutgoing().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_SHARING_FEDERATION_INCOMING,
+                capability.getFilesSharingFederationIncoming().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_FILES_BIGFILECHUNKING, capability.getFilesBigFileChuncking().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_FILES_UNDELETE, capability.getFilesUndelete().getValue());
+        cv.put(ProviderTableMeta.CAPABILITIES_FILES_VERSIONING, capability.getFilesVersioning().getValue());
+
+        if (capabilityExists(mAccount.name)) {
+            if (getContentResolver() != null) {
+                getContentResolver().update(ProviderTableMeta.CONTENT_URI_CAPABILITIES, cv,
+                        ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME + "=?",
+                        new String[]{mAccount.name});
+            } else {
+                try {
+                    getContentProviderClient().update(ProviderTableMeta.CONTENT_URI_CAPABILITIES,
+                            cv, ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME + "=?",
+                            new String[]{mAccount.name});
+                } catch (RemoteException e) {
+                    Log_OC.e(TAG,
+                            "Fail to insert insert file to database "
+                                    + e.getMessage());
+                }
+            }
+        } else {
+            Uri result_uri = null;
+            if (getContentResolver() != null) {
+                result_uri = getContentResolver().insert(
+                        ProviderTableMeta.CONTENT_URI_CAPABILITIES, cv);
+            } else {
+                try {
+                    result_uri = getContentProviderClient().insert(
+                            ProviderTableMeta.CONTENT_URI_CAPABILITIES, cv);
+                } catch (RemoteException e) {
+                    Log_OC.e(TAG,
+                            "Fail to insert insert capability to database "
+                                    + e.getMessage());
+                }
+            }
+            if (result_uri != null) {
+                long new_id = Long.parseLong(result_uri.getPathSegments()
+                        .get(1));
+                capability.setId(new_id);
+                capability.setAccountName(mAccount.name);
+            }
+        }
+
+        return capability;
+    }
+
+    private boolean capabilityExists(String accountName) {
+        Cursor c = getCapabilityCursorForAccount(accountName);
+        boolean exists = false;
+        if (c != null) {
+            exists = c.moveToFirst();
+            c.close();
+        }
+        return exists;
+    }
+
+    private Cursor getCapabilityCursorForAccount(String accountName){
+        Cursor c = null;
+        if (getContentResolver() != null) {
+            c = getContentResolver()
+                    .query(ProviderTableMeta.CONTENT_URI_CAPABILITIES,
+                            null,
+                            ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME + "=? ",
+                            new String[]{accountName}, null);
+        } else {
+            try {
+                c = getContentProviderClient().query(
+                        ProviderTableMeta.CONTENT_URI_CAPABILITIES,
+                        null,
+                        ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME + "=? ",
+                        new String[]{accountName}, null);
+            } catch (RemoteException e) {
+                Log_OC.e(TAG,
+                        "Couldn't determine capability existance, assuming non existance: "
+                                + e.getMessage());
+            }
+        }
+
+        return c;
+
+    }
+    public OCCapability getCapability(String accountName){
+        OCCapability capability = null;
+        Cursor c = getCapabilityCursorForAccount(accountName);
+
+        if (c.moveToFirst()) {
+            capability = createCapabilityInstance(c);
+        } else {
+            capability = new OCCapability();    // return default with all UNKNOWN
+        }
+        c.close();
+        return capability;
+    }
+
+    private OCCapability createCapabilityInstance(Cursor c) {
+        OCCapability capability = null;
+        if (c != null) {
+            capability = new OCCapability();
+            capability.setId(c.getLong(c.getColumnIndex(ProviderTableMeta._ID)));
+            capability.setAccountName(c.getString(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME)));
+            capability.setVersionMayor(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_VERSION_MAYOR)));
+            capability.setVersionMinor(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_VERSION_MINOR)));
+            capability.setVersionMicro(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_VERSION_MICRO)));
+            capability.setVersionString(c.getString(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_VERSION_STRING)));
+            capability.setVersionEdition(c.getString(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_VERSION_EDITION)));
+            capability.setCorePollinterval(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_CORE_POLLINTERVAL)));
+            capability.setFilesSharingApiEnabled(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_SHARING_API_ENABLED))));
+            capability.setFilesSharingPublicEnabled(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_ENABLED))));
+            capability.setFilesSharingPublicPasswordEnforced(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_PASSWORD_ENFORCED))));
+            capability.setFilesSharingPublicExpireDateEnabled(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_ENABLED))));
+            capability.setFilesSharingPublicExpireDateDays(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_DAYS)));
+            capability.setFilesSharingPublicExpireDateEnforced(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_ENFORCED))));
+            capability.setFilesSharingPublicSendMail(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_SEND_MAIL))));
+            capability.setFilesSharingPublicUpload(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_UPLOAD))));
+            capability.setFilesSharingUserSendMail(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_SHARING_USER_SEND_MAIL))));
+            capability.setFilesSharingResharing(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_SHARING_RESHARING))));
+            capability.setFilesSharingFederationOutgoing(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_SHARING_FEDERATION_OUTGOING))));
+            capability.setFilesSharingFederationIncoming(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_SHARING_FEDERATION_INCOMING))));
+            capability.setFilesBigFileChuncking(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_FILES_BIGFILECHUNKING))));
+            capability.setFilesUndelete(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_FILES_UNDELETE))));
+            capability.setFilesVersioning(CapabilityBooleanType.fromValue(c.getInt(c
+                    .getColumnIndex(ProviderTableMeta.CAPABILITIES_FILES_VERSIONING))));
+
+        }
+        return capability;
+    }
 }
index d1821b4..8cbb95e 100644 (file)
@@ -1,6 +1,8 @@
 /**
  *   ownCloud Android client application
  *
+ *   @author Bartek Przybylski
+ *   @author David A. Velasco
  *   Copyright (C) 2012  Bartek Przybylski
  *   Copyright (C) 2015 ownCloud Inc.
  *
 
 package com.owncloud.android.datamodel;
 
+import android.content.ContentResolver;
+import android.net.Uri;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.webkit.MimeTypeMap;
 
 import com.owncloud.android.lib.common.utils.Log_OC;
-import com.owncloud.android.utils.FileStorageUtils;
 
 import java.io.File;
 
 import third_parties.daveKoeller.AlphanumComparator;
 public class OCFile implements Parcelable, Comparable<OCFile> {
 
-    public static final Parcelable.Creator<OCFile> CREATOR = new Parcelable.Creator<OCFile>() {
-        @Override
+    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
         public OCFile createFromParcel(Parcel source) {
             return new OCFile(source);
         }
 
-        @Override
         public OCFile[] newArray(int size) {
             return new OCFile[size];
         }
     };
 
+    private final static String PERMISSION_SHARED_WITH_ME = "S";    // TODO move to better location
+
     public static final String PATH_SEPARATOR = "/";
     public static final String ROOT_PATH = PATH_SEPARATOR;
 
@@ -74,6 +78,18 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
 
     private boolean mIsDownloading;
 
+    private boolean mShowGridView;
+
+    private String mEtagInConflict;    // Save file etag in the server, when there is a conflict. No conflict =  null
+
+    private boolean mShareWithSharee;
+
+    /**
+     * URI to the local path of the file contents, if stored in the device; cached after first call
+     * to {@link #getStorageUri()}
+     */
+    private Uri mLocalUri;
+
 
     /**
      * Create new {@link OCFile} with given path.
@@ -115,8 +131,10 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         mPublicLink = source.readString();
         mPermissions = source.readString();
         mRemoteId = source.readString();
-        mNeedsUpdateThumbnail = source.readInt() == 0;
-        mIsDownloading = source.readInt() == 0;
+        mNeedsUpdateThumbnail = source.readInt() == 1;
+        mIsDownloading = source.readInt() == 1;
+        mEtagInConflict = source.readString();
+        mShareWithSharee = source.readInt() == 1;
 
     }
 
@@ -142,6 +160,8 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         dest.writeString(mRemoteId);
         dest.writeInt(mNeedsUpdateThumbnail ? 1 : 0);
         dest.writeInt(mIsDownloading ? 1 : 0);
+        dest.writeString(mEtagInConflict);
+        dest.writeInt(mShareWithSharee ? 1 : 0);
     }
 
     /**
@@ -204,12 +224,31 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
     }
 
     /**
+     * The URI to the file contents, if stored locally
+     *
+     * @return A URI to the local copy of the file, or NULL if not stored in the device
+     */
+    public Uri getStorageUri() {
+        if (mLocalPath == null || mLocalPath.length() == 0) {
+            return null;
+        }
+        if (mLocalUri == null) {
+            Uri.Builder builder = new Uri.Builder();
+            builder.scheme(ContentResolver.SCHEME_FILE);
+            builder.path(mLocalPath);
+            mLocalUri = builder.build();
+        }
+        return mLocalUri;
+    }
+
+    /**
      * Can be used to set the path where the file is stored
      *
      * @param storage_path to set
      */
     public void setStoragePath(String storage_path) {
         mLocalPath = storage_path;
+        mLocalUri = null;
     }
 
     /**
@@ -289,11 +328,13 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
     /**
      * Sets the name of the file
      * <p/>
-     * Does nothing if the new name is null, empty or includes "/" ; or if the file is the root directory
+     * Does nothing if the new name is null, empty or includes "/" ; or if the file is the root
+     * directory
      */
     public void setFileName(String name) {
         Log_OC.d(TAG, "OCFile name changin from " + mRemotePath);
-        if (name != null && name.length() > 0 && !name.contains(PATH_SEPARATOR) && !mRemotePath.equals(ROOT_PATH)) {
+        if (name != null && name.length() > 0 && !name.contains(PATH_SEPARATOR) &&
+                !mRemotePath.equals(ROOT_PATH)) {
             String parent = (new File(getRemotePath())).getParent();
             parent = (parent.endsWith(PATH_SEPARATOR)) ? parent : parent + PATH_SEPARATOR;
             mRemotePath = parent + name;
@@ -314,24 +355,6 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
     }
 
     /**
-     * Adds a file to this directory. If this file is not a directory, an
-     * exception gets thrown.
-     *
-     * @param file to add
-     * @throws IllegalStateException if you try to add a something and this is
-     *                               not a directory
-     */
-    public void addFile(OCFile file) throws IllegalStateException {
-        if (isFolder()) {
-            file.mParentId = mId;
-            mNeedsUpdating = true;
-            return;
-        }
-        throw new IllegalStateException(
-                "This is not a directory where you can add stuff to!");
-    }
-
-    /**
      * Used internally. Reset all file properties
      */
     private void resetData() {
@@ -355,6 +378,8 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         mRemoteId = null;
         mNeedsUpdateThumbnail = false;
         mIsDownloading = false;
+        mEtagInConflict = null;
+        mShareWithSharee = false;
     }
 
     /**
@@ -454,7 +479,7 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
 
     @Override
     public int describeContents() {
-        return ((Object) this).hashCode();
+        return super.hashCode();
     }
 
     @Override
@@ -483,8 +508,11 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
 
     @Override
     public String toString() {
-        String asString = "[id=%s, name=%s, mime=%s, downloaded=%s, local=%s, remote=%s, parentId=%s, favorite=%s etag=%s]";
-        asString = String.format(asString, Long.valueOf(mId), getFileName(), mMimeType, isDown(), mLocalPath, mRemotePath, Long.valueOf(mParentId), Boolean.valueOf(mFavorite), mEtag);
+        String asString = "[id=%s, name=%s, mime=%s, downloaded=%s, local=%s, remote=%s, " +
+                "parentId=%s, favorite=%s etag=%s]";
+        asString = String.format(asString, Long.valueOf(mId), getFileName(), mMimeType, isDown(),
+                mLocalPath, mRemotePath, Long.valueOf(mParentId), Boolean.valueOf(mFavorite),
+                mEtag);
         return asString;
     }
 
@@ -493,15 +521,15 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
     }
 
     public void setEtag(String etag) {
-        this.mEtag = etag;
+        this.mEtag = (etag != null ? etag : "");
     }
 
 
-    public boolean isShareByLink() {
+    public boolean isSharedViaLink() {
         return mShareByLink;
     }
 
-    public void setShareByLink(boolean shareByLink) {
+    public void setShareViaLink(boolean shareByLink) {
         this.mShareByLink = shareByLink;
     }
 
@@ -540,7 +568,33 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
      */
     public boolean isImage() {
         return ((mMimeType != null && mMimeType.startsWith("image/")) ||
-                FileStorageUtils.getMimeTypeFromName(mRemotePath).startsWith("image/"));
+                getMimeTypeFromName().startsWith("image/"));
+    }
+
+    /**
+     * @return 'True' if the file is simple text (e.g. not application-dependent, like .doc or .docx)
+     */
+    public boolean isText() {
+        return ((mMimeType != null && mMimeType.startsWith("text/")) ||
+                getMimeTypeFromName().startsWith("text/"));
+    }
+
+    public String getMimeTypeFromName() {
+        String extension = "";
+        int pos = mRemotePath.lastIndexOf('.');
+        if (pos >= 0) {
+            extension = mRemotePath.substring(pos + 1);
+        }
+        String result = MimeTypeMap.getSingleton().
+                getMimeTypeFromExtension(extension.toLowerCase());
+        return (result != null) ? result : "";
+    }
+
+    /**
+     * @return 'True' if the file is hidden
+     */
+    public boolean isHidden() {
+        return getFileName().startsWith(".");
     }
 
     public String getPermissions() {
@@ -567,8 +621,24 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         this.mIsDownloading = isDownloading;
     }
 
-    public boolean isSynchronizing() {
-        // TODO real implementation
-        return false;
+    public String getEtagInConflict() {
+        return mEtagInConflict;
+    }
+
+    public void setEtagInConflict(String etagInConflict) {
+        mEtagInConflict = etagInConflict;
+    }
+
+    public boolean isSharedWithSharee() {
+        return mShareWithSharee;
+    }
+
+    public void setShareWithSharee(boolean shareWithSharee) {
+        this.mShareWithSharee = shareWithSharee;
+    }
+
+    public boolean isSharedWithMe() {
+        String permissions = getPermissions();
+        return (permissions != null && permissions.contains(PERMISSION_SHARED_WITH_ME));
     }
 }
index 68910a2..c8a06ca 100644 (file)
@@ -31,18 +31,29 @@ import org.apache.commons.httpclient.HttpStatus;
 import org.apache.commons.httpclient.methods.GetMethod;
 
 import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.content.Context;
+import android.content.SharedPreferences;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.Bitmap.CompressFormat;
 import android.graphics.BitmapFactory;
 import android.graphics.Canvas;
+import android.graphics.Point;
+import android.graphics.Canvas;
 import android.graphics.Paint;
 import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Drawable;
 import android.media.ThumbnailUtils;
 import android.net.Uri;
 import android.os.AsyncTask;
+import android.preference.PreferenceManager;
+import android.view.Display;
+import android.view.View;
+import android.view.WindowManager;
 import android.widget.ImageView;
+import android.widget.ProgressBar;
 
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
@@ -65,20 +76,20 @@ public class ThumbnailsCacheManager {
     private static final String TAG = ThumbnailsCacheManager.class.getSimpleName();
     
     private static final String CACHE_FOLDER = "thumbnailCache";
+    private static final Integer CACHE_SIZE_MB = 10;
 
     private static final Object mThumbnailsDiskCacheLock = new Object();
     private static DiskLruImageCache mThumbnailCache = null;
     private static boolean mThumbnailCacheStarting = true;
     
-    private static final int DISK_CACHE_SIZE = 1024 * 1024 * 10; // 10MB
     private static final CompressFormat mCompressFormat = CompressFormat.JPEG;
     private static final int mCompressQuality = 70;
     private static OwnCloudClient mClient = null;
 
     public static Bitmap mDefaultImg = 
             BitmapFactory.decodeResource(
-                    MainApp.getAppContext().getResources(), 
-                    DisplayUtils.getFileTypeIconId("image/png", "default.png")
+                    MainApp.getAppContext().getResources(),
+                    R.drawable.file_image
             );
 
     
@@ -91,6 +102,18 @@ public class ThumbnailsCacheManager {
 
                 if (mThumbnailCache == null) {
                     try {
+                        SharedPreferences appPrefs =
+                                PreferenceManager.getDefaultSharedPreferences(MainApp.getAppContext());
+                        // due to backward compatibility
+                        Integer cacheSize = CACHE_SIZE_MB * 1024 * 1024;
+                        try {
+                            cacheSize = appPrefs.getInt("pref_cache_size", cacheSize);
+                        } catch (ClassCastException e) {
+                            String temp = appPrefs.getString("pref_cache_size",
+                                    cacheSize.toString());
+                            cacheSize = Integer.decode(temp) * 1024 * 1024;
+                        }
+
                         // Check if media is mounted or storage is built-in, if so, 
                         // try and use external cache dir; otherwise use internal cache dir
                         final String cachePath = 
@@ -100,7 +123,7 @@ public class ThumbnailsCacheManager {
                         final File diskCacheDir = new File(cachePath);
                         mThumbnailCache = new DiskLruImageCache(
                                 diskCacheDir, 
-                                DISK_CACHE_SIZE, 
+                                cacheSize,
                                 mCompressFormat, 
                                 mCompressQuality
                         );
@@ -143,13 +166,39 @@ public class ThumbnailsCacheManager {
         return null;
     }
 
+    /**
+     * Sets max size of cache
+     * @param maxSize in MB
+     * @return
+     */
+    public static boolean setMaxSize(long maxSize){
+        if (mThumbnailCache != null){
+            mThumbnailCache.setMaxSize(maxSize * 1024 * 1024);
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * Shows max cache size
+     * @return max cache size in MB.
+     */
+    public static long getMaxSize(){
+        if (mThumbnailCache == null) {
+            new ThumbnailsCacheManager.InitDiskCacheTask().execute();
+        }
+        return mThumbnailCache.getMaxSize() / 1024 / 1024;
+    }
+
     public static class ThumbnailGenerationTask extends AsyncTask<Object, Void, Bitmap> {
         private final WeakReference<ImageView> mImageViewReference;
+        private WeakReference<ProgressBar> mProgressWheelRef;
         private static Account mAccount;
         private Object mFile;
+        private Boolean mIsThumbnail;
         private FileDataStorageManager mStorageManager;
 
-
         public ThumbnailGenerationTask(ImageView imageView, FileDataStorageManager storageManager,
                                        Account account) {
             // Use a WeakReference to ensure the ImageView can be garbage collected
@@ -160,6 +209,12 @@ public class ThumbnailsCacheManager {
             mAccount = account;
         }
 
+        public ThumbnailGenerationTask(ImageView imageView, FileDataStorageManager storageManager,
+                                       Account account, ProgressBar progressWheel) {
+        this(imageView, storageManager, account);
+        mProgressWheelRef = new WeakReference<ProgressBar>(progressWheel);
+        }
+
         public ThumbnailGenerationTask(ImageView imageView) {
             // Use a WeakReference to ensure the ImageView can be garbage collected
             mImageViewReference = new WeakReference<ImageView>(imageView);
@@ -178,15 +233,17 @@ public class ThumbnailsCacheManager {
                 }
 
                 mFile = params[0];
+                mIsThumbnail = (Boolean) params[1];
+
                 
                 if (mFile instanceof OCFile) {
-                    thumbnail = doOCFileInBackground();
+                    thumbnail = doOCFileInBackground(mIsThumbnail);
 
                     if (((OCFile) mFile).isVideo() && thumbnail != null){
                         thumbnail = addVideoOverlay(thumbnail);
                     }
                 }  else if (mFile instanceof File) {
-                    thumbnail = doFileInBackground();
+                    thumbnail = doFileInBackground(mIsThumbnail);
 
                     String url = ((File) mFile).getAbsolutePath();
                     String mMimeType = FileStorageUtils.getMimeTypeFromName(url);
@@ -209,10 +266,6 @@ public class ThumbnailsCacheManager {
         }
 
         protected void onPostExecute(Bitmap bitmap){
-            if (isCancelled()) {
-                bitmap = null;
-            }
-
             if (bitmap != null) {
                 final ImageView imageView = mImageViewReference.get();
                 final ThumbnailGenerationTask bitmapWorkerTask = getBitmapWorkerTask(imageView);
@@ -224,7 +277,14 @@ public class ThumbnailsCacheManager {
                         tagId = String.valueOf(mFile.hashCode());
                     }
                     if (String.valueOf(imageView.getTag()).equals(tagId)) {
+                        if (mProgressWheelRef != null) {
+                            final ProgressBar progressWheel = mProgressWheelRef.get();
+                            if (progressWheel != null) {
+                                progressWheel.setVisibility(View.GONE);
+                            }
+                        }
                         imageView.setImageBitmap(bitmap);
+                        // imageView.setVisibility(View.VISIBLE);
                     }
                 }
             }
@@ -235,12 +295,13 @@ public class ThumbnailsCacheManager {
          * @param imageKey: thumb key
          * @param bitmap:   image for extracting thumbnail
          * @param path:     image path
-         * @param px:       thumbnail dp
+         * @param pxW:       thumbnail width
+         * @param pxH:       thumbnail height
          * @return Bitmap
          */
-        private Bitmap addThumbnailToCache(String imageKey, Bitmap bitmap, String path, int px){
+        private Bitmap addThumbnailToCache(String imageKey, Bitmap bitmap, String path, int pxW, int pxH){
 
-            Bitmap thumbnail = ThumbnailUtils.extractThumbnail(bitmap, px, px);
+            Bitmap thumbnail = ThumbnailUtils.extractThumbnail(bitmap, pxW, pxH);
 
             // Rotate image, obeying exif tag
             thumbnail = BitmapUtils.rotateImage(thumbnail,path);
@@ -261,25 +322,56 @@ public class ThumbnailsCacheManager {
             return Math.round(r.getDimension(R.dimen.file_icon_size_grid));
         }
 
-        private Bitmap doOCFileInBackground() {
+        private Point getScreenDimension(){
+            WindowManager wm = (WindowManager) MainApp.getAppContext().getSystemService(Context.WINDOW_SERVICE);
+            Display display = wm.getDefaultDisplay();
+            Point test = new Point();
+            display.getSize(test);
+            return test;
+        }
+
+        private Bitmap doOCFileInBackground(Boolean isThumbnail) {
+            Bitmap thumbnail = null;
             OCFile file = (OCFile)mFile;
 
-            final String imageKey = String.valueOf(file.getRemoteId());
+            // distinguish between thumbnail and resized image
+            String temp = String.valueOf(file.getRemoteId());
+            if (isThumbnail){
+                temp = "t" + temp;
+            } else {
+                temp = "r" + temp;
+            }
+
+            final String imageKey = temp;
 
             // Check disk cache in background thread
-            Bitmap thumbnail = getBitmapFromDiskCache(imageKey);
+            thumbnail = getBitmapFromDiskCache(imageKey);
 
             // Not found in disk cache
             if (thumbnail == null || file.needsUpdateThumbnail()) {
-
-                int px = getThumbnailDimension();
+                int pxW = 0;
+                int pxH = 0;
+                if (mIsThumbnail) {
+                    pxW = pxH = getThumbnailDimension();
+                } else {
+                    Point p = getScreenDimension();
+                    pxW = p.x;
+                    pxH = p.y;
+                }
 
                 if (file.isDown()) {
-                    Bitmap bitmap = BitmapUtils.decodeSampledBitmapFromFile(
-                            file.getStoragePath(), px, px);
+                    Bitmap tempBitmap = BitmapUtils.decodeSampledBitmapFromFile(
+                            file.getStoragePath(), pxW, pxH);
+                    Bitmap bitmap = ThumbnailUtils.extractThumbnail(tempBitmap, pxW, pxH);
 
                     if (bitmap != null) {
-                        thumbnail = addThumbnailToCache(imageKey, bitmap, file.getStoragePath(), px);
+                        // Handle PNG
+                        if (file.getMimetype().equalsIgnoreCase("image/png")) {
+                            bitmap = handlePNG(bitmap, pxW);
+                        }
+
+                        thumbnail = addThumbnailToCache(imageKey, bitmap,
+                                                        file.getStoragePath(), pxW, pxH);
 
                         file.setNeedsUpdateThumbnail(false);
                         mStorageManager.saveFile(file);
@@ -291,25 +383,51 @@ public class ThumbnailsCacheManager {
                     if (mClient != null && serverOCVersion != null) {
                         if (serverOCVersion.supportsRemoteThumbnails()) {
                             try {
-                                String uri = mClient.getBaseUri() + "" +
-                                        "/index.php/apps/files/api/v1/thumbnail/" +
-                                        px + "/" + px + Uri.encode(file.getRemotePath(), "/");
-                                Log_OC.d("Thumbnail", "URI: " + uri);
-                                GetMethod get = new GetMethod(uri);
-                                int status = mClient.executeMethod(get);
-                                if (status == HttpStatus.SC_OK) {
-//                                    byte[] bytes = get.getResponseBody();
-//                                    Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0,
-//                                            bytes.length);
-                                    InputStream inputStream = get.getResponseBodyAsStream();
-                                    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
-                                    thumbnail = ThumbnailUtils.extractThumbnail(bitmap, px, px);
-
-                                    // Add thumbnail to cache
-                                    if (thumbnail != null) {
-                                        addBitmapToCache(imageKey, thumbnail);
+                                if (mIsThumbnail) {
+                                    String uri = mClient.getBaseUri() + "" +
+                                            "/index.php/apps/files/api/v1/thumbnail/" +
+                                            pxW + "/" + pxH + Uri.encode(file.getRemotePath(), "/");
+                                    Log_OC.d("Thumbnail", "Download URI: " + uri);
+                                    GetMethod get = new GetMethod(uri);
+                                    int status = mClient.executeMethod(get);
+                                    if (status == HttpStatus.SC_OK) {
+                                        InputStream inputStream = get.getResponseBodyAsStream();
+                                        Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
+                                        thumbnail = ThumbnailUtils.extractThumbnail(bitmap, pxW, pxH);
+                                    } else {
+                                        Log_OC.d(TAG, "Status: " + status);
+                                    }
+                                } else {
+                                    String gallery = "";
+                                    if (serverOCVersion.supportsNativeGallery()){
+                                        gallery = "gallery";
+                                    } else {
+                                        gallery = "galleryplus";
+                                    }
+
+                                    String uri = mClient.getBaseUri() +
+                                            "/index.php/apps/" + gallery + "/api/preview/" + Integer.parseInt(file.getRemoteId().substring(0,8)) +
+                                            "/" + pxW + "/" + pxH;
+                                    Log_OC.d("Thumbnail", "FileName: " + file.getFileName() + " Download URI: " + uri);
+                                    GetMethod get = new GetMethod(uri);
+                                    int status = mClient.executeMethod(get);
+                                    if (status == HttpStatus.SC_OK) {
+                                        InputStream inputStream = get.getResponseBodyAsStream();
+                                        Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
+                                        // Download via gallery app
+                                        thumbnail = bitmap;
                                     }
                                 }
+
+                                // Handle PNG
+                                if (thumbnail != null && file.getMimetype().equalsIgnoreCase("image/png")) {
+                                    thumbnail = handlePNG(thumbnail, pxW);
+                                }
+
+                                // Add thumbnail to cache
+                                if (thumbnail != null) {
+                                    addBitmapToCache(imageKey, thumbnail);
+                                }
                             } catch (Exception e) {
                                 e.printStackTrace();
                             }
@@ -324,24 +442,52 @@ public class ThumbnailsCacheManager {
 
         }
 
-        private Bitmap doFileInBackground() {
+        private Bitmap handlePNG(Bitmap bitmap, int px){
+            Bitmap resultBitmap = Bitmap.createBitmap(px,
+                    px,
+                    Bitmap.Config.ARGB_8888);
+            Canvas c = new Canvas(resultBitmap);
+
+            c.drawColor(MainApp.getAppContext().getResources().
+                    getColor(R.color.background_color));
+            c.drawBitmap(bitmap, 0, 0, null);
+
+            return resultBitmap;
+        }
+
+        private Bitmap doFileInBackground(Boolean mIsThumbnail) {
             File file = (File)mFile;
 
-            final String imageKey = String.valueOf(file.hashCode());
+            // distinguish between thumbnail and resized image
+            String temp = String.valueOf(file.hashCode());
+            if (mIsThumbnail){
+                temp = "t" + temp;
+            } else {
+                temp = "r" + temp;
+            }
+
+            final String imageKey = temp;
 
             // Check disk cache in background thread
             Bitmap thumbnail = getBitmapFromDiskCache(imageKey);
 
             // Not found in disk cache
             if (thumbnail == null) {
-
-                int px = getThumbnailDimension();
+                int pxW = 0;
+                int pxH = 0;
+                if (mIsThumbnail) {
+                    pxW = pxH = getThumbnailDimension();
+                } else {
+                    Point p = getScreenDimension();
+                    pxW = p.x;
+                    pxH = p.y;
+                }
 
                 Bitmap bitmap = BitmapUtils.decodeSampledBitmapFromFile(
-                        file.getAbsolutePath(), px, px);
+                        file.getAbsolutePath(), pxW, pxH);
 
                 if (bitmap != null) {
-                    thumbnail = addThumbnailToCache(imageKey, bitmap, file.getPath(), px);
+                    thumbnail = addThumbnailToCache(imageKey, bitmap, file.getPath(), pxW, pxH);
                 }
             }
             return thumbnail;
@@ -358,6 +504,7 @@ public class ThumbnailsCacheManager {
             if (bitmapData == null || bitmapData != file) {
                 // Cancel previous task
                 bitmapWorkerTask.cancel(true);
+                Log_OC.v(TAG, "Cancelled generation of thumbnail for a reused imageView");
             } else {
                 // The same work is already in progress
                 return false;
index 25e8fbd..1c67433 100644 (file)
@@ -31,7 +31,7 @@ import com.owncloud.android.MainApp;
 public class ProviderMeta {\r
 \r
     public static final String DB_NAME = "filelist";\r
-    public static final int DB_VERSION = 10;\r
+    public static final int DB_VERSION = 13;\r
 \r
     private ProviderMeta() {\r
     }\r
@@ -39,6 +39,7 @@ public class ProviderMeta {
     static public class ProviderTableMeta implements BaseColumns {\r
         public static final String FILE_TABLE_NAME = "filelist";\r
         public static final String OCSHARES_TABLE_NAME = "ocshares";\r
+        public static final String CAPABILITIES_TABLE_NAME = "capabilities";\r
         public static final Uri CONTENT_URI = Uri.parse("content://"\r
                 + MainApp.getAuthority() + "/");\r
         public static final Uri CONTENT_URI_FILE = Uri.parse("content://"\r
@@ -47,6 +48,8 @@ public class ProviderMeta {
                 + MainApp.getAuthority() + "/dir");\r
         public static final Uri CONTENT_URI_SHARE = Uri.parse("content://"\r
                 + MainApp.getAuthority() + "/shares");\r
+        public static final Uri CONTENT_URI_CAPABILITIES = Uri.parse("content://"\r
+                + MainApp.getAuthority() + "/capabilities");\r
 \r
         public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.owncloud.file";\r
         public static final String CONTENT_TYPE_ITEM = "vnd.android.cursor.item/vnd.owncloud.file";\r
@@ -62,16 +65,18 @@ public class ProviderMeta {
         public static final String FILE_STORAGE_PATH = "media_path";\r
         public static final String FILE_PATH = "path";\r
         public static final String FILE_ACCOUNT_OWNER = "file_owner";\r
-        public static final String FILE_LAST_SYNC_DATE = "last_sync_date";  // _for_properties, but let's keep it as it is\r
+        public static final String FILE_LAST_SYNC_DATE = "last_sync_date";// _for_properties, but let's keep it as it is\r
         public static final String FILE_LAST_SYNC_DATE_FOR_DATA = "last_sync_date_for_data";\r
         public static final String FILE_KEEP_IN_SYNC = "keep_in_sync";\r
         public static final String FILE_ETAG = "etag";\r
-        public static final String FILE_SHARE_BY_LINK = "share_by_link";\r
+        public static final String FILE_SHARED_VIA_LINK = "share_by_link";\r
+        public static final String FILE_SHARED_WITH_SHAREE = "shared_via_users";\r
         public static final String FILE_PUBLIC_LINK = "public_link";\r
         public static final String FILE_PERMISSIONS = "permissions";\r
         public static final String FILE_REMOTE_ID = "remote_id";\r
         public static final String FILE_UPDATE_THUMBNAIL = "update_thumbnail";\r
         public static final String FILE_IS_DOWNLOADING= "is_downloading";\r
+        public static final String FILE_ETAG_IN_CONFLICT = "etag_in_conflict";\r
 \r
         public static final String FILE_DEFAULT_SORT_ORDER = FILE_NAME\r
                 + " collate nocase asc";\r
@@ -94,7 +99,35 @@ public class ProviderMeta {
         \r
         public static final String OCSHARES_DEFAULT_SORT_ORDER = OCSHARES_FILE_SOURCE \r
                 + " collate nocase asc";\r
-        \r
 \r
+        // Columns of capabilities table\r
+        public static final String CAPABILITIES_ACCOUNT_NAME = "account";\r
+        public static final String CAPABILITIES_VERSION_MAYOR = "version_mayor";\r
+        public static final String CAPABILITIES_VERSION_MINOR = "version_minor";\r
+        public static final String CAPABILITIES_VERSION_MICRO = "version_micro";\r
+        public static final String CAPABILITIES_VERSION_STRING = "version_string";\r
+        public static final String CAPABILITIES_VERSION_EDITION = "version_edition";\r
+        public static final String CAPABILITIES_CORE_POLLINTERVAL = "core_pollinterval";\r
+        public static final String CAPABILITIES_SHARING_API_ENABLED = "sharing_api_enabled";\r
+        public static final String CAPABILITIES_SHARING_PUBLIC_ENABLED = "sharing_public_enabled";\r
+        public static final String CAPABILITIES_SHARING_PUBLIC_PASSWORD_ENFORCED = "sharing_public_password_enforced";\r
+        public static final String CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_ENABLED =\r
+                "sharing_public_expire_date_enabled";\r
+        public static final String CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_DAYS =\r
+                "sharing_public_expire_date_days";\r
+        public static final String CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_ENFORCED =\r
+                "sharing_public_expire_date_enforced";\r
+        public static final String CAPABILITIES_SHARING_PUBLIC_SEND_MAIL = "sharing_public_send_mail";\r
+        public static final String CAPABILITIES_SHARING_PUBLIC_UPLOAD = "sharing_public_upload";\r
+        public static final String CAPABILITIES_SHARING_USER_SEND_MAIL = "sharing_user_send_mail";\r
+        public static final String CAPABILITIES_SHARING_RESHARING = "sharing_resharing";\r
+        public static final String CAPABILITIES_SHARING_FEDERATION_OUTGOING = "sharing_federation_outgoing";\r
+        public static final String CAPABILITIES_SHARING_FEDERATION_INCOMING = "sharing_federation_incoming";\r
+        public static final String CAPABILITIES_FILES_BIGFILECHUNKING = "files_bigfilechunking";\r
+        public static final String CAPABILITIES_FILES_UNDELETE = "files_undelete";\r
+        public static final String CAPABILITIES_FILES_VERSIONING = "files_versioning";\r
+\r
+        public static final String CAPABILITIES_DEFAULT_SORT_ORDER = CAPABILITIES_ACCOUNT_NAME\r
+                + " collate nocase asc";\r
     }\r
 }\r
index 2c2754c..6525303 100644 (file)
@@ -29,17 +29,19 @@ import android.view.Menu;
 import android.view.MenuItem;
 
 import com.owncloud.android.R;
+import com.owncloud.android.authentication.AccountUtils;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.files.services.FileDownloader;
 import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
-import com.owncloud.android.services.OperationsService;
+import com.owncloud.android.lib.resources.status.CapabilityBooleanType;
+import com.owncloud.android.lib.resources.status.OCCapability;
 import com.owncloud.android.services.OperationsService.OperationsServiceBinder;
 import com.owncloud.android.ui.activity.ComponentsGetter;
 
 /**
- * Filters out the file actions available in a given {@link Menu} for a given {@link OCFile} 
+ * Filters out the file actions available in a given {@link Menu} for a given {@link OCFile}
  * according to the current state of the latest. 
  */
 public class FileMenuFilter {
@@ -48,36 +50,37 @@ public class FileMenuFilter {
     private ComponentsGetter mComponentsGetter;
     private Account mAccount;
     private Context mContext;
-    
+
     /**
      * Constructor
-     * 
+     *
      * @param targetFile        {@link OCFile} target of the action to filter in the {@link Menu}.
      * @param account           ownCloud {@link Account} holding targetFile.
      * @param cg                Accessor to app components, needed to access the
      *                          {@link FileUploader} and {@link FileDownloader} services
      * @param context           Android {@link Context}, needed to access build setup resources.
      */
-    public FileMenuFilter(OCFile targetFile, Account account, ComponentsGetter cg, Context context) {
+    public FileMenuFilter(OCFile targetFile, Account account, ComponentsGetter cg,
+                          Context context) {
         mFile = targetFile;
         mAccount = account;
         mComponentsGetter = cg;
         mContext = context;
     }
-    
-    
+
+
     /**
      * Filters out the file actions available in the passed {@link Menu} taken into account
      * the state of the {@link OCFile} held by the filter.
-     *  
+     *
      * @param menu              Options or context menu to filter.
      */
     public void filter(Menu menu) {
-        List<Integer> toShow = new ArrayList<Integer>();  
-        List<Integer> toHide = new ArrayList<Integer>();    
-        
+        List<Integer> toShow = new ArrayList<Integer>();
+        List<Integer> toHide = new ArrayList<Integer>();
+
         filter(toShow, toHide);
-        
+
         MenuItem item = null;
         for (int i : toShow) {
             item = menu.findItem(i);
@@ -86,7 +89,7 @@ public class FileMenuFilter {
                 item.setEnabled(true);
             }
         }
-        
+
         for (int i : toHide) {
             item = menu.findItem(i);
             if (item != null) {
@@ -99,105 +102,100 @@ public class FileMenuFilter {
 
     /**
      * Performs the real filtering, to be applied in the {@link Menu} by the caller methods.
-     * 
+     *
      * Decides what actions must be shown and hidden.
-     *  
-     * @param toShow            List to save the options that must be shown in the menu. 
+     *
+     * @param toShow            List to save the options that must be shown in the menu.
      * @param toHide            List to save the options that must be shown in the menu.
      */
     private void filter(List<Integer> toShow, List <Integer> toHide) {
-        boolean downloading = false;
-        boolean uploading = false;
+        boolean synchronizing = false;
         if (mComponentsGetter != null && mFile != null && mAccount != null) {
-            FileDownloaderBinder downloaderBinder = mComponentsGetter.getFileDownloaderBinder();
-            downloading = (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, mFile));
             OperationsServiceBinder opsBinder = mComponentsGetter.getOperationsServiceBinder();
-            downloading |= (opsBinder != null && opsBinder.isSynchronizing(mAccount, mFile.getRemotePath()));
             FileUploaderBinder uploaderBinder = mComponentsGetter.getFileUploaderBinder();
-            uploading = (uploaderBinder != null && uploaderBinder.isUploading(mAccount, mFile));
+            FileDownloaderBinder downloaderBinder = mComponentsGetter.getFileDownloaderBinder();
+            synchronizing = (
+                // comparing local and remote
+                (opsBinder != null && opsBinder.isSynchronizing(mAccount, mFile.getRemotePath())) ||
+                // downloading
+                (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, mFile)) ||
+                // uploading
+                (uploaderBinder != null && uploaderBinder.isUploading(mAccount, mFile))
+            );
         }
-        
+
         /// decision is taken for each possible action on a file in the menu
-        
+
         // DOWNLOAD 
-        if (mFile == null || mFile.isDown() || downloading || uploading) {
+        if (mFile == null || mFile.isDown() || mFile.isFolder() || synchronizing) {
             toHide.add(R.id.action_download_file);
-            
+
         } else {
             toShow.add(R.id.action_download_file);
         }
-        
+
         // RENAME
-        if (mFile == null || downloading || uploading) {
+        if (mFile == null || synchronizing) {
             toHide.add(R.id.action_rename_file);
-            
+
         } else {
             toShow.add(R.id.action_rename_file);
         }
 
-        // MOVE
-        if (mFile == null || downloading || uploading) {
+        // MOVE & COPY
+        if (mFile == null || synchronizing) {
             toHide.add(R.id.action_move);
-
+            toHide.add(R.id.action_copy);
         } else {
             toShow.add(R.id.action_move);
+            toShow.add(R.id.action_copy);
         }
-        
+
         // REMOVE
-        if (mFile == null || downloading || uploading) {
+        if (mFile == null || synchronizing) {
             toHide.add(R.id.action_remove_file);
-            
+
         } else {
             toShow.add(R.id.action_remove_file);
         }
-        
+
         // OPEN WITH (different to preview!)
-        if (mFile == null || mFile.isFolder() || !mFile.isDown() || downloading || uploading) {
+        if (mFile == null || mFile.isFolder() || !mFile.isDown() || synchronizing) {
             toHide.add(R.id.action_open_file_with);
-            
+
         } else {
             toShow.add(R.id.action_open_file_with);
         }
-        
-        
-        // CANCEL DOWNLOAD
-        if (mFile == null || !downloading) {
-            toHide.add(R.id.action_cancel_download);
-        } else {
-            toShow.add(R.id.action_cancel_download);
-        }
-        
-        // CANCEL UPLOAD
-        if (mFile == null || !uploading || mFile.isFolder()) {
-            toHide.add(R.id.action_cancel_upload);
+
+        // CANCEL SYNCHRONIZATION
+        if (mFile == null || !synchronizing) {
+            toHide.add(R.id.action_cancel_sync);
+
         } else {
-            toShow.add(R.id.action_cancel_upload);
+            toShow.add(R.id.action_cancel_sync);
         }
-        
-        // SYNC FILE CONTENTS
-        if (mFile == null || mFile.isFolder() || !mFile.isDown() || downloading || uploading) {
+
+        // SYNC CONTENTS (BOTH FILE AND FOLDER)
+        if (mFile == null || (!mFile.isFolder() && !mFile.isDown()) || synchronizing) {
             toHide.add(R.id.action_sync_file);
+
         } else {
             toShow.add(R.id.action_sync_file);
         }
-        
-        // SHARE FILE 
-        // TODO add check on SHARE available on server side?
+
+        // SHARE FILE
         boolean shareAllowed = (mContext != null  &&
                 mContext.getString(R.string.share_feature).equalsIgnoreCase("on"));
-        if (!shareAllowed || mFile == null) {
+        OCCapability capability = mComponentsGetter.getStorageManager().getCapability(mAccount.name);
+        boolean shareApiEnabled  = capability != null &&
+                (capability.getFilesSharingApiEnabled().isTrue() ||
+                        capability.getFilesSharingApiEnabled().isUnknown()
+                );
+        if (!shareAllowed ||  mFile == null || !shareApiEnabled) {
             toHide.add(R.id.action_share_file);
         } else {
             toShow.add(R.id.action_share_file);
         }
-        
-        // UNSHARE FILE  
-        // TODO add check on SHARE available on server side?
-        if ( !shareAllowed || (mFile == null || !mFile.isShareByLink())) {
-            toHide.add(R.id.action_unshare_file);
-        } else {
-            toShow.add(R.id.action_unshare_file);
-        }
 
         // SEE DETAILS
         if (mFile == null || mFile.isFolder()) {
@@ -205,30 +203,44 @@ public class FileMenuFilter {
         } else {
             toShow.add(R.id.action_see_details);
         }
-        
+
         // SEND
         boolean sendAllowed = (mContext != null &&
                 mContext.getString(R.string.send_files_to_other_apps).equalsIgnoreCase("on"));
-        if (mFile == null || !sendAllowed || mFile.isFolder() || uploading || downloading) {
+        if (mFile == null || !sendAllowed || mFile.isFolder() || synchronizing) {
             toHide.add(R.id.action_send_file);
         } else {
             toShow.add(R.id.action_send_file);
         }
 
         // FAVORITES
-        if (mFile == null || downloading || uploading || mFile.isFolder() || mFile.isFavorite()) {
+        if (mFile == null || synchronizing || mFile.isFolder() || mFile.isFavorite()) {
             toHide.add(R.id.action_favorite_file);
         } else {
             toShow.add(R.id.action_favorite_file);
         }
 
         // UNFAVORITES
-        if (mFile == null || downloading || uploading || mFile.isFolder() || !mFile.isFavorite()) {
+        if (mFile == null || synchronizing || mFile.isFolder() || !mFile.isFavorite()) {
             toHide.add(R.id.action_unfavorite_file);
         } else {
             toShow.add(R.id.action_unfavorite_file);
         }
 
+        // STREAM
+        if (mFile != null && !mFile.isDown() && (mFile.isAudio() || mFile.isVideo())){
+            toShow.add(R.id.action_stream_file);
+        } else {
+            toHide.add(R.id.action_stream_file);
+        }
+
+        // SET PICTURE AS
+        if (mFile == null || !mFile.isImage()){
+            toHide.add(R.id.action_set_as_wallpaper);
+        } else {
+            toShow.add(R.id.action_set_as_wallpaper);
+        }
+
     }
 
 }
index ddee205..9cc70a7 100644 (file)
 
 package com.owncloud.android.files;
 
-import org.apache.http.protocol.HTTP;
-
 import android.accounts.Account;
+import android.content.ActivityNotFoundException;
+import android.content.Context;
 import android.content.Intent;
+import android.graphics.Bitmap;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.graphics.Bitmap;
 import android.net.Uri;
 import android.support.v4.app.DialogFragment;
 import android.webkit.MimeTypeMap;
 import android.widget.Toast;
 
+import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.datamodel.ThumbnailsCacheManager;
 import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
-
 import com.owncloud.android.lib.common.network.WebdavUtils;
 import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.lib.resources.shares.ShareType;
 import com.owncloud.android.lib.resources.status.OwnCloudVersion;
 import com.owncloud.android.services.OperationsService;
 import com.owncloud.android.services.observer.FileObserverService;
 import com.owncloud.android.ui.activity.FileActivity;
+import com.owncloud.android.ui.adapter.DiskLruImageCacheFileProvider;
+import com.owncloud.android.ui.activity.ShareActivity;
 import com.owncloud.android.ui.dialog.ShareLinkToDialog;
+import com.owncloud.android.ui.dialog.SharePasswordDialogFragment;
+
+
+import java.io.File;
+import java.util.List;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import org.apache.http.protocol.HTTP;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  *
@@ -50,14 +74,14 @@ import com.owncloud.android.ui.dialog.ShareLinkToDialog;
 public class FileOperationsHelper {
 
     private static final String TAG = FileOperationsHelper.class.getName();
-    
-    private static final String FTAG_CHOOSER_DIALOG = "CHOOSER_DIALOG"; 
+
+    private static final String FTAG_CHOOSER_DIALOG = "CHOOSER_DIALOG";
 
     protected FileActivity mFileActivity = null;
 
     /// Identifier of operation in progress which result shouldn't be lost 
     private long mWaitingForOpId = Long.MAX_VALUE;
-    
+
     public FileOperationsHelper(FileActivity fileActivity) {
         mFileActivity = fileActivity;
     }
@@ -67,9 +91,10 @@ public class FileOperationsHelper {
         if (file != null) {
             String storagePath = file.getStoragePath();
             String encodedStoragePath = WebdavUtils.encodePath(storagePath);
-            
+
             Intent intentForSavedMimeType = new Intent(Intent.ACTION_VIEW);
-            intentForSavedMimeType.setDataAndType(Uri.parse("file://"+ encodedStoragePath), file.getMimetype());
+            intentForSavedMimeType.setDataAndType(Uri.parse("file://"+ encodedStoragePath),
+                    file.getMimetype());
             intentForSavedMimeType.setFlags(
                     Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION
             );
@@ -81,62 +106,130 @@ public class FileOperationsHelper {
                 );
                 if (guessedMimeType != null && !guessedMimeType.equals(file.getMimetype())) {
                     intentForGuessedMimeType = new Intent(Intent.ACTION_VIEW);
-                    intentForGuessedMimeType.setDataAndType(Uri.parse("file://"+ encodedStoragePath), guessedMimeType);
+                    intentForGuessedMimeType.
+                            setDataAndType(Uri.parse("file://"+ encodedStoragePath),
+                                    guessedMimeType);
                     intentForGuessedMimeType.setFlags(
-                            Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION
+                            Intent.FLAG_GRANT_READ_URI_PERMISSION |
+                                    Intent.FLAG_GRANT_WRITE_URI_PERMISSION
                     );
                 }
             }
-            
-            Intent chooserIntent;
+
+            Intent openFileWithIntent;
             if (intentForGuessedMimeType != null) {
-                chooserIntent = Intent.createChooser(intentForGuessedMimeType, mFileActivity.getString(R.string.actionbar_open_with));
+                openFileWithIntent = intentForGuessedMimeType;
             } else {
-                chooserIntent = Intent.createChooser(intentForSavedMimeType, mFileActivity.getString(R.string.actionbar_open_with));
+                openFileWithIntent = intentForSavedMimeType;
             }
-            
-            mFileActivity.startActivity(chooserIntent);
-            
+
+            List<ResolveInfo> launchables = mFileActivity.getPackageManager().
+                    queryIntentActivities(openFileWithIntent, PackageManager.GET_INTENT_FILTERS);
+
+            if(launchables != null && launchables.size() > 0) {
+                try {
+                    mFileActivity.startActivity(
+                            Intent.createChooser(
+                                    openFileWithIntent, mFileActivity.getString(R.string.actionbar_open_with)
+                            )
+                    );
+                } catch (ActivityNotFoundException anfe) {
+                    showNoAppForFileTypeToast(mFileActivity.getApplicationContext());
+                }
+            } else {
+                showNoAppForFileTypeToast(mFileActivity.getApplicationContext());
+            }
+
         } else {
             Log_OC.wtf(TAG, "Trying to open a NULL OCFile");
         }
     }
-    
-    
-    public void shareFileWithLink(OCFile file) {
-        
+
+    /**
+     * Displays a toast stating that no application could be found to open the file.
+     *
+     * @param context the context to be able to show a toast.
+     */
+    private void showNoAppForFileTypeToast(Context context) {
+        Toast.makeText(context,
+                R.string.file_list_no_app_for_file_type, Toast.LENGTH_SHORT)
+                .show();
+    }
+
+
+    /**
+     * Helper method to share a file via a public link. Starts a request to do it in {@link OperationsService}
+     *
+     * @param file          The file to share.
+     * @param password      Optional password to protect the public share.
+     */
+    public void shareFileViaLink(OCFile file, String password) {
         if (isSharedSupported()) {
             if (file != null) {
-                String link = "https://fake.url";
-                Intent intent = createShareWithLinkIntent(link);
-                String[] packagesToExclude = new String[] { mFileActivity.getPackageName() };
-                DialogFragment chooserDialog = ShareLinkToDialog.newInstance(intent, packagesToExclude, file);
-                chooserDialog.show(mFileActivity.getSupportFragmentManager(), FTAG_CHOOSER_DIALOG);
-                
+                mFileActivity.showLoadingDialog(
+                        mFileActivity.getApplicationContext().
+                                getString(R.string.wait_a_moment)
+                );
+                Intent service = new Intent(mFileActivity, OperationsService.class);
+                service.setAction(OperationsService.ACTION_CREATE_SHARE_VIA_LINK);
+                service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+                if (password != null && password.length() > 0) {
+                    service.putExtra(OperationsService.EXTRA_SHARE_PASSWORD, password);
+                }
+                service.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+                mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
+
             } else {
                 Log_OC.wtf(TAG, "Trying to share a NULL OCFile");
+                // TODO user-level error?
             }
-            
+
         } else {
             // Show a Message
             Toast t = Toast.makeText(
-                    mFileActivity, mFileActivity.getString(R.string.share_link_no_support_share_api), Toast.LENGTH_LONG
+                    mFileActivity, mFileActivity.getString(R.string.share_link_no_support_share_api),
+                    Toast.LENGTH_LONG
             );
             t.show();
         }
     }
-    
-    
+
+    public void getFileWithLink(OCFile file){
+        if (isSharedSupported()) {
+            if (file != null) {
+                mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext().
+                        getString(R.string.wait_a_moment));
+
+                Intent service = new Intent(mFileActivity, OperationsService.class);
+                service.setAction(OperationsService.ACTION_CREATE_SHARE_VIA_LINK);
+                service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+                service.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+                mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
+
+            } else {
+                Log_OC.wtf(TAG, "Trying to share a NULL OCFile");
+            }
+        } else {
+            // Show a Message
+            Toast t = Toast.makeText(
+                    mFileActivity, mFileActivity.getString(R.string.share_link_no_support_share_api),
+                    Toast.LENGTH_LONG
+            );
+            t.show();
+        }
+    }
+
     public void shareFileWithLinkToApp(OCFile file, String password, Intent sendIntent) {
         
         if (file != null) {
-            mFileActivity.showLoadingDialog();
-            
+            mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext().
+                    getString(R.string.wait_a_moment));
+
             Intent service = new Intent(mFileActivity, OperationsService.class);
-            service.setAction(OperationsService.ACTION_CREATE_SHARE);
+            service.setAction(OperationsService.ACTION_CREATE_SHARE_VIA_LINK);
             service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
             service.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
-            service.putExtra(OperationsService.EXTRA_PASSWORD_SHARE, password);
+            service.putExtra(OperationsService.EXTRA_SHARE_PASSWORD, password);
             service.putExtra(OperationsService.EXTRA_SEND_INTENT, sendIntent);
             mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
             
@@ -144,18 +237,36 @@ public class FileOperationsHelper {
             Log_OC.wtf(TAG, "Trying to open a NULL OCFile");
         }
     }
-    
-    
-    private Intent createShareWithLinkIntent(String link) {
-        Intent intentToShareLink = new Intent(Intent.ACTION_SEND);
-        intentToShareLink.putExtra(Intent.EXTRA_TEXT, link);
-        intentToShareLink.setType(HTTP.PLAIN_TEXT_TYPE);
-        return intentToShareLink; 
+
+    /**
+     * Helper method to share a file with a known sharee. Starts a request to do it in {@link OperationsService}
+     *
+     * @param file          The file to share.
+     * @param shareeName    Name (user name or group name) of the target sharee.
+     * @param shareType     The share type determines the sharee type.
+     */
+    public void shareFileWithSharee(OCFile file, String shareeName, ShareType shareType) {
+        if (file != null) {
+            // TODO check capability?
+            mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext().
+                    getString(R.string.wait_a_moment));
+
+            Intent service = new Intent(mFileActivity, OperationsService.class);
+            service.setAction(OperationsService.ACTION_CREATE_SHARE_WITH_SHAREE);
+            service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+            service.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+            service.putExtra(OperationsService.EXTRA_SHARE_WITH, shareeName);
+            service.putExtra(OperationsService.EXTRA_SHARE_TYPE, shareType);
+            mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
+
+        } else {
+            Log_OC.wtf(TAG, "Trying to share a NULL OCFile");
+        }
     }
-    
-    
+
+
     /**
-     *  @return 'True' if the server supports the Share API
+     * @return 'True' if the server supports the Share API
      */
     public boolean isSharedSupported() {
         if (mFileActivity.getAccount() != null) {
@@ -164,28 +275,146 @@ public class FileOperationsHelper {
         }
         return false;
     }
-    
-    
-    public void unshareFileWithLink(OCFile file) {
-        
+
+
+    /**
+     * Helper method to unshare a file publicly shared via link.
+     * Starts a request to do it in {@link OperationsService}
+     *
+     * @param file      The file to unshare.
+     */
+    public void unshareFileViaLink(OCFile file) {
+
+        // Unshare the file: Create the intent
+        Intent unshareService = new Intent(mFileActivity, OperationsService.class);
+        unshareService.setAction(OperationsService.ACTION_UNSHARE);
+        unshareService.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+        unshareService.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+        unshareService.putExtra(OperationsService.EXTRA_SHARE_TYPE, ShareType.PUBLIC_LINK);
+        unshareService.putExtra(OperationsService.EXTRA_SHARE_WITH, "");
+
+        queueShareIntent(unshareService);
+    }
+
+    public void unshareFileWithUserOrGroup(OCFile file, ShareType shareType, String userOrGroup){
+
+        // Unshare the file: Create the intent
+        Intent unshareService = new Intent(mFileActivity, OperationsService.class);
+        unshareService.setAction(OperationsService.ACTION_UNSHARE);
+        unshareService.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+        unshareService.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+        unshareService.putExtra(OperationsService.EXTRA_SHARE_TYPE, shareType);
+        unshareService.putExtra(OperationsService.EXTRA_SHARE_WITH, userOrGroup);
+
+        queueShareIntent(unshareService);
+    }
+
+
+    private void queueShareIntent(Intent shareIntent){
         if (isSharedSupported()) {
             // Unshare the file
-            Intent service = new Intent(mFileActivity, OperationsService.class);
-            service.setAction(OperationsService.ACTION_UNSHARE);
-            service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
-            service.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
-            mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
-            
-            mFileActivity.showLoadingDialog();
-            
+            mWaitingForOpId = mFileActivity.getOperationsServiceBinder().
+                    queueNewOperation(shareIntent);
+
+            mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext().
+                    getString(R.string.wait_a_moment));
+
         } else {
             // Show a Message
-            Toast t = Toast.makeText(mFileActivity, mFileActivity.getString(R.string.share_link_no_support_share_api), Toast.LENGTH_LONG);
+            Toast t = Toast.makeText(mFileActivity,
+                    mFileActivity.getString(R.string.share_link_no_support_share_api),
+                    Toast.LENGTH_LONG);
             t.show();
-            
+
         }
     }
-    
+
+    /**
+     * Show an instance of {@link ShareType} for sharing or unsharing the {@OCFile} received as parameter.
+     *
+     * @param file  File to share or unshare.
+     */
+    public void showShareFile(OCFile file){
+        Intent intent = new Intent(mFileActivity, ShareActivity.class);
+        intent.putExtra(mFileActivity.EXTRA_FILE, file);
+        intent.putExtra(mFileActivity.EXTRA_ACCOUNT, mFileActivity.getAccount());
+        mFileActivity.startActivity(intent);
+
+    }
+
+
+    /**
+     * Starts a dialog that requests a password to the user to protect a share link.
+     *
+     * @param   file            File which public share will be protected by the requested password
+     * @param   createShare     When 'true', the request for password will be followed by the creation of a new
+     *                          public link; when 'false', a public share is assumed to exist, and the password
+     *                          is bound to it.
+     */
+    public void requestPasswordForShareViaLink(OCFile file, boolean createShare) {
+        SharePasswordDialogFragment dialog =
+                SharePasswordDialogFragment.newInstance(file, createShare);
+        dialog.show(
+                mFileActivity.getSupportFragmentManager(),
+                SharePasswordDialogFragment.PASSWORD_FRAGMENT
+        );
+    }
+
+    /**
+     * Updates a public share on a file to set its password.
+     * Starts a request to do it in {@link OperationsService}
+     *
+     * @param file          File which public share will be protected with a password.
+     * @param password      Password to set for the public link; null or empty string to clear
+     *                      the current password
+     */
+    public void setPasswordToShareViaLink(OCFile file, String password) {
+        // Set password updating share
+        Intent updateShareIntent = new Intent(mFileActivity, OperationsService.class);
+        updateShareIntent.setAction(OperationsService.ACTION_UPDATE_SHARE);
+        updateShareIntent.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+        updateShareIntent.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+        updateShareIntent.putExtra(
+                OperationsService.EXTRA_SHARE_PASSWORD,
+                (password == null) ? "" : password
+        );
+
+        queueShareIntent(updateShareIntent);
+    }
+
+
+    /**
+     * Updates a public share on a file to set its expiration date.
+     * Starts a request to do it in {@link OperationsService}
+     *
+     * @param file                      File which public share will be constrained with an expiration date.
+     * @param expirationTimeInMillis    Expiration date to set. A negative value clears the current expiration
+     *                                  date, leaving the link unrestricted. Zero makes no change.
+     */
+    public void setExpirationDateToShareViaLink(OCFile file, long expirationTimeInMillis) {
+        Intent updateShareIntent = new Intent(mFileActivity, OperationsService.class);
+        updateShareIntent.setAction(OperationsService.ACTION_UPDATE_SHARE);
+        updateShareIntent.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+        updateShareIntent.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+        updateShareIntent.putExtra(
+                OperationsService.EXTRA_SHARE_EXPIRATION_DATE_IN_MILLIS,
+                expirationTimeInMillis
+        );
+        queueShareIntent(updateShareIntent);
+    }
+
+
+    /**
+     * @return 'True' if the server supports the Search Users API
+     */
+    public boolean isSearchUsersSupportedSupported() {
+        if (mFileActivity.getAccount() != null) {
+            OwnCloudVersion serverVersion = AccountUtils.getServerVersion(mFileActivity.getAccount());
+            return (serverVersion != null && serverVersion.isSearchUsersSupported());
+        }
+        return false;
+    }
+
     public void sendDownloadedFile(OCFile file) {
         if (file != null) {
             String storagePath = file.getStoragePath();
@@ -197,18 +426,80 @@ public class FileOperationsHelper {
             sendIntent.putExtra(Intent.ACTION_SEND, true);      // Send Action
 
             // Show dialog, without the own app
-            String[] packagesToExclude = new String[] { mFileActivity.getPackageName() };
-            DialogFragment chooserDialog = ShareLinkToDialog.newInstance(sendIntent, packagesToExclude, file);
+            String[] packagesToExclude = new String[]{mFileActivity.getPackageName()};
+            DialogFragment chooserDialog = ShareLinkToDialog.newInstance(sendIntent, packagesToExclude);
             chooserDialog.show(mFileActivity.getSupportFragmentManager(), FTAG_CHOOSER_DIALOG);
 
         } else {
             Log_OC.wtf(TAG, "Trying to send a NULL OCFile");
         }
     }
-    
-    
+
+    public void setPictureAs(OCFile file) {
+        if (file != null){
+            if (file.isDown()) {
+                File externalFile = new File(file.getStoragePath());
+                Uri sendUri = Uri.fromFile(externalFile);
+                Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
+                intent.setDataAndType(sendUri, file.getMimetype());
+                intent.putExtra("mimeType", file.getMimetype());
+                mFileActivity.startActivityForResult(Intent.createChooser(intent,
+                                                    mFileActivity.getString(R.string.set_as)), 200);
+            } else {
+                // TODO re-enable after resized images is available
+                Uri sendUri = Uri.parse("content://" + DiskLruImageCacheFileProvider.AUTHORITY + file.getRemotePath());
+                Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
+                intent.setDataAndType(sendUri, file.getMimetype());
+                intent.putExtra("mimeType", file.getMimetype());
+                mFileActivity.startActivityForResult(Intent.createChooser(intent, "Set As"), 200);
+
+//                Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND);
+//                // set MimeType
+//                sendIntent.setType(file.getMimetype());
+////            sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://" + DiskLruImageCacheFileProvider.AUTHORITY + "/#" + file.getRemoteId() + "#" + file.getFileName()));
+//                sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://" + DiskLruImageCacheFileProvider.AUTHORITY + file.getRemotePath()));
+//                sendIntent.putExtra(Intent.ACTION_SEND, true);      // Send Action
+//
+//                // Show dialog, without the own app
+//                String[] packagesToExclude = new String[] { mFileActivity.getPackageName() };
+//                DialogFragment chooserDialog = ShareLinkToDialog.newInstance(sendIntent, packagesToExclude, file);
+//                chooserDialog.show(mFileActivity.getSupportFragmentManager(), FTAG_CHOOSER_DIALOG);
+            }
+        } else {
+            Log_OC.wtf(TAG, "Trying to send a NULL OCFile");
+        }
+    }
+
+    public void sendCachedImage(OCFile file) {
+        if (file != null) {
+            Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND);
+            // set MimeType
+            sendIntent.setType(file.getMimetype());
+//            sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://" + DiskLruImageCacheFileProvider.AUTHORITY + "/#" + file.getRemoteId() + "#" + file.getFileName()));
+            sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://" + DiskLruImageCacheFileProvider.AUTHORITY + file.getRemotePath()));
+            sendIntent.putExtra(Intent.ACTION_SEND, true);      // Send Action
+
+            // Show dialog, without the own app
+            String[] packagesToExclude = new String[] { mFileActivity.getPackageName() };
+            DialogFragment chooserDialog = ShareLinkToDialog.newInstance(sendIntent, packagesToExclude);
+            chooserDialog.show(mFileActivity.getSupportFragmentManager(), FTAG_CHOOSER_DIALOG);
+        } else {
+            Log_OC.wtf(TAG, "Trying to send a NULL OCFile");
+        }
+    }
+
+    public void syncFiles(ArrayList<OCFile> files) {
+        for (OCFile file: files) {
+            syncFile(file);
+        }
+    }
+
+    /**
+     * Request the synchronization of a file or folder with the OC server, including its contents.
+     *
+     * @param file          The file or folder to synchronize
+     */
     public void syncFile(OCFile file) {
-        
         if (!file.isFolder()){
             Intent intent = new Intent(mFileActivity, OperationsService.class);
             intent.setAction(OperationsService.ACTION_SYNC_FILE);
@@ -216,7 +507,8 @@ public class FileOperationsHelper {
             intent.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
             intent.putExtra(OperationsService.EXTRA_SYNC_FILE_CONTENTS, true);
             mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(intent);
-            mFileActivity.showLoadingDialog();
+            mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext().
+                    getString(R.string.wait_a_moment));
             
         } else {
             Intent intent = new Intent(mFileActivity, OperationsService.class);
@@ -224,6 +516,13 @@ public class FileOperationsHelper {
             intent.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
             intent.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
             mFileActivity.startService(intent);
+
+        }
+    }
+
+    public void toggleFavorites(ArrayList<OCFile> files, boolean isFavorite){
+        for (OCFile file: files) {
+            toggleFavorite(file, isFavorite);
         }
     }
 
@@ -254,7 +553,8 @@ public class FileOperationsHelper {
         service.putExtra(OperationsService.EXTRA_NEWNAME, newFilename);
         mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
         
-        mFileActivity.showLoadingDialog();
+        mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext().
+                getString(R.string.wait_a_moment));
     }
 
 
@@ -267,10 +567,11 @@ public class FileOperationsHelper {
         service.putExtra(OperationsService.EXTRA_REMOVE_ONLY_LOCAL, onlyLocalCopy);
         mWaitingForOpId =  mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
         
-        mFileActivity.showLoadingDialog();
+        mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext().
+                getString(R.string.wait_a_moment));
     }
-    
-    
+
+
     public void createFolder(String remotePath, boolean createFullPath) {
         // Create Folder
         Intent service = new Intent(mFileActivity, OperationsService.class);
@@ -280,7 +581,8 @@ public class FileOperationsHelper {
         service.putExtra(OperationsService.EXTRA_CREATE_FULL_PATH, createFullPath);
         mWaitingForOpId =  mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
         
-        mFileActivity.showLoadingDialog();
+        mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext().
+                getString(R.string.wait_a_moment));
     }
 
     /**
@@ -290,7 +592,8 @@ public class FileOperationsHelper {
     public void cancelTransference(OCFile file) {
         Account account = mFileActivity.getAccount();
         if (file.isFolder()) {
-            OperationsService.OperationsServiceBinder opsBinder = mFileActivity.getOperationsServiceBinder();
+            OperationsService.OperationsServiceBinder opsBinder =
+                    mFileActivity.getOperationsServiceBinder();
             if (opsBinder != null) {
                 opsBinder.cancel(account, file);
             }
@@ -298,27 +601,20 @@ public class FileOperationsHelper {
 
         // for both files and folders
         FileDownloaderBinder downloaderBinder = mFileActivity.getFileDownloaderBinder();
-        FileUploaderBinder uploaderBinder = mFileActivity.getFileUploaderBinder();
         if (downloaderBinder != null && downloaderBinder.isDownloading(account, file)) {
             downloaderBinder.cancel(account, file);
-
-            // TODO - review why is this here, and solve in a better way
-            // Remove etag for parent, if file is a favorite
-            if (file.isFavorite()) {
-                OCFile parent = mFileActivity.getStorageManager().getFileById(file.getParentId());
-                parent.setEtag("");
-                mFileActivity.getStorageManager().saveFile(parent);
-            }
-
-        } else if (uploaderBinder != null && uploaderBinder.isUploading(account, file)) {
+        }
+        FileUploaderBinder uploaderBinder = mFileActivity.getFileUploaderBinder();
+        if (uploaderBinder != null && uploaderBinder.isUploading(account, file)) {
             uploaderBinder.cancel(account, file);
         }
     }
 
     /**
      * Start move file operation
-     * @param newfile           File where it is going to be moved
-     * @param currentFile       File with the previous info
+     *
+     * @param newfile     File where it is going to be moved
+     * @param currentFile File with the previous info
      */
     public void moveFile(OCFile newfile, OCFile currentFile) {
         // Move files
@@ -329,9 +625,29 @@ public class FileOperationsHelper {
         service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
         mWaitingForOpId =  mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
 
-        mFileActivity.showLoadingDialog();
+        // TODO Tobi loading dialog?
+//        mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext().
+//                getString(R.string.wait_a_moment));
     }
 
+    /**
+     * Start copy file operation
+     *
+     * @param newfile     File where it is going to be moved
+     * @param currentFile File with the previous info
+     */
+    public void copyFile(OCFile newfile, OCFile currentFile) {
+        // Copy files
+        Intent service = new Intent(mFileActivity, OperationsService.class);
+        service.setAction(OperationsService.ACTION_COPY_FILE);
+        service.putExtra(OperationsService.EXTRA_NEW_PARENT_PATH, newfile.getRemotePath());
+        service.putExtra(OperationsService.EXTRA_REMOTE_PATH, currentFile.getRemotePath());
+        service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+        mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
+
+        mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext().
+                getString(R.string.wait_a_moment));
+    }
 
     public long getOpIdWaitingFor() {
         return mWaitingForOpId;
@@ -341,15 +657,17 @@ public class FileOperationsHelper {
     public void setOpIdWaitingFor(long waitingForOpId) {
         mWaitingForOpId = waitingForOpId;
     }
-    
+
     /**
      *  @return 'True' if the server doesn't need to check forbidden characters
      */
     public boolean isVersionWithForbiddenCharacters() {
         if (mFileActivity.getAccount() != null) {
-            OwnCloudVersion serverVersion = AccountUtils.getServerVersion(mFileActivity.getAccount());
+            OwnCloudVersion serverVersion =
+                    AccountUtils.getServerVersion(mFileActivity.getAccount());
             return (serverVersion != null && serverVersion.isVersionWithForbiddenCharacters());
         }
         return false;
     }
+
 }
index 47f7127..d1ffd8f 100644 (file)
@@ -29,14 +29,16 @@ import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.utils.FileStorageUtils;
 
-
 import android.accounts.Account;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.SharedPreferences;
 import android.database.Cursor;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo.State;
+import android.os.BatteryManager;
 import android.preference.PreferenceManager;
 import android.provider.MediaStore.Images;
 import android.provider.MediaStore.Video;
@@ -58,7 +60,7 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
     @Override
     public void onReceive(Context context, Intent intent) {
         Log_OC.d(TAG, "Received: " + intent.getAction());
-        if (intent.getAction().equals(android.net.ConnectivityManager.CONNECTIVITY_ACTION)) {
+        if (intent.getAction().equals(android.net.ConnectivityManager.CONNECTIVITY_ACTION) || intent.getAction().equals(Intent.ACTION_POWER_CONNECTED)) {
             handleConnectivityAction(context, intent);
         }else if (intent.getAction().equals(NEW_PHOTO_ACTION_UNOFFICIAL)) {
             handleNewPictureAction(context, intent); 
@@ -103,7 +105,6 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
         file_name = c.getString(c.getColumnIndex(Images.Media.DISPLAY_NAME));
         mime_type = c.getString(c.getColumnIndex(Images.Media.MIME_TYPE));
         c.close();
-        
         Log_OC.d(TAG, file_path + "");
 
         // save always temporally the picture to upload
@@ -111,7 +112,10 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
         db.putFileForLater(file_path, account.name, null);
         db.close();
 
-        if (!isOnline(context) || (instantPictureUploadViaWiFiOnly(context) && !isConnectedViaWiFi(context))) {
+        if (!isOnline(context) 
+                || (instantPictureUploadViaWiFiOnly(context) && !isConnectedViaWiFi(context))
+                || (instantUploadWhenChargingOnly(context) && !isCharging(context))
+           ) {
             return;
         }
 
@@ -122,9 +126,27 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
         i.putExtra(FileUploader.KEY_UPLOAD_TYPE, FileUploader.UPLOAD_SINGLE_FILE);
         i.putExtra(FileUploader.KEY_MIME_TYPE, mime_type);
         i.putExtra(FileUploader.KEY_INSTANT_UPLOAD, true);
+
+        // instant upload behaviour
+        i = addInstantUploadBehaviour(i, context);
+
         context.startService(i);
     }
 
+    private Intent addInstantUploadBehaviour(Intent i, Context context){
+        SharedPreferences appPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+        String behaviour = appPreferences.getString("prefs_instant_behaviour", "NOTHING");
+
+        if (behaviour.equalsIgnoreCase("NOTHING")) {
+            Log_OC.d(TAG, "upload file and do nothing");
+            i.putExtra(FileUploader.KEY_LOCAL_BEHAVIOUR, FileUploader.LOCAL_BEHAVIOUR_FORGET);
+        } else if (behaviour.equalsIgnoreCase("MOVE")) {
+            i.putExtra(FileUploader.KEY_LOCAL_BEHAVIOUR, FileUploader.LOCAL_BEHAVIOUR_MOVE);
+            Log_OC.d(TAG, "upload file and move file to oc folder");
+        }
+        return i;
+    }
+
     private void handleNewVideoAction(Context context, Intent intent) {
         Cursor c = null;
         String file_path = null;
@@ -155,8 +177,16 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
         mime_type = c.getString(c.getColumnIndex(Video.Media.MIME_TYPE));
         c.close();
         Log_OC.d(TAG, file_path + "");
+        
+        // save always temporally the picture to upload
+        DbHandler db = new DbHandler(context);
+        db.putFileForLater(file_path, account.name, null);
+        db.close();
 
-        if (!isOnline(context) || (instantVideoUploadViaWiFiOnly(context) && !isConnectedViaWiFi(context))) {
+        if (!isOnline(context) 
+                || (instantVideoUploadViaWiFiOnly(context) && !isConnectedViaWiFi(context))
+                || (instantVideoUploadWhenChargingOnly(context) && !isCharging(context))
+           ) {
             return;
         }
 
@@ -167,23 +197,49 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
         i.putExtra(FileUploader.KEY_UPLOAD_TYPE, FileUploader.UPLOAD_SINGLE_FILE);
         i.putExtra(FileUploader.KEY_MIME_TYPE, mime_type);
         i.putExtra(FileUploader.KEY_INSTANT_UPLOAD, true);
+
+        // instant upload behaviour
+        i = addInstantUploadBehaviour(i, context);
+
         context.startService(i);
 
     }
 
     private void handleConnectivityAction(Context context, Intent intent) {
-        if (!instantPictureUploadEnabled(context)) {
+        if (!instantPictureUploadEnabled(context) && !instantVideoUploadEnabled(context)) {
             Log_OC.d(TAG, "Instant upload disabled, don't upload anything");
             return;
         }
 
+        if (instantPictureUploadViaWiFiOnly(context) && !isConnectedViaWiFi(context)){
+            Account account = AccountUtils.getCurrentOwnCloudAccount(context);
+            if (account == null) {
+                Log_OC.w(TAG, "No owncloud account found for instant upload, aborting");
+                return;
+            }
+
+            Intent i = new Intent(context, FileUploader.class);
+            i.putExtra(FileUploader.KEY_ACCOUNT, account);
+            i.putExtra(FileUploader.KEY_CANCEL_ALL, true);
+            context.startService(i);
+        }
+
         if (!intent.hasExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY)
                 && isOnline(context)
-                && (!instantPictureUploadViaWiFiOnly(context) || (instantPictureUploadViaWiFiOnly(context) == isConnectedViaWiFi(context) == true))) {
+                && (!instantUploadWhenChargingOnly(context) || (instantUploadWhenChargingOnly(context) && isCharging(context)))
+                && (!instantVideoUploadWhenChargingOnly(context) || (instantVideoUploadWhenChargingOnly(context) && isCharging(context)))
+                && (!instantPictureUploadViaWiFiOnly(context) || (instantPictureUploadViaWiFiOnly(context) && isConnectedViaWiFi(context)))
+                && (!instantVideoUploadViaWiFiOnly(context) || (instantVideoUploadViaWiFiOnly(context) && isConnectedViaWiFi(context)))
+            ) {
             DbHandler db = new DbHandler(context);
             Cursor c = db.getAwaitingFiles();
             if (c.moveToFirst()) {
                 do {
+                    if (instantPictureUploadViaWiFiOnly(context) &&
+                            !isConnectedViaWiFi(context)){
+                        break;
+                    }
+
                     String account_name = c.getString(c.getColumnIndex("account"));
                     String file_path = c.getString(c.getColumnIndex("path"));
                     File f = new File(file_path);
@@ -207,6 +263,10 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
                         i.putExtra(FileUploader.KEY_REMOTE_FILE, FileStorageUtils.getInstantUploadFilePath(context, f.getName()));
                         i.putExtra(FileUploader.KEY_UPLOAD_TYPE, FileUploader.UPLOAD_SINGLE_FILE);
                         i.putExtra(FileUploader.KEY_INSTANT_UPLOAD, true);
+
+                        // instant upload behaviour
+                        i = addInstantUploadBehaviour(i, context);
+
                         context.startService(i);
 
                     } else {
@@ -217,7 +277,6 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
             c.close();
             db.close();
         }
-
     }
 
     public static boolean isOnline(Context context) {
@@ -231,6 +290,18 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
                 && cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI
                 && cm.getActiveNetworkInfo().getState() == State.CONNECTED;
     }
+    
+    public static boolean isCharging(Context context){
+        IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
+        Intent batteryStatus = context.registerReceiver(null, ifilter);
+
+        int status = 0;
+        if (batteryStatus != null) {
+            status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
+        }
+        return status == BatteryManager.BATTERY_STATUS_CHARGING ||
+                status == BatteryManager.BATTERY_STATUS_FULL;
+    }
 
     public static boolean instantPictureUploadEnabled(Context context) {
         return PreferenceManager.getDefaultSharedPreferences(context).getBoolean("instant_uploading", false);
@@ -247,4 +318,10 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
     public static boolean instantVideoUploadViaWiFiOnly(Context context) {
         return PreferenceManager.getDefaultSharedPreferences(context).getBoolean("instant_video_upload_on_wifi", false);
     }
+    public static boolean instantUploadWhenChargingOnly(Context context) {
+        return PreferenceManager.getDefaultSharedPreferences(context).getBoolean("instant_upload_on_charging", false);
+    }
+    public static boolean instantVideoUploadWhenChargingOnly(Context context) {
+        return PreferenceManager.getDefaultSharedPreferences(context).getBoolean("instant_video_upload_on_charging", false);
+    }
 }
index f6d3b50..513a639 100644 (file)
 package com.owncloud.android.files.services;
 
 import java.io.File;
-import java.io.IOException;
 import java.util.AbstractList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Vector;
 
-import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
 import com.owncloud.android.authentication.AuthenticatorActivity;
@@ -54,7 +52,6 @@ import com.owncloud.android.utils.ErrorMessageAdapter;
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
-import android.accounts.AccountsException;
 import android.accounts.OnAccountsUpdateListener;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
@@ -153,7 +150,7 @@ public class FileDownloader extends Service
 
     /**
      * Entry point to add one or several files to the queue of downloads.
-     * <p/>
+     *
      * New downloads are added calling to startService(), resulting in a call to this method.
      * This ensures the service will keep on working although the caller activity goes away.
      */
@@ -169,12 +166,6 @@ public class FileDownloader extends Service
         } else {
             final Account account = intent.getParcelableExtra(EXTRA_ACCOUNT);
             final OCFile file = intent.getParcelableExtra(EXTRA_FILE);
-
-            /*Log_OC.v(
-                    "NOW " + TAG + ", thread " + Thread.currentThread().getName(),
-                    "Received request to download file"
-            );*/
-
             AbstractList<String> requestedDownloads = new Vector<String>();
             try {
                 DownloadFileOperation newDownload = new DownloadFileOperation(account, file);
@@ -183,24 +174,11 @@ public class FileDownloader extends Service
                 Pair<String, String> putResult = mPendingDownloads.putIfAbsent(
                         account, file.getRemotePath(), newDownload
                 );
-                String downloadKey = putResult.first;
-                requestedDownloads.add(downloadKey);
-                    /*Log_OC.v(
-                        "NOW " + TAG + ", thread " + Thread.currentThread().getName(),
-                        "Download on " + file.getRemotePath() + " added to queue"
-                    );*/
-
-                // Store file on db with state 'downloading'
-                    /*
-                    TODO - check if helps with UI responsiveness,
-                    letting only folders use FileDownloaderBinder to check
-                    FileDataStorageManager storageManager =
-                    new FileDataStorageManager(account, getContentResolver());
-                    file.setDownloading(true);
-                    storageManager.saveFile(file);
-                    */
-
-                sendBroadcastNewDownload(newDownload, putResult.second);
+                if (putResult != null) {
+                    String downloadKey = putResult.first;
+                    requestedDownloads.add(downloadKey);
+                    sendBroadcastNewDownload(newDownload, putResult.second);
+                }   // else, file already in the queue of downloads; don't repeat the request
 
             } catch (IllegalArgumentException e) {
                 Log_OC.e(TAG, "Not enough information provided in intent: " + e.getMessage());
@@ -275,34 +253,23 @@ public class FileDownloader extends Service
          * @param file    A file in the queue of pending downloads
          */
         public void cancel(Account account, OCFile file) {
-            /*Log_OC.v(
-                    "NOW " + TAG + ", thread " + Thread.currentThread().getName(),
-                    "Received request to cancel download of " + file.getRemotePath()
-            );
-            Log_OC.v(   "NOW " + TAG + ", thread " + Thread.currentThread().getName(),
-                    "Removing download of " + file.getRemotePath());*/
-            Pair<DownloadFileOperation, String> removeResult =
-                    mPendingDownloads.remove(account, file.getRemotePath());
+            Pair<DownloadFileOperation, String> removeResult = mPendingDownloads.remove(account, file.getRemotePath());
             DownloadFileOperation download = removeResult.first;
             if (download != null) {
-                /*Log_OC.v(   "NOW " + TAG + ", thread " + Thread.currentThread().getName(),
-                        "Canceling returned download of " + file.getRemotePath());*/
                 download.cancel();
             } else {
                 if (mCurrentDownload != null && mCurrentAccount != null &&
                         mCurrentDownload.getRemotePath().startsWith(file.getRemotePath()) &&
                         account.name.equals(mCurrentAccount.name)) {
-                    /*Log_OC.v(   "NOW " + TAG + ", thread " + Thread.currentThread().getName(),
-                     "Canceling current sync as descendant: " + mCurrentDownload.getRemotePath());*/
                     mCurrentDownload.cancel();
                 }
             }
         }
 
         /**
-         * Cancels a pending or current upload for an account
+         * Cancels all the downloads for an account
          *
-         * @param account Owncloud accountName where the remote file will be stored.
+         * @param account   ownCloud account.
          */
         public void cancel(Account account) {
             Log_OC.d(TAG, "Account= " + account.name);
@@ -325,7 +292,7 @@ public class FileDownloader extends Service
         /**
          * Returns True when the file described by 'file' in the ownCloud account 'account'
          * is downloading or waiting to download.
-         * <p/>
+         *
          * If 'file' is a directory, returns 'true' if any of its descendant files is downloading or
          * waiting to download.
          *
@@ -349,7 +316,6 @@ public class FileDownloader extends Service
                 OnDatatransferProgressListener listener, Account account, OCFile file
         ) {
             if (account == null || file == null || listener == null) return;
-            //String targetKey = buildKey(account, file.getRemotePath());
             mBoundListeners.put(file.getFileId(), listener);
         }
 
@@ -357,15 +323,14 @@ public class FileDownloader extends Service
         /**
          * Removes a listener interested in the progress of the download for a concrete file.
          *
-         * @param listener Object to notify about progress of transfer.
-         * @param account  ownCloud account holding the file of interest.
-         * @param file     {@link OCFile} of interest for listener.
+         * @param listener      Object to notify about progress of transfer.
+         * @param account       ownCloud account holding the file of interest.
+         * @param file          {@link OCFile} of interest for listener.
          */
         public void removeDatatransferProgressListener(
                 OnDatatransferProgressListener listener, Account account, OCFile file
         ) {
             if (account == null || file == null || listener == null) return;
-            //String targetKey = buildKey(account, file.getRemotePath());
             Long fileId = file.getFileId();
             if (mBoundListeners.get(fileId) == listener) {
                 mBoundListeners.remove(fileId);
@@ -375,8 +340,6 @@ public class FileDownloader extends Service
         @Override
         public void onTransferProgress(long progressRate, long totalTransferredSoFar,
                                        long totalToTransfer, String fileName) {
-            //String key = buildKey(mCurrentDownload.getAccount(),
-            // mCurrentDownload.getFile().getRemotePath());
             OnDatatransferProgressListener boundListener =
                     mBoundListeners.get(mCurrentDownload.getFile().getFileId());
             if (boundListener != null) {
@@ -385,23 +348,12 @@ public class FileDownloader extends Service
             }
         }
 
-        /**
-         * Review downloads and cancel it if its account doesn't exist
-         */
-        public void checkAccountOfCurrentDownload() {
-            if (mCurrentDownload != null &&
-                    !AccountUtils.exists(mCurrentDownload.getAccount(), getApplicationContext())) {
-                mCurrentDownload.cancel();
-            }
-            // The rest of downloads are cancelled when they try to start
-        }
-
     }
 
 
     /**
      * Download worker. Performs the pending downloads in the order they were requested.
-     * <p/>
+
      * Created with the Looper of a new thread, started in {@link FileUploader#onCreate()}.
      */
     private static class ServiceHandler extends Handler {
@@ -440,14 +392,13 @@ public class FileDownloader extends Service
      */
     private void downloadFile(String downloadKey) {
 
-        /*Log_OC.v(   "NOW " + TAG + ", thread " + Thread.currentThread().getName(),
-                "Getting download of " + downloadKey);*/
         mCurrentDownload = mPendingDownloads.get(downloadKey);
 
         if (mCurrentDownload != null) {
             // Detect if the account exists
             if (AccountUtils.exists(mCurrentDownload.getAccount(), getApplicationContext())) {
                 Log_OC.d(TAG, "Account " + mCurrentDownload.getAccount().name + " exists");
+
                 notifyDownloadStart(mCurrentDownload);
 
                 RemoteOperationResult downloadResult = null;
@@ -470,26 +421,16 @@ public class FileDownloader extends Service
 
 
                     /// perform the download
-                    /*Log_OC.v(   "NOW " + TAG + ", thread " + Thread.currentThread().getName(),
-                        "Executing download of " + mCurrentDownload.getRemotePath());*/
                     downloadResult = mCurrentDownload.execute(mDownloadClient);
                     if (downloadResult.isSuccess()) {
                         saveDownloadedFile();
                     }
 
-                } catch (AccountsException e) {
-                    Log_OC.e(TAG, "Error while trying to get authorization for "
-                            + mCurrentAccount.name, e);
-                    downloadResult = new RemoteOperationResult(e);
-                } catch (IOException e) {
-                    Log_OC.e(TAG, "Error while trying to get authorization for "
-                            + mCurrentAccount.name, e);
+                } catch (Exception e) {
+                    Log_OC.e(TAG, "Error downloading", e);
                     downloadResult = new RemoteOperationResult(e);
 
                 } finally {
-                /*Log_OC.v(   "NOW " + TAG + ", thread " + Thread.currentThread().getName(),
-                        "Removing payload " + mCurrentDownload.getRemotePath());*/
-
                     Pair<DownloadFileOperation, String> removeResult =
                             mPendingDownloads.removePayload(mCurrentAccount,
                                     mCurrentDownload.getRemotePath());
@@ -497,9 +438,9 @@ public class FileDownloader extends Service
                     /// notify result
                     notifyDownloadResult(mCurrentDownload, downloadResult);
 
-                    sendBroadcastDownloadFinished(mCurrentDownload, downloadResult,
-                            removeResult.second);
+                    sendBroadcastDownloadFinished(mCurrentDownload, downloadResult, removeResult.second);
                 }
+
             } else {
                 // Cancel the transfer
                 Log_OC.d(TAG, "Account " + mCurrentDownload.getAccount().toString() +
@@ -513,6 +454,8 @@ public class FileDownloader extends Service
 
     /**
      * Updates the OC File after a successful download.
+     *
+     * TODO move to DownloadFileOperation
      */
     private void saveDownloadedFile() {
         OCFile file = mStorageManager.getFileById(mCurrentDownload.getFile().getFileId());
@@ -522,26 +465,17 @@ public class FileDownloader extends Service
         file.setNeedsUpdateThumbnail(true);
         file.setModificationTimestamp(mCurrentDownload.getModificationTimestamp());
         file.setModificationTimestampAtLastSyncForData(mCurrentDownload.getModificationTimestamp());
-        // file.setEtag(mCurrentDownload.getEtag());    // TODO Etag, where available
+        file.setEtag(mCurrentDownload.getEtag());
         file.setMimetype(mCurrentDownload.getMimeType());
         file.setStoragePath(mCurrentDownload.getSavePath());
         file.setFileLength((new File(mCurrentDownload.getSavePath()).length()));
         file.setRemoteId(mCurrentDownload.getFile().getRemoteId());
         mStorageManager.saveFile(file);
         mStorageManager.triggerMediaScan(file.getStoragePath());
+        mStorageManager.saveConflict(file, null);
     }
 
     /**
-     * Update the OC File after a unsuccessful download
-     */
-    private void updateUnsuccessfulDownloadedFile() {
-        OCFile file = mStorageManager.getFileById(mCurrentDownload.getFile().getFileId());
-        file.setDownloading(false);
-        mStorageManager.saveFile(file);
-    }
-
-
-    /**
      * Creates a status notification to show the download progress
      *
      * @param download Download operation starting.
@@ -683,6 +617,7 @@ public class FileDownloader extends Service
             DownloadFileOperation download,
             RemoteOperationResult downloadResult,
             String unlinkedFromRemotePath) {
+
         Intent end = new Intent(getDownloadFinishMessage());
         end.putExtra(EXTRA_DOWNLOAD_RESULT, downloadResult.isSuccess());
         end.putExtra(ACCOUNT_NAME, download.getAccount().name);
index 98ad87e..7937f40 100644 (file)
 package com.owncloud.android.files.services;
 
 import java.io.File;
-import java.io.IOException;
 import java.util.AbstractList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Vector;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
-import android.accounts.AccountsException;
 import android.accounts.OnAccountsUpdateListener;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
@@ -46,6 +42,7 @@ import android.os.Looper;
 import android.os.Message;
 import android.os.Process;
 import android.support.v4.app.NotificationCompat;
+import android.util.Pair;
 import android.webkit.MimeTypeMap;
 
 import com.owncloud.android.R;
@@ -86,6 +83,7 @@ public class FileUploader extends Service
     public static final String EXTRA_REMOTE_PATH = "REMOTE_PATH";
     public static final String EXTRA_OLD_REMOTE_PATH = "OLD_REMOTE_PATH";
     public static final String EXTRA_OLD_FILE_PATH = "OLD_FILE_PATH";
+    public static final String EXTRA_LINKED_TO_PATH = "LINKED_TO";
     public static final String ACCOUNT_NAME = "ACCOUNT_NAME";
 
     public static final String KEY_FILE = "FILE";
@@ -100,6 +98,8 @@ public class FileUploader extends Service
     public static final String KEY_INSTANT_UPLOAD = "INSTANT_UPLOAD";
     public static final String KEY_LOCAL_BEHAVIOUR = "BEHAVIOUR";
 
+    public static final String KEY_CANCEL_ALL = "CANCEL_ALL";
+
     public static final int LOCAL_BEHAVIOUR_COPY = 0;
     public static final int LOCAL_BEHAVIOUR_MOVE = 1;
     public static final int LOCAL_BEHAVIOUR_FORGET = 2;
@@ -113,11 +113,10 @@ public class FileUploader extends Service
     private ServiceHandler mServiceHandler;
     private IBinder mBinder;
     private OwnCloudClient mUploadClient = null;
-    private Account mLastAccount = null;
+    private Account mCurrentAccount = null;
     private FileDataStorageManager mStorageManager;
 
-    private ConcurrentMap<String, UploadFileOperation> mPendingUploads =
-            new ConcurrentHashMap<String, UploadFileOperation>();
+    private IndexedForest<UploadFileOperation> mPendingUploads = new IndexedForest<UploadFileOperation>();
     private UploadFileOperation mCurrentUpload = null;
 
     private NotificationManager mNotificationManager;
@@ -133,26 +132,14 @@ public class FileUploader extends Service
     }
 
     /**
-     * Builds a key for mPendingUploads from the account and file to upload
-     *
-     * @param account   Account where the file to upload is stored
-     * @param file      File to upload
-     */
-    private String buildRemoteName(Account account, OCFile file) {
-        return account.name + file.getRemotePath();
-    }
-
-    private String buildRemoteName(Account account, String remotePath) {
-        return account.name + remotePath;
-    }
-
-    /**
      * Checks if an ownCloud server version should support chunked uploads.
      *
      * @param version OwnCloud version instance corresponding to an ownCloud
      *            server.
      * @return 'True' if the ownCloud server with version supports chunked
      *         uploads.
+     *
+     * TODO - move to OCClient
      */
     private static boolean chunkedUploadIsSupported(OwnCloudVersion version) {
         return (version != null && version.compareTo(OwnCloudVersion.owncloud_v4_5) >= 0);
@@ -209,6 +196,21 @@ public class FileUploader extends Service
     public int onStartCommand(Intent intent, int flags, int startId) {
         Log_OC.d(TAG, "Starting command with id " + startId);
 
+        if (intent.hasExtra(KEY_CANCEL_ALL) && intent.hasExtra(KEY_ACCOUNT)){
+            Account account = intent.getParcelableExtra(KEY_ACCOUNT);
+
+            Log_OC.d(TAG, "Account= " + account.name);
+
+            if (mCurrentUpload != null) {
+                Log_OC.d(TAG, "Current Upload Account= " + mCurrentUpload.getAccount().name);
+                if (mCurrentUpload.getAccount().name.equals(account.name)) {
+                    mCurrentUpload.cancel();
+                }
+            }
+            // Cancel pending uploads
+            cancelUploadsForAccount(account);
+        }
+
         if (!intent.hasExtra(KEY_ACCOUNT) || !intent.hasExtra(KEY_UPLOAD_TYPE)
                 || !(intent.hasExtra(KEY_LOCAL_FILE) || intent.hasExtra(KEY_FILE))) {
             Log_OC.e(TAG, "Not enough information provided in intent");
@@ -259,7 +261,7 @@ public class FileUploader extends Service
 
         boolean forceOverwrite = intent.getBooleanExtra(KEY_FORCE_OVERWRITE, false);
         boolean isInstant = intent.getBooleanExtra(KEY_INSTANT_UPLOAD, false);
-        int localAction = intent.getIntExtra(KEY_LOCAL_BEHAVIOUR, LOCAL_BEHAVIOUR_COPY);
+        int localAction = intent.getIntExtra(KEY_LOCAL_BEHAVIOUR, LOCAL_BEHAVIOUR_FORGET);
 
         if (intent.hasExtra(KEY_FILE) && files == null) {
             Log_OC.e(TAG, "Incorrect array for OCFiles provided in upload intent");
@@ -282,7 +284,7 @@ public class FileUploader extends Service
             files = new OCFile[localPaths.length];
             for (int i = 0; i < localPaths.length; i++) {
                 files[i] = obtainNewOCFileToUpload(remotePaths[i], localPaths[i],
-                        ((mimeTypes != null) ? mimeTypes[i] : null), storageManager);
+                        ((mimeTypes != null) ? mimeTypes[i] : null));
                 if (files[i] == null) {
                     // TODO @andomaex add failure Notification
                     return Service.START_NOT_STICKY;
@@ -298,19 +300,26 @@ public class FileUploader extends Service
         UploadFileOperation newUpload = null;
         try {
             for (int i = 0; i < files.length; i++) {
-                uploadKey = buildRemoteName(account, files[i].getRemotePath());
-                newUpload = new UploadFileOperation(account, files[i], chunked, isInstant,
+                newUpload = new UploadFileOperation(
+                        account,
+                        files[i],
+                        chunked,
+                        isInstant,
                         forceOverwrite, localAction,
-                        getApplicationContext());
+                        getApplicationContext()
+                );
                 if (isInstant) {
                     newUpload.setRemoteFolderToBeCreated();
                 }
-                // Grants that the file only upload once time
-                mPendingUploads.putIfAbsent(uploadKey, newUpload);
-
                 newUpload.addDatatransferProgressListener(this);
-                newUpload.addDatatransferProgressListener((FileUploaderBinder)mBinder);
-                requestedUploads.add(uploadKey);
+                newUpload.addDatatransferProgressListener((FileUploaderBinder) mBinder);
+                Pair<String, String> putResult = mPendingUploads.putIfAbsent(
+                        account, files[i].getRemotePath(), newUpload
+                );
+                if (putResult != null) {
+                    uploadKey = putResult.first;
+                    requestedUploads.add(uploadKey);
+                }   // else, file already in the queue of uploads; don't repeat the request
             }
 
         } catch (IllegalArgumentException e) {
@@ -333,7 +342,6 @@ public class FileUploader extends Service
             msg.obj = requestedUploads;
             mServiceHandler.sendMessage(msg);
         }
-        Log_OC.i(TAG, "mPendingUploads size:" + mPendingUploads.size());
         return Service.START_NOT_STICKY;
     }
 
@@ -386,23 +394,27 @@ public class FileUploader extends Service
         /**
          * Cancels a pending or current upload of a remote file.
          *
-         * @param account Owncloud account where the remote file will be stored.
-         * @param file A file in the queue of pending uploads
+         * @param account   ownCloud account where the remote file will be stored.
+         * @param file      A file in the queue of pending uploads
          */
         public void cancel(Account account, OCFile file) {
-            UploadFileOperation upload;
-            synchronized (mPendingUploads) {
-                upload = mPendingUploads.remove(buildRemoteName(account, file));
-            }
+            Pair<UploadFileOperation, String> removeResult = mPendingUploads.remove(account, file.getRemotePath());
+            UploadFileOperation upload = removeResult.first;
             if (upload != null) {
                 upload.cancel();
+            } else {
+                if (mCurrentUpload != null && mCurrentAccount != null &&
+                        mCurrentUpload.getRemotePath().startsWith(file.getRemotePath()) &&
+                        account.name.equals(mCurrentAccount.name)) {
+                    mCurrentUpload.cancel();
+                }
             }
         }
 
         /**
-         * Cancels a pending or current upload for an account
+         * Cancels all the uploads for an account
          *
-         * @param account Owncloud accountName where the remote file will be stored.
+         * @param account   ownCloud account.
          */
         public void cancel(Account account) {
             Log_OC.d(TAG, "Account= " + account.name);
@@ -414,13 +426,14 @@ public class FileUploader extends Service
                 }
             }
             // Cancel pending uploads
-            cancelUploadForAccount(account.name);
+            cancelUploadsForAccount(account);
         }
 
         public void clearListeners() {
             mBoundListeners.clear();
         }
 
+
         /**
          * Returns True when the file described by 'file' is being uploaded to
          * the ownCloud account 'account' or waiting for it
@@ -432,22 +445,8 @@ public class FileUploader extends Service
          * @param file      A file that could be in the queue of pending uploads
          */
         public boolean isUploading(Account account, OCFile file) {
-            if (account == null || file == null)
-                return false;
-            String targetKey = buildRemoteName(account, file);
-            synchronized (mPendingUploads) {
-                if (file.isFolder()) {
-                    // this can be slow if there are many uploads :(
-                    Iterator<String> it = mPendingUploads.keySet().iterator();
-                    boolean found = false;
-                    while (it.hasNext() && !found) {
-                        found = it.next().startsWith(targetKey);
-                    }
-                    return found;
-                } else {
-                    return (mPendingUploads.containsKey(targetKey));
-                }
-            }
+            if (account == null || file == null) return false;
+            return (mPendingUploads.contains(account, file.getRemotePath()));
         }
 
 
@@ -496,15 +495,19 @@ public class FileUploader extends Service
         }
 
         /**
-         * Review uploads and cancel it if its account doesn't exist
+         * Builds a key for the map of listeners.
+         *
+         * TODO remove and replace key with file.getFileId() after changing current policy (upload file, then
+         * add to local database) to better policy (add to local database, then upload)
+         *
+         * @param account       ownCloud account where the file to upload belongs.
+         * @param file          File to upload
+         * @return              Key
          */
-        public void checkAccountOfCurrentUpload() {
-            if (mCurrentUpload != null &&
-                    !AccountUtils.exists(mCurrentUpload.getAccount(), getApplicationContext())) {
-                mCurrentUpload.cancel();
-            }
-            // The rest of uploads are cancelled when they try to start
+        private String buildRemoteName(Account account, OCFile file) {
+            return account.name + file.getRemotePath();
         }
+
     }
 
     /**
@@ -544,17 +547,13 @@ public class FileUploader extends Service
     /**
      * Core upload method: sends the file(s) to upload
      *
-     * @param uploadKey Key to access the upload to perform, contained in
-     *            mPendingUploads
+     * @param uploadKey Key to access the upload to perform, contained in mPendingUploads
      */
     public void uploadFile(String uploadKey) {
 
-        synchronized (mPendingUploads) {
-            mCurrentUpload = mPendingUploads.get(uploadKey);
-        }
+        mCurrentUpload = mPendingUploads.get(uploadKey);
 
         if (mCurrentUpload != null) {
-
             // Detect if the account exists
             if (AccountUtils.exists(mCurrentUpload.getAccount(), getApplicationContext())) {
                 Log_OC.d(TAG, "Account " + mCurrentUpload.getAccount().name + " exists");
@@ -564,16 +563,20 @@ public class FileUploader extends Service
                 RemoteOperationResult uploadResult = null, grantResult;
 
                 try {
-                    /// prepare client object to send requests to the ownCloud server
-                    if (mUploadClient == null ||
-                            !mLastAccount.equals(mCurrentUpload.getAccount())) {
-                        mLastAccount = mCurrentUpload.getAccount();
-                        mStorageManager =
-                                new FileDataStorageManager(mLastAccount, getContentResolver());
-                        OwnCloudAccount ocAccount = new OwnCloudAccount(mLastAccount, this);
-                        mUploadClient = OwnCloudClientManagerFactory.getDefaultSingleton().
-                                getClientFor(ocAccount, this);
-                    }
+                    /// prepare client object to send the request to the ownCloud server
+                    if (mCurrentAccount == null || !mCurrentAccount.equals(mCurrentUpload.getAccount())) {
+                        mCurrentAccount = mCurrentUpload.getAccount();
+                        mStorageManager = new FileDataStorageManager(
+                                mCurrentAccount,
+                                getContentResolver()
+                        );
+                    }   // else, reuse storage manager from previous operation
+
+                    // always get client from client manager, to get fresh credentials in case of update
+                    OwnCloudAccount ocAccount = new OwnCloudAccount(mCurrentAccount, this);
+                    mUploadClient = OwnCloudClientManagerFactory.getDefaultSingleton().
+                            getClientFor(ocAccount, this);
+
 
                     /// check the existence of the parent folder for the file to upload
                     String remoteParentPath = new File(mCurrentUpload.getRemotePath()).getParent();
@@ -588,43 +591,44 @@ public class FileUploader extends Service
                         uploadResult = mCurrentUpload.execute(mUploadClient);
                         if (uploadResult.isSuccess()) {
                             saveUploadedFile();
+
+                        } else if (uploadResult.getCode() == ResultCode.SYNC_CONFLICT) {
+                            mStorageManager.saveConflict(mCurrentUpload.getFile(),
+                                    mCurrentUpload.getFile().getEtagInConflict());
                         }
                     } else {
                         uploadResult = grantResult;
                     }
 
-                } catch (AccountsException e) {
-                    Log_OC.e(TAG, "Error while trying to get autorization for " +
-                            mLastAccount.name, e);
-                    uploadResult = new RemoteOperationResult(e);
-
-                } catch (IOException e) {
-                    Log_OC.e(TAG, "Error while trying to get autorization for " +
-                            mLastAccount.name, e);
+                } catch (Exception e) {
+                    Log_OC.e(TAG, "Error uploading", e);
                     uploadResult = new RemoteOperationResult(e);
 
                 } finally {
-                    synchronized (mPendingUploads) {
-                        mPendingUploads.remove(uploadKey);
-                        Log_OC.i(TAG, "Remove CurrentUploadItem from pending upload Item Map.");
-                    }
-                    if (uploadResult != null && uploadResult.isException()) {
-                        // enforce the creation of a new client object for next uploads;
-                        // this grant that a new socket will be created in the future if
-                        // the current exception is due to an abrupt lose of network connection
-                        mUploadClient = null;
+                    Pair<UploadFileOperation, String> removeResult;
+                    if (mCurrentUpload.wasRenamed()) {
+                        removeResult = mPendingUploads.removePayload(
+                                mCurrentAccount,
+                                mCurrentUpload.getOldFile().getRemotePath()
+                        );
+                    } else {
+                        removeResult = mPendingUploads.removePayload(
+                                mCurrentAccount,
+                                mCurrentUpload.getRemotePath()
+                        );
                     }
-                }
 
-                /// notify result
-                notifyUploadResult(uploadResult, mCurrentUpload);
-                sendFinalBroadcast(mCurrentUpload, uploadResult);
+                    /// notify result
+                    notifyUploadResult(mCurrentUpload, uploadResult);
+
+                    sendBroadcastUploadFinished(mCurrentUpload, uploadResult, removeResult.second);
+                }
 
             } else {
                 // Cancel the transfer
                 Log_OC.d(TAG, "Account " + mCurrentUpload.getAccount().toString() +
                         " doesn't exist");
-                cancelUploadForAccount(mCurrentUpload.getAccount().name);
+                cancelUploadsForAccount(mCurrentUpload.getAccount());
 
             }
         }
@@ -691,7 +695,7 @@ public class FileUploader extends Service
      * synchronized with the server, specially the modification time and Etag
      * (where available)
      *
-     * TODO refactor this ugly thing
+     * TODO move into UploadFileOperation
      */
     private void saveUploadedFile() {
         OCFile file = mCurrentUpload.getFile();
@@ -709,6 +713,8 @@ public class FileUploader extends Service
         if (result.isSuccess()) {
             updateOCFile(file, (RemoteFile) result.getData().get(0));
             file.setLastSyncDateForProperties(syncDate);
+        } else {
+            Log_OC.e(TAG, "Error reading properties of file after successful upload; this is gonna hurt...");
         }
 
         // / maybe this would be better as part of UploadFileOperation... or
@@ -718,6 +724,7 @@ public class FileUploader extends Service
             if (oldFile.fileExists()) {
                 oldFile.setStoragePath(null);
                 mStorageManager.saveFile(oldFile);
+                mStorageManager.saveConflict(oldFile, null);
 
             } // else: it was just an automatic renaming due to a name
             // coincidence; nothing else is needed, the storagePath is right
@@ -725,6 +732,10 @@ public class FileUploader extends Service
         }
         file.setNeedsUpdateThumbnail(true);
         mStorageManager.saveFile(file);
+        mStorageManager.saveConflict(file, null);
+        
+        mStorageManager.triggerMediaScan(file.getStoragePath());
+
     }
 
     private void updateOCFile(OCFile file, RemoteFile remoteFile) {
@@ -733,12 +744,11 @@ public class FileUploader extends Service
         file.setMimetype(remoteFile.getMimeType());
         file.setModificationTimestamp(remoteFile.getModifiedTimestamp());
         file.setModificationTimestampAtLastSyncForData(remoteFile.getModifiedTimestamp());
-        // file.setEtag(remoteFile.getEtag());    // TODO Etag, where available
+        file.setEtag(remoteFile.getEtag());
         file.setRemoteId(remoteFile.getRemoteId());
     }
 
-    private OCFile obtainNewOCFileToUpload(String remotePath, String localPath, String mimeType,
-                                           FileDataStorageManager storageManager) {
+    private OCFile obtainNewOCFileToUpload(String remotePath, String localPath, String mimeType) {
 
         // MIME type
         if (mimeType == null || mimeType.length() <= 0) {
@@ -829,11 +839,11 @@ public class FileUploader extends Service
     /**
      * Updates the status notification with the result of an upload operation.
      *
-     * @param uploadResult Result of the upload operation.
-     * @param upload Finished upload operation
+     * @param uploadResult  Result of the upload operation.
+     * @param upload        Finished upload operation
      */
-    private void notifyUploadResult(
-            RemoteOperationResult uploadResult, UploadFileOperation upload) {
+    private void notifyUploadResult(UploadFileOperation upload,
+                                    RemoteOperationResult uploadResult) {
         Log_OC.d(TAG, "NotifyUploadResult with resultCode: " + uploadResult.getCode());
         // / cancelled operation or success -> silent removal of progress notification
         mNotificationManager.cancel(R.string.uploader_upload_in_progress_ticker);
@@ -940,10 +950,15 @@ public class FileUploader extends Service
      * Sends a broadcast in order to the interested activities can update their
      * view
      *
-     * @param upload Finished upload operation
-     * @param uploadResult Result of the upload operation
+     * @param upload                    Finished upload operation
+     * @param uploadResult              Result of the upload operation
+     * @param unlinkedFromRemotePath    Path in the uploads tree where the upload was unlinked from
      */
-    private void sendFinalBroadcast(UploadFileOperation upload, RemoteOperationResult uploadResult) {
+    private void sendBroadcastUploadFinished(
+            UploadFileOperation upload,
+            RemoteOperationResult uploadResult,
+            String unlinkedFromRemotePath) {
+
         Intent end = new Intent(getUploadFinishMessage());
         end.putExtra(EXTRA_REMOTE_PATH, upload.getRemotePath()); // real remote
         // path, after
@@ -956,6 +971,10 @@ public class FileUploader extends Service
         end.putExtra(EXTRA_OLD_FILE_PATH, upload.getOriginalStoragePath());
         end.putExtra(ACCOUNT_NAME, upload.getAccount().name);
         end.putExtra(EXTRA_UPLOAD_RESULT, uploadResult.isSuccess());
+        if (unlinkedFromRemotePath != null) {
+            end.putExtra(EXTRA_LINKED_TO_PATH, unlinkedFromRemotePath);
+        }
+
         sendStickyBroadcast(end);
     }
 
@@ -965,6 +984,8 @@ public class FileUploader extends Service
      * @param localPath         Full path to a file in the local file system.
      * @param mimeType          MIME type of the file.
      * @return true if is needed to add the pdf file extension to the file
+     *
+     * TODO - move to OCFile or Utils class
      */
     private boolean isPdfFileFromContentProviderWithoutExtension(String localPath,
                                                                  String mimeType) {
@@ -975,20 +996,11 @@ public class FileUploader extends Service
 
     /**
      * Remove uploads of an account
-     * @param accountName       Name of an OC account
+     *
+     * @param account       Downloads account to remove
      */
-    private void cancelUploadForAccount(String accountName){
-        // this can be slow if there are many uploads :(
-        Iterator<String> it = mPendingUploads.keySet().iterator();
-        Log_OC.d(TAG, "Number of pending updloads= "  + mPendingUploads.size());
-        while (it.hasNext()) {
-            String key = it.next();
-            Log_OC.d(TAG, "mPendingUploads CANCELLED " + key);
-            if (key.startsWith(accountName)) {
-                synchronized (mPendingUploads) {
-                    mPendingUploads.remove(key);
-                }
-            }
-        }
+    private void cancelUploadsForAccount(Account account){
+        // Cancel pending uploads
+        mPendingUploads.remove(account);
     }
 }
index 4c1ac7b..8f4ccb6 100644 (file)
@@ -101,38 +101,45 @@ public class IndexedForest<V> {
     public /* synchronized */ Pair<String, String> putIfAbsent(Account account, String remotePath, V value) {
         String targetKey = buildKey(account, remotePath);
         Node<V> valuedNode = new Node(targetKey, value);
-        mMap.putIfAbsent(
-                targetKey,
-                valuedNode
+        Node<V> previousValue = mMap.putIfAbsent(
+            targetKey,
+            valuedNode
         );
+        if (previousValue != null) {
+            // remotePath already known; not replaced
+            return null;
 
-        String currentPath = remotePath, parentPath = null, parentKey = null;
-        Node<V> currentNode = valuedNode, parentNode = null;
-        boolean linked = false;
-        while (!OCFile.ROOT_PATH.equals(currentPath) && !linked) {
-            parentPath = new File(currentPath).getParent();
-            if (!parentPath.endsWith(OCFile.PATH_SEPARATOR)) {
-                parentPath += OCFile.PATH_SEPARATOR;
+        } else {
+            // value really added
+            String currentPath = remotePath, parentPath = null, parentKey = null;
+            Node<V> currentNode = valuedNode, parentNode = null;
+            boolean linked = false;
+            while (!OCFile.ROOT_PATH.equals(currentPath) && !linked) {
+                parentPath = new File(currentPath).getParent();
+                if (!parentPath.endsWith(OCFile.PATH_SEPARATOR)) {
+                    parentPath += OCFile.PATH_SEPARATOR;
+                }
+                parentKey = buildKey(account, parentPath);
+                parentNode = mMap.get(parentKey);
+                if (parentNode == null) {
+                    parentNode = new Node(parentKey, null);
+                    parentNode.addChild(currentNode);
+                    mMap.put(parentKey, parentNode);
+                } else {
+                    parentNode.addChild(currentNode);
+                    linked = true;
+                }
+                currentPath = parentPath;
+                currentNode = parentNode;
             }
-            parentKey = buildKey(account, parentPath);
-            parentNode = mMap.get(parentKey);
-            if (parentNode == null) {
-                parentNode = new Node(parentKey, null);
-                parentNode.addChild(currentNode);
-                mMap.put(parentKey, parentNode);
-            } else {
-                parentNode.addChild(currentNode);
-                linked = true;
+
+            String linkedTo = OCFile.ROOT_PATH;
+            if (linked) {
+                linkedTo = parentNode.getKey().substring(account.name.length());
             }
-            currentPath = parentPath;
-            currentNode = parentNode;
-        }
 
-        String linkedTo = OCFile.ROOT_PATH;
-        if (linked) {
-            linkedTo = parentNode.getKey().substring(account.name.length());
+            return new Pair<String, String>(targetKey, linkedTo);
         }
-        return new Pair<String, String>(targetKey, linkedTo);
     };
 
 
index 653943b..5f2d46d 100644 (file)
@@ -43,6 +43,7 @@ import java.util.Formatter;
 import java.util.Locale;
 
 import com.owncloud.android.R;
+import com.owncloud.android.utils.DisplayUtils;
 
 
 /**
@@ -220,7 +221,10 @@ public class MediaControlView extends FrameLayout /* implements OnLayoutChangeLi
         if (mProgress != null) {
             if (mProgress instanceof SeekBar) {
                 SeekBar seeker = (SeekBar) mProgress;
+                DisplayUtils.colorPreLollipopHorizontalSeekBar(seeker);
                 seeker.setOnSeekBarChangeListener(this);
+            } else {
+                DisplayUtils.colorPreLollipopHorizontalProgressBar(mProgress);
             }
             mProgress.setMax(1000);
         }
index e53c635..d6fbfcc 100644 (file)
 package com.owncloud.android.media;
 
 import android.accounts.Account;
+import android.app.Activity;
 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.app.Service;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.media.AudioManager;
 import android.media.MediaPlayer;
 import android.media.MediaPlayer.OnCompletionListener;
 import android.media.MediaPlayer.OnErrorListener;
 import android.media.MediaPlayer.OnPreparedListener;
+import android.net.Uri;
 import android.net.wifi.WifiManager;
 import android.net.wifi.WifiManager.WifiLock;
 import android.os.IBinder;
 import android.os.PowerManager;
+import android.support.v7.app.AlertDialog;
+import android.support.v7.app.NotificationCompat;
 import android.widget.Toast;
 
 import java.io.IOException;
 
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.accounts.AccountUtils;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
@@ -123,7 +129,6 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
 
     /** Notification to keep in the notification bar while a song is playing */
     private NotificationManager mNotificationManager;
-    private Notification mNotification = null;
 
     /** File being played */
     private OCFile mFile;
@@ -142,8 +147,9 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
 
     /** Control panel shown to the user to control the playback, to register through binding */
     private MediaControlView mMediaController;
-    
 
+    /** Notification builder to create notifications, new reuse way since Android 6 */
+    private NotificationCompat.Builder mNotificationBuilder;
     
     /**
      * Helper method to get an error message suitable to show to users for errors occurred in media playback,
@@ -210,6 +216,25 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
         return context.getString(messageId);
     }
 
+    public static AlertDialog.Builder streamWithExternalApp(final String uri, final Activity activity){
+        AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+        builder.setMessage(activity.getString(R.string.stream_expose_password))
+                .setPositiveButton(activity.getString(R.string.common_yes),
+                                   new DialogInterface.OnClickListener() {
+                                        public void onClick(DialogInterface dialog, int id) {
+                                            Intent i = new Intent(Intent.ACTION_VIEW);
+                                            i.setData(Uri.parse(uri));
+                                            activity.startActivity(i);
+                                        }
+                                    })
+                .setNegativeButton(activity.getString(R.string.common_no), new DialogInterface.OnClickListener() {
+                    public void onClick(DialogInterface dialog, int id) {
+                        // User cancelled the dialog
+                    }
+                });
+        return builder;
+    }
+
 
     
     /**
@@ -226,6 +251,8 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
                 createWifiLock(WifiManager.WIFI_MODE_FULL, MEDIA_WIFI_LOCK_TAG);
 
         mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+        mNotificationBuilder = new NotificationCompat.Builder(this);
+        mNotificationBuilder.setColor(this.getResources().getColor(R.color.primary));
         mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
         mBinder = new MediaServiceBinder(this);
     }
@@ -286,7 +313,6 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
             mState = State.PLAYING;
             setUpAsForeground(String.format(getString(R.string.media_state_playing), mFile.getFileName()));
             configAndStartMediaPlayer();
-            
         }
     }
 
@@ -430,12 +456,7 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
         releaseResources(false); // release everything except MediaPlayer
 
         try {
-            if (mFile == null) { 
-                Toast.makeText(this, R.string.media_err_nothing_to_play, Toast.LENGTH_LONG).show();
-                processStopRequest(true);
-                return;
-                
-            } else if (mAccount == null) {
+            if (mAccount == null) {
                 Toast.makeText(this, R.string.media_err_not_in_owncloud, Toast.LENGTH_LONG).show();
                 processStopRequest(true);
                 return;
@@ -444,12 +465,12 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
             createMediaPlayerIfNeeded();
             mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
             String url = mFile.getStoragePath();
-            /* Streaming is not possible right now
+
             if (url == null || url.length() <= 0) {
                 url = AccountUtils.constructFullURLForAccount(this, mAccount) + mFile.getRemotePath();
             }
             mIsStreaming = url.startsWith("http:") || url.startsWith("https:");
-            */
+
             mIsStreaming = false;
             
             mPlayer.setDataSource(url);
@@ -486,6 +507,8 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
             Log_OC.e(TAG, "IllegalArgumentException " + mAccount.name + mFile.getRemotePath(), e);
             Toast.makeText(this, String.format(getString(R.string.media_err_unexpected), mFile.getFileName()), Toast.LENGTH_LONG).show();
             processStopRequest(true);
+        } catch (AccountUtils.AccountNotFoundException e) {
+            e.printStackTrace();
         }
     }
 
@@ -532,22 +555,25 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
     /** 
      * Updates the status notification
      */
-    @SuppressWarnings("deprecation")
     private void updateNotification(String content) {
+        String ticker = String.format(getString(R.string.media_notif_ticker), getString(R.string.app_name));
+
         // TODO check if updating the Intent is really necessary
         Intent showDetailsIntent = new Intent(this, FileDisplayActivity.class);
         showDetailsIntent.putExtra(FileActivity.EXTRA_FILE, mFile);
         showDetailsIntent.putExtra(FileActivity.EXTRA_ACCOUNT, mAccount);
         showDetailsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-        mNotification.contentIntent = PendingIntent.getActivity(getApplicationContext(), 
-                                                                (int)System.currentTimeMillis(), 
-                                                                showDetailsIntent, 
-                                                                PendingIntent.FLAG_UPDATE_CURRENT);
-        mNotification.when = System.currentTimeMillis();
-        //mNotification.contentView.setTextViewText(R.id.status_text, content);
-        String ticker = String.format(getString(R.string.media_notif_ticker), getString(R.string.app_name));
-        mNotification.setLatestEventInfo(getApplicationContext(), ticker, content, mNotification.contentIntent);
-        mNotificationManager.notify(R.string.media_notif_ticker, mNotification);
+
+        mNotificationBuilder.setContentIntent(PendingIntent.getActivity(getApplicationContext(),
+                (int) System.currentTimeMillis(),
+                showDetailsIntent,
+                PendingIntent.FLAG_UPDATE_CURRENT));
+        mNotificationBuilder.setWhen(System.currentTimeMillis());
+        mNotificationBuilder.setTicker(ticker);
+        mNotificationBuilder.setContentTitle(ticker);
+        mNotificationBuilder.setContentText(content);
+
+        mNotificationManager.notify(R.string.media_notif_ticker, mNotificationBuilder.build());
     }
 
     
@@ -558,35 +584,29 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
      * 
      * A notification must be created to keep the user aware of the existance of the service.
      */
-    @SuppressWarnings("deprecation")
     private void setUpAsForeground(String content) {
+        String ticker = String.format(getString(R.string.media_notif_ticker), getString(R.string.app_name));
+
         /// creates status notification
         // TODO put a progress bar to follow the playback progress
-        mNotification = new Notification();
-        mNotification.icon = android.R.drawable.ic_media_play;
+        mNotificationBuilder.setSmallIcon(R.drawable.ic_play_arrow);
         //mNotification.tickerText = text;
-        mNotification.when = System.currentTimeMillis();
-        mNotification.flags |= Notification.FLAG_ONGOING_EVENT;
-        //mNotification.contentView.setTextViewText(R.id.status_text, "ownCloud Music Player");     // NULL POINTER
-        //mNotification.contentView.setTextViewText(R.id.status_text, getString(R.string.downloader_download_in_progress_content));
-
+        mNotificationBuilder.setWhen(System.currentTimeMillis());
+        mNotificationBuilder.setOngoing(true);
         
         /// includes a pending intent in the notification showing the details view of the file
         Intent showDetailsIntent = new Intent(this, FileDisplayActivity.class);
         showDetailsIntent.putExtra(FileActivity.EXTRA_FILE, mFile);
         showDetailsIntent.putExtra(FileActivity.EXTRA_ACCOUNT, mAccount);
         showDetailsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-        mNotification.contentIntent = PendingIntent.getActivity(getApplicationContext(), 
-                                                                (int)System.currentTimeMillis(), 
-                                                                showDetailsIntent, 
-                                                                PendingIntent.FLAG_UPDATE_CURRENT);
-        
-        
-        //mNotificationManager.notify(R.string.downloader_download_in_progress_ticker, mNotification);
-        String ticker = String.format(getString(R.string.media_notif_ticker), getString(R.string.app_name));
-        mNotification.setLatestEventInfo(getApplicationContext(), ticker, content, mNotification.contentIntent);
-        startForeground(R.string.media_notif_ticker, mNotification);
-        
+        mNotificationBuilder.setContentIntent(PendingIntent.getActivity(getApplicationContext(),
+                (int) System.currentTimeMillis(),
+                showDetailsIntent,
+                PendingIntent.FLAG_UPDATE_CURRENT));
+        mNotificationBuilder.setContentTitle(ticker);
+        mNotificationBuilder.setContentText(content);
+
+        startForeground(R.string.media_notif_ticker, mNotificationBuilder.build());
     }
 
     /**
@@ -639,6 +659,7 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
         mState = State.STOPPED;
         releaseResources(true);
         giveUpAudioFocus();
+        stopForeground(true);
         super.onDestroy();
     }
     
index c71b35f..5dd043f 100644 (file)
@@ -55,7 +55,8 @@ public class NotificationBuilderWithProgressBar extends NotificationCompat.Build
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
             return new NotificationBuilderWithProgressBar(context); 
         } else {
-            return new NotificationCompat.Builder(context);
+            return new NotificationCompat.Builder(context).
+                    setColor(context.getResources().getColor(R.color.primary));
         }
     }
     
diff --git a/src/com/owncloud/android/operations/CopyFileOperation.java b/src/com/owncloud/android/operations/CopyFileOperation.java
new file mode 100644 (file)
index 0000000..77a9a07
--- /dev/null
@@ -0,0 +1,103 @@
+/* ownCloud Android client application
+ *   Copyright (C) 2012-2014 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.operations;
+
+import android.accounts.Account;
+import android.content.Context;
+
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
+import com.owncloud.android.lib.resources.files.CopyRemoteFileOperation;
+import com.owncloud.android.operations.common.SyncOperation;
+
+
+/**
+ * Operation copying an {@link OCFile} to a different folder.
+ *
+ * @author David A. Velasco
+ */
+public class CopyFileOperation extends SyncOperation {
+
+    //private static final String TAG = MoveFileOperation.class.getSimpleName();
+
+    private String mSrcPath;
+    private String mTargetParentPath;
+
+    private OCFile mFile;
+
+
+    /**
+     * Constructor
+     *
+     * @param srcPath          Remote path of the {@link OCFile} to move.
+     * @param targetParentPath Path to the folder where the file will be copied into.
+     * @param account          OwnCloud account containing both the file and the target folder
+     */
+    public CopyFileOperation(String srcPath, String targetParentPath, Account account) {
+        mSrcPath = srcPath;
+        mTargetParentPath = targetParentPath;
+        if (!mTargetParentPath.endsWith(OCFile.PATH_SEPARATOR)) {
+            mTargetParentPath += OCFile.PATH_SEPARATOR;
+        }
+
+        mFile = null;
+    }
+
+    /**
+     * Performs the operation.
+     *
+     * @param client Client object to communicate with the remote ownCloud server.
+     */
+    @Override
+    protected RemoteOperationResult run(OwnCloudClient client) {
+        RemoteOperationResult result;
+
+        /// 1. check copy validity
+        if (mTargetParentPath.startsWith(mSrcPath)) {
+            return new RemoteOperationResult(ResultCode.INVALID_COPY_INTO_DESCENDANT);
+        }
+        mFile = getStorageManager().getFileByPath(mSrcPath);
+        if (mFile == null) {
+            return new RemoteOperationResult(ResultCode.FILE_NOT_FOUND);
+        }
+
+        /// 2. remote copy
+        String targetPath = mTargetParentPath + mFile.getFileName();
+        if (mFile.isFolder()) {
+            targetPath += OCFile.PATH_SEPARATOR;
+        }
+        CopyRemoteFileOperation operation = new CopyRemoteFileOperation(
+                mSrcPath,
+                targetPath,
+                false
+        );
+        result = operation.execute(client);
+
+        /// 3. local copy
+        if (result.isSuccess()) {
+            getStorageManager().copyLocalFile(mFile, targetPath);
+        }
+        // TODO handle ResultCode.PARTIAL_COPY_DONE in client Activity, for the moment
+
+        return result;
+    }
+
+
+}
index b020b92..0b3343c 100644 (file)
@@ -121,4 +121,8 @@ public class CreateFolderOperation extends SyncOperation implements OnRemoteOper
             Log_OC.d(TAG, "Create directory " + mRemotePath + " in Database");
         }
     }
+
+    public String getRemotePath() {
+        return mRemotePath;
+    }
 }
diff --git a/src/com/owncloud/android/operations/CreateShareOperation.java b/src/com/owncloud/android/operations/CreateShareOperation.java
deleted file mode 100644 (file)
index a7270eb..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/**
- *   ownCloud Android client application
- *
- *   @author masensio
- *   Copyright (C) 2015 ownCloud Inc.
- *
- *   This program is free software: you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License version 2,
- *   as published by the Free Software Foundation.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-package com.owncloud.android.operations;
-
-/**
- * Creates a new share from a given file
- */
-
-import android.content.Context;
-import android.content.Intent;
-
-import com.owncloud.android.R;
-import com.owncloud.android.datamodel.FileDataStorageManager;
-import com.owncloud.android.datamodel.OCFile;
-import com.owncloud.android.lib.common.OwnCloudClient;
-import com.owncloud.android.lib.resources.shares.OCShare;
-import com.owncloud.android.lib.common.operations.RemoteOperation;
-import com.owncloud.android.lib.common.operations.RemoteOperationResult;
-import com.owncloud.android.lib.common.utils.Log_OC;
-import com.owncloud.android.lib.resources.shares.GetRemoteSharesForFileOperation;
-import com.owncloud.android.lib.resources.shares.ShareType;
-import com.owncloud.android.lib.resources.shares.CreateRemoteShareOperation;
-import com.owncloud.android.lib.resources.files.FileUtils;
-import com.owncloud.android.operations.common.SyncOperation;
-
-public class CreateShareOperation extends SyncOperation {
-
-    private static final String TAG = CreateShareOperation.class.getSimpleName();
-
-    protected FileDataStorageManager mStorageManager;
-
-    private Context mContext;
-    private String mPath;
-    private ShareType mShareType;
-    private String mShareWith;
-    private boolean mPublicUpload;
-    private String mPassword;
-    private int mPermissions;
-    private Intent mSendIntent;
-
-    /**
-     * Constructor
-     * @param context       The context that the share is coming from.
-     * @param path          Full path of the file/folder being shared. Mandatory argument
-     * @param shareType     0 = user, 1 = group, 3 = Public link. Mandatory argument
-     * @param shareWith     User/group ID with who the file should be shared.
-     *                      This is mandatory for shareType of 0 or 1
-     * @param publicUpload  If false (default) public cannot upload to a public shared folder. 
-     *                      If true public can upload to a shared folder.
-     *                      Only available for public link shares
-     * @param password      Password to protect a public link share.
-     *                      Only available for public link shares
-     * @param permissions   1 - Read only - Default for public shares
-     *                      2 - Update
-     *                      4 - Create
-     *                      8 - Delete
-     *                      16- Re-share
-     *                      31- All above - Default for private shares
-     *                      For user or group shares.
-     *                      To obtain combinations, add the desired values together.  
-     *                      For instance, for Re-Share, delete, read, update, add 16+8+2+1 = 27.
-     */
-    public CreateShareOperation(Context context, String path, ShareType shareType, String shareWith,
-                                boolean publicUpload, String password, int permissions,
-                                Intent sendIntent) {
-
-        mContext = context;
-        mPath = path;
-        mShareType = shareType;
-        mShareWith = shareWith;
-        mPublicUpload = publicUpload;
-        mPassword = password;
-        mPermissions = permissions;
-        mSendIntent = sendIntent;
-    }
-
-    @Override
-    protected RemoteOperationResult run(OwnCloudClient client) {
-        RemoteOperation operation = null;
-        
-        // Check if the share link already exists
-        operation = new GetRemoteSharesForFileOperation(mPath, false, false);
-        RemoteOperationResult result =
-                ((GetRemoteSharesForFileOperation)operation).execute(client);
-
-        if (!result.isSuccess() || result.getData().size() <= 0) {
-            operation = new CreateRemoteShareOperation(mPath, mShareType, mShareWith, mPublicUpload,
-                    mPassword, mPermissions);
-            result = ((CreateRemoteShareOperation)operation).execute(client);
-        }
-        
-        if (result.isSuccess()) {
-            if (result.getData().size() > 0) {
-                OCShare share = (OCShare) result.getData().get(0);
-                updateData(share);
-            } 
-        }
-        
-        return result;
-    }
-    
-    public String getPath() {
-        return mPath;
-    }
-
-    public ShareType getShareType() {
-        return mShareType;
-    }
-
-    public String getShareWith() {
-        return mShareWith;
-    }
-
-    public boolean getPublicUpload() {
-        return mPublicUpload;
-    }
-
-    public String getPassword() {
-        return mPassword;
-    }
-
-    public int getPermissions() {
-        return mPermissions;
-    }
-
-    public Intent getSendIntent() {
-        return mSendIntent;
-    }
-    
-    private void updateData(OCShare share) {
-        // Update DB with the response
-        share.setPath(mPath);
-        if (mPath.endsWith(FileUtils.PATH_SEPARATOR)) {
-            share.setIsFolder(true);
-        } else {
-            share.setIsFolder(false);
-        }
-        share.setPermissions(mPermissions);
-        
-        getStorageManager().saveShare(share);
-        
-        // Update OCFile with data from share: ShareByLink  and publicLink
-        OCFile file = getStorageManager().getFileByPath(mPath);
-        if (file!=null) {
-            mSendIntent.putExtra(Intent.EXTRA_TEXT, share.getShareLink());
-            if (getClient().getCredentials().getUsername() == null) {
-                //in saml is null
-                mSendIntent.putExtra(Intent.EXTRA_SUBJECT,
-                        String.format(mContext.getString(R.string.saml_subject_token),
-                                file.getFileName()));
-            } else {
-                mSendIntent.putExtra(Intent.EXTRA_SUBJECT,
-                        String.format(mContext.getString(R.string.subject_token),
-                                getClient().getCredentials().getUsername(), file.getFileName()));
-            }
-            file.setPublicLink(share.getShareLink());
-            file.setShareByLink(true);
-            getStorageManager().saveFile(file);
-            Log_OC.d(TAG, "Public Link = " + file.getPublicLink());
-
-        }
-    }
-
-}
diff --git a/src/com/owncloud/android/operations/CreateShareViaLinkOperation.java b/src/com/owncloud/android/operations/CreateShareViaLinkOperation.java
new file mode 100644 (file)
index 0000000..e9cb7d2
--- /dev/null
@@ -0,0 +1,171 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author masensio
+ *   @author David A. Velasco
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.operations;
+
+/**
+ * Creates a new public share for a given file
+ */
+
+
+import android.content.Context;
+import android.content.Intent;
+
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.operations.RemoteOperation;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.resources.files.FileUtils;
+import com.owncloud.android.lib.resources.shares.CreateRemoteShareOperation;
+import com.owncloud.android.lib.resources.shares.GetRemoteSharesForFileOperation;
+import com.owncloud.android.lib.resources.shares.OCShare;
+import com.owncloud.android.lib.resources.shares.ShareType;
+import com.owncloud.android.operations.common.SyncOperation;
+
+import java.util.ArrayList;
+
+public class CreateShareViaLinkOperation extends SyncOperation {
+
+    private String mPath;
+    private String mPassword;
+    private Intent mSendIntent;
+    private String mFileName;
+
+    /**
+     * Constructor
+     * @param path          Full path of the file/folder being shared. Mandatory argument
+     * @param password      Password to protect a public link share.
+     *                      Only available for public link shares
+     *  @param sendIntent   Optional Intent with the information of an app where the link to the new share (if public)
+     *                      should be posted later.
+     */
+    public CreateShareViaLinkOperation(
+            String path,
+            String password,
+            Intent sendIntent
+    ) {
+
+        mPath = path;
+        mPassword = password;
+        mSendIntent = sendIntent;
+        mFileName = null;
+    }
+
+    @Override
+    protected RemoteOperationResult run(OwnCloudClient client) {
+        // Check if the share link already exists
+        RemoteOperation operation = new GetRemoteSharesForFileOperation(mPath, false, false);
+        RemoteOperationResult result = operation.execute(client);
+
+        boolean shareByLink = false;
+        // Check if the file is shared by link
+        if (result.isSuccess() && result.getData().size() > 0){
+            ArrayList<Object> shares = result.getData();
+            for(Object object: shares){
+                if (((OCShare) object).getShareType() == ShareType.PUBLIC_LINK){
+                    shareByLink = true;
+                    break;
+                }
+            }
+        }
+
+        if (!result.isSuccess() || !shareByLink) {
+            CreateRemoteShareOperation createOp = new CreateRemoteShareOperation(
+                    mPath,
+                    ShareType.PUBLIC_LINK,
+                    "",
+                    false,
+                    mPassword,
+                    OCShare.DEFAULT_PERMISSION
+            );
+            createOp.setGetShareDetails(true);
+            result = createOp.execute(client);
+        }
+        
+        if (result.isSuccess()) {
+            if (result.getData().size() > 0) {
+                OCShare share = (OCShare) result.getData().get(0);
+                updateData(share);
+            } 
+        }
+        
+        return result;
+    }
+    
+    public String getPath() {
+        return mPath;
+    }
+
+    public String getPassword() {
+        return mPassword;
+    }
+
+    public Intent getSendIntent() {
+        return mSendIntent;
+    }
+
+    public Intent getSendIntentWithSubject(Context context) {
+        if (context != null && mSendIntent != null && mSendIntent.getStringExtra(Intent.EXTRA_SUBJECT) != null) {
+            if (getClient() == null || getClient().getCredentials() == null ||
+                    getClient().getCredentials().getUsername() == null) {
+                mSendIntent.putExtra(
+                        Intent.EXTRA_SUBJECT,
+                        context.getString(R.string.subject_shared_with_you, mFileName)
+                );
+            } else {
+                mSendIntent.putExtra(
+                        Intent.EXTRA_SUBJECT,
+                        context.getString(
+                                R.string.subject_user_shared_with_you,
+                                getClient().getCredentials().getUsername(),
+                                mFileName
+                        )
+                );
+            }
+        }
+        return mSendIntent;
+    }
+
+    private void updateData(OCShare share) {
+        // Update DB with the response
+        share.setPath(mPath);
+        if (mPath.endsWith(FileUtils.PATH_SEPARATOR)) {
+            share.setIsFolder(true);
+        } else {
+            share.setIsFolder(false);
+        }
+
+        getStorageManager().saveShare(share);
+        
+        // Update OCFile with data from share: ShareByLink  and publicLink
+        OCFile file = getStorageManager().getFileByPath(mPath);
+        if (file!=null) {
+            file.setPublicLink(share.getShareLink());
+            file.setShareViaLink(true);
+            getStorageManager().saveFile(file);
+            if (mSendIntent != null) {
+                mSendIntent.putExtra(Intent.EXTRA_TEXT, share.getShareLink());
+            }
+        }
+    }
+
+}
diff --git a/src/com/owncloud/android/operations/CreateShareWithShareeOperation.java b/src/com/owncloud/android/operations/CreateShareWithShareeOperation.java
new file mode 100644 (file)
index 0000000..b19d6c2
--- /dev/null
@@ -0,0 +1,115 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author masensio
+ *   @author David A. Velasco
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.operations;
+
+/**
+ * Creates a new private share for a given file
+ */
+
+
+import com.owncloud.android.datamodel.FileDataStorageManager;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.resources.files.FileUtils;
+import com.owncloud.android.lib.resources.shares.CreateRemoteShareOperation;
+import com.owncloud.android.lib.resources.shares.OCShare;
+import com.owncloud.android.lib.resources.shares.ShareType;
+import com.owncloud.android.operations.common.SyncOperation;
+
+public class CreateShareWithShareeOperation extends SyncOperation {
+
+    protected FileDataStorageManager mStorageManager;
+
+    private String mPath;
+    private String mShareeName;
+    private ShareType mShareType;
+
+    /**
+     * Constructor.
+     *
+     * @param path          Full path of the file/folder being shared.
+     * @param shareeName    User or group name of the target sharee.
+     * @param shareType     Type of share determines type of sharee; {@link ShareType#USER} and {@link ShareType#GROUP}
+     *                      are the only valid values for the moment.
+     */
+    public CreateShareWithShareeOperation(String path, String shareeName, ShareType shareType) {
+        if (!ShareType.USER.equals(shareType) && !ShareType.GROUP.equals(shareType)) {
+            throw new IllegalArgumentException("Illegal share type " + shareType);
+        }
+        mPath = path;
+        mShareeName = shareeName;
+        mShareType = shareType;
+    }
+
+    @Override
+    protected RemoteOperationResult run(OwnCloudClient client) {
+        // Check if the share link already exists
+        // TODO or not
+        /*
+        RemoteOperation operation = new GetRemoteSharesForFileOperation(mPath, false, false);
+        RemoteOperationResult result = operation.execute(client);
+        if (!result.isSuccess() || result.getData().size() <= 0) {
+        */
+
+        CreateRemoteShareOperation operation = new CreateRemoteShareOperation(
+                mPath,
+                mShareType,
+                mShareeName,
+                false,
+                "",
+                OCShare.DEFAULT_PERMISSION
+        );
+        operation.setGetShareDetails(true);
+        RemoteOperationResult result = operation.execute(client);
+
+        
+        if (result.isSuccess()) {
+            if (result.getData().size() > 0) {
+                OCShare share = (OCShare) result.getData().get(0);
+                updateData(share);
+            } 
+        }
+        
+        return result;
+    }
+    
+    public String getPath() {
+        return mPath;
+    }
+
+    private void updateData(OCShare share) {
+        // Update DB with the response
+        share.setPath(mPath);
+        share.setIsFolder(mPath.endsWith(FileUtils.PATH_SEPARATOR));
+
+        getStorageManager().saveShare(share);
+        
+        // Update OCFile with data from share: ShareByLink  and publicLink
+        OCFile file = getStorageManager().getFileByPath(mPath);
+        if (file!=null) {
+            file.setShareWithSharee(true);    // TODO - this should be done by the FileContentProvider, as part of getStorageManager().saveShare(share)
+            getStorageManager().saveFile(file);
+        }
+    }
+
+}
index 0cb303c..dff8aef 100644 (file)
@@ -27,7 +27,6 @@ import java.util.Iterator;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import com.owncloud.android.MainApp;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.network.OnDatatransferProgressListener;
 import com.owncloud.android.lib.common.OwnCloudClient;
@@ -52,6 +51,7 @@ public class DownloadFileOperation extends RemoteOperation {
     private OCFile mFile;
     private Set<OnDatatransferProgressListener> mDataTransferListeners = new HashSet<OnDatatransferProgressListener>();
     private long mModificationTimestamp = 0;
+    private String mEtag = "";
     private final AtomicBoolean mCancellationRequested = new AtomicBoolean(false);
     
     private DownloadRemoteFileOperation mDownloadOperation;
@@ -127,11 +127,15 @@ public class DownloadFileOperation extends RemoteOperation {
                 mFile.getModificationTimestamp();
     }
 
+    public String getEtag() {
+        return mEtag;
+    }
+
     @Override
     protected RemoteOperationResult run(OwnCloudClient client) {
-        RemoteOperationResult result = null;
-        File newFile = null;
-        boolean moved = true;
+        RemoteOperationResult result;
+        File newFile;
+        boolean moved;
         
         /// download will be performed to a temporal file, then moved to the final location
         File tmpFile = new File(getTmpPath());
@@ -154,6 +158,7 @@ public class DownloadFileOperation extends RemoteOperation {
         
         if (result.isSuccess()) {
             mModificationTimestamp = mDownloadOperation.getModificationTimestamp();
+            mEtag = mDownloadOperation.getEtag();
             newFile = new File(getSavePath());
             newFile.getParentFile().mkdirs();
             moved = tmpFile.renameTo(newFile);
diff --git a/src/com/owncloud/android/operations/GetCapabilitiesOperarion.java b/src/com/owncloud/android/operations/GetCapabilitiesOperarion.java
new file mode 100644 (file)
index 0000000..0a63449
--- /dev/null
@@ -0,0 +1,51 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author masensio
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package com.owncloud.android.operations;
+
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.resources.status.GetRemoteCapabilitiesOperation;
+import com.owncloud.android.lib.resources.status.OCCapability;
+import com.owncloud.android.operations.common.SyncOperation;
+
+/**
+ * Get and save capabilities from the server
+ */
+public class GetCapabilitiesOperarion extends SyncOperation {
+
+    @Override
+    protected RemoteOperationResult run(OwnCloudClient client) {
+        GetRemoteCapabilitiesOperation getCapabilities = new GetRemoteCapabilitiesOperation();
+        RemoteOperationResult result = getCapabilities.execute(client);
+
+        if (result.isSuccess()){
+            // Read data from the result
+            if( result.getData()!= null && result.getData().size() > 0) {
+                OCCapability capability = (OCCapability) result.getData().get(0);
+
+                // Save the capabilities into database
+                getStorageManager().saveCapabilities(capability);
+            }
+        }
+
+        return result;
+    }
+
+}
index bf136ad..a04d415 100644 (file)
 
 package com.owncloud.android.operations;
 
-import java.util.ArrayList;
-
-import com.owncloud.android.MainApp;
 import com.owncloud.android.lib.common.OwnCloudClient;
-import com.owncloud.android.lib.resources.shares.OCShare;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.shares.GetRemoteSharesForFileOperation;
+import com.owncloud.android.lib.resources.shares.OCShare;
 import com.owncloud.android.operations.common.SyncOperation;
 
+import java.util.ArrayList;
+
 /**
  * Provide a list shares for a specific file.
  */
@@ -73,6 +72,11 @@ public class GetSharesForFileOperation extends SyncOperation {
             }
 
             getStorageManager().saveSharesDB(shares);
+
+        } else if (result.getCode() == RemoteOperationResult.ResultCode.SHARE_NOT_FOUND) {
+            // no share on the file - remove local shares
+            getStorageManager().removeSharesForFile(mPath);
+
         }
 
         return result;
diff --git a/src/com/owncloud/android/operations/GetSharesOperation.java b/src/com/owncloud/android/operations/GetSharesOperation.java
deleted file mode 100644 (file)
index 09a8e34..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- *   ownCloud Android client application
- *
- *   @author masensio
- *   @author David A. Velasco
- *   Copyright (C) 2015 ownCloud Inc.
- *
- *   This program is free software: you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License version 2,
- *   as published by the Free Software Foundation.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-package com.owncloud.android.operations;
-
-import java.util.ArrayList;
-
-import com.owncloud.android.MainApp;
-import com.owncloud.android.lib.common.OwnCloudClient;
-import com.owncloud.android.lib.common.operations.RemoteOperationResult;
-import com.owncloud.android.lib.common.utils.Log_OC;
-import com.owncloud.android.lib.resources.shares.OCShare;
-import com.owncloud.android.lib.resources.shares.GetRemoteSharesOperation;
-import com.owncloud.android.operations.common.SyncOperation;
-
-/**
- * Access to remote operation to get the share files/folders
- * Save the data in Database
- */
-
-public class GetSharesOperation extends SyncOperation {
-
-    private static final String TAG = GetSharesOperation.class.getSimpleName();
-
-    @Override
-    protected RemoteOperationResult run(OwnCloudClient client) {
-        GetRemoteSharesOperation operation = new GetRemoteSharesOperation();
-        RemoteOperationResult result = operation.execute(client);
-
-        if (result.isSuccess()) {
-
-            // Update DB with the response
-            Log_OC.d(TAG, "Share list size = " + result.getData().size());
-            ArrayList<OCShare> shares = new ArrayList<OCShare>();
-            for(Object obj: result.getData()) {
-                shares.add((OCShare) obj);
-            }
-
-            getStorageManager().saveSharesDB(shares);
-        }
-
-        return result;
-    }
-
-}
index ddbffb8..f9f9e8c 100644 (file)
 
 package com.owncloud.android.operations;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
 
-import org.apache.http.HttpStatus;
 import android.accounts.Account;
 import android.content.Context;
 import android.content.Intent;
 import android.util.Log;
-//import android.support.v4.content.LocalBroadcastManager;
 
-import com.owncloud.android.MainApp;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 
@@ -50,7 +41,6 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.shares.GetRemoteSharesForFileOperation;
-import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.lib.resources.files.ReadRemoteFileOperation;
 import com.owncloud.android.lib.resources.files.ReadRemoteFolderOperation;
 import com.owncloud.android.lib.resources.files.RemoteFile;
@@ -120,7 +110,10 @@ public class RefreshFolderOperation extends RemoteOperation {
     /** 'True' means that Etag will be ignored */
     private boolean mIgnoreETag;
 
-    
+    private List<SynchronizeFileOperation> mFilesToSyncContents;
+    // this will be used for every file when 'folder synchronization' replaces 'folder download'
+
+
     /**
      * Creates a new instance of {@link RefreshFolderOperation}.
      * 
@@ -154,6 +147,7 @@ public class RefreshFolderOperation extends RemoteOperation {
         mForgottenLocalFiles = new HashMap<String, String>();
         mRemoteFolderChanged = false;
         mIgnoreETag = ignoreETag;
+        mFilesToSyncContents = new Vector<SynchronizeFileOperation>();
     }
     
     
@@ -191,8 +185,9 @@ public class RefreshFolderOperation extends RemoteOperation {
         mConflictsFound = 0;
         mForgottenLocalFiles.clear();
         
-        if (FileUtils.PATH_SEPARATOR.equals(mLocalFolder.getRemotePath()) && !mSyncFullAccount) {
+        if (OCFile.ROOT_PATH.equals(mLocalFolder.getRemotePath()) && !mSyncFullAccount) {
             updateOCVersion(client);
+
         }
         
         result = checkForChanges(client);
@@ -201,8 +196,13 @@ public class RefreshFolderOperation extends RemoteOperation {
             if (mRemoteFolderChanged) {
                 result = fetchAndSyncRemoteFolder(client);
             } else {
-                // TODO Enable when "On Device" is recovered ?
-                mChildren = mStorageManager.getFolderContent(mLocalFolder/*, false*/);
+                fetchFavoritesToSyncFromLocalData();
+                mChildren = mStorageManager.getFolderContent(mLocalFolder, false);
+            }
+
+            if (result.isSuccess()) {
+                // request for the synchronization of KEPT-IN-SYNC file contents
+                startContentSynchronizations(mFilesToSyncContents, client);
             }
         }
         
@@ -232,16 +232,29 @@ public class RefreshFolderOperation extends RemoteOperation {
         RemoteOperationResult result = update.execute(client);
         if (result.isSuccess()) {
             mIsShareSupported = update.getOCVersion().isSharedSupported();
+
+            // Update Capabilities for this account
+            if (update.getOCVersion().isVersionWithCapabilitiesAPI()) {
+                updateCapabilities(client);
+            } else {
+                Log_OC.d(TAG, "Capabilities API disabled");
+            }
+        }
+    }
+
+    private void updateCapabilities(OwnCloudClient client){
+        GetCapabilitiesOperarion getCapabilities = new GetCapabilitiesOperarion();
+        RemoteOperationResult  result = getCapabilities.execute(mStorageManager,mContext);
+        if (!result.isSuccess()){
+            Log_OC.w(TAG, "Update Capabilities unsuccessfully");
         }
     }
 
-    
     private RemoteOperationResult checkForChanges(OwnCloudClient client) {
         mRemoteFolderChanged = true;
         RemoteOperationResult result = null;
-        String remotePath = null;
+        String remotePath = mLocalFolder.getRemotePath();
 
-        remotePath = mLocalFolder.getRemotePath();
         Log_OC.d(TAG, "Checking changes in " + mAccount.name + remotePath);
         
         // remote request 
@@ -252,13 +265,19 @@ public class RefreshFolderOperation extends RemoteOperation {
 
             if (!mIgnoreETag) {
                 // check if remote and local folder are different
-                mRemoteFolderChanged = 
-                        !(remoteFolder.getEtag().equalsIgnoreCase(mLocalFolder.getEtag()));
+                String remoteFolderETag = remoteFolder.getEtag();
+                if (remoteFolderETag != null) {
+                    mRemoteFolderChanged =
+                            !(remoteFolderETag.equalsIgnoreCase(mLocalFolder.getEtag()));
+                } else {
+                    Log_OC.e(TAG, "Checked " + mAccount.name + remotePath + " : " +
+                            "No ETag received from server");
+                }
             }
 
             result = new RemoteOperationResult(ResultCode.OK);
         
-            Log_OC.i(TAG, "Checked " + mAccount.name + remotePath + " : " + 
+            Log_OC.i(TAG, "Checked " + mAccount.name + remotePath + " : " +
                     (mRemoteFolderChanged ? "changed" : "not changed"));
             
         } else {
@@ -331,73 +350,74 @@ public class RefreshFolderOperation extends RemoteOperation {
         mLocalFolder = mStorageManager.getFileByPath(mLocalFolder.getRemotePath());
 
         // parse data from remote folder 
-        OCFile remoteFolder = fillOCFile((RemoteFile)folderAndFiles.get(0));
+        OCFile remoteFolder = FileStorageUtils.fillOCFile((RemoteFile) folderAndFiles.get(0));
         remoteFolder.setParentId(mLocalFolder.getParentId());
         remoteFolder.setFileId(mLocalFolder.getFileId());
         
-        Log_OC.d(TAG, "Remote folder " + mLocalFolder.getRemotePath() 
+        Log_OC.d(TAG, "Remote folder " + mLocalFolder.getRemotePath()
                 + " changed - starting update of local data ");
         
         List<OCFile> updatedFiles = new Vector<OCFile>(folderAndFiles.size() - 1);
-        List<SynchronizeFileOperation> filesToSyncContents = new Vector<SynchronizeFileOperation>();
+        mFilesToSyncContents.clear();
 
         // get current data about local contents of the folder to synchronize
-        // TODO Enable when "On Device" is recovered ?
-        List<OCFile> localFiles = mStorageManager.getFolderContent(mLocalFolder/*, false*/);
+        List<OCFile> localFiles = mStorageManager.getFolderContent(mLocalFolder, false);
         Map<String, OCFile> localFilesMap = new HashMap<String, OCFile>(localFiles.size());
         for (OCFile file : localFiles) {
             localFilesMap.put(file.getRemotePath(), file);
         }
         
         // loop to update every child
-        OCFile remoteFile = null, localFile = null;
+        OCFile remoteFile = null, localFile = null, updatedFile = null;
+        RemoteFile r;
         for (int i=1; i<folderAndFiles.size(); i++) {
             /// new OCFile instance with the data from the server
-            remoteFile = fillOCFile((RemoteFile)folderAndFiles.get(i));
-            remoteFile.setParentId(mLocalFolder.getFileId());
+            r = (RemoteFile) folderAndFiles.get(i);
+            remoteFile = FileStorageUtils.fillOCFile(r);
+
+            /// new OCFile instance to merge fresh data from server with local state
+            updatedFile = FileStorageUtils.fillOCFile(r);
+            updatedFile.setParentId(mLocalFolder.getFileId());
 
             /// retrieve local data for the read file 
             //  localFile = mStorageManager.getFileByPath(remoteFile.getRemotePath());
             localFile = localFilesMap.remove(remoteFile.getRemotePath());
             
-            /// add to the remoteFile (the new one) data about LOCAL STATE (not existing in server)
-            remoteFile.setLastSyncDateForProperties(mCurrentSyncTime);
+            /// add to updatedFile data about LOCAL STATE (not existing in server)
+            updatedFile.setLastSyncDateForProperties(mCurrentSyncTime);
             if (localFile != null) {
-                // some properties of local state are kept unmodified
-                remoteFile.setFileId(localFile.getFileId());
-                remoteFile.setFavorite(localFile.isFavorite());
-                remoteFile.setLastSyncDateForData(localFile.getLastSyncDateForData());
-                remoteFile.setModificationTimestampAtLastSyncForData(
+                updatedFile.setFileId(localFile.getFileId());
+                updatedFile.setFavorite(localFile.isFavorite());
+                updatedFile.setLastSyncDateForData(localFile.getLastSyncDateForData());
+                updatedFile.setModificationTimestampAtLastSyncForData(
                         localFile.getModificationTimestampAtLastSyncForData()
                 );
-                remoteFile.setStoragePath(localFile.getStoragePath());
-                // eTag will not be updated unless contents are synchronized 
-                //  (Synchronize[File|Folder]Operation with remoteFile as parameter)
-                remoteFile.setEtag(localFile.getEtag());    
-                if (remoteFile.isFolder()) {
-                    remoteFile.setFileLength(localFile.getFileLength()); 
+                updatedFile.setStoragePath(localFile.getStoragePath());
+                // eTag will not be updated unless file CONTENTS are synchronized
+                updatedFile.setEtag(localFile.getEtag());
+                if (updatedFile.isFolder()) {
+                    updatedFile.setFileLength(localFile.getFileLength());
                         // TODO move operations about size of folders to FileContentProvider
                 } else if (mRemoteFolderChanged && remoteFile.isImage() &&
                         remoteFile.getModificationTimestamp() !=
                                 localFile.getModificationTimestamp()) {
-                    remoteFile.setNeedsUpdateThumbnail(true);
+                    updatedFile.setNeedsUpdateThumbnail(true);
                     Log.d(TAG, "Image " + remoteFile.getFileName() + " updated on the server");
                 }
-                remoteFile.setPublicLink(localFile.getPublicLink());
-                remoteFile.setShareByLink(localFile.isShareByLink());
+                updatedFile.setPublicLink(localFile.getPublicLink());
+                updatedFile.setShareViaLink(localFile.isSharedViaLink());
+                updatedFile.setShareWithSharee(localFile.isSharedWithSharee());
+                updatedFile.setEtagInConflict(localFile.getEtagInConflict());
             } else {
-                // remote eTag will not be updated unless contents are synchronized 
-                //  (Synchronize[File|Folder]Operation with remoteFile as parameter)
-                remoteFile.setEtag(""); 
+                // remote eTag will not be updated unless file CONTENTS are synchronized
+                updatedFile.setEtag("");
             }
 
             /// check and fix, if needed, local storage path
-            checkAndFixForeignStoragePath(remoteFile);      // policy - local files are COPIED 
-                                                            // into the ownCloud local folder;
-            searchForLocalFileInDefaultPath(remoteFile);    // legacy   
+            FileStorageUtils.searchForLocalFileInDefaultPath(updatedFile, mAccount);
 
             /// prepare content synchronization for kept-in-sync files
-            if (remoteFile.isFavorite()) {
+            if (updatedFile.isFavorite()) {
                 SynchronizeFileOperation operation = new SynchronizeFileOperation(  localFile,        
                                                                                     remoteFile, 
                                                                                     mAccount, 
@@ -405,18 +425,15 @@ public class RefreshFolderOperation extends RemoteOperation {
                                                                                     mContext
                                                                                     );
                 
-                filesToSyncContents.add(operation);
+                mFilesToSyncContents.add(operation);
             }
-            
-            updatedFiles.add(remoteFile);
+
+            updatedFiles.add(updatedFile);
         }
 
         // save updated contents in local database
         mStorageManager.saveFolder(remoteFolder, updatedFiles, localFilesMap.values());
 
-        // request for the synchronization of file contents AFTER saving current remote properties
-        startContentSynchronizations(filesToSyncContents, client);
-
         mChildren = updatedFiles;
     }
 
@@ -454,103 +471,19 @@ public class RefreshFolderOperation extends RemoteOperation {
     }
 
 
-    public boolean isMultiStatus(int status) {
-        return (status == HttpStatus.SC_MULTI_STATUS); 
-    }
-
     /**
-     * Creates and populates a new {@link OCFile} object with the data read from the server.
-     * 
-     * @param remote    remote file read from the server (remote file or folder).
-     * @return          New OCFile instance representing the remote resource described by we.
+     * Syncs the Share resources for the files contained in the folder refreshed (children, not deeper descendants).
+     *
+     * @param client    Handler of a session with an OC server.
+     * @return          The result of the remote operation retrieving the Share resources in the folder refreshed by
+     *                  the operation.
      */
-    private OCFile fillOCFile(RemoteFile remote) {
-        OCFile file = new OCFile(remote.getRemotePath());
-        file.setCreationTimestamp(remote.getCreationTimestamp());
-        file.setFileLength(remote.getLength());
-        file.setMimetype(remote.getMimeType());
-        file.setModificationTimestamp(remote.getModifiedTimestamp());
-        file.setEtag(remote.getEtag());
-        file.setPermissions(remote.getPermissions());
-        file.setRemoteId(remote.getRemoteId());
-        return file;
-    }
-    
-
-    /**
-     * Checks the storage path of the OCFile received as parameter. 
-     * If it's out of the local ownCloud folder, tries to copy the file inside it. 
-     * 
-     * If the copy fails, the link to the local file is nullified. The account of forgotten 
-     * files is kept in {@link #mForgottenLocalFiles}
-     *) 
-     * @param file      File to check and fix.
-     */
-    private void checkAndFixForeignStoragePath(OCFile file) {
-        String storagePath = file.getStoragePath();
-        String expectedPath = FileStorageUtils.getDefaultSavePathFor(mAccount.name, file);
-        if (storagePath != null && !storagePath.equals(expectedPath)) {
-            /// fix storagePaths out of the local ownCloud folder
-            File originalFile = new File(storagePath);
-            if (FileStorageUtils.getUsableSpace(mAccount.name) < originalFile.length()) {
-                mForgottenLocalFiles.put(file.getRemotePath(), storagePath);
-                file.setStoragePath(null);
-                    
-            } else {
-                InputStream in = null;
-                OutputStream out = null;
-                try {
-                    File expectedFile = new File(expectedPath);
-                    File expectedParent = expectedFile.getParentFile();
-                    expectedParent.mkdirs();
-                    if (!expectedParent.isDirectory()) {
-                        throw new IOException(
-                                "Unexpected error: parent directory could not be created"
-                        );
-                    }
-                    expectedFile.createNewFile();
-                    if (!expectedFile.isFile()) {
-                        throw new IOException("Unexpected error: target file could not be created");
-                    }                    
-                    in = new FileInputStream(originalFile);
-                    out = new FileOutputStream(expectedFile);
-                    byte[] buf = new byte[1024];
-                    int len;
-                    while ((len = in.read(buf)) > 0){
-                        out.write(buf, 0, len);
-                    }
-                    file.setStoragePath(expectedPath);
-                    
-                } catch (Exception e) {
-                    Log_OC.e(TAG, "Exception while copying foreign file " + expectedPath, e);
-                    mForgottenLocalFiles.put(file.getRemotePath(), storagePath);
-                    file.setStoragePath(null);
-                    
-                } finally {
-                    try {
-                        if (in != null) in.close();
-                    } catch (Exception e) {
-                        Log_OC.d(TAG, "Weird exception while closing input stream for " 
-                                + storagePath + " (ignoring)", e);
-                    }
-                    try {
-                        if (out != null) out.close();
-                    } catch (Exception e) {
-                        Log_OC.d(TAG, "Weird exception while closing output stream for " 
-                                + expectedPath + " (ignoring)", e);
-                    }
-                }
-            }
-        }
-    }
-    
-    
     private RemoteOperationResult refreshSharesForFolder(OwnCloudClient client) {
         RemoteOperationResult result = null;
         
         // remote request 
         GetRemoteSharesForFileOperation operation = 
-                new GetRemoteSharesForFileOperation(mLocalFolder.getRemotePath(), false, true);
+                new GetRemoteSharesForFileOperation(mLocalFolder.getRemotePath(), true, true);
         result = operation.execute(client);
         
         if (result.isSuccess()) {
@@ -567,24 +500,6 @@ public class RefreshFolderOperation extends RemoteOperation {
     
 
     /**
-     * Scans the default location for saving local copies of files searching for
-     * a 'lost' file with the same full name as the {@link OCFile} received as 
-     * parameter.
-     *  
-     * @param file      File to associate a possible 'lost' local file.
-     */
-    private void searchForLocalFileInDefaultPath(OCFile file) {
-        if (file.getStoragePath() == null && !file.isFolder()) {
-            File f = new File(FileStorageUtils.getDefaultSavePathFor(mAccount.name, file));
-            if (f.exists()) {
-                file.setStoragePath(f.getAbsolutePath());
-                file.setLastSyncDateForData(f.lastModified());
-            }
-        }
-    }
-
-    
-    /**
      * Sends a message to any application component interested in the progress 
      * of the synchronization.
      * 
@@ -608,8 +523,20 @@ public class RefreshFolderOperation extends RemoteOperation {
     }
 
 
-    public boolean getRemoteFolderChanged() {
-        return mRemoteFolderChanged;
+    private void fetchFavoritesToSyncFromLocalData() {
+        List<OCFile> children = mStorageManager.getFolderContent(mLocalFolder, false);
+        for (OCFile child : children) {
+            if (!child.isFolder() && child.isFavorite()) {
+                SynchronizeFileOperation operation = new SynchronizeFileOperation(
+                        child,
+                        child,  // cheating with the remote file to get an update to server; to refactor
+                        mAccount,
+                        true,
+                        mContext
+                );
+                mFilesToSyncContents.add(operation);
+            }
+        }
     }
 
 }
index f94adb1..bc0caf1 100644 (file)
@@ -22,7 +22,6 @@
 
 package com.owncloud.android.operations;
 
-import com.owncloud.android.MainApp;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.files.services.FileDownloader;
 import com.owncloud.android.files.services.FileUploader;
@@ -208,15 +207,13 @@ public class SynchronizeFileOperation extends SyncOperation {
 
                 /// check changes in server and local file
                 boolean serverChanged = false;
-                /* time for eTag is coming, but not yet
-                    if (mServerFile.getEtag() != null) {
-                        serverChanged = (!mServerFile.getEtag().equals(mLocalFile.getEtag()));
-                    } else { */
-                serverChanged = (
-                    mServerFile.getModificationTimestamp() !=
-                            mLocalFile.getModificationTimestampAtLastSyncForData()
-                );
-                //}
+                if (mLocalFile.getEtag() == null || mLocalFile.getEtag().length() == 0) {
+                    // file uploaded (null) or downloaded ("") before upgrade to version 1.8.0; check the old condition
+                    serverChanged = mServerFile.getModificationTimestamp() !=
+                            mLocalFile.getModificationTimestampAtLastSyncForData();
+                } else {
+                    serverChanged = (!mServerFile.getEtag().equals(mLocalFile.getEtag()));
+                }
                 boolean localChanged = (
                     mLocalFile.getLocalModificationTimestamp() > mLocalFile.getLastSyncDateForData()
                 );
@@ -225,6 +222,7 @@ public class SynchronizeFileOperation extends SyncOperation {
                 //if (!mLocalFile.getEtag().isEmpty() && localChanged && serverChanged) {
                 if (localChanged && serverChanged) {
                     result = new RemoteOperationResult(ResultCode.SYNC_CONFLICT);
+                    getStorageManager().saveConflict(mLocalFile, mServerFile.getEtag());
 
                 } else if (localChanged) {
                     if (mSyncFileContents && mAllowUploads) {
@@ -254,6 +252,7 @@ public class SynchronizeFileOperation extends SyncOperation {
                         mServerFile.setLastSyncDateForData(mLocalFile.getLastSyncDateForData());
                         mServerFile.setStoragePath(mLocalFile.getStoragePath());
                         mServerFile.setParentId(mLocalFile.getParentId());
+                        mServerFile.setEtag(mLocalFile.getEtag());
                         getStorageManager().saveFile(mServerFile);
 
                     }
@@ -264,7 +263,11 @@ public class SynchronizeFileOperation extends SyncOperation {
                     result = new RemoteOperationResult(ResultCode.OK);
                 }
 
-            } 
+                // safe blanket: sync'ing a not in-conflict file will clean wrong conflict markers in ancestors
+                if (result.getCode() != ResultCode.SYNC_CONFLICT) {
+                    getStorageManager().saveConflict(mLocalFile, null);
+                }
+            }
 
         }
 
index 78b6a7b..227e2b2 100644 (file)
@@ -60,7 +60,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
  *  Fetches the list and properties of the files contained in the given folder, including their 
  *  properties, and updates the local database with them.
  *  
- *  Does NOT enter in the child folders to synchronize their contents also.
+ *  Does NOT enter in the child folders to synchronize their contents also, BUT requests for a new operation instance
+ *  doing so.
  */
 public class SynchronizeFolderOperation extends SyncOperation {
 
@@ -96,10 +97,7 @@ public class SynchronizeFolderOperation extends SyncOperation {
     private List<OCFile> mFilesForDirectDownload;
         // to avoid extra PROPFINDs when there was no change in the folder
     
-    private List<SyncOperation> mFilesToSyncContentsWithoutUpload;
-        // this will go out when 'folder synchronization' replaces 'folder download'; step by step  
-
-    private List<SyncOperation> mFavouriteFilesToSyncContents;
+    private List<SyncOperation> mFilesToSyncContents;
         // this will be used for every file when 'folder synchronization' replaces 'folder download' 
 
     private final AtomicBoolean mCancellationRequested;
@@ -120,8 +118,7 @@ public class SynchronizeFolderOperation extends SyncOperation {
         mContext = context;
         mRemoteFolderChanged = false;
         mFilesForDirectDownload = new Vector<OCFile>();
-        mFilesToSyncContentsWithoutUpload = new Vector<SyncOperation>();
-        mFavouriteFilesToSyncContents = new Vector<SyncOperation>();
+        mFilesToSyncContents = new Vector<SyncOperation>();
         mCancellationRequested = new AtomicBoolean(false);
     }
 
@@ -281,7 +278,7 @@ public class SynchronizeFolderOperation extends SyncOperation {
         FileDataStorageManager storageManager = getStorageManager();
         
         // parse data from remote folder
-        OCFile remoteFolder = fillOCFile((RemoteFile)folderAndFiles.get(0));
+        OCFile remoteFolder = FileStorageUtils.fillOCFile((RemoteFile) folderAndFiles.get(0));
         remoteFolder.setParentId(mLocalFolder.getParentId());
         remoteFolder.setFileId(mLocalFolder.getFileId());
 
@@ -290,101 +287,92 @@ public class SynchronizeFolderOperation extends SyncOperation {
 
         List<OCFile> updatedFiles = new Vector<OCFile>(folderAndFiles.size() - 1);
         mFilesForDirectDownload.clear();
-        mFilesToSyncContentsWithoutUpload.clear();
-        mFavouriteFilesToSyncContents.clear();
+        mFilesToSyncContents.clear();
 
         if (mCancellationRequested.get()) {
             throw new OperationCancelledException();
         }
 
         // get current data about local contents of the folder to synchronize
-        // TODO Enable when "On Device" is recovered ?
-        List<OCFile> localFiles = storageManager.getFolderContent(mLocalFolder/*, false*/);
+        List<OCFile> localFiles = storageManager.getFolderContent(mLocalFolder, false);
         Map<String, OCFile> localFilesMap = new HashMap<String, OCFile>(localFiles.size());
         for (OCFile file : localFiles) {
             localFilesMap.put(file.getRemotePath(), file);
         }
 
         // loop to synchronize every child
-        OCFile remoteFile = null, localFile = null;
+        OCFile remoteFile = null, localFile = null, updatedFile = null;
+        RemoteFile r;
         for (int i=1; i<folderAndFiles.size(); i++) {
             /// new OCFile instance with the data from the server
-            remoteFile = fillOCFile((RemoteFile)folderAndFiles.get(i));
-            remoteFile.setParentId(mLocalFolder.getFileId());
+            r = (RemoteFile) folderAndFiles.get(i);
+            remoteFile = FileStorageUtils.fillOCFile(r);
+
+            /// new OCFile instance to merge fresh data from server with local state
+            updatedFile = FileStorageUtils.fillOCFile(r);
+            updatedFile.setParentId(mLocalFolder.getFileId());
 
             /// retrieve local data for the read file
             //  localFile = mStorageManager.getFileByPath(remoteFile.getRemotePath());
             localFile = localFilesMap.remove(remoteFile.getRemotePath());
 
-            /// add to the remoteFile (the new one) data about LOCAL STATE (not existing in server)
-            remoteFile.setLastSyncDateForProperties(mCurrentSyncTime);
+            /// add to updatedFile data about LOCAL STATE (not existing in server)
+            updatedFile.setLastSyncDateForProperties(mCurrentSyncTime);
             if (localFile != null) {
-                // some properties of local state are kept unmodified
-                remoteFile.setFileId(localFile.getFileId());
-                remoteFile.setFavorite(localFile.isFavorite());
-                remoteFile.setLastSyncDateForData(localFile.getLastSyncDateForData());
-                remoteFile.setModificationTimestampAtLastSyncForData(
+                updatedFile.setFileId(localFile.getFileId());
+                updatedFile.setFavorite(localFile.isFavorite());
+                updatedFile.setLastSyncDateForData(localFile.getLastSyncDateForData());
+                updatedFile.setModificationTimestampAtLastSyncForData(
                         localFile.getModificationTimestampAtLastSyncForData()
                 );
-                remoteFile.setStoragePath(localFile.getStoragePath());
-                // eTag will not be updated unless contents are synchronized
-                //  (Synchronize[File|Folder]Operation with remoteFile as parameter)
-                remoteFile.setEtag(localFile.getEtag());
-                if (remoteFile.isFolder()) {
-                    remoteFile.setFileLength(localFile.getFileLength());
+                updatedFile.setStoragePath(localFile.getStoragePath());
+                // eTag will not be updated unless file CONTENTS are synchronized
+                updatedFile.setEtag(localFile.getEtag());
+                if (updatedFile.isFolder()) {
+                    updatedFile.setFileLength(localFile.getFileLength());
                         // TODO move operations about size of folders to FileContentProvider
                 } else if (mRemoteFolderChanged && remoteFile.isImage() &&
                         remoteFile.getModificationTimestamp() !=
                                 localFile.getModificationTimestamp()) {
-                    remoteFile.setNeedsUpdateThumbnail(true);
+                    updatedFile.setNeedsUpdateThumbnail(true);
                     Log.d(TAG, "Image " + remoteFile.getFileName() + " updated on the server");
                 }
-                remoteFile.setPublicLink(localFile.getPublicLink());
-                remoteFile.setShareByLink(localFile.isShareByLink());
+                updatedFile.setPublicLink(localFile.getPublicLink());
+                updatedFile.setShareViaLink(localFile.isSharedViaLink());
+                updatedFile.setShareWithSharee(localFile.isSharedWithSharee());
+                updatedFile.setEtagInConflict(localFile.getEtagInConflict());
             } else {
-                // remote eTag will not be updated unless contents are synchronized
-                //  (Synchronize[File|Folder]Operation with remoteFile as parameter)
-                remoteFile.setEtag("");
+                // remote eTag will not be updated unless file CONTENTS are synchronized
+                updatedFile.setEtag("");
             }
 
             /// check and fix, if needed, local storage path
-            searchForLocalFileInDefaultPath(remoteFile);
+            searchForLocalFileInDefaultPath(updatedFile);
             
             /// classify file to sync/download contents later
             if (remoteFile.isFolder()) {
                 /// to download children files recursively
-                synchronized(mCancellationRequested) {
+                synchronized (mCancellationRequested) {
                     if (mCancellationRequested.get()) {
                         throw new OperationCancelledException();
                     }
                     startSyncFolderOperation(remoteFile.getRemotePath());
                 }
 
-            } else if (remoteFile.isFavorite()) {
-                /// prepare content synchronization for kept-in-sync files
-                SynchronizeFileOperation operation = new SynchronizeFileOperation(
-                        localFile,
-                        remoteFile,
-                        mAccount,
-                        true,
-                        mContext
-                    );
-                mFavouriteFilesToSyncContents.add(operation);
-                
             } else {
-                /// prepare limited synchronization for regular files
+                /// prepare content synchronization for files (any file, not just favorites)
                 SynchronizeFileOperation operation = new SynchronizeFileOperation(
                         localFile,
                         remoteFile,
                         mAccount,
                         true,
-                        false,
                         mContext
                     );
-                mFilesToSyncContentsWithoutUpload.add(operation);
+                mFilesToSyncContents.add(operation);
+                
             }
 
-            updatedFiles.add(remoteFile);
+            updatedFiles.add(updatedFile);
         }
 
         // save updated contents in local database
@@ -394,8 +382,7 @@ public class SynchronizeFolderOperation extends SyncOperation {
     
     
     private void prepareOpsFromLocalKnowledge() throws OperationCancelledException {
-        // TODO Enable when "On Device" is recovered ?
-        List<OCFile> children = getStorageManager().getFolderContent(mLocalFolder/*, false*/);
+        List<OCFile> children = getStorageManager().getFolderContent(mLocalFolder, false);
         for (OCFile child : children) {
             /// classify file to sync/download contents later
             if (child.isFolder()) {
@@ -408,10 +395,23 @@ public class SynchronizeFolderOperation extends SyncOperation {
                 }
 
             } else {
-                /// prepare limited synchronization for regular files
+                /// synchronization for regular files
                 if (!child.isDown()) {
                     mFilesForDirectDownload.add(child);
+
+                } else {
+                    /// this should result in direct upload of files that were locally modified
+                    SynchronizeFileOperation operation = new SynchronizeFileOperation(
+                            child,
+                            (child.getEtagInConflict() != null ? child : null),
+                            mAccount,
+                            true,
+                            mContext
+                    );
+                    mFilesToSyncContents.add(operation);
+
                 }
+
             }
         }
     }
@@ -419,8 +419,7 @@ public class SynchronizeFolderOperation extends SyncOperation {
 
     private void syncContents(OwnCloudClient client) throws OperationCancelledException {
         startDirectDownloads();
-        startContentSynchronizations(mFilesToSyncContentsWithoutUpload, client);
-        startContentSynchronizations(mFavouriteFilesToSyncContents, client);
+        startContentSynchronizations(mFilesToSyncContents, client);
     }
 
     
@@ -479,26 +478,6 @@ public class SynchronizeFolderOperation extends SyncOperation {
 
     
     /**
-     * Creates and populates a new {@link com.owncloud.android.datamodel.OCFile}
-     * object with the data read from the server.
-     *
-     * @param remote    remote file read from the server (remote file or folder).
-     * @return          New OCFile instance representing the remote resource described by we.
-     */
-    private OCFile fillOCFile(RemoteFile remote) {
-        OCFile file = new OCFile(remote.getRemotePath());
-        file.setCreationTimestamp(remote.getCreationTimestamp());
-        file.setFileLength(remote.getLength());
-        file.setMimetype(remote.getMimeType());
-        file.setModificationTimestamp(remote.getModifiedTimestamp());
-        file.setEtag(remote.getEtag());
-        file.setPermissions(remote.getPermissions());
-        file.setRemoteId(remote.getRemoteId());
-        return file;
-    }
-
-
-    /**
      * Scans the default location for saving local copies of files searching for
      * a 'lost' file with the same full name as the {@link com.owncloud.android.datamodel.OCFile}
      * received as parameter.
diff --git a/src/com/owncloud/android/operations/UnshareLinkOperation.java b/src/com/owncloud/android/operations/UnshareLinkOperation.java
deleted file mode 100644 (file)
index 1b66226..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- *   ownCloud Android client application
- *
- *   @author masensio
- *   Copyright (C) 2015 ownCloud Inc.
- *
- *   This program is free software: you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License version 2,
- *   as published by the Free Software Foundation.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-package com.owncloud.android.operations;
-
-import android.content.Context;
-
-import com.owncloud.android.MainApp;
-import com.owncloud.android.datamodel.OCFile;
-
-import com.owncloud.android.lib.common.OwnCloudClient;
-import com.owncloud.android.lib.common.operations.RemoteOperationResult;
-import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
-import com.owncloud.android.lib.common.utils.Log_OC;
-import com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation;
-import com.owncloud.android.lib.resources.shares.OCShare;
-import com.owncloud.android.lib.resources.shares.RemoveRemoteShareOperation;
-import com.owncloud.android.lib.resources.shares.ShareType;
-
-import com.owncloud.android.operations.common.SyncOperation;
-
-/**
- * Unshare file/folder
- * Save the data in Database
- */
-public class UnshareLinkOperation extends SyncOperation {
-
-    private static final String TAG = UnshareLinkOperation.class.getSimpleName();
-    
-    private String mRemotePath;
-    private Context mContext;
-    
-    
-    public UnshareLinkOperation(String remotePath, Context context) {
-        mRemotePath = remotePath;
-        mContext = context;
-    }
-
-    @Override
-    protected RemoteOperationResult run(OwnCloudClient client) {
-        RemoteOperationResult result  = null;
-        
-        // Get Share for a file
-        OCShare share = getStorageManager().getFirstShareByPathAndType(mRemotePath,
-                ShareType.PUBLIC_LINK);
-        
-        if (share != null) {
-            RemoveRemoteShareOperation operation =
-                    new RemoveRemoteShareOperation((int) share.getIdRemoteShared());
-            result = operation.execute(client);
-
-            if (result.isSuccess() || result.getCode() == ResultCode.SHARE_NOT_FOUND) {
-                Log_OC.d(TAG, "Share id = " + share.getIdRemoteShared() + " deleted");
-
-                OCFile file = getStorageManager().getFileByPath(mRemotePath);
-                file.setShareByLink(false);
-                file.setPublicLink("");
-                getStorageManager().saveFile(file);
-                getStorageManager().removeShare(share);
-                
-                if (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
-                    if (existsFile(client, file.getRemotePath())) {
-                        result = new RemoteOperationResult(ResultCode.OK);
-                    } else {
-                        getStorageManager().removeFile(file, true, true);
-                    }
-                }
-            } 
-                
-        } else {
-            result = new RemoteOperationResult(ResultCode.SHARE_NOT_FOUND);
-        }
-
-        return result;
-    }
-    
-    private boolean existsFile(OwnCloudClient client, String remotePath){
-        ExistenceCheckRemoteOperation existsOperation =
-                new ExistenceCheckRemoteOperation(remotePath, mContext, false);
-        RemoteOperationResult result = existsOperation.execute(client);
-        return result.isSuccess();
-    }
-
-}
diff --git a/src/com/owncloud/android/operations/UnshareOperation.java b/src/com/owncloud/android/operations/UnshareOperation.java
new file mode 100644 (file)
index 0000000..d819abf
--- /dev/null
@@ -0,0 +1,113 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author masensio
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.operations;
+
+import android.content.Context;
+
+import com.owncloud.android.datamodel.OCFile;
+
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation;
+import com.owncloud.android.lib.resources.shares.OCShare;
+import com.owncloud.android.lib.resources.shares.RemoveRemoteShareOperation;
+import com.owncloud.android.lib.resources.shares.ShareType;
+
+import com.owncloud.android.operations.common.SyncOperation;
+
+import java.util.ArrayList;
+
+/**
+ * Unshare file/folder
+ * Save the data in Database
+ */
+public class UnshareOperation extends SyncOperation {
+
+    private static final String TAG = UnshareOperation.class.getSimpleName();
+    
+    private String mRemotePath;
+    private ShareType mShareType;
+    private String mShareWith;
+    private Context mContext;
+    
+    public UnshareOperation(String remotePath, ShareType shareType, String shareWith,
+                                Context context) {
+        mRemotePath = remotePath;
+        mShareType = shareType;
+        mShareWith = shareWith;
+        mContext = context;
+    }
+
+    @Override
+    protected RemoteOperationResult run(OwnCloudClient client) {
+        RemoteOperationResult result  = null;
+        
+        // Get Share for a file
+        OCShare share = getStorageManager().getFirstShareByPathAndType(mRemotePath,
+                mShareType, mShareWith);
+        
+        if (share != null) {
+            OCFile file = getStorageManager().getFileByPath(mRemotePath);
+            RemoveRemoteShareOperation operation =
+                    new RemoveRemoteShareOperation((int) share.getRemoteId());
+            result = operation.execute(client);
+
+            if (result.isSuccess()) {
+                Log_OC.d(TAG, "Share id = " + share.getRemoteId() + " deleted");
+
+                if (mShareType == ShareType.PUBLIC_LINK) {
+                    file.setShareViaLink(false);
+                    file.setPublicLink("");
+                } else if (mShareType == ShareType.USER || mShareType == ShareType.GROUP){
+                    // Check if it is the last share
+                    ArrayList <OCShare> sharesWith = getStorageManager().
+                            getSharesWithForAFile(mRemotePath,
+                            getStorageManager().getAccount().name);
+                    if (sharesWith.size() == 1) {
+                        file.setShareWithSharee(false);
+                    }
+                }
+
+                getStorageManager().saveFile(file);
+                getStorageManager().removeShare(share);
+                
+            } else if (!existsFile(client, file.getRemotePath())) {
+                // unshare failed because file was deleted before
+                getStorageManager().removeFile(file, true, true);
+            }
+
+        } else {
+            result = new RemoteOperationResult(ResultCode.SHARE_NOT_FOUND);
+        }
+
+        return result;
+    }
+    
+    private boolean existsFile(OwnCloudClient client, String remotePath){
+        ExistenceCheckRemoteOperation existsOperation =
+                new ExistenceCheckRemoteOperation(remotePath, mContext, false);
+        RemoteOperationResult result = existsOperation.execute(client);
+        return result.isSuccess();
+    }
+
+}
diff --git a/src/com/owncloud/android/operations/UpdateShareViaLinkOperation.java b/src/com/owncloud/android/operations/UpdateShareViaLinkOperation.java
new file mode 100644 (file)
index 0000000..14b60e8
--- /dev/null
@@ -0,0 +1,152 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author David A. Velasco
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.operations;
+
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.operations.RemoteOperation;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.resources.files.FileUtils;
+import com.owncloud.android.lib.resources.shares.GetRemoteShareOperation;
+import com.owncloud.android.lib.resources.shares.OCShare;
+import com.owncloud.android.lib.resources.shares.ShareType;
+import com.owncloud.android.lib.resources.shares.UpdateRemoteShareOperation;
+import com.owncloud.android.operations.common.SyncOperation;
+
+import java.util.Calendar;
+
+
+/**
+ * Updates an existing public share for a given file
+ */
+
+public class UpdateShareViaLinkOperation extends SyncOperation {
+
+    private String mPath;
+    private String mPassword;
+    private long mExpirationDateInMillis;
+
+    /**
+     * Constructor
+     *
+     * @param path          Full path of the file/folder being shared. Mandatory argument
+     */
+    public UpdateShareViaLinkOperation(String path) {
+
+        mPath = path;
+        mPassword = null;
+        mExpirationDateInMillis = 0;
+    }
+
+
+    /**
+     * Set password to update in public link.
+     *
+     * @param password      Password to set to the public link.
+     *                      Empty string clears the current password.
+     *                      Null results in no update applied to the password.
+     */
+    public void setPassword(String password) {
+        mPassword = password;
+    }
+
+
+    /**
+     * Set expiration date to update in Share resource.
+     *
+     * @param expirationDateInMillis    Expiration date to set to the public link.
+     *                                  A negative value clears the current expiration date.
+     *                                  Zero value (start-of-epoch) results in no update done on
+     *                                  the expiration date.
+     */
+    public void setExpirationDate(long expirationDateInMillis) {
+        mExpirationDateInMillis = expirationDateInMillis;
+    }
+
+
+    @Override
+    protected RemoteOperationResult run(OwnCloudClient client) {
+
+        OCShare publicShare = getStorageManager().getFirstShareByPathAndType(
+                mPath,
+                ShareType.PUBLIC_LINK,
+                ""
+        );
+
+        if (publicShare == null) {
+            // TODO try to get remote share before failing?
+            return new RemoteOperationResult(
+                    RemoteOperationResult.ResultCode.SHARE_NOT_FOUND
+            );
+        }
+
+        // Update remote share with password
+        UpdateRemoteShareOperation udpateOp = new UpdateRemoteShareOperation(
+            publicShare.getRemoteId()
+        );
+        udpateOp.setPassword(mPassword);
+        udpateOp.setExpirationDate(mExpirationDateInMillis);
+        RemoteOperationResult result = udpateOp.execute(client);
+
+        if (result.isSuccess()) {
+            // Retrieve updated share / save directly with password? -> no; the password is not be saved
+            RemoteOperation getShareOp = new GetRemoteShareOperation(publicShare.getRemoteId());
+            result = getShareOp.execute(client);
+            if (result.isSuccess()) {
+                OCShare share = (OCShare) result.getData().get(0);
+                updateData(share);
+            }
+        }
+
+        return result;
+    }
+
+    public String getPath() {
+        return mPath;
+    }
+
+    public String getPassword() {
+        return mPassword;
+    }
+
+    private void updateData(OCShare share) {
+        // Update DB with the response
+        share.setPath(mPath);
+        if (mPath.endsWith(FileUtils.PATH_SEPARATOR)) {
+            share.setIsFolder(true);
+        } else {
+            share.setIsFolder(false);
+        }
+
+        getStorageManager().saveShare(share);   // TODO info about having a password? ask to Gonzalo
+
+        // Update OCFile with data from share: ShareByLink  and publicLink
+        // TODO check & remove if not needed
+        OCFile file = getStorageManager().getFileByPath(mPath);
+        if (file != null) {
+            file.setPublicLink(share.getShareLink());
+            file.setShareViaLink(true);
+            getStorageManager().saveFile(file);
+        }
+    }
+
+}
+
index 12cf1ac..182ec0b 100644 (file)
@@ -26,12 +26,13 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.channels.FileChannel;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.apache.commons.httpclient.methods.PutMethod;
+import org.apache.commons.httpclient.HttpStatus;
 import org.apache.commons.httpclient.methods.RequestEntity;
 
 import android.accounts.Account;
@@ -39,6 +40,7 @@ import android.content.Context;
 import android.net.Uri;
 
 import com.owncloud.android.MainApp;
+import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.lib.common.OwnCloudClient;
@@ -75,7 +77,6 @@ public class UploadFileOperation extends RemoteOperation {
     private boolean mWasRenamed = false;
     private String mOriginalFileName = null;
     private String mOriginalStoragePath = null;
-    PutMethod mPutMethod = null;
     private Set<OnDatatransferProgressListener> mDataTransferListeners = new HashSet<OnDatatransferProgressListener>();
     private AtomicBoolean mCancellationRequested = new AtomicBoolean(false);
     private Context mContext;
@@ -312,66 +313,89 @@ public class UploadFileOperation extends RemoteOperation {
                     (new File(mFile.getStoragePath())).length() >
                             ChunkedUploadRemoteFileOperation.CHUNK_SIZE ) {
                 mUploadOperation = new ChunkedUploadRemoteFileOperation(mFile.getStoragePath(),
-                        mFile.getRemotePath(), mFile.getMimetype());
+                        mFile.getRemotePath(), mFile.getMimetype(), mFile.getEtagInConflict());
             } else {
                 mUploadOperation = new UploadRemoteFileOperation(mFile.getStoragePath(),
-                        mFile.getRemotePath(), mFile.getMimetype());
+                        mFile.getRemotePath(), mFile.getMimetype(), mFile.getEtagInConflict());
             }
             Iterator <OnDatatransferProgressListener> listener = mDataTransferListeners.iterator();
             while (listener.hasNext()) {
                 mUploadOperation.addDatatransferProgressListener(listener.next());
             }
-            if (!mCancellationRequested.get()) {
-                result = mUploadOperation.execute(client);
-
-                /// move local temporal file or original file to its corresponding
-                // location in the ownCloud local folder
-                if (result.isSuccess()) {
-                    if (mLocalBehaviour == FileUploader.LOCAL_BEHAVIOUR_FORGET) {
-                        mFile.setStoragePath(null);
-
-                    } else {
-                        mFile.setStoragePath(expectedPath);
-                        File fileToMove = null;
-                        if (temporalFile != null) { // FileUploader.LOCAL_BEHAVIOUR_COPY
-                            // ; see where temporalFile was
-                            // set
-                            fileToMove = temporalFile;
-                        } else { // FileUploader.LOCAL_BEHAVIOUR_MOVE
-                            fileToMove = originalFile;
-                        }
-                        if (!expectedFile.equals(fileToMove)) {
-                            File expectedFolder = expectedFile.getParentFile();
-                            expectedFolder.mkdirs();
-                            if (!expectedFolder.isDirectory() || !fileToMove.renameTo(expectedFile)) {
-                                mFile.setStoragePath(null); // forget the local file
-                                // by now, treat this as a success; the file was
-                                // uploaded; the user won't like that the local file
-                                // is not linked, but this should be a very rare
-                                // fail;
-                                // the best option could be show a warning message
-                                // (but not a fail)
-                                // result = new
-                                // RemoteOperationResult(ResultCode.LOCAL_STORAGE_NOT_MOVED);
-                                // return result;
+            if (mCancellationRequested.get()) {
+                throw new OperationCancelledException();
+            }
+
+            result = mUploadOperation.execute(client);
+
+            /// move local temporal file or original file to its corresponding
+            // location in the ownCloud local folder
+            if (result.isSuccess()) {
+                if (mLocalBehaviour == FileUploader.LOCAL_BEHAVIOUR_FORGET) {
+                    mFile.setStoragePath("");
+                } else {
+                    mFile.setStoragePath(expectedPath);
+                    File fileToMove = null;
+                    if (temporalFile != null) { // FileUploader.LOCAL_BEHAVIOUR_COPY
+                        // ; see where temporalFile was
+                        // set
+                        fileToMove = temporalFile;
+                    } else { // FileUploader.LOCAL_BEHAVIOUR_MOVE
+                        fileToMove = originalFile;
+                    }
+                    if (!expectedFile.equals(fileToMove)) {
+                        File expectedFolder = expectedFile.getParentFile();
+                        expectedFolder.mkdirs();
+
+                        if (expectedFolder.isDirectory()){
+                            if (!fileToMove.renameTo(expectedFile)){
+                                // try to copy and then delete
+                                expectedFile.createNewFile();
+                                FileChannel inChannel = new FileInputStream(fileToMove).getChannel();
+                                FileChannel outChannel = new FileOutputStream(expectedFile).getChannel();
+
+                                try {
+                                    inChannel.transferTo(0, inChannel.size(), outChannel);
+                                    fileToMove.delete();
+                                } catch (Exception e){
+                                    mFile.setStoragePath(null); // forget the local file
+                                    // by now, treat this as a success; the file was
+                                    // uploaded; the user won't like that the local file
+                                    // is not linked, but this should be a very rare
+                                    // fail;
+                                    // the best option could be show a warning message
+                                    // (but not a fail)
+                                    // result = new
+                                    // RemoteOperationResult(ResultCode.LOCAL_STORAGE_NOT_MOVED);
+                                    // return result;
+                                }
+                                finally {
+                                    if (inChannel != null) inChannel.close();
+                                    if (outChannel != null) outChannel.close();
+                                }
                             }
+
+                        } else {
+                            mFile.setStoragePath(null);
                         }
                     }
                 }
+                FileDataStorageManager.triggerMediaScan(originalFile.getAbsolutePath());
+                FileDataStorageManager.triggerMediaScan(expectedFile.getAbsolutePath());
+            } else if (result.getHttpCode() == HttpStatus.SC_PRECONDITION_FAILED ) {
+                result = new RemoteOperationResult(ResultCode.SYNC_CONFLICT);
             }
 
         } catch (Exception e) {
-            // TODO something cleaner with cancellations
-            if (mCancellationRequested.get()) {
-                result = new RemoteOperationResult(new OperationCancelledException());
-            } else {
-                result = new RemoteOperationResult(e);
-            }
+            result = new RemoteOperationResult(e);
 
         } finally {
             if (temporalFile != null && !originalFile.equals(temporalFile)) {
                 temporalFile.delete();
             }
+            if (result == null){
+                return new RemoteOperationResult(false, 404, null);
+            }
             if (result.isSuccess()) {
                 Log_OC.i(TAG, "Upload of " + mOriginalStoragePath + " to " + mRemotePath + ": " +
                         result.getLogMessage());
@@ -406,7 +430,7 @@ public class UploadFileOperation extends RemoteOperation {
         newFile.setModificationTimestamp(mFile.getModificationTimestamp());
         newFile.setModificationTimestampAtLastSyncForData(
                 mFile.getModificationTimestampAtLastSyncForData());
-        // newFile.setEtag(mFile.getEtag())
+        newFile.setEtag(mFile.getEtag());
         newFile.setFavorite(mFile.isFavorite());
         newFile.setLastSyncDateForProperties(mFile.getLastSyncDateForProperties());
         newFile.setLastSyncDateForData(mFile.getLastSyncDateForData());
index 5fb5c8c..3d917d2 100644 (file)
 
 package com.owncloud.android.operations.common;
 
-import com.owncloud.android.MainApp;
+import android.content.Context;
+import android.os.Handler;
+
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.common.operations.OnRemoteOperationListener;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 
-import android.content.Context;
-import android.os.Handler;
-
 
 /**
  * Operation which execution involves both interactions with an ownCloud server and
index a4e50ce..e652bad 100644 (file)
 
 package com.owncloud.android.providers;
 
-import java.io.File;
-import java.security.Provider;
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import com.owncloud.android.MainApp;
-import com.owncloud.android.R;
-import com.owncloud.android.datamodel.OCFile;
-import com.owncloud.android.db.ProviderMeta;
-import com.owncloud.android.db.ProviderMeta.ProviderTableMeta;
-import com.owncloud.android.lib.common.accounts.AccountUtils;
-import com.owncloud.android.lib.common.utils.Log_OC;
-import com.owncloud.android.lib.resources.shares.ShareType;
-import com.owncloud.android.utils.FileStorageUtils;
-
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.content.ContentProvider;
@@ -55,6 +40,19 @@ import android.database.sqlite.SQLiteQueryBuilder;
 import android.net.Uri;
 import android.text.TextUtils;
 
+import com.owncloud.android.MainApp;
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.db.ProviderMeta;
+import com.owncloud.android.db.ProviderMeta.ProviderTableMeta;
+import com.owncloud.android.lib.common.accounts.AccountUtils;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.lib.resources.shares.ShareType;
+import com.owncloud.android.utils.FileStorageUtils;
+
+import java.io.File;
+import java.util.ArrayList;
+
 /**
  * The ContentProvider for the ownCloud App.
  */
@@ -62,95 +60,14 @@ public class FileContentProvider extends ContentProvider {
 
     private DataBaseHelper mDbHelper;
 
-    // Projection for filelist table
-    private static HashMap<String, String> mFileProjectionMap;
-    static {
-        mFileProjectionMap = new HashMap<String, String>();
-        mFileProjectionMap.put(ProviderTableMeta._ID, ProviderTableMeta._ID);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_PARENT,
-                ProviderTableMeta.FILE_PARENT);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_PATH,
-                ProviderTableMeta.FILE_PATH);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_NAME,
-                ProviderTableMeta.FILE_NAME);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_CREATION,
-                ProviderTableMeta.FILE_CREATION);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_MODIFIED,
-                ProviderTableMeta.FILE_MODIFIED);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA,
-                ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_CONTENT_LENGTH,
-                ProviderTableMeta.FILE_CONTENT_LENGTH);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_CONTENT_TYPE,
-                ProviderTableMeta.FILE_CONTENT_TYPE);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_STORAGE_PATH,
-                ProviderTableMeta.FILE_STORAGE_PATH);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_LAST_SYNC_DATE,
-                ProviderTableMeta.FILE_LAST_SYNC_DATE);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA,
-                ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_KEEP_IN_SYNC,
-                ProviderTableMeta.FILE_KEEP_IN_SYNC);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_ACCOUNT_OWNER,
-                ProviderTableMeta.FILE_ACCOUNT_OWNER);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_ETAG,
-                ProviderTableMeta.FILE_ETAG);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_SHARE_BY_LINK,
-                ProviderTableMeta.FILE_SHARE_BY_LINK);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_PUBLIC_LINK,
-                ProviderTableMeta.FILE_PUBLIC_LINK);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_PERMISSIONS,
-                ProviderTableMeta.FILE_PERMISSIONS);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_REMOTE_ID,
-                ProviderTableMeta.FILE_REMOTE_ID);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_UPDATE_THUMBNAIL,
-                ProviderTableMeta.FILE_UPDATE_THUMBNAIL);
-        mFileProjectionMap.put(ProviderTableMeta.FILE_IS_DOWNLOADING,
-                ProviderTableMeta.FILE_IS_DOWNLOADING);
-    }
-
     private static final int SINGLE_FILE = 1;
     private static final int DIRECTORY = 2;
     private static final int ROOT_DIRECTORY = 3;
     private static final int SHARES = 4;
+    private static final int CAPABILITIES = 5;
 
     private static final String TAG = FileContentProvider.class.getSimpleName();
 
-    // Projection for ocshares table
-    private static HashMap<String, String> mOCSharesProjectionMap;
-    static {
-        mOCSharesProjectionMap = new HashMap<String, String>();
-        mOCSharesProjectionMap.put(ProviderTableMeta._ID, ProviderTableMeta._ID);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_FILE_SOURCE,
-                ProviderTableMeta.OCSHARES_FILE_SOURCE);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_ITEM_SOURCE,
-                ProviderTableMeta.OCSHARES_ITEM_SOURCE);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_SHARE_TYPE,
-                ProviderTableMeta.OCSHARES_SHARE_TYPE);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_SHARE_WITH,
-                ProviderTableMeta.OCSHARES_SHARE_WITH);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_PATH,
-                ProviderTableMeta.OCSHARES_PATH);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_PERMISSIONS,
-                ProviderTableMeta.OCSHARES_PERMISSIONS);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_SHARED_DATE,
-                ProviderTableMeta.OCSHARES_SHARED_DATE);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_EXPIRATION_DATE,
-                ProviderTableMeta.OCSHARES_EXPIRATION_DATE);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_TOKEN,
-                ProviderTableMeta.OCSHARES_TOKEN);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_SHARE_WITH_DISPLAY_NAME,
-                ProviderTableMeta.OCSHARES_SHARE_WITH_DISPLAY_NAME);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_IS_DIRECTORY,
-                ProviderTableMeta.OCSHARES_IS_DIRECTORY);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_USER_ID,
-                ProviderTableMeta.OCSHARES_USER_ID);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED,
-                ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED);
-        mOCSharesProjectionMap.put(ProviderTableMeta.OCSHARES_ACCOUNT_OWNER,
-                ProviderTableMeta.OCSHARES_ACCOUNT_OWNER);
-    }
-
     private UriMatcher mUriMatcher;
 
     @Override
@@ -178,6 +95,7 @@ public class FileContentProvider extends ContentProvider {
             if (c != null && c.moveToFirst()) {
                 remoteId = c.getString(c.getColumnIndex(ProviderTableMeta.FILE_REMOTE_ID));
                 //ThumbnailsCacheManager.removeFileFromCache(remoteId);
+                c.close();
             }
             Log_OC.d(TAG, "Removing FILE " + remoteId);
 
@@ -187,11 +105,6 @@ public class FileContentProvider extends ContentProvider {
                             + uri.getPathSegments().get(1)
                             + (!TextUtils.isEmpty(where) ? " AND (" + where
                                     + ")" : ""), whereArgs);
-            /* just for log
-            if (c!=null) {
-                c.close();
-            }
-            */
             break;
         case DIRECTORY:
             // deletion of folder is recursive
@@ -254,6 +167,9 @@ public class FileContentProvider extends ContentProvider {
         case SHARES:
             count = db.delete(ProviderTableMeta.OCSHARES_TABLE_NAME, where, whereArgs);
             break;
+        case CAPABILITIES:
+            count = db.delete(ProviderTableMeta.CAPABILITIES_TABLE_NAME, where, whereArgs);
+            break;
         default:
             //Log_OC.e(TAG, "Unknown uri " + uri);
             throw new IllegalArgumentException("Unknown uri: " + uri.toString());
@@ -306,11 +222,12 @@ public class FileContentProvider extends ContentProvider {
             // ugly patch; serious refactorization is needed to reduce work in
             // FileDataStorageManager and bring it to FileContentProvider
             if (doubleCheck == null || !doubleCheck.moveToFirst()) {
+                if (doubleCheck != null) {
+                    doubleCheck.close();
+                }
                 long rowId = db.insert(ProviderTableMeta.FILE_TABLE_NAME, null, values);
                 if (rowId > 0) {
-                    Uri insertedFileUri =
-                            ContentUris.withAppendedId(ProviderTableMeta.CONTENT_URI_FILE, rowId);
-                    return insertedFileUri;
+                    return ContentUris.withAppendedId(ProviderTableMeta.CONTENT_URI_FILE, rowId);
                 } else {
                     throw new SQLException("ERROR " + uri);
                 }
@@ -326,42 +243,29 @@ public class FileContentProvider extends ContentProvider {
             }
 
         case SHARES:
-            String path = values.getAsString(ProviderTableMeta.OCSHARES_PATH);
-            String accountNameShare= values.getAsString(ProviderTableMeta.OCSHARES_ACCOUNT_OWNER);
-            String[] projectionShare = new String[] {
-                    ProviderTableMeta._ID, ProviderTableMeta.OCSHARES_PATH,
-                    ProviderTableMeta.OCSHARES_ACCOUNT_OWNER
-            };
-            String whereShare = ProviderTableMeta.OCSHARES_PATH + "=? AND " +
-                    ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?";
-            String[] whereArgsShare = new String[] {path, accountNameShare};
             Uri insertedShareUri = null;
-            Cursor doubleCheckShare =
-                    query(db, uri, projectionShare, whereShare, whereArgsShare, null);
-            // ugly patch; serious refactorization is needed to reduce work in
-            // FileDataStorageManager and bring it to FileContentProvider
-            if (doubleCheckShare == null || !doubleCheckShare.moveToFirst()) {
-                long rowId = db.insert(ProviderTableMeta.OCSHARES_TABLE_NAME, null, values);
-                if (rowId >0) {
-                    insertedShareUri =
-                            ContentUris.withAppendedId(ProviderTableMeta.CONTENT_URI_SHARE, rowId);
-                } else {
-                    throw new SQLException("ERROR " + uri);
-
-                }
+            long rowId = db.insert(ProviderTableMeta.OCSHARES_TABLE_NAME, null, values);
+            if (rowId >0) {
+                insertedShareUri =
+                        ContentUris.withAppendedId(ProviderTableMeta.CONTENT_URI_SHARE, rowId);
             } else {
-                // file is already inserted; race condition, let's avoid a duplicated entry
-                insertedShareUri = ContentUris.withAppendedId(
-                        ProviderTableMeta.CONTENT_URI_SHARE,
-                        doubleCheckShare.getLong(
-                                doubleCheckShare.getColumnIndex(ProviderTableMeta._ID)
-                        )
-                );
-                doubleCheckShare.close();
+                throw new SQLException("ERROR " + uri);
+
             }
-            updateFilesTableAccordingToShareInsertion(db, uri, values);
+            updateFilesTableAccordingToShareInsertion(db, values);
             return insertedShareUri;
 
+        case CAPABILITIES:
+            Uri insertedCapUri = null;
+            long id = db.insert(ProviderTableMeta.CAPABILITIES_TABLE_NAME, null, values);
+            if (id >0) {
+                insertedCapUri =
+                        ContentUris.withAppendedId(ProviderTableMeta.CONTENT_URI_CAPABILITIES, id);
+            } else {
+                throw new SQLException("ERROR " + uri);
+
+            }
+            return insertedCapUri;
 
         default:
             throw new IllegalArgumentException("Unknown uri id: " + uri);
@@ -370,21 +274,23 @@ public class FileContentProvider extends ContentProvider {
     }
 
     private void updateFilesTableAccordingToShareInsertion(
-            SQLiteDatabase db, Uri uri, ContentValues shareValues
+            SQLiteDatabase db, ContentValues newShare
             ) {
         ContentValues fileValues = new ContentValues();
-        fileValues.put(
-                ProviderTableMeta.FILE_SHARE_BY_LINK,
-                ShareType.PUBLIC_LINK.getValue() ==
-                        shareValues.getAsInteger(ProviderTableMeta.OCSHARES_SHARE_TYPE) ? 1 : 0
-        );
-        String whereShare = ProviderTableMeta.FILE_PATH + "=? AND " +
+        int newShareType = newShare.getAsInteger(ProviderTableMeta.OCSHARES_SHARE_TYPE);
+        if (newShareType == ShareType.PUBLIC_LINK.getValue()) {
+            fileValues.put(ProviderTableMeta.FILE_SHARED_VIA_LINK, 1);
+        } else if (newShareType == ShareType.USER.getValue() || newShareType == ShareType.GROUP.getValue()) {
+            fileValues.put(ProviderTableMeta.FILE_SHARED_WITH_SHAREE, 1);
+        }
+
+        String where = ProviderTableMeta.FILE_PATH + "=? AND " +
                 ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?";
-        String[] whereArgsShare = new String[] {
-                shareValues.getAsString(ProviderTableMeta.OCSHARES_PATH),
-                shareValues.getAsString(ProviderTableMeta.OCSHARES_ACCOUNT_OWNER)
+        String[] whereArgs = new String[] {
+                newShare.getAsString(ProviderTableMeta.OCSHARES_PATH),
+                newShare.getAsString(ProviderTableMeta.OCSHARES_ACCOUNT_OWNER)
         };
-        db.update(ProviderTableMeta.FILE_TABLE_NAME, fileValues, whereShare, whereArgsShare);
+        db.update(ProviderTableMeta.FILE_TABLE_NAME, fileValues, where, whereArgs);
     }
 
 
@@ -401,6 +307,8 @@ public class FileContentProvider extends ContentProvider {
         mUriMatcher.addURI(authority, "dir/#", DIRECTORY);
         mUriMatcher.addURI(authority, "shares/", SHARES);
         mUriMatcher.addURI(authority, "shares/#", SHARES);
+        mUriMatcher.addURI(authority, "capabilities/", CAPABILITIES);
+        mUriMatcher.addURI(authority, "capabilities/#", CAPABILITIES);
 
         return true;
     }
@@ -439,7 +347,6 @@ public class FileContentProvider extends ContentProvider {
         SQLiteQueryBuilder sqlQuery = new SQLiteQueryBuilder();
 
         sqlQuery.setTables(ProviderTableMeta.FILE_TABLE_NAME);
-        sqlQuery.setProjectionMap(mFileProjectionMap);
 
         switch (mUriMatcher.match(uri)) {
         case ROOT_DIRECTORY:
@@ -457,7 +364,13 @@ public class FileContentProvider extends ContentProvider {
             break;
         case SHARES:
             sqlQuery.setTables(ProviderTableMeta.OCSHARES_TABLE_NAME);
-            sqlQuery.setProjectionMap(mOCSharesProjectionMap);
+            if (uri.getPathSegments().size() > 1) {
+                sqlQuery.appendWhere(ProviderTableMeta._ID + "="
+                        + uri.getPathSegments().get(1));
+            }
+            break;
+        case CAPABILITIES:
+            sqlQuery.setTables(ProviderTableMeta.CAPABILITIES_TABLE_NAME);
             if (uri.getPathSegments().size() > 1) {
                 sqlQuery.appendWhere(ProviderTableMeta._ID + "="
                         + uri.getPathSegments().get(1));
@@ -469,11 +382,16 @@ public class FileContentProvider extends ContentProvider {
 
         String order;
         if (TextUtils.isEmpty(sortOrder)) {
-            if (mUriMatcher.match(uri) == SHARES) {
-                order = ProviderTableMeta.OCSHARES_DEFAULT_SORT_ORDER;
-            } else {
-
-                order = ProviderTableMeta.FILE_DEFAULT_SORT_ORDER;
+            switch (mUriMatcher.match(uri)) {
+                case SHARES:
+                    order = ProviderTableMeta.OCSHARES_DEFAULT_SORT_ORDER;
+                    break;
+                case CAPABILITIES:
+                    order = ProviderTableMeta.CAPABILITIES_DEFAULT_SORT_ORDER;
+                    break;
+                default: // Files
+                    order = ProviderTableMeta.FILE_DEFAULT_SORT_ORDER;
+                    break;
             }
         } else {
             order = sortOrder;
@@ -518,6 +436,10 @@ public class FileContentProvider extends ContentProvider {
                 return db.update(
                         ProviderTableMeta.OCSHARES_TABLE_NAME, values, selection, selectionArgs
                 );
+            case CAPABILITIES:
+                return db.update(
+                        ProviderTableMeta.CAPABILITIES_TABLE_NAME, values, selection, selectionArgs
+                );
             default:
                 return db.update(
                         ProviderTableMeta.FILE_TABLE_NAME, values, selection, selectionArgs
@@ -525,59 +447,6 @@ public class FileContentProvider extends ContentProvider {
         }
     }
 
- /*
-    private int updateFolderSize(SQLiteDatabase db, String folderId) {
-        int count = 0;
-        String [] whereArgs = new String[] { folderId };
-
-        // read current size saved for the folder
-        long folderSize = 0;
-        long folderParentId = -1;
-        Uri selectFolderUri = Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_FILE, folderId);
-        String[] folderProjection = new String[] { ProviderTableMeta.FILE_CONTENT_LENGTH,  ProviderTableMeta.FILE_PARENT};
-        String folderWhere = ProviderTableMeta._ID + "=?";
-        Cursor folderCursor = query(db, selectFolderUri, folderProjection, folderWhere, whereArgs, null);
-        if (folderCursor != null && folderCursor.moveToFirst()) {
-            folderSize = folderCursor.getLong(folderCursor.getColumnIndex(ProviderTableMeta.FILE_CONTENT_LENGTH));;
-            folderParentId = folderCursor.getLong(folderCursor.getColumnIndex(ProviderTableMeta.FILE_PARENT));;
-        }
-        folderCursor.close();
-
-        // read and sum sizes of children
-        long childrenSize = 0;
-        Uri selectChildrenUri = Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_DIR, folderId);
-        String[] childrenProjection = new String[] { ProviderTableMeta.FILE_CONTENT_LENGTH,  ProviderTableMeta.FILE_PARENT};
-        String childrenWhere = ProviderTableMeta.FILE_PARENT + "=?";
-        Cursor childrenCursor = query(db, selectChildrenUri, childrenProjection, childrenWhere, whereArgs, null);
-        if (childrenCursor != null && childrenCursor.moveToFirst()) {
-            while (!childrenCursor.isAfterLast()) {
-                childrenSize += childrenCursor.getLong(childrenCursor.getColumnIndex(ProviderTableMeta.FILE_CONTENT_LENGTH));
-                childrenCursor.moveToNext();
-            }
-        }
-        childrenCursor.close();
-
-        // update if needed
-        if (folderSize != childrenSize) {
-            Log_OC.d("FileContentProvider", "Updating " + folderSize + " to " + childrenSize);
-            ContentValues cv = new ContentValues();
-            cv.put(ProviderTableMeta.FILE_CONTENT_LENGTH, childrenSize);
-            count = db.update(ProviderTableMeta.FILE_TABLE_NAME, cv, folderWhere, whereArgs);
-
-            // propagate update until root
-            if (folderParentId > FileDataStorageManager.ROOT_PARENT_ID) {
-                Log_OC.d("FileContentProvider", "Propagating update to " + folderParentId);
-                updateFolderSize(db, String.valueOf(folderParentId));
-            } else {
-                Log_OC.d("FileContentProvider", "NOT propagating to " + folderParentId);
-            }
-        } else {
-            Log_OC.d("FileContentProvider", "NOT updating, sizes are " + folderSize + " and " + childrenSize);
-        }
-        return count;
-    }
-*/
-
     @Override
     public ContentProviderResult[] applyBatch (ArrayList<ContentProviderOperation> operations)
             throws OperationApplicationException {
@@ -614,28 +483,30 @@ public class FileContentProvider extends ContentProvider {
             // files table
             Log_OC.i("SQL", "Entering in onCreate");
             db.execSQL("CREATE TABLE " + ProviderTableMeta.FILE_TABLE_NAME + "("
-                    + ProviderTableMeta._ID + " INTEGER PRIMARY KEY, "
-                    + ProviderTableMeta.FILE_NAME + " TEXT, "
-                    + ProviderTableMeta.FILE_PATH + " TEXT, "
-                    + ProviderTableMeta.FILE_PARENT + " INTEGER, "
-                    + ProviderTableMeta.FILE_CREATION + " INTEGER, "
-                    + ProviderTableMeta.FILE_MODIFIED + " INTEGER, "
-                    + ProviderTableMeta.FILE_CONTENT_TYPE + " TEXT, "
-                    + ProviderTableMeta.FILE_CONTENT_LENGTH + " INTEGER, "
-                    + ProviderTableMeta.FILE_STORAGE_PATH + " TEXT, "
-                    + ProviderTableMeta.FILE_ACCOUNT_OWNER + " TEXT, "
-                    + ProviderTableMeta.FILE_LAST_SYNC_DATE + " INTEGER, "
-                    + ProviderTableMeta.FILE_KEEP_IN_SYNC + " INTEGER, "
-                    + ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA + " INTEGER, "
-                    + ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA + " INTEGER, "
-                    + ProviderTableMeta.FILE_ETAG + " TEXT, "
-                    + ProviderTableMeta.FILE_SHARE_BY_LINK + " INTEGER, "
-                    + ProviderTableMeta.FILE_PUBLIC_LINK  + " TEXT, "
-                    + ProviderTableMeta.FILE_PERMISSIONS  + " TEXT null,"
-                    + ProviderTableMeta.FILE_REMOTE_ID  + " TEXT null,"
-                    + ProviderTableMeta.FILE_UPDATE_THUMBNAIL  + " INTEGER," //boolean
-                    + ProviderTableMeta.FILE_IS_DOWNLOADING  + " INTEGER);" //boolean
-                    );
+                            + ProviderTableMeta._ID + " INTEGER PRIMARY KEY, "
+                            + ProviderTableMeta.FILE_NAME + " TEXT, "
+                            + ProviderTableMeta.FILE_PATH + " TEXT, "
+                            + ProviderTableMeta.FILE_PARENT + " INTEGER, "
+                            + ProviderTableMeta.FILE_CREATION + " INTEGER, "
+                            + ProviderTableMeta.FILE_MODIFIED + " INTEGER, "
+                            + ProviderTableMeta.FILE_CONTENT_TYPE + " TEXT, "
+                            + ProviderTableMeta.FILE_CONTENT_LENGTH + " INTEGER, "
+                            + ProviderTableMeta.FILE_STORAGE_PATH + " TEXT, "
+                            + ProviderTableMeta.FILE_ACCOUNT_OWNER + " TEXT, "
+                            + ProviderTableMeta.FILE_LAST_SYNC_DATE + " INTEGER, "
+                            + ProviderTableMeta.FILE_KEEP_IN_SYNC + " INTEGER, "
+                            + ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA + " INTEGER, "
+                            + ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA + " INTEGER, "
+                            + ProviderTableMeta.FILE_ETAG + " TEXT, "
+                            + ProviderTableMeta.FILE_SHARED_VIA_LINK + " INTEGER, "
+                            + ProviderTableMeta.FILE_PUBLIC_LINK + " TEXT, "
+                            + ProviderTableMeta.FILE_PERMISSIONS + " TEXT null,"
+                            + ProviderTableMeta.FILE_REMOTE_ID + " TEXT null,"
+                            + ProviderTableMeta.FILE_UPDATE_THUMBNAIL + " INTEGER," //boolean
+                            + ProviderTableMeta.FILE_IS_DOWNLOADING + " INTEGER," //boolean
+                            + ProviderTableMeta.FILE_ETAG_IN_CONFLICT + " TEXT,"
+                            + ProviderTableMeta.FILE_SHARED_WITH_SHAREE + " INTEGER);"
+            );
 
             // Create table ocshares
             db.execSQL("CREATE TABLE " + ProviderTableMeta.OCSHARES_TABLE_NAME + "("
@@ -654,6 +525,10 @@ public class FileContentProvider extends ContentProvider {
                     + ProviderTableMeta.OCSHARES_USER_ID + " INTEGER, "
                     + ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED + " INTEGER,"
                     + ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + " TEXT );" );
+
+            // Create table capabilities
+            createCapabilitiesTable(db);
+
         }
 
         @Override
@@ -733,7 +608,7 @@ public class FileContentProvider extends ContentProvider {
                 db.beginTransaction();
                 try {
                     db .execSQL("ALTER TABLE " + ProviderTableMeta.FILE_TABLE_NAME +
-                            " ADD COLUMN " + ProviderTableMeta.FILE_SHARE_BY_LINK + " INTEGER " +
+                            " ADD COLUMN " + ProviderTableMeta.FILE_SHARED_VIA_LINK + " INTEGER " +
                             " DEFAULT 0");
 
                     db .execSQL("ALTER TABLE " + ProviderTableMeta.FILE_TABLE_NAME +
@@ -834,9 +709,88 @@ public class FileContentProvider extends ContentProvider {
              if (!upgraded)
                 Log_OC.i("SQL", "OUT of the ADD in onUpgrade; oldVersion == " + oldVersion +
                         ", newVersion == " + newVersion);
+
+            if (oldVersion < 11 && newVersion >= 11) {
+                Log_OC.i("SQL", "Entering in the #11 ADD in onUpgrade");
+                db.beginTransaction();
+                try {
+                    db .execSQL("ALTER TABLE " + ProviderTableMeta.FILE_TABLE_NAME +
+                            " ADD COLUMN " + ProviderTableMeta.FILE_ETAG_IN_CONFLICT + " TEXT " +
+                            " DEFAULT NULL");
+
+                    upgraded = true;
+                    db.setTransactionSuccessful();
+                } finally {
+                    db.endTransaction();
+                }
+            }
+            if (!upgraded)
+                Log_OC.i("SQL", "OUT of the ADD in onUpgrade; oldVersion == " + oldVersion +
+                        ", newVersion == " + newVersion);
+
+            if (oldVersion < 12 && newVersion >= 12) {
+                Log_OC.i("SQL", "Entering in the #12 ADD in onUpgrade");
+                db.beginTransaction();
+                try {
+                    db .execSQL("ALTER TABLE " + ProviderTableMeta.FILE_TABLE_NAME +
+                            " ADD COLUMN " + ProviderTableMeta.FILE_SHARED_WITH_SHAREE + " INTEGER " +
+                            " DEFAULT 0");
+                    upgraded = true;
+                    db.setTransactionSuccessful();
+                } finally {
+                    db.endTransaction();
+                }
+            }
+            if (!upgraded)
+                Log_OC.i("SQL", "OUT of the ADD in onUpgrade; oldVersion == " + oldVersion +
+                        ", newVersion == " + newVersion);
+
+            if (oldVersion < 13 && newVersion >= 13) {
+                Log_OC.i("SQL", "Entering in the #13 ADD in onUpgrade");
+                db.beginTransaction();
+                try {
+                    // Create capabilities table
+                    createCapabilitiesTable(db);
+                    upgraded = true;
+                    db.setTransactionSuccessful();
+                } finally {
+                    db.endTransaction();
+                }
+            }
+            if (!upgraded)
+                Log_OC.i("SQL", "OUT of the ADD in onUpgrade; oldVersion == " + oldVersion +
+                        ", newVersion == " + newVersion);
+
         }
     }
 
+    private void createCapabilitiesTable(SQLiteDatabase db){
+        // Create table capabilities
+        db.execSQL("CREATE TABLE " + ProviderTableMeta.CAPABILITIES_TABLE_NAME + "("
+                + ProviderTableMeta._ID + " INTEGER PRIMARY KEY, "
+                + ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME + " TEXT, "
+                + ProviderTableMeta.CAPABILITIES_VERSION_MAYOR + " INTEGER, "
+                + ProviderTableMeta.CAPABILITIES_VERSION_MINOR + " INTEGER, "
+                + ProviderTableMeta.CAPABILITIES_VERSION_MICRO + " INTEGER, "
+                + ProviderTableMeta.CAPABILITIES_VERSION_STRING + " TEXT, "
+                + ProviderTableMeta.CAPABILITIES_VERSION_EDITION + " TEXT, "
+                + ProviderTableMeta.CAPABILITIES_CORE_POLLINTERVAL + " INTEGER, "
+                + ProviderTableMeta.CAPABILITIES_SHARING_API_ENABLED + " INTEGER, " // boolean
+                + ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_ENABLED + " INTEGER, "  // boolean
+                + ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_PASSWORD_ENFORCED + " INTEGER, "    // boolean
+                + ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_ENABLED + " INTEGER, "  // boolean
+                + ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_DAYS + " INTEGER, "
+                + ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_ENFORCED + " INTEGER, " // boolean
+                + ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_SEND_MAIL + " INTEGER, "    // boolean
+                + ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_UPLOAD + " INTEGER, "       // boolean
+                + ProviderTableMeta.CAPABILITIES_SHARING_USER_SEND_MAIL + " INTEGER, "      // boolean
+                + ProviderTableMeta.CAPABILITIES_SHARING_RESHARING + " INTEGER, "           // boolean
+                + ProviderTableMeta.CAPABILITIES_SHARING_FEDERATION_OUTGOING + " INTEGER, "     // boolean
+                + ProviderTableMeta.CAPABILITIES_SHARING_FEDERATION_INCOMING + " INTEGER, "     // boolean
+                + ProviderTableMeta.CAPABILITIES_FILES_BIGFILECHUNKING + " INTEGER, "   // boolean
+                + ProviderTableMeta.CAPABILITIES_FILES_UNDELETE + " INTEGER, "  // boolean
+                + ProviderTableMeta.CAPABILITIES_FILES_VERSIONING + " INTEGER );" );   // boolean
+    }
 
     /**
      * Version 10 of database does not modify its scheme. It coincides with the upgrade of the ownCloud account names
diff --git a/src/com/owncloud/android/providers/UsersAndGroupsSearchProvider.java b/src/com/owncloud/android/providers/UsersAndGroupsSearchProvider.java
new file mode 100644 (file)
index 0000000..54d78fd
--- /dev/null
@@ -0,0 +1,197 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author David A. Velasco
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+
+package com.owncloud.android.providers;
+
+import android.accounts.Account;
+import android.app.SearchManager;
+import android.content.ContentProvider;
+import android.content.ContentValues;
+import android.content.UriMatcher;
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.net.Uri;
+import android.provider.BaseColumns;
+import android.support.annotation.Nullable;
+
+import com.owncloud.android.R;
+import com.owncloud.android.authentication.AccountUtils;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.lib.resources.shares.GetRemoteShareesOperation;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+
+/**
+ * Content provider for search suggestions, to search for users and groups existing in an ownCloud server.
+ */
+public class UsersAndGroupsSearchProvider extends ContentProvider {
+
+    private static final String TAG = UsersAndGroupsSearchProvider.class.getSimpleName();
+
+    private static final String[] COLUMNS = {
+        BaseColumns._ID,
+        SearchManager.SUGGEST_COLUMN_TEXT_1,
+        SearchManager.SUGGEST_COLUMN_INTENT_DATA
+    };
+
+    private static final int SEARCH = 1;
+
+    private static final int RESULTS_PER_PAGE = 50;
+    private static final int REQUESTED_PAGE = 1;
+
+    public static final String AUTHORITY = UsersAndGroupsSearchProvider.class.getCanonicalName();
+    public static final String ACTION_SHARE_WITH = AUTHORITY + ".action.SHARE_WITH";
+    public static final String DATA_USER = AUTHORITY + ".data.user";
+    public static final String DATA_GROUP = AUTHORITY + ".data.group";
+
+    private UriMatcher mUriMatcher;
+
+    @Nullable
+    @Override
+    public String getType(Uri uri) {
+        // TODO implement
+        return null;
+    }
+
+    @Override
+    public boolean onCreate() {
+        mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
+        mUriMatcher.addURI(AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY + "/*", SEARCH);
+        return true;
+    }
+
+    /**
+     * TODO description
+     *
+     * Reference: http://developer.android.com/guide/topics/search/adding-custom-suggestions.html#CustomContentProvider
+     *
+     * @param uri           Content {@link Uri}, formattted as
+     *                      "content://com.owncloud.android.providers.UsersAndGroupsSearchProvider/" +
+     *                      {@link android.app.SearchManager#SUGGEST_URI_PATH_QUERY} + "/" + 'userQuery'
+     * @param projection    Expected to be NULL.
+     * @param selection     Expected to be NULL.
+     * @param selectionArgs Expected to be NULL.
+     * @param sortOrder     Expected to be NULL.
+     * @return              Cursor with users and groups in the ownCloud server that match 'userQuery'.
+     */
+    @Nullable
+    @Override
+    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
+        Log_OC.d(TAG, "query received in thread " + Thread.currentThread().getName());
+
+        int match = mUriMatcher.match(uri);
+        switch (match) {
+            case SEARCH:
+                return searchForUsersOrGroups(uri);
+
+            default:
+                return null;
+        }
+    }
+
+    private Cursor searchForUsersOrGroups(Uri uri) {
+        MatrixCursor response = null;
+
+
+        String userQuery = uri.getLastPathSegment().toLowerCase();
+
+
+        /// need to trust on the AccountUtils to get the current account since the query in the client side is not
+        /// directly started by our code, but from SearchView implementation
+        Account account = AccountUtils.getCurrentOwnCloudAccount(getContext());
+
+        /// request to the OC server about users and groups matching userQuery
+        GetRemoteShareesOperation searchRequest = new GetRemoteShareesOperation(
+                userQuery, REQUESTED_PAGE, RESULTS_PER_PAGE
+        );
+        RemoteOperationResult result = searchRequest.execute(account, getContext());
+        List<JSONObject> names = new ArrayList<JSONObject>();
+        if (result.isSuccess()) {
+            for (Object o : result.getData()) {
+                // Get JSonObjects from response
+                names.add((JSONObject) o);
+            }
+        }
+
+        /// convert the responses from the OC server to the expected format
+        if (names.size() > 0) {
+            response = new MatrixCursor(COLUMNS);
+            Iterator<JSONObject> namesIt = names.iterator();
+            int count = 0;
+            JSONObject item;
+            String displayName;
+            Uri dataUri;
+            Uri userBaseUri = new Uri.Builder().scheme("content").authority(DATA_USER).build();
+            Uri groupBaseUri = new Uri.Builder().scheme("content").authority(DATA_GROUP).build();
+            try {
+                while (namesIt.hasNext()) {
+                    item = namesIt.next();
+                    String userName = item.getString(GetRemoteShareesOperation.PROPERTY_LABEL);
+                    JSONObject value = item.getJSONObject(GetRemoteShareesOperation.NODE_VALUE);
+                    byte type = (byte) value.getInt(GetRemoteShareesOperation.PROPERTY_SHARE_TYPE);
+                    String shareWith = value.getString(GetRemoteShareesOperation.PROPERTY_SHARE_WITH);
+                    if (GetRemoteShareesOperation.GROUP_TYPE.equals(type)) {
+                        displayName = getContext().getString(R.string.share_group_clarification, userName);
+                        dataUri = Uri.withAppendedPath(groupBaseUri, shareWith);
+                    } else {
+                        displayName = userName;
+                        dataUri = Uri.withAppendedPath(userBaseUri, shareWith);
+                    }
+                    response.newRow()
+                            .add(count++)             // BaseColumns._ID
+                            .add(displayName)         // SearchManager.SUGGEST_COLUMN_TEXT_1
+                            .add(dataUri);
+                }
+            } catch (JSONException e) {
+                Log_OC.e(TAG, "Exception while parsing data of users/groups", e);
+            }
+        }
+
+        return response;
+    }
+
+    @Nullable
+    @Override
+    public Uri insert(Uri uri, ContentValues values) {
+        // TODO implementation
+        return null;
+    }
+
+    @Override
+    public int delete(Uri uri, String selection, String[] selectionArgs) {
+        // TODO implementation
+        return 0;
+    }
+
+    @Override
+    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
+        // TODO implementation
+        return 0;
+    }
+
+}
index 2514c4d..b8658c9 100644 (file)
 
 package com.owncloud.android.services;
 
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.concurrent.ConcurrentMap;
+import android.accounts.Account;
+import android.accounts.AccountsException;
+import android.accounts.AuthenticatorException;
+import android.accounts.OperationCanceledException;
+import android.app.Service;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Binder;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.Message;
+import android.os.Process;
+import android.util.Pair;
 
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
@@ -42,9 +52,10 @@ import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.shares.ShareType;
 import com.owncloud.android.lib.resources.status.OwnCloudVersion;
 import com.owncloud.android.lib.resources.users.GetRemoteUserNameOperation;
-import com.owncloud.android.operations.common.SyncOperation;
+import com.owncloud.android.operations.CopyFileOperation;
 import com.owncloud.android.operations.CreateFolderOperation;
-import com.owncloud.android.operations.CreateShareOperation;
+import com.owncloud.android.operations.CreateShareViaLinkOperation;
+import com.owncloud.android.operations.CreateShareWithShareeOperation;
 import com.owncloud.android.operations.GetServerInfoOperation;
 import com.owncloud.android.operations.MoveFileOperation;
 import com.owncloud.android.operations.OAuth2GetAccessToken;
@@ -52,29 +63,21 @@ import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
 import com.owncloud.android.operations.SynchronizeFolderOperation;
-import com.owncloud.android.operations.UnshareLinkOperation;
+import com.owncloud.android.operations.UnshareOperation;
+import com.owncloud.android.operations.UpdateShareViaLinkOperation;
+import com.owncloud.android.operations.common.SyncOperation;
 
-import android.accounts.Account;
-import android.accounts.AccountManager;
-import android.accounts.AccountsException;
-import android.accounts.AuthenticatorException;
-import android.accounts.OperationCanceledException;
-import android.app.Service;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Binder;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.IBinder;
-import android.os.Looper;
-import android.os.Message;
-import android.os.Process;
-import android.util.Pair;
+import java.io.IOException;
+import java.util.Calendar;
+import java.util.Iterator;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.ConcurrentMap;
 
 public class OperationsService extends Service {
-    
+
     private static final String TAG = OperationsService.class.getSimpleName();
-    
+
     public static final String EXTRA_ACCOUNT = "ACCOUNT";
     public static final String EXTRA_SERVER_URL = "SERVER_URL";
     public static final String EXTRA_OAUTH2_QUERY_PARAMETERS = "OAUTH2_QUERY_PARAMETERS";
@@ -87,12 +90,19 @@ public class OperationsService extends Service {
     public static final String EXTRA_RESULT = "RESULT";
     public static final String EXTRA_NEW_PARENT_PATH = "NEW_PARENT_PATH";
     public static final String EXTRA_FILE = "FILE";
-    public static final String EXTRA_PASSWORD_SHARE = "PASSWORD_SHARE";
+    public static final String EXTRA_SHARE_PASSWORD = "SHARE_PASSWORD";
+    public static final String EXTRA_SHARE_TYPE = "SHARE_TYPE";
+    public static final String EXTRA_SHARE_WITH = "SHARE_WITH";
+    public static final String EXTRA_SHARE_EXPIRATION_DATE_IN_MILLIS = "SHARE_EXPIRATION_YEAR";
+    public static final String EXTRA_SHARE_EXPIRATION_MONTH_OF_YEAR = "SHARE_EXPIRATION_MONTH_OF_YEAR";
+    public static final String EXTRA_SHARE_EXPIRATION_DAY_OF_MONTH = "SHARE_EXPIRATION_DAY_OF_MONTH";
 
     public static final String EXTRA_COOKIE = "COOKIE";
-    
-    public static final String ACTION_CREATE_SHARE = "CREATE_SHARE";
+
+    public static final String ACTION_CREATE_SHARE_VIA_LINK = "CREATE_SHARE_VIA_LINK";
+    public static final String ACTION_CREATE_SHARE_WITH_SHAREE = "CREATE_SHARE_WITH_SHAREE";
     public static final String ACTION_UNSHARE = "UNSHARE";
+    public static final String ACTION_UPDATE_SHARE = "UPDATE_SHARE";
     public static final String ACTION_GET_SERVER_INFO = "GET_SERVER_INFO";
     public static final String ACTION_OAUTH2_GET_ACCESS_TOKEN = "OAUTH2_GET_ACCESS_TOKEN";
     public static final String ACTION_GET_USER_NAME = "GET_USER_NAME";
@@ -100,24 +110,25 @@ public class OperationsService extends Service {
     public static final String ACTION_REMOVE = "REMOVE";
     public static final String ACTION_CREATE_FOLDER = "CREATE_FOLDER";
     public static final String ACTION_SYNC_FILE = "SYNC_FILE";
-    public static final String ACTION_SYNC_FOLDER = "SYNC_FOLDER";//for the moment, just to download
+    public static final String ACTION_SYNC_FOLDER = "SYNC_FOLDER";
     public static final String ACTION_MOVE_FILE = "MOVE_FILE";
-    
+    public static final String ACTION_COPY_FILE = "COPY_FILE";
+
     public static final String ACTION_OPERATION_ADDED = OperationsService.class.getName() +
             ".OPERATION_ADDED";
     public static final String ACTION_OPERATION_FINISHED = OperationsService.class.getName() +
             ".OPERATION_FINISHED";
 
 
-    private ConcurrentMap<Integer, Pair<RemoteOperation, RemoteOperationResult>> 
-        mUndispatchedFinishedOperations =
+    private ConcurrentMap<Integer, Pair<RemoteOperation, RemoteOperationResult>>
+            mUndispatchedFinishedOperations =
             new ConcurrentHashMap<Integer, Pair<RemoteOperation, RemoteOperationResult>>();
-    
+
     private static class Target {
         public Uri mServerUrl = null;
         public Account mAccount = null;
         public String mCookie = null;
-        
+
         public Target(Account account, Uri serverUrl, String cookie) {
             mAccount = account;
             mServerUrl = serverUrl;
@@ -151,11 +162,11 @@ public class OperationsService extends Service {
         mSyncFolderHandler = new SyncFolderHandler(thread.getLooper(), this);
     }
 
-    
+
     /**
      * Entry point to add a new operation to the queue of operations.
-     * 
-     * New operations are added calling to startService(), resulting in a call to this method. 
+     * <p/>
+     * New operations are added calling to startService(), resulting in a call to this method.
      * This ensures the service will keep on working although the caller activity goes away.
      */
     @Override
@@ -200,8 +211,8 @@ public class OperationsService extends Service {
         // Saving cookies
         try {
             OwnCloudClientManagerFactory.getDefaultSingleton().
-                saveAllClients(this, MainApp.getAccountType());
-            
+                    saveAllClients(this, MainApp.getAccountType());
+
             // TODO - get rid of these exceptions
         } catch (AccountNotFoundException e) {
             e.printStackTrace();
@@ -212,7 +223,7 @@ public class OperationsService extends Service {
         } catch (IOException e) {
             e.printStackTrace();
         }
-        
+
         mUndispatchedFinishedOperations.clear();
 
         mOperationsBinder = null;
@@ -227,16 +238,15 @@ public class OperationsService extends Service {
     }
 
     /**
-     * Provides a binder object that clients can use to perform actions on the queue of operations, 
-     * except the addition of new operations. 
+     * Provides a binder object that clients can use to perform actions on the queue of operations,
+     * except the addition of new operations.
      */
     @Override
     public IBinder onBind(Intent intent) {
-        //Log_OC.wtf(TAG, "onBind" );
         return mOperationsBinder;
     }
 
-    
+
     /**
      * Called when ALL the bound clients were unbound.
      */
@@ -248,20 +258,20 @@ public class OperationsService extends Service {
 
 
     /**
-     *  Binder to let client components to perform actions on the queue of operations.
-     * 
-     *  It provides by itself the available operations.
+     * Binder to let client components to perform actions on the queue of operations.
+     * <p/>
+     * It provides by itself the available operations.
      */
     public class OperationsServiceBinder extends Binder /* implements OnRemoteOperationListener */ {
-        
-        /** 
+
+        /**
          * Map of listeners that will be reported about the end of operations from a
          * {@link OperationsServiceBinder} instance
          */
-        private ConcurrentMap<OnRemoteOperationListener, Handler> mBoundListeners = 
+        private final ConcurrentMap<OnRemoteOperationListener, Handler> mBoundListeners =
                 new ConcurrentHashMap<OnRemoteOperationListener, Handler>();
-        
-        private ServiceHandler mServiceHandler = null;   
+
+        private ServiceHandler mServiceHandler = null;
 
         public OperationsServiceBinder(ServiceHandler serviceHandler) {
             mServiceHandler = serviceHandler;
@@ -280,15 +290,15 @@ public class OperationsService extends Service {
 
 
         public void clearListeners() {
-            
+
             mBoundListeners.clear();
         }
 
-        
+
         /**
          * Adds a listener interested in being reported about the end of operations.
-         * 
-         * @param listener          Object to notify about the end of operations.    
+         *
+         * @param listener          Object to notify about the end of operations.
          * @param callbackHandler   {@link Handler} to access the listener without
          *                                         breaking Android threading protection.
          */
@@ -298,15 +308,15 @@ public class OperationsService extends Service {
                 mBoundListeners.put(listener, callbackHandler);
             }
         }
-        
-        
+
+
         /**
          * Removes a listener from the list of objects interested in the being reported about
          * the end of operations.
          * 
          * @param listener      Object to notify about progress of transfer.    
          */
-        public void removeOperationListener (OnRemoteOperationListener listener) {
+        public void removeOperationListener(OnRemoteOperationListener listener) {
             synchronized (mBoundListeners) {
                 mBoundListeners.remove(listener);
             }
@@ -314,8 +324,8 @@ public class OperationsService extends Service {
 
 
         /**
-         * TODO - IMPORTANT: update implementation when more operations are moved into the service 
-         * 
+         * TODO - IMPORTANT: update implementation when more operations are moved into the service
+         *
          * @return  'True' when an operation that enforces the user to wait for completion is
          *          in process.
          */
@@ -343,8 +353,8 @@ public class OperationsService extends Service {
                 return Long.MAX_VALUE;
             }
         }
-        
-        
+
+
         public boolean dispatchResultIfFinished(int operationId,
                                                 OnRemoteOperationListener listener) {
             Pair<RemoteOperation, RemoteOperationResult> undispatched = 
@@ -378,8 +388,8 @@ public class OperationsService extends Service {
 
 
     /**
-     * Operations worker. Performs the pending operations in the order they were requested. 
-     * 
+     * Operations worker. Performs the pending operations in the order they were requested.
+     *
      * Created with the Looper of a new thread, started in {@link OperationsService#onCreate()}. 
      */
     private static class ServiceHandler extends Handler {
@@ -388,8 +398,8 @@ public class OperationsService extends Service {
         
         
         OperationsService mService;
-        
-        
+
+
         private ConcurrentLinkedQueue<Pair<Target, RemoteOperation>> mPendingOperations =
                 new ConcurrentLinkedQueue<Pair<Target, RemoteOperation>>();
         private RemoteOperation mCurrentOperation = null;
@@ -412,7 +422,7 @@ public class OperationsService extends Service {
             Log_OC.d(TAG, "Stopping after command with id " + msg.arg1);
             mService.stopSelf(msg.arg1);
         }
-        
+
         
         /**
          * Performs the next operation in the queue
@@ -475,7 +485,7 @@ public class OperationsService extends Service {
                     } else {
                         result = mCurrentOperation.execute(mOwnCloudClient);
                     }
-                    
+
                 } catch (AccountsException e) {
                     if (mLastTarget.mAccount == null) {
                         Log_OC.e(TAG, "Error while trying to get authorization for a NULL account",
@@ -515,9 +525,9 @@ public class OperationsService extends Service {
         }
 
 
-        
+
     }
-    
+
 
     /**
      * Creates a new operation, as described by operationIntent.
@@ -535,7 +545,7 @@ public class OperationsService extends Service {
             if (!operationIntent.hasExtra(EXTRA_ACCOUNT) && 
                     !operationIntent.hasExtra(EXTRA_SERVER_URL)) {
                 Log_OC.e(TAG, "Not enough information provided in intent");
-                
+
             } else {
                 Account account = operationIntent.getParcelableExtra(EXTRA_ACCOUNT);
                 String serverUrl = operationIntent.getStringExtra(EXTRA_SERVER_URL);
@@ -547,28 +557,66 @@ public class OperationsService extends Service {
                 );
                 
                 String action = operationIntent.getAction();
-                if (action.equals(ACTION_CREATE_SHARE)) {  // Create Share
+                if (action.equals(ACTION_CREATE_SHARE_VIA_LINK)) {  // Create public share via link
                     String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
-                    String password = operationIntent.getStringExtra(EXTRA_PASSWORD_SHARE);
+                    String password = operationIntent.getStringExtra(EXTRA_SHARE_PASSWORD);
                     Intent sendIntent = operationIntent.getParcelableExtra(EXTRA_SEND_INTENT);
                     if (remotePath.length() > 0) {
-                        operation = new CreateShareOperation(OperationsService.this, remotePath,
-                                ShareType.PUBLIC_LINK,
-                                "", false, password, 1, sendIntent);
+                        operation = new CreateShareViaLinkOperation(
+                                remotePath,
+                                password,
+                                sendIntent
+                        );
                     }
-                    
+
+                } else if (ACTION_UPDATE_SHARE.equals(action)) {
+                    String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
+                    if (remotePath.length() > 0) {
+                        operation = new UpdateShareViaLinkOperation(remotePath);
+
+                        String password = operationIntent.getStringExtra(EXTRA_SHARE_PASSWORD);
+                        ((UpdateShareViaLinkOperation)operation).setPassword(password);
+
+                        long expirationDate = operationIntent.getLongExtra(
+                                EXTRA_SHARE_EXPIRATION_DATE_IN_MILLIS,
+                                0
+                        );
+                        ((UpdateShareViaLinkOperation)operation).setExpirationDate(
+                                expirationDate
+                        );
+                    }
+
+                } else if (action.equals(ACTION_CREATE_SHARE_WITH_SHAREE)) {
+                    // Create private share with user or group
+                    String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
+                    String shareeName = operationIntent.getStringExtra(EXTRA_SHARE_WITH);
+                    ShareType shareType = (ShareType) operationIntent.getSerializableExtra(EXTRA_SHARE_TYPE);
+                    if (remotePath.length() > 0) {
+                        operation = new CreateShareWithShareeOperation(
+                                remotePath,
+                                shareeName,
+                                shareType
+                        );
+                    }
+
                 } else if (action.equals(ACTION_UNSHARE)) {  // Unshare file
                     String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
+                    ShareType shareType = (ShareType) operationIntent.
+                            getSerializableExtra(EXTRA_SHARE_TYPE);
+                    String shareWith = operationIntent.getStringExtra(EXTRA_SHARE_WITH);
                     if (remotePath.length() > 0) {
-                        operation = new UnshareLinkOperation(
-                                remotePath, 
-                                OperationsService.this);
+                        operation = new UnshareOperation(
+                                remotePath,
+                                shareType,
+                                shareWith,
+                                OperationsService.this
+                        );
                     }
                     
                 } else if (action.equals(ACTION_GET_SERVER_INFO)) { 
                     // check OC server and get basic information from it
                     operation = new GetServerInfoOperation(serverUrl, OperationsService.this);
-                    
+
                 } else if (action.equals(ACTION_OAUTH2_GET_ACCESS_TOKEN)) {
                     /// GET ACCESS TOKEN to the OAuth server
                     String oauth2QueryParameters =
@@ -578,7 +626,7 @@ public class OperationsService extends Service {
                             getString(R.string.oauth2_redirect_uri),       
                             getString(R.string.oauth2_grant_type),
                             oauth2QueryParameters);
-                    
+
                 } else if (action.equals(ACTION_GET_USER_NAME)) {
                     // Get User Name
                     operation = new GetRemoteUserNameOperation();
@@ -602,7 +650,7 @@ public class OperationsService extends Service {
                     boolean createFullPath = operationIntent.getBooleanExtra(EXTRA_CREATE_FULL_PATH,
                             true);
                     operation = new CreateFolderOperation(remotePath, createFullPath);
-                    
+
                 } else if (action.equals(ACTION_SYNC_FILE)) {
                     // Sync file
                     String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
@@ -613,7 +661,7 @@ public class OperationsService extends Service {
                     );
                     
                 } else if (action.equals(ACTION_SYNC_FOLDER)) {
-                    // Sync file
+                    // Sync folder (all its descendant files are sync'ed)
                     String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
                     operation = new SynchronizeFolderOperation(
                             this,                       // TODO remove this dependency from construction time
@@ -621,14 +669,19 @@ public class OperationsService extends Service {
                             account, 
                             System.currentTimeMillis()  // TODO remove this dependency from construction time
                     );
-                    
+
                 } else if (action.equals(ACTION_MOVE_FILE)) {
                     // Move file/folder
                     String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
                     String newParentPath = operationIntent.getStringExtra(EXTRA_NEW_PARENT_PATH);
-                    operation = new MoveFileOperation(remotePath,newParentPath,account);
+                    operation = new MoveFileOperation(remotePath, newParentPath, account);
+
+                } else if (action.equals(ACTION_COPY_FILE)) {
+                    // Copy file/folder
+                    String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
+                    String newParentPath = operationIntent.getStringExtra(EXTRA_NEW_PARENT_PATH);
+                    operation = new CopyFileOperation(remotePath, newParentPath, account);
                 }
-                
             }
                 
         } catch (IllegalArgumentException e) {
@@ -642,11 +695,11 @@ public class OperationsService extends Service {
             return null;
         }
     }
-    
+
 
     /**
      * Sends a broadcast when a new operation is added to the queue.
-     * 
+     *
      * Local broadcasts are only delivered to activities in the same process, but can't be
      * done sticky :\
      * 
@@ -656,43 +709,43 @@ public class OperationsService extends Service {
     private void sendBroadcastNewOperation(Target target, RemoteOperation operation) {
         Intent intent = new Intent(ACTION_OPERATION_ADDED);
         if (target.mAccount != null) {
-            intent.putExtra(EXTRA_ACCOUNT, target.mAccount);    
+            intent.putExtra(EXTRA_ACCOUNT, target.mAccount);
         } else {
-            intent.putExtra(EXTRA_SERVER_URL, target.mServerUrl);    
+            intent.putExtra(EXTRA_SERVER_URL, target.mServerUrl);
         }
         //LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
         //lbm.sendBroadcast(intent);
         sendStickyBroadcast(intent);
     }
 
-    
+
     // TODO - maybe add a notification for real start of operations
-    
+
     /**
      * Sends a LOCAL broadcast when an operations finishes in order to the interested activities c
      * an update their view
      * 
      * Local broadcasts are only delivered to activities in the same process.
-     * 
-     * @param target            Account or URL pointing to an OC server.
-     * @param operation         Finished operation.
-     * @param result            Result of the operation.
+     *
+     * @param target    Account or URL pointing to an OC server.
+     * @param operation Finished operation.
+     * @param result    Result of the operation.
      */
     private void sendBroadcastOperationFinished(Target target, RemoteOperation operation,
                                                 RemoteOperationResult result) {
         Intent intent = new Intent(ACTION_OPERATION_FINISHED);
         intent.putExtra(EXTRA_RESULT, result);
         if (target.mAccount != null) {
-            intent.putExtra(EXTRA_ACCOUNT, target.mAccount);    
+            intent.putExtra(EXTRA_ACCOUNT, target.mAccount);
         } else {
-            intent.putExtra(EXTRA_SERVER_URL, target.mServerUrl);    
+            intent.putExtra(EXTRA_SERVER_URL, target.mServerUrl);
         }
         //LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
         //lbm.sendBroadcast(intent);
         sendStickyBroadcast(intent);
     }
 
-    
+
     /**
      * Notifies the currently subscribed listeners about the end of an operation.
      *
@@ -719,10 +772,9 @@ public class OperationsService extends Service {
             }
         }
         if (count == 0) {
-            //mOperationResults.put(operation.hashCode(), result);
-            Pair<RemoteOperation, RemoteOperationResult> undispatched = 
+            Pair<RemoteOperation, RemoteOperationResult> undispatched =
                     new Pair<RemoteOperation, RemoteOperationResult>(operation, result);
-            mUndispatchedFinishedOperations.put(operation.hashCode(), undispatched);
+            mUndispatchedFinishedOperations.put(((Runnable) operation).hashCode(), undispatched);
         }
         Log_OC.d(TAG, "Called " + count + " listeners");
     }
index 33318f5..daa1612 100644 (file)
@@ -138,8 +138,11 @@ class SyncFolderHandler extends Handler {
 
     public void add(Account account, String remotePath,
                     SynchronizeFolderOperation syncFolderOperation){
-        mPendingOperations.putIfAbsent(account, remotePath, syncFolderOperation);
-        sendBroadcastNewSyncFolder(account, remotePath);    // TODO upgrade!
+        Pair<String, String> putResult =
+                mPendingOperations.putIfAbsent(account, remotePath, syncFolderOperation);
+        if (putResult != null) {
+            sendBroadcastNewSyncFolder(account, remotePath);    // TODO upgrade!
+        }
     }
 
 
index 43ddae3..7dfe520 100644 (file)
@@ -30,7 +30,6 @@ import java.util.Map;
 
 import org.apache.jackrabbit.webdav.DavException;
 
-import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AuthenticatorActivity;
 import com.owncloud.android.datamodel.FileDataStorageManager;
@@ -59,7 +58,7 @@ import android.support.v4.app.NotificationCompat;
  * Implementation of {@link AbstractThreadedSyncAdapter} responsible for synchronizing 
  * ownCloud files.
  * 
- * Performs a full synchronization of the account recieved in {@link #onPerformSync(Account, Bundle,
+ * Performs a full synchronization of the account received in {@link #onPerformSync(Account, Bundle,
  * String, ContentProviderClient, SyncResult)}.
  */
 public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
@@ -77,9 +76,7 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
             ".EVENT_FULL_SYNC_END";
     public static final String EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED =
             FileSyncAdapter.class.getName() + ".EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED";
-    //public static final String EVENT_FULL_SYNC_FOLDER_SIZE_SYNCED =
-    // FileSyncAdapter.class.getName() + ".EVENT_FULL_SYNC_FOLDER_SIZE_SYNCED";
-    
+
     public static final String EXTRA_ACCOUNT_NAME = FileSyncAdapter.class.getName() +
             ".EXTRA_ACCOUNT_NAME";
     public static final String EXTRA_FOLDER_PATH = FileSyncAdapter.class.getName() +
@@ -268,16 +265,6 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
         if (mFailedResultsCounter > MAX_FAILED_RESULTS || isFinisher(mLastFailedResult))
             return;
         
-        /*
-        OCFile folder, 
-        long currentSyncTime, 
-        boolean updateFolderProperties,
-        boolean syncFullAccount,
-        DataStorageManager dataStorageManager, 
-        Account account, 
-        Context context ) {
-        }
-        */
         // folder synchronization
         RefreshFolderOperation synchFolderOp = new RefreshFolderOperation( folder,
                                                                                    mCurrentSyncTime,
@@ -308,7 +295,7 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
                 // synchronize children folders 
                 List<OCFile> children = synchFolderOp.getChildren();
                 // beware of the 'hidden' recursion here!
-                fetchChildren(folder, children, synchFolderOp.getRemoteFolderChanged());
+                syncChildren(children);
             }
             
         } else {
@@ -351,25 +338,19 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
 
     /**
      * Triggers the synchronization of any folder contained in the list of received files.
+     *
+     * No consideration of etag here because it MUST walk down anyway, in case that kept-in-sync files
+     * have local changes.
      * 
      * @param files         Files to recursively synchronize.
      */
-    private void fetchChildren(OCFile parent, List<OCFile> files, boolean parentEtagChanged) {
+    private void syncChildren(List<OCFile> files) {
         int i;
-        OCFile newFile = null;
-        //String etag = null;
-        //boolean syncDown = false;
+        OCFile newFile;
         for (i=0; i < files.size() && !mCancellation; i++) {
             newFile = files.get(i);
             if (newFile.isFolder()) {
-                /*
-                etag = newFile.getEtag();
-                syncDown = (parentEtagChanged || etag == null || etag.length() == 0);
-                if(syncDown) { */
-                    synchronizeFolder(newFile);
-                    //sendLocalBroadcast(EVENT_FULL_SYNC_FOLDER_SIZE_SYNCED, parent.getRemotePath(),
-                    // null);
-                //}
+                synchronizeFolder(newFile);
             }
         }
        
@@ -526,6 +507,7 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
     private NotificationCompat.Builder createNotificationBuilder() {
         NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getContext());
         notificationBuilder.setSmallIcon(R.drawable.notification_icon).setAutoCancel(true);
+        notificationBuilder.setColor(getContext().getResources().getColor(R.color.primary));
         return notificationBuilder;
     }
     
index 44ed3ec..0dad197 100644 (file)
@@ -24,6 +24,7 @@ public class NavigationDrawerItem {
 
     private String mTitle;
     private String mContentDescription;
+    private int mIcon;
 
     // Constructors
     public NavigationDrawerItem(){}
@@ -32,9 +33,10 @@ public class NavigationDrawerItem {
         mTitle = title;
     }
 
-    public NavigationDrawerItem(String title, String contentDescription){
+    public NavigationDrawerItem(String title, String contentDescription, int icon){
         mTitle = title;
         mContentDescription = contentDescription;
+        mIcon = icon;
     }
 
     // Getters and Setters
@@ -53,4 +55,12 @@ public class NavigationDrawerItem {
     public void setContentDescription(String contentDescription) {
         this.mContentDescription = contentDescription;
     }
+
+    public int getIcon() {
+        return mIcon;
+    }
+
+    public void setIcon(int icon) {
+        this.mIcon = icon;
+    }
 }
index 601ec4f..9b7050e 100644 (file)
@@ -22,6 +22,9 @@
 
 package com.owncloud.android.ui.activity;
 
+import android.content.Intent;
+import android.os.Bundle;
+
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.files.services.FileDownloader;
 import com.owncloud.android.files.services.FileUploader;
@@ -29,11 +32,6 @@ import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.dialog.ConflictsResolveDialog;
 import com.owncloud.android.ui.dialog.ConflictsResolveDialog.Decision;
 import com.owncloud.android.ui.dialog.ConflictsResolveDialog.OnConflictDecisionMadeListener;
-import com.owncloud.android.utils.DisplayUtils;
-
-import android.app.ActionBar;
-import android.content.Intent;
-import android.os.Bundle;
 
 /**
  * Wrapper activity which will be launched if keep-in-sync file will be modified by external
@@ -46,8 +44,6 @@ public class ConflictsResolveActivity extends FileActivity implements OnConflict
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        ActionBar actionBar = getActionBar();
-        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
     }
 
     @Override
diff --git a/src/com/owncloud/android/ui/activity/ErrorReportActivity.java b/src/com/owncloud/android/ui/activity/ErrorReportActivity.java
new file mode 100644 (file)
index 0000000..d9b5ba0
--- /dev/null
@@ -0,0 +1,104 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.ui.activity;
+
+import android.content.Intent;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentTransaction;
+import android.support.v7.app.AppCompatActivity;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.Button;
+import android.widget.TextView;
+
+import com.owncloud.android.R;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.ui.dialog.LoadingDialog;
+import com.owncloud.android.utils.FileStorageUtils;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.lang.ref.WeakReference;
+
+
+public class ErrorReportActivity extends AppCompatActivity {
+
+    private static final String TAG = ErrorReportActivity.class.getSimpleName();
+
+    private String mLogText;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.error_send);
+        setTitle(getString(R.string.error_log_title));
+        Button cancelErrorLogButton = (Button) findViewById(R.id.cancelErrorLogButton);
+        Button sendErrorLogButton = (Button) findViewById(R.id.sendErrorLogButton);
+        TextView logTV = (TextView) findViewById(R.id.logTV);
+
+        Intent intent = getIntent();
+        String action = intent.getAction();
+        String type = intent.getType();
+
+        if (Intent.ACTION_SEND.equals(action) && type != null) {
+                mLogText = intent.getStringExtra(Intent.EXTRA_TEXT);
+        } else {
+            // Handle other intents, such as being started from the home screen
+            mLogText = "Error, nothing received!";
+        }
+
+        logTV.setText(mLogText);
+
+        cancelErrorLogButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                finishAffinity();
+
+            }
+        });
+
+        sendErrorLogButton.setOnClickListener(new OnClickListener() {
+
+            @Override
+            public void onClick(View v) {
+                sendMail();
+            }
+        });
+    }
+
+    /**
+     * Start activity for sending email with logs attached
+     */
+    private void sendMail() {
+        Intent sendIntent = new Intent();
+        sendIntent.setAction(Intent.ACTION_SEND);
+        sendIntent.putExtra(Intent.EXTRA_TEXT, mLogText);
+        sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        sendIntent.setType("text/plain");
+        startActivity(sendIntent);
+    }
+}
\ No newline at end of file
index d7d96fa..3162dd7 100644 (file)
@@ -30,7 +30,7 @@ import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Handler;
 import android.support.v4.app.DialogFragment;
-import android.support.v7.app.ActionBarActivity;
+import android.support.v7.app.AppCompatActivity;
 import android.text.method.ScrollingMovementMethod;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -61,7 +61,7 @@ import com.owncloud.android.utils.FileStorageUtils;
  * 
  * Shown when the error notification summarizing the list of errors is clicked by the user.
  */
-public class ErrorsWhileCopyingHandlerActivity  extends ActionBarActivity
+public class ErrorsWhileCopyingHandlerActivity  extends AppCompatActivity
         implements OnClickListener {
 
     private static final String TAG = ErrorsWhileCopyingHandlerActivity.class.getSimpleName();
index 4e38c52..8a79443 100644 (file)
@@ -35,18 +35,19 @@ import android.content.res.Configuration;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
-import android.support.v4.app.ActionBarDrawerToggle;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
 import android.support.v4.view.GravityCompat;
 import android.support.v4.widget.DrawerLayout;
 import android.support.v7.app.ActionBar;
-import android.support.v7.app.ActionBarActivity;
+import android.support.v7.app.ActionBarDrawerToggle;
+import android.support.v7.app.AppCompatActivity;
 import android.view.View;
 import android.widget.AdapterView;
-import android.widget.LinearLayout;
 import android.widget.ListView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
 import android.widget.Toast;
 
 import com.owncloud.android.BuildConfig;
@@ -66,18 +67,20 @@ import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.common.utils.Log_OC;
-import com.owncloud.android.operations.CreateShareOperation;
+import com.owncloud.android.lib.resources.status.OCCapability;
+import com.owncloud.android.operations.CreateShareViaLinkOperation;
+import com.owncloud.android.operations.CreateShareWithShareeOperation;
+import com.owncloud.android.operations.GetSharesForFileOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
 import com.owncloud.android.operations.SynchronizeFolderOperation;
-import com.owncloud.android.operations.UnshareLinkOperation;
+import com.owncloud.android.operations.UnshareOperation;
+import com.owncloud.android.operations.UpdateShareViaLinkOperation;
 import com.owncloud.android.services.OperationsService;
 import com.owncloud.android.services.OperationsService.OperationsServiceBinder;
 import com.owncloud.android.ui.NavigationDrawerItem;
 import com.owncloud.android.ui.adapter.NavigationDrawerListAdapter;
 import com.owncloud.android.ui.dialog.LoadingDialog;
 import com.owncloud.android.ui.dialog.SharePasswordDialogFragment;
-import com.owncloud.android.ui.fragment.FileDetailFragment;
-import com.owncloud.android.ui.fragment.FileFragment;
 import com.owncloud.android.utils.ErrorMessageAdapter;
 
 import java.util.ArrayList;
@@ -87,33 +90,36 @@ import java.util.ArrayList;
  * Activity with common behaviour for activities handling {@link OCFile}s in ownCloud
  * {@link Account}s .
  */
-public class FileActivity extends ActionBarActivity
+public class FileActivity extends AppCompatActivity
         implements OnRemoteOperationListener, ComponentsGetter {
 
     public static final String EXTRA_FILE = "com.owncloud.android.ui.activity.FILE";
     public static final String EXTRA_ACCOUNT = "com.owncloud.android.ui.activity.ACCOUNT";
-    public static final String EXTRA_WAITING_TO_PREVIEW =
-            "com.owncloud.android.ui.activity.WAITING_TO_PREVIEW";
     public static final String EXTRA_FROM_NOTIFICATION =
             "com.owncloud.android.ui.activity.FROM_NOTIFICATION";
 
     public static final String TAG = FileActivity.class.getSimpleName();
 
     private static final String DIALOG_WAIT_TAG = "DIALOG_WAIT";
+
     private static final String KEY_WAITING_FOR_OP_ID = "WAITING_FOR_OP_ID";
     private static final String DIALOG_SHARE_PASSWORD = "DIALOG_SHARE_PASSWORD";
     private static final String KEY_TRY_SHARE_AGAIN = "TRY_SHARE_AGAIN";
     private static final String KEY_ACTION_BAR_TITLE = "ACTION_BAR_TITLE";
 
-    protected static final long DELAY_TO_REQUEST_OPERATION_ON_ACTIVITY_RESULTS = 200;
+    protected static final long DELAY_TO_REQUEST_OPERATIONS_LATER = 200;
 
 
     /** OwnCloud {@link Account} where the main {@link OCFile} handled by the activity is located.*/
     private Account mAccount;
 
-    /** Main {@link OCFile} handled by the activity.*/
+    /** Capabilites of the server where {@link #mAccount} lives */
+     private OCCapability mCapabilities;
+
+     /** Main {@link OCFile} handled by the activity.*/
     private OCFile mFile;
 
+
     /** Flag to signal that the activity will is finishing to enforce the creation of an ownCloud
      * {@link Account} */
     private boolean mRedirectingToSetupAccount = false;
@@ -139,12 +145,12 @@ public class FileActivity extends ActionBarActivity
 
     private OperationsServiceBinder mOperationsServiceBinder = null;
 
+    private boolean mResumed = false;
+
     protected FileDownloaderBinder mDownloaderBinder = null;
     protected FileUploaderBinder mUploaderBinder = null;
     private ServiceConnection mDownloadServiceConnection, mUploadServiceConnection = null;
 
-    private boolean mTryShareAgain = false;
-
     // Navigation Drawer
     protected DrawerLayout mDrawerLayout;
     protected ActionBarDrawerToggle mDrawerToggle;
@@ -159,6 +165,7 @@ public class FileActivity extends ActionBarActivity
     protected NavigationDrawerListAdapter mNavigationDrawerAdapter = null;
 
 
+
     // TODO re-enable when "Accounts" is available in Navigation Drawer
 //    protected boolean mShowAccounts = false;
 
@@ -181,8 +188,9 @@ public class FileActivity extends ActionBarActivity
             mFileOperationsHelper.setOpIdWaitingFor(
                     savedInstanceState.getLong(KEY_WAITING_FOR_OP_ID, Long.MAX_VALUE)
                     );
-            mTryShareAgain = savedInstanceState.getBoolean(KEY_TRY_SHARE_AGAIN);
-            getSupportActionBar().setTitle(savedInstanceState.getString(KEY_ACTION_BAR_TITLE));
+            if (getSupportActionBar() != null) {
+                getSupportActionBar().setTitle(savedInstanceState.getString(KEY_ACTION_BAR_TITLE));
+            }
         } else {
             account = getIntent().getParcelableExtra(FileActivity.EXTRA_ACCOUNT);
             mFile = getIntent().getParcelableExtra(FileActivity.EXTRA_FILE);
@@ -251,7 +259,7 @@ public class FileActivity extends ActionBarActivity
     @Override
     protected void onResume() {
         super.onResume();
-
+        mResumed = true;
         if (mOperationsServiceBinder != null) {
             doOnResumeAndBound();
         }
@@ -262,7 +270,7 @@ public class FileActivity extends ActionBarActivity
         if (mOperationsServiceBinder != null) {
             mOperationsServiceBinder.removeOperationListener(this);
         }
-
+        mResumed = false;
         super.onPause();
     }
 
@@ -291,7 +299,7 @@ public class FileActivity extends ActionBarActivity
         // Sync the toggle state after onRestoreInstanceState has occurred.
         if (mDrawerToggle != null) {
             mDrawerToggle.syncState();
-            if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
+            if (isDrawerOpen()) {
                 getSupportActionBar().setTitle(R.string.app_name);
                 mDrawerToggle.setDrawerIndicatorEnabled(true);
             }
@@ -306,6 +314,37 @@ public class FileActivity extends ActionBarActivity
         }
     }
 
+    @Override
+    public void onBackPressed() {
+        if (isDrawerOpen()) {
+            closeNavDrawer();
+            return;
+        }
+        super.onBackPressed();
+    }
+
+    /**
+     * checks if the drawer exists and is opened.
+     *
+     * @return <code>true</code> if the drawer is open, else <code>false</code>
+     */
+    public boolean isDrawerOpen() {
+        if(mDrawerLayout != null) {
+            return mDrawerLayout.isDrawerOpen(GravityCompat.START);
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * closes the navigation drawer.
+     */
+    public void closeNavDrawer() {
+        if(mDrawerLayout != null) {
+            mDrawerLayout.closeDrawer(GravityCompat.START);
+        }
+    }
+
     protected void initDrawer(){
         // constant settings for action bar when navigation drawer is inited
         getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
@@ -313,7 +352,7 @@ public class FileActivity extends ActionBarActivity
 
         mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
         // Notification Drawer
-        LinearLayout navigationDrawerLayout = (LinearLayout) findViewById(R.id.left_drawer);
+        RelativeLayout navigationDrawerLayout = (RelativeLayout) findViewById(R.id.left_drawer);
         mDrawerList = (ListView) navigationDrawerLayout.findViewById(R.id.drawer_list);
 
         // TODO re-enable when "Accounts" is available in Navigation Drawer
@@ -331,6 +370,9 @@ public class FileActivity extends ActionBarActivity
 //            username.setText(account.name.substring(0, lastAtPos));
 //        }
 
+        // Display username in drawer
+        setUsernameInDrawer(navigationDrawerLayout, AccountUtils.getCurrentOwnCloudAccount(getApplicationContext()));
+
         // load slide menu items
         mDrawerTitles = getResources().getStringArray(R.array.drawer_items);
 
@@ -346,19 +388,20 @@ public class FileActivity extends ActionBarActivity
         // mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[0],
         // mDrawerContentDescriptions[0]));
         // All Files
-        mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[0], mDrawerContentDescriptions[0]));
+        mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[0], mDrawerContentDescriptions[0],
+                R.drawable.ic_folder_open));
 
-        // TODO Enable when "On Device" is recovered
         // On Device
-        //mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[2],
-        //        mDrawerContentDescriptions[2]));
+        mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[1], mDrawerContentDescriptions[1],
+                R.drawable.ic_action_download_grey));
 
         // Settings
-        mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[1], mDrawerContentDescriptions[1]));
+        mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[2], mDrawerContentDescriptions[2],
+                R.drawable.ic_action_settings));
         // Logs
         if (BuildConfig.DEBUG) {
-            mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[2],
-                    mDrawerContentDescriptions[2]));
+            mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[3],
+                    mDrawerContentDescriptions[3],R.drawable.ic_log));
         }
 
         // setting the nav drawer list adapter
@@ -366,12 +409,8 @@ public class FileActivity extends ActionBarActivity
                 mDrawerItems);
         mDrawerList.setAdapter(mNavigationDrawerAdapter);
 
-        mDrawerToggle = new ActionBarDrawerToggle(
-                this,
-                mDrawerLayout,
-                R.drawable.ic_drawer,
-                R.string.app_name,
-                R.string.drawer_close) {
+
+        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,R.string.drawer_open,R.string.drawer_close) {
 
             /** Called when a drawer has settled in a completely closed state. */
             public void onDrawerClosed(View view) {
@@ -388,13 +427,28 @@ public class FileActivity extends ActionBarActivity
                 invalidateOptionsMenu();
             }
         };
-
-        //mDrawerToggle.setDrawerIndicatorEnabled(true);
+        
         // Set the list's click listener
         mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
 
         // Set the drawer toggle as the DrawerListener
         mDrawerLayout.setDrawerListener(mDrawerToggle);
+        mDrawerToggle.setDrawerIndicatorEnabled(false);
+    }
+
+    /**
+     * sets the given account name in the drawer in case the drawer is available. The account name
+     * is shortened beginning from the @-sign in the username.
+     *
+     * @param navigationDrawerLayout the drawer layout to be used
+     * @param account                the account to be set in the drawer
+     */
+    protected void setUsernameInDrawer(RelativeLayout navigationDrawerLayout, Account account) {
+        if (navigationDrawerLayout != null && getAccount() != null) {
+            TextView username = (TextView) navigationDrawerLayout.findViewById(R.id.drawer_username);
+            int lastAtPos = account.name.lastIndexOf("@");
+            username.setText(account.name.substring(0, lastAtPos));
+        }
     }
 
     /**
@@ -473,7 +527,7 @@ public class FileActivity extends ActionBarActivity
      */
     private void swapToDefaultAccount() {
         // default to the most recently used account
-        Account newAccount  = AccountUtils.getCurrentOwnCloudAccount(getApplicationContext());
+        Account newAccount = AccountUtils.getCurrentOwnCloudAccount(getApplicationContext());
         if (newAccount == null) {
             /// no account available: force account creation
             createFirstAccount();
@@ -513,8 +567,11 @@ public class FileActivity extends ActionBarActivity
         outState.putParcelable(FileActivity.EXTRA_FILE, mFile);
         outState.putBoolean(FileActivity.EXTRA_FROM_NOTIFICATION, mFromNotification);
         outState.putLong(KEY_WAITING_FOR_OP_ID, mFileOperationsHelper.getOpIdWaitingFor());
-        outState.putBoolean(KEY_TRY_SHARE_AGAIN, mTryShareAgain);
-        outState.putString(KEY_ACTION_BAR_TITLE, getSupportActionBar().getTitle().toString());
+        if(getSupportActionBar() != null && getSupportActionBar().getTitle() != null) {
+            // Null check in case the actionbar is used in ActionBar.NAVIGATION_MODE_LIST
+            // since it doesn't have a title then
+            outState.putString(KEY_ACTION_BAR_TITLE, getSupportActionBar().getTitle().toString());
+        }
     }
 
 
@@ -553,6 +610,18 @@ public class FileActivity extends ActionBarActivity
         mAccount = account;
     }
 
+
+    /**
+     * Getter for the capabilities of the server where the current OC account lives.
+     *
+     * @return  Capabilities of the server where the current OC account lives. Null if the account is not
+     *          set yet.
+     */
+    public OCCapability getCapabilities() {
+        return mCapabilities;
+    }
+
+
     /**
      * @return Value of mFromNotification: True if the Activity is launched by a notification
      */
@@ -561,20 +630,12 @@ public class FileActivity extends ActionBarActivity
     }
 
     /**
-     * @return  'True' when the Activity is finishing to enforce the setup of a new account.
+     * @return 'True' when the Activity is finishing to enforce the setup of a new account.
      */
     protected boolean isRedirectingToSetupAccount() {
         return mRedirectingToSetupAccount;
     }
 
-    public boolean isTryShareAgain(){
-        return mTryShareAgain;
-    }
-
-    public void setTryShareAgain(boolean tryShareAgain) {
-       mTryShareAgain = tryShareAgain;
-    }
-
     public OperationsServiceBinder getOperationsServiceBinder() {
         return mOperationsServiceBinder;
     }
@@ -631,6 +692,7 @@ public class FileActivity extends ActionBarActivity
     protected void onAccountSet(boolean stateWasRecovered) {
         if (getAccount() != null) {
             mStorageManager = new FileDataStorageManager(getAccount(), getContentResolver());
+            mCapabilities = mStorageManager.getCapability(mAccount.name);
 
         } else {
             Log_OC.wtf(TAG, "onAccountChanged was called with NULL account associated!");
@@ -668,6 +730,8 @@ public class FileActivity extends ActionBarActivity
 
         mFileOperationsHelper.setOpIdWaitingFor(Long.MAX_VALUE);
 
+        dismissLoadingDialog();
+
         if (!result.isSuccess() && (
                 result.getCode() == ResultCode.UNAUTHORIZED ||
                 result.isIdPRedirection() ||
@@ -683,20 +747,39 @@ public class FileActivity extends ActionBarActivity
                         Toast.LENGTH_LONG);
                 t.show();
             }
-            mTryShareAgain = false;
 
-        } else if (operation instanceof CreateShareOperation) {
-            onCreateShareOperationFinish((CreateShareOperation) operation, result);
+        } else if (operation == null ||
+                operation instanceof CreateShareWithShareeOperation ||
+                operation instanceof UnshareOperation ||
+                operation instanceof SynchronizeFolderOperation ||
+                operation instanceof UpdateShareViaLinkOperation
+                ) {
+            if (result.isSuccess()) {
+                updateFileFromDB();
 
-        } else if (operation instanceof UnshareLinkOperation) {
-            onUnshareLinkOperationFinish((UnshareLinkOperation)operation, result);
+            } else if (result.getCode() != ResultCode.CANCELLED) {
+                Toast t = Toast.makeText(this,
+                        ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
+                        Toast.LENGTH_LONG);
+                t.show();
+            }
 
-        } else if (operation instanceof SynchronizeFolderOperation) {
-            onSynchronizeFolderOperationFinish((SynchronizeFolderOperation)operation, result);
+        } else if (operation instanceof CreateShareViaLinkOperation) {
+            onCreateShareViaLinkOperationFinish((CreateShareViaLinkOperation) operation, result);
 
-        }else if (operation instanceof SynchronizeFileOperation) {
-            onSynchronizeFileOperationFinish((SynchronizeFileOperation)operation, result);
+        } else if (operation instanceof SynchronizeFileOperation) {
+            onSynchronizeFileOperationFinish((SynchronizeFileOperation) operation, result);
 
+        } else if (operation instanceof GetSharesForFileOperation) {
+            if (result.isSuccess() || result.getCode() == ResultCode.SHARE_NOT_FOUND) {
+                updateFileFromDB();
+
+            } else {
+                Toast t = Toast.makeText(this,
+                        ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
+                        Toast.LENGTH_LONG);
+                t.show();
+            }
         }
     }
 
@@ -711,29 +794,35 @@ public class FileActivity extends ActionBarActivity
     }
 
 
-    private void onCreateShareOperationFinish(CreateShareOperation operation,
-                                              RemoteOperationResult result) {
-        dismissLoadingDialog();
+
+    private void onCreateShareViaLinkOperationFinish(CreateShareViaLinkOperation operation,
+                                                     RemoteOperationResult result) {
         if (result.isSuccess()) {
-            mTryShareAgain = false;
             updateFileFromDB();
 
-            Intent sendIntent = operation.getSendIntent();
-            startActivity(sendIntent);
+            Intent sendIntent = operation.getSendIntentWithSubject(this);
+            if (sendIntent != null) {
+                startActivity(sendIntent);
+            }
+
         } else {
             // Detect Failure (403) --> needs Password
             if (result.getCode() == ResultCode.SHARE_FORBIDDEN) {
-                if (!isTryShareAgain()) {
+                String password = operation.getPassword();
+                if ((password == null || password.length() == 0) &&
+                    getCapabilities().getFilesSharingPublicEnabled().isUnknown())
+                    {
+                    // Was tried without password, but not sure that it's optional. Try with password.
+                    // Try with password before giving up.
+                    // See also ShareFileFragment#OnShareViaLinkListener
                     SharePasswordDialogFragment dialog =
-                            SharePasswordDialogFragment.newInstance(new OCFile(operation.getPath()),
-                                    operation.getSendIntent());
+                            SharePasswordDialogFragment.newInstance(new OCFile(operation.getPath()), true);
                     dialog.show(getSupportFragmentManager(), DIALOG_SHARE_PASSWORD);
                 } else {
                     Toast t = Toast.makeText(this,
                         ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
                         Toast.LENGTH_LONG);
                     t.show();
-                    mTryShareAgain = false;
                 }
             } else {
                 Toast t = Toast.makeText(this,
@@ -744,34 +833,8 @@ public class FileActivity extends ActionBarActivity
         }
     }
 
-
-    private void onUnshareLinkOperationFinish(UnshareLinkOperation operation,
-                                              RemoteOperationResult result) {
-        dismissLoadingDialog();
-
-        if (result.isSuccess()){
-            updateFileFromDB();
-
-        } else {
-            Toast t = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result,
-                            operation, getResources()), Toast.LENGTH_LONG);
-            t.show();
-        }
-    }
-
-    private void onSynchronizeFolderOperationFinish(
-            SynchronizeFolderOperation operation, RemoteOperationResult result
-    ) {
-        if (!result.isSuccess() && result.getCode() != ResultCode.CANCELLED){
-            Toast t = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result,
-                            operation, getResources()), Toast.LENGTH_LONG);
-            t.show();
-        }
-    }
-
     private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation,
                                                   RemoteOperationResult result) {
-        dismissLoadingDialog();
         OCFile syncedFile = operation.getLocalFile();
         if (!result.isSuccess()) {
             if (result.getCode() == ResultCode.SYNC_CONFLICT) {
@@ -803,9 +866,9 @@ public class FileActivity extends ActionBarActivity
     /**
      * Show loading dialog
      */
-    public void showLoadingDialog() {
+    public void showLoadingDialog(String message) {
         // Construct dialog
-        LoadingDialog loading = new LoadingDialog(getResources().getString(R.string.wait_a_moment));
+        LoadingDialog loading = new LoadingDialog(message);
         FragmentManager fm = getSupportFragmentManager();
         FragmentTransaction ft = fm.beginTransaction();
         loading.show(ft, DIALOG_WAIT_TAG);
@@ -816,9 +879,10 @@ public class FileActivity extends ActionBarActivity
     /**
      * Dismiss loading dialog
      */
-    public void dismissLoadingDialog(){
+    public void dismissLoadingDialog() {
         Fragment frag = getSupportFragmentManager().findFragmentByTag(DIALOG_WAIT_TAG);
         if (frag != null) {
+            Log_OC.d(TAG, "dismiss loading dialog");
             LoadingDialog loading = (LoadingDialog) frag;
             loading.dismiss();
         }
@@ -851,7 +915,9 @@ public class FileActivity extends ActionBarActivity
                 /*if (!mOperationsServiceBinder.isPerformingBlockingOperation()) {
                     dismissLoadingDialog();
                 }*/
-                doOnResumeAndBound();
+                if (mResumed) {
+                    doOnResumeAndBound();
+                }
 
             } else {
                 return;
@@ -888,6 +954,12 @@ public class FileActivity extends ActionBarActivity
         startActivity(i);
     }
 
+    public void refresh(){
+        Intent i = new Intent(this, FileDisplayActivity.class);
+        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+        startActivity(i);
+    }
+
 //    TODO re-enable when "Accounts" is available in Navigation Drawer
 //    public void closeDrawer() {
 //        mDrawerLayout.closeDrawers();
@@ -897,6 +969,10 @@ public class FileActivity extends ActionBarActivity
         restart();
     }
 
+    public void refreshDirectory(){
+        // overridden by FileDisplayActivity
+    }
+
     private class DrawerItemClickListener implements ListView.OnItemClickListener {
         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
@@ -913,24 +989,25 @@ public class FileActivity extends ActionBarActivity
 //                    break;
 
                 case 0: // All Files
-                    allFilesOption();
+                    MainApp.showOnlyFilesOnDevice(false);
+                    refreshDirectory();
                     mDrawerLayout.closeDrawers();
                     break;
 
-                // TODO Enable when "On Device" is recovered ?
-//                case 2:
-//                    MainApp.showOnlyFilesOnDevice(true);
-//                    mDrawerLayout.closeDrawers();
-//                    break;
+                case 1: // On Device
+                    MainApp.showOnlyFilesOnDevice(true);
+                    refreshDirectory();
+                    mDrawerLayout.closeDrawers();
+                    break;
 
-                case 1: // Settings
+                case 2: // Settings
                     Intent settingsIntent = new Intent(getApplicationContext(),
                             Preferences.class);
                     startActivity(settingsIntent);
                     mDrawerLayout.closeDrawers();
                     break;
 
-                case 2: // Logs
+                case 3: // Logs
                     Intent loggerIntent = new Intent(getApplicationContext(),
                             LogHistoryActivity.class);
                     startActivity(loggerIntent);
index a3d9b10..c51484a 100644 (file)
@@ -26,7 +26,8 @@ import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.accounts.AuthenticatorException;
 import android.annotation.TargetApi;
-import android.app.AlertDialog;
+import android.os.Parcelable;
+import android.support.v7.app.AlertDialog;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.ContentResolver;
@@ -48,12 +49,16 @@ import android.provider.OpenableColumns;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
+import android.support.v4.content.ContextCompat;
 import android.support.v4.view.GravityCompat;
+import android.support.v7.app.AlertDialog;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
-import android.view.Window;
+import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
 import android.widget.Toast;
 
 import com.owncloud.android.MainApp;
@@ -74,14 +79,13 @@ import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.operations.CopyFileOperation;
 import com.owncloud.android.operations.CreateFolderOperation;
-import com.owncloud.android.operations.CreateShareOperation;
 import com.owncloud.android.operations.MoveFileOperation;
 import com.owncloud.android.operations.RefreshFolderOperation;
 import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
-import com.owncloud.android.operations.UnshareLinkOperation;
 import com.owncloud.android.services.observer.FileObserverService;
 import com.owncloud.android.syncadapter.FileSyncAdapter;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
@@ -95,6 +99,7 @@ import com.owncloud.android.ui.fragment.OCFileListFragment;
 import com.owncloud.android.ui.preview.PreviewImageActivity;
 import com.owncloud.android.ui.preview.PreviewImageFragment;
 import com.owncloud.android.ui.preview.PreviewMediaFragment;
+import com.owncloud.android.ui.preview.PreviewTextFragment;
 import com.owncloud.android.ui.preview.PreviewVideoActivity;
 import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ErrorMessageAdapter;
@@ -102,7 +107,8 @@ import com.owncloud.android.utils.FileStorageUtils;
 import com.owncloud.android.utils.UriUtils;
 
 import java.io.File;
-
+import java.util.ArrayList;
+import java.util.Iterator;
 
 /**
  * Displays, what files the user has available in his ownCloud.
@@ -120,6 +126,7 @@ public class FileDisplayActivity extends HookActivity
     private boolean mDualPane;
     private View mLeftFragmentContainer;
     private View mRightFragmentContainer;
+    private ProgressBar mProgressBar;
 
     private static final String KEY_WAITING_TO_PREVIEW = "WAITING_TO_PREVIEW";
     private static final String KEY_SYNC_IN_PROGRESS = "SYNC_IN_PROGRESS";
@@ -130,6 +137,7 @@ public class FileDisplayActivity extends HookActivity
     public static final int ACTION_SELECT_CONTENT_FROM_APPS = 1;
     public static final int ACTION_SELECT_MULTIPLE_FILES = 2;
     public static final int ACTION_MOVE_FILES = 3;
+    public static final int ACTION_COPY_FILES = 4;
 
     private static final String TAG = FileDisplayActivity.class.getSimpleName();
 
@@ -137,21 +145,21 @@ public class FileDisplayActivity extends HookActivity
     private static final String TAG_SECOND_FRAGMENT = "SECOND_FRAGMENT";
 
     private OCFile mWaitingToPreview;
-    
+
     private boolean mSyncInProgress = false;
 
     private static String DIALOG_UNTRUSTED_CERT = "DIALOG_UNTRUSTED_CERT";
-    private static String DIALOG_CREATE_FOLDER = "DIALOG_CREATE_FOLDER";
+    public static String DIALOG_CREATE_FOLDER = "DIALOG_CREATE_FOLDER";
     private static String DIALOG_UPLOAD_SOURCE = "DIALOG_UPLOAD_SOURCE";
     private static String DIALOG_CERT_NOT_SAVED = "DIALOG_CERT_NOT_SAVED";
 
     private OCFile mWaitingToSend;
+    private Menu mOptionsMenu;
+
 
-    
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         Log_OC.v(TAG, "onCreate() start");
-        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
 
         super.onCreate(savedInstanceState); // this calls onAccountChanged() when ownCloud Account
                                             // is valid
@@ -161,7 +169,7 @@ public class FileDisplayActivity extends HookActivity
             Intent initObserversIntent = FileObserverService.makeInitIntent(this);
             startService(initObserversIntent);
         }
-        
+
         /// Load of saved instance state
         if(savedInstanceState != null) {
             mWaitingToPreview = (OCFile) savedInstanceState.getParcelable(
@@ -169,21 +177,25 @@ public class FileDisplayActivity extends HookActivity
             mSyncInProgress = savedInstanceState.getBoolean(KEY_SYNC_IN_PROGRESS);
             mWaitingToSend = (OCFile) savedInstanceState.getParcelable(
                     FileDisplayActivity.KEY_WAITING_TO_SEND);
-           
         } else {
             mWaitingToPreview = null;
             mSyncInProgress = false;
             mWaitingToSend = null;
-        }        
+        }
 
         /// USER INTERFACE
 
         // Inflate and set the layout view
         setContentView(R.layout.files);
-        
+
         // Navigation Drawer
         initDrawer();
 
+        mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
+        mProgressBar.setIndeterminateDrawable(
+                ContextCompat.getDrawable(this,
+                        R.drawable.actionbar_progress_indeterminate_horizontal));
+
         mDualPane = getResources().getBoolean(R.bool.large_land_layout);
         mLeftFragmentContainer = findViewById(R.id.left_fragment_container);
         mRightFragmentContainer = findViewById(R.id.right_fragment_container);
@@ -196,10 +208,13 @@ public class FileDisplayActivity extends HookActivity
                                                                 // according to the official
                                                                 // documentation
 
-        setSupportProgressBarIndeterminateVisibility(mSyncInProgress
-        /*|| mRefreshSharesInProgress*/);
+        // enable ActionBar app icon to behave as action to toggle nav drawer
+        //getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+        getSupportActionBar().setHomeButtonEnabled(true);
+
+        mProgressBar.setIndeterminate(mSyncInProgress);
         // always AFTER setContentView(...) ; to work around bug in its implementation
-        
+
         setBackgroundText();
 
         Log_OC.v(TAG, "onCreate() end");
@@ -209,11 +224,17 @@ public class FileDisplayActivity extends HookActivity
     protected void onStart() {
         Log_OC.v(TAG, "onStart() start");
         super.onStart();
-        getSupportActionBar().setIcon(DisplayUtils.getSeasonalIconId());
         Log_OC.v(TAG, "onStart() end");
     }
 
     @Override
+    protected void onStop() {
+        Log_OC.v(TAG, "onStop() start");
+        super.onStop();
+        Log_OC.v(TAG, "onStop() end");
+    }
+
+    @Override
     protected void onDestroy() {
         Log_OC.v(TAG, "onDestroy() start");
         super.onDestroy();
@@ -221,8 +242,8 @@ public class FileDisplayActivity extends HookActivity
     }
 
     /**
-     *  Called when the ownCloud {@link Account} associated to the Activity was just updated.
-     */ 
+     * Called when the ownCloud {@link Account} associated to the Activity was just updated.
+     */
     @Override
     protected void onAccountSet(boolean stateWasRecovered) {
         super.onAccountSet(stateWasRecovered);
@@ -250,14 +271,18 @@ public class FileDisplayActivity extends HookActivity
                 file = getStorageManager().getFileByPath(OCFile.ROOT_PATH);  // never returns null
             }
             setFile(file);
-            
+
+            if (mAccountWasSet) {
+                setUsernameInDrawer((RelativeLayout) findViewById(R.id.left_drawer), getAccount());
+            }
+
             if (!stateWasRecovered) {
                 Log_OC.d(TAG, "Initializing Fragments in onAccountChanged..");
                 initFragmentsWithFile();
                 if (file.isFolder()) {
                     startSyncFolderOperation(file, false);
                 }
-                
+
             } else {
                 updateFragmentsVisibility(!file.isFolder());
                 updateActionBarTitleAndHomeButton(file.isFolder() ? null : file);
@@ -265,38 +290,39 @@ public class FileDisplayActivity extends HookActivity
         }
     }
 
-
     private void createMinFragments() {
         OCFileListFragment listOfFiles = new OCFileListFragment();
         FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
         transaction.add(R.id.left_fragment_container, listOfFiles, TAG_LIST_OF_FILES);
         transaction.commit();
     }
-    
+
     private void initFragmentsWithFile() {
         if (getAccount() != null && getFile() != null) {
             /// First fragment
-            OCFileListFragment listOfFiles = getListOfFilesFragment(); 
+            OCFileListFragment listOfFiles = getListOfFilesFragment();
             if (listOfFiles != null) {
-                listOfFiles.listDirectory(getCurrentDir());
-                // TODO Enable when "On Device" is recovered
-                // listOfFiles.listDirectory(getCurrentDir(), MainApp.getOnlyOnDevice());
+                listOfFiles.listDirectory(getCurrentDir(), MainApp.getOnlyOnDevice());
             } else {
                 Log_OC.e(TAG, "Still have a chance to lose the initializacion of list fragment >(");
             }
-            
+
             /// Second fragment
-            OCFile file = getFile(); 
+            OCFile file = getFile();
             Fragment secondFragment = chooseInitialSecondFragment(file);
             if (secondFragment != null) {
                 setSecondFragment(secondFragment);
                 updateFragmentsVisibility(true);
                 updateActionBarTitleAndHomeButton(file);
-                
+
             } else {
                 cleanSecondFragment();
+                if (file.isDown() && PreviewTextFragment.canBePreviewed(file))
+                    startTextPreview(file);
             }
 
+            switchLayout(getFile());
+
         } else {
             Log_OC.wtf(TAG, "initFragments() called with invalid NULLs!");
             if (getAccount() == null) {
@@ -308,10 +334,18 @@ public class FileDisplayActivity extends HookActivity
         }
     }
 
+    private void switchLayout(OCFile file){
+        if (DisplayUtils.isGridView(file, getStorageManager())){
+            switchToGridView();
+        } else {
+            switchToListView();
+        }
+    }
+
     private Fragment chooseInitialSecondFragment(OCFile file) {
         Fragment secondFragment = null;
         if (file != null && !file.isFolder()) {
-            if (file.isDown() && PreviewMediaFragment.canBePreviewed(file) 
+            if (file.isDown() && PreviewMediaFragment.canBePreviewed(file)
                     && file.getLastSyncDateForProperties() > 0  // temporal fix
                     ) {
                 int startPlaybackPosition =
@@ -321,9 +355,11 @@ public class FileDisplayActivity extends HookActivity
                 secondFragment = new PreviewMediaFragment(file, getAccount(),
                         startPlaybackPosition, autoplay);
 
+            } else if (file.isDown() && PreviewTextFragment.canBePreviewed(file)) {
+                secondFragment = null;
             } else {
-                secondFragment = FileDetailFragment.newInstance(file, getAccount());
-            }
+            secondFragment = FileDetailFragment.newInstance(file, getAccount());
+        }
         }
         return secondFragment;
     }
@@ -332,10 +368,10 @@ public class FileDisplayActivity extends HookActivity
     /**
      * Replaces the second fragment managed by the activity with the received as
      * a parameter.
-     * 
-     * Assumes never will be more than two fragments managed at the same time. 
-     * 
-     * @param fragment      New second Fragment to set.
+     * <p/>
+     * Assumes never will be more than two fragments managed at the same time.
+     *
+     * @param fragment New second Fragment to set.
      */
     private void setSecondFragment(Fragment fragment) {
         FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
@@ -376,7 +412,7 @@ public class FileDisplayActivity extends HookActivity
         Fragment listOfFiles = getSupportFragmentManager().findFragmentByTag(
                 FileDisplayActivity.TAG_LIST_OF_FILES);
         if (listOfFiles != null) {
-            return (OCFileListFragment)listOfFiles;
+            return (OCFileListFragment) listOfFiles;
         }
         Log_OC.wtf(TAG, "Access to unexisting list of files fragment!!");
         return null;
@@ -386,7 +422,7 @@ public class FileDisplayActivity extends HookActivity
         Fragment second = getSupportFragmentManager().findFragmentByTag(
                 FileDisplayActivity.TAG_SECOND_FRAGMENT);
         if (second != null) {
-            return (FileFragment)second;
+            return (FileFragment) second;
         }
         return null;
     }
@@ -405,9 +441,7 @@ public class FileDisplayActivity extends HookActivity
     protected void refreshListOfFilesFragment() {
         OCFileListFragment fileListFragment = getListOfFilesFragment();
         if (fileListFragment != null) {
-            fileListFragment.listDirectory();
-            // TODO Enable when "On Device" is recovered ?
-            // fileListFragment.listDirectory(MainApp.getOnlyOnDevice());
+            fileListFragment.listDirectory(MainApp.getOnlyOnDevice());
         }
     }
 
@@ -440,6 +474,9 @@ public class FileDisplayActivity extends HookActivity
                         if (PreviewMediaFragment.canBePreviewed(mWaitingToPreview)) {
                             startMediaPreview(mWaitingToPreview, 0, true);
                             detailsFragmentChanged = true;
+                        } else if (PreviewTextFragment.canBePreviewed(mWaitingToPreview)) {
+                            startTextPreview(mWaitingToPreview);
+                            detailsFragmentChanged = true;
                         } else {
                             getFileOperationsHelper().openFile(mWaitingToPreview);
                         }
@@ -456,10 +493,9 @@ public class FileDisplayActivity extends HookActivity
     @Override
     public boolean onPrepareOptionsMenu(Menu menu) {
         boolean drawerOpen = mDrawerLayout.isDrawerOpen(GravityCompat.START);
-        menu.findItem(R.id.action_upload).setVisible(!drawerOpen);
-        menu.findItem(R.id.action_create_dir).setVisible(!drawerOpen);
         menu.findItem(R.id.action_sort).setVisible(!drawerOpen);
         menu.findItem(R.id.action_sync_account).setVisible(!drawerOpen);
+        menu.findItem(R.id.action_switch_view).setVisible(!drawerOpen);
         
         return super.onPrepareOptionsMenu(menu);
     }
@@ -468,6 +504,13 @@ public class FileDisplayActivity extends HookActivity
     public boolean onCreateOptionsMenu(Menu menu) {
         MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.main_menu, menu);
+        menu.findItem(R.id.action_create_dir).setVisible(false);
+        mOptionsMenu = menu;
+
+        MenuItem menuItem = mOptionsMenu.findItem(R.id.action_switch_view);
+
+        changeGridIcon();
+
         return true;
     }
     
@@ -476,23 +519,10 @@ public class FileDisplayActivity extends HookActivity
     public boolean onOptionsItemSelected(MenuItem item) {
         boolean retval = true;
         switch (item.getItemId()) {
-            case R.id.action_create_dir: {
-                CreateFolderDialogFragment dialog =
-                        CreateFolderDialogFragment.newInstance(getCurrentDir());
-                dialog.show(getSupportFragmentManager(), DIALOG_CREATE_FOLDER);
-                break;
-            }
             case R.id.action_sync_account: {
                 startSynchronization();
                 break;
             }
-            case R.id.action_upload: {
-                UploadSourceDialogFragment dialog =
-                        UploadSourceDialogFragment.newInstance(getAccount());
-                dialog.show(getSupportFragmentManager(), DIALOG_UPLOAD_SOURCE);
-
-                break;
-            }
             case android.R.id.home: {
                 FileFragment second = getSecondFragment();
                 OCFile currentDir = getCurrentDir();
@@ -535,12 +565,57 @@ public class FileDisplayActivity extends HookActivity
                 builder.create().show();
                 break;
             }
+            case R.id.action_switch_view:{
+                if (isGridView()){
+                    item.setTitle(getApplicationContext().getString(R.string.action_switch_grid_view));
+                    item.setIcon(ContextCompat.getDrawable(getApplicationContext(),
+                            R.drawable.ic_view_module));
+                    DisplayUtils.setViewMode(getFile(), false);
+                    switchToListView();
+                } else {
+                    item.setTitle(getApplicationContext().getString(R.string.action_switch_list_view));
+                    item.setIcon(ContextCompat.getDrawable(getApplicationContext(),
+                            R.drawable.ic_view_list));
+                    DisplayUtils.setViewMode(getFile(), true);
+                    switchToGridView();
+                }
+
+                return true;
+            }
         default:
             retval = super.onOptionsItemSelected(item);
         }
         return retval;
     }
 
+    public void createFolder() {
+        CreateFolderDialogFragment dialog =
+                CreateFolderDialogFragment.newInstance(getCurrentDir());
+        dialog.show(getSupportFragmentManager(), DIALOG_CREATE_FOLDER);
+    }
+
+    public void uploadLocalFilesSelected() {
+        Intent action = new Intent(this, UploadFilesActivity.class);
+        action.putExtra(
+                UploadFilesActivity.EXTRA_ACCOUNT,
+                getAccount()
+        );
+        startActivityForResult(action, ACTION_SELECT_MULTIPLE_FILES);
+    }
+
+    public void uploadFromOtherAppsSelected() {
+        Intent action = new Intent(Intent.ACTION_GET_CONTENT);
+        action = action.setType("*/*").addCategory(Intent.CATEGORY_OPENABLE);
+        //Intent.EXTRA_ALLOW_MULTIPLE is only supported on api level 18+, Jelly Bean
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+            action.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
+        }
+        startActivityForResult(
+                Intent.createChooser(action, getString(R.string.upload_chooser_title)),
+                ACTION_SELECT_CONTENT_FROM_APPS
+        );
+    }
+
     private void startSynchronization() {
         Log_OC.d(TAG, "Got to start sync");
         if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
@@ -598,17 +673,30 @@ public class FileDisplayActivity extends HookActivity
             requestMultipleUpload(data, resultCode);
 
         } else if (requestCode == ACTION_MOVE_FILES && resultCode == RESULT_OK){
+            final Intent fData = data;
+            final int fResultCode = resultCode;
+            getHandler().postDelayed(
+                    new Runnable() {
+                        @Override
+                        public void run() {
+                            requestMoveOperation(fData, fResultCode);
+                        }
+                    },
+                    DELAY_TO_REQUEST_OPERATIONS_LATER
+            );
+
+        } else if (requestCode == ACTION_COPY_FILES && resultCode == RESULT_OK) {
 
             final Intent fData = data;
-            final int fResultCode = resultCode; 
+            final int fResultCode = resultCode;
             getHandler().postDelayed(
-                new Runnable() {
-                    @Override
-                    public void run() {
-                        requestMoveOperation(fData, fResultCode);
-                    }
-                }, 
-                DELAY_TO_REQUEST_OPERATION_ON_ACTIVITY_RESULTS
+                    new Runnable() {
+                        @Override
+                        public void run() {
+                            requestCopyOperation(fData, fResultCode);
+                        }
+                    },
+                    DELAY_TO_REQUEST_OPERATIONS_LATER
             );
 
         } else {
@@ -716,34 +804,88 @@ public class FileDisplayActivity extends HookActivity
 
     /**
      * Request the operation for moving the file/folder from one path to another
-     * 
-     * @param data              Intent received
-     * @param resultCode        Result code received
+     *
+     * @param data       Intent received
+     * @param resultCode Result code received
      */
     private void requestMoveOperation(Intent data, int resultCode) {
         OCFile folderToMoveAt = (OCFile) data.getParcelableExtra(FolderPickerActivity.EXTRA_FOLDER);
-        OCFile targetFile = (OCFile) data.getParcelableExtra(FolderPickerActivity.EXTRA_FILE);
-        getFileOperationsHelper().moveFile(folderToMoveAt, targetFile);
+
+        ArrayList<OCFile> files = data.getParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES);
+
+        for (Parcelable file : files) {
+            getFileOperationsHelper().moveFile(folderToMoveAt, (OCFile) file);
+        }
+    }
+
+    /**
+     * Request the operation for copying the file/folder from one path to another
+     *
+     * @param data       Intent received
+     * @param resultCode Result code received
+     */
+    private void requestCopyOperation(Intent data, int resultCode) {
+        OCFile folderToMoveAt = data.getParcelableExtra(FolderPickerActivity.EXTRA_FOLDER);
+
+        ArrayList<OCFile> files = data.getParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES);
+
+        for (Parcelable file : files) {
+            getFileOperationsHelper().copyFile(folderToMoveAt, (OCFile) file);
+        }
     }
 
     @Override
     public void onBackPressed() {
-        OCFileListFragment listOfFiles = getListOfFilesFragment(); 
-        if (mDualPane || getSecondFragment() == null) {
-            OCFile currentDir = getCurrentDir();
-            if (currentDir == null || currentDir.getParentId() == FileDataStorageManager.ROOT_PARENT_ID) {
-                finish();
-                return;
+        boolean isFabOpen = isFabOpen();
+        boolean isDrawerOpen = isDrawerOpen();
+
+        /*
+         * BackPressed priority/hierarchy:
+         *    1. close drawer if opened
+         *    2. close FAB if open (only if drawer isn't open)
+         *    3. navigate up (only if drawer and FAB aren't open)
+         */
+        if(isDrawerOpen && isFabOpen) {
+            // close drawer first
+            super.onBackPressed();
+        } else if(isDrawerOpen && !isFabOpen) {
+            // close drawer
+            super.onBackPressed();
+        } else if (!isDrawerOpen && isFabOpen) {
+            // close fab
+            getListOfFilesFragment().getFabMain().collapse();
+        } else {
+            // all closed
+            OCFileListFragment listOfFiles = getListOfFilesFragment();
+            if (mDualPane || getSecondFragment() == null) {
+                OCFile currentDir = getCurrentDir();
+                if (currentDir == null || currentDir.getParentId() == FileDataStorageManager.ROOT_PARENT_ID) {
+                    finish();
+                    return;
+                }
+                if (listOfFiles != null) {  // should never be null, indeed
+                    listOfFiles.onBrowseUp();
+                }
             }
             if (listOfFiles != null) {  // should never be null, indeed
-                listOfFiles.onBrowseUp();
+                setFile(listOfFiles.getCurrentFile());
             }
+            cleanSecondFragment();
+            changeGridIcon();
         }
-        if (listOfFiles != null) {  // should never be null, indeed
-            setFile(listOfFiles.getCurrentFile());
-        }
-        cleanSecondFragment();
+    }
 
+    private void changeGridIcon(){
+        MenuItem menuItem = mOptionsMenu.findItem(R.id.action_switch_view);
+        if (DisplayUtils.isGridView(getFile(), getStorageManager())){
+            menuItem.setTitle(getApplicationContext().getString(R.string.action_switch_list_view));
+            menuItem.setIcon(ContextCompat.getDrawable(getApplicationContext(),
+                    R.drawable.ic_view_list));
+        } else {
+            menuItem.setTitle(getApplicationContext().getString(R.string.action_switch_grid_view));
+            menuItem.setIcon(ContextCompat.getDrawable(getApplicationContext(),
+                    R.drawable.ic_view_module));
+        }
     }
 
     @Override
@@ -760,18 +902,15 @@ public class FileDisplayActivity extends HookActivity
 
         Log_OC.v(TAG, "onSaveInstanceState() end");
     }
-    
 
 
     @Override
     protected void onResume() {
         Log_OC.v(TAG, "onResume() start");
         super.onResume();
-
         // refresh Navigation Drawer account list
         mNavigationDrawerAdapter.updateAccountList();
 
-
         // refresh list of files
         refreshListOfFilesFragment();
 
@@ -797,8 +936,9 @@ public class FileDisplayActivity extends HookActivity
         downloadIntentFilter.addAction(FileDownloader.getDownloadFinishMessage());
         mDownloadFinishReceiver = new DownloadFinishReceiver();
         registerReceiver(mDownloadFinishReceiver, downloadIntentFilter);
-        
+
         Log_OC.v(TAG, "onResume() end");
+
     }
 
 
@@ -818,11 +958,19 @@ public class FileDisplayActivity extends HookActivity
             unregisterReceiver(mDownloadFinishReceiver);
             mDownloadFinishReceiver = null;
         }
-        
+
         super.onPause();
         Log_OC.v(TAG, "onPause() end");
     }
 
+    public boolean isFabOpen() {
+        if(getListOfFilesFragment() != null && getListOfFilesFragment().getFabMain() != null && getListOfFilesFragment().getFabMain().isExpanded()) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
 
     private class SyncBroadcastReceiver extends BroadcastReceiver {
 
@@ -842,12 +990,12 @@ public class FileDisplayActivity extends HookActivity
                                 FileSyncAdapter.EXTRA_RESULT);
                 boolean sameAccount = (getAccount() != null &&
                         accountName.equals(getAccount().name) && getStorageManager() != null);
-    
+
                 if (sameAccount) {
-                    
+
                     if (FileSyncAdapter.EVENT_FULL_SYNC_START.equals(event)) {
                         mSyncInProgress = true;
-                        
+
                     } else {
                         OCFile currentFile = (getFile() == null) ? null :
                                 getStorageManager().getFileByPath(getFile().getRemotePath());
@@ -863,8 +1011,9 @@ public class FileDisplayActivity extends HookActivity
                                                    synchFolderRemotePath),
                                             Toast.LENGTH_LONG)
                                 .show();
+
                             browseToRoot();
-                            
+
                         } else {
                             if (currentFile == null && !getFile().isFolder()) {
                                 // currently selected file was removed in the server, and now we
@@ -877,27 +1026,25 @@ public class FileDisplayActivity extends HookActivity
                                     currentDir.getRemotePath().equals(synchFolderRemotePath)) {
                                 OCFileListFragment fileListFragment = getListOfFilesFragment();
                                 if (fileListFragment != null) {
-                                    fileListFragment.listDirectory();
-                                    // TODO Enable when "On Device" is recovered ?
-                                    // fileListFragment.listDirectory(currentDir,
-                                    // MainApp.getOnlyOnDevice());
+                                    fileListFragment.listDirectory(currentDir,
+                                    MainApp.getOnlyOnDevice());
                                 }
                             }
                             setFile(currentFile);
                         }
-                        
+
                         mSyncInProgress = (!FileSyncAdapter.EVENT_FULL_SYNC_END.equals(event) &&
                                 !RefreshFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED
                                         .equals(event));
                                 
                         if (RefreshFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED.
-                                    equals(event) &&
-                                /// TODO refactor and make common
-                                synchResult != null && !synchResult.isSuccess() &&  
-                                (synchResult.getCode() == ResultCode.UNAUTHORIZED   || 
-                                    synchResult.isIdPRedirection()                  ||
-                                    (synchResult.isException() && synchResult.getException() 
-                                            instanceof AuthenticatorException))) {
+                                    equals(event) &&/// TODO refactor and make common
+
+                                synchResult != null && !synchResult.isSuccess() &&
+                                (synchResult.getCode() == ResultCode.UNAUTHORIZED ||
+                                        synchResult.isIdPRedirection() ||
+                                        (synchResult.isException() && synchResult.getException()
+                                                instanceof AuthenticatorException))) {
 
 
                             try {
@@ -906,7 +1053,6 @@ public class FileDisplayActivity extends HookActivity
                                         new OwnCloudAccount(getAccount(), context);
                                 client = (OwnCloudClientManagerFactory.getDefaultSingleton().
                                         removeClientFor(ocAccount));
-
                                 if (client != null) {
                                     OwnCloudCredentials cred = client.getCredentials();
                                     if (cred != null) {
@@ -928,16 +1074,19 @@ public class FileDisplayActivity extends HookActivity
                             }
 
                         }
+
                     }
                     removeStickyBroadcast(intent);
                     Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
-                    setSupportProgressBarIndeterminateVisibility(mSyncInProgress
-                    /*|| mRefreshSharesInProgress*/);
+                    mProgressBar.setIndeterminate(mSyncInProgress);
+                    //mProgressBar.setVisibility((mSyncInProgress) ? View.VISIBLE : View.INVISIBLE);
+                    //setSupportProgressBarIndeterminateVisibility(mSyncInProgress
+                    /*|| mRefreshSharesInProgress*/ //);
 
                     setBackgroundText();
-                        
+
                 }
-                
+
                 if (synchResult != null) {
                     if (synchResult.getCode().equals(
                             RemoteOperationResult.ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED)) {
@@ -951,7 +1100,7 @@ public class FileDisplayActivity extends HookActivity
             }
         }
     }
-    
+
     /**
      * Show a text message on screen view for notifying user if content is
      * loading or folder is empty
@@ -976,33 +1125,38 @@ public class FileDisplayActivity extends HookActivity
     private class UploadFinishReceiver extends BroadcastReceiver {
         /**
          * Once the file upload has finished -> update view
-         *  @author David A. Velasco
+         *
+         * @author David A. Velasco
          * {@link BroadcastReceiver} to enable upload feedback in UI
          */
         @Override
         public void onReceive(Context context, Intent intent) {
             try {
-                String uploadedRemotePath = intent.getStringExtra(FileDownloader.EXTRA_REMOTE_PATH);
+                String uploadedRemotePath = intent.getStringExtra(FileUploader.EXTRA_REMOTE_PATH);
                 String accountName = intent.getStringExtra(FileUploader.ACCOUNT_NAME);
                 boolean sameAccount = getAccount() != null && accountName.equals(getAccount().name);
                 OCFile currentDir = getCurrentDir();
-                boolean isDescendant = (currentDir != null) && (uploadedRemotePath != null) && 
+                boolean isDescendant = (currentDir != null) && (uploadedRemotePath != null) &&
                         (uploadedRemotePath.startsWith(currentDir.getRemotePath()));
-                
+
                 if (sameAccount && isDescendant) {
-                    refreshListOfFilesFragment();
+                    String linkedToRemotePath =
+                            intent.getStringExtra(FileUploader.EXTRA_LINKED_TO_PATH);
+                    if (linkedToRemotePath == null || isAscendant(linkedToRemotePath)) {
+                        refreshListOfFilesFragment();
+                    }
                 }
-                
+
                 boolean uploadWasFine = intent.getBooleanExtra(FileUploader.EXTRA_UPLOAD_RESULT,
                         false);
                 boolean renamedInUpload = getFile().getRemotePath().
                         equals(intent.getStringExtra(FileUploader.EXTRA_OLD_REMOTE_PATH));
-                boolean sameFile = getFile().getRemotePath().equals(uploadedRemotePath) || 
+                boolean sameFile = getFile().getRemotePath().equals(uploadedRemotePath) ||
                         renamedInUpload;
                 FileFragment details = getSecondFragment();
-                boolean detailFragmentIsShown = (details != null && 
+                boolean detailFragmentIsShown = (details != null &&
                         details instanceof FileDetailFragment);
-                
+
                 if (sameAccount && sameFile && detailFragmentIsShown) {
                     if (uploadWasFine) {
                         setFile(getStorageManager().getFileByPath(uploadedRemotePath));
@@ -1010,49 +1164,64 @@ public class FileDisplayActivity extends HookActivity
                     if (renamedInUpload) {
                         String newName = (new File(uploadedRemotePath)).getName();
                         Toast msg = Toast.makeText(
-                                context, 
+                                context,
                                 String.format(
-                                        getString(R.string.filedetails_renamed_in_upload_msg), 
-                                        newName), 
+                                        getString(R.string.filedetails_renamed_in_upload_msg),
+                                        newName),
                                 Toast.LENGTH_LONG);
                         msg.show();
                     }
                     if (uploadWasFine || getFile().fileExists()) {
-                        ((FileDetailFragment)details).updateFileDetails(false, true);
+                        ((FileDetailFragment) details).updateFileDetails(false, true);
                     } else {
                         cleanSecondFragment();
                     }
-                    
-                    // Force the preview if the file is an image
-                    if (uploadWasFine && PreviewImageFragment.canBePreviewed(getFile())) {
-                        startImagePreview(getFile());
-                    } // TODO what about other kind of previews?
+
+                    // Force the preview if the file is an image or text file
+                    if (uploadWasFine) {
+                        OCFile ocFile = getFile();
+                        if (PreviewImageFragment.canBePreviewed(ocFile))
+                            startImagePreview(getFile());
+                        else if (PreviewTextFragment.canBePreviewed(ocFile))
+                            startTextPreview(ocFile);
+                        // TODO what about other kind of previews?
+                    }
                 }
-                
+
+                mProgressBar.setIndeterminate(false);
             } finally {
                 if (intent != null) {
                     removeStickyBroadcast(intent);
                 }
             }
-            
+
         }
-        
+
+        // TODO refactor this receiver, and maybe DownloadFinishReceiver; this method is duplicated :S
+        private boolean isAscendant(String linkedToRemotePath) {
+            OCFile currentDir = getCurrentDir();
+            return (
+                    currentDir != null &&
+                            currentDir.getRemotePath().startsWith(linkedToRemotePath)
+            );
+        }
+
+
     }
 
 
     /**
      * Class waiting for broadcast events from the {@link FileDownloader} service.
-     * 
+     *
      * Updates the UI when a download is started or finished, provided that it is relevant for the
      * current folder.
      */
     private class DownloadFinishReceiver extends BroadcastReceiver {
 
-        //int refreshCounter = 0;
         @Override
         public void onReceive(Context context, Intent intent) {
             try {
-                boolean sameAccount = isSameAccount(context, intent);
+                boolean sameAccount = isSameAccount(intent);
                 String downloadedRemotePath =
                         intent.getStringExtra(FileDownloader.EXTRA_REMOTE_PATH);
                 boolean isDescendant = isDescendant(downloadedRemotePath);
@@ -1061,7 +1230,6 @@ public class FileDisplayActivity extends HookActivity
                     String linkedToRemotePath =
                             intent.getStringExtra(FileDownloader.EXTRA_LINKED_TO_PATH);
                     if (linkedToRemotePath == null || isAscendant(linkedToRemotePath)) {
-                        //Log_OC.v(TAG, "refresh #" + ++refreshCounter);
                         refreshListOfFilesFragment();
                     }
                     refreshSecondFragment(
@@ -1070,15 +1238,15 @@ public class FileDisplayActivity extends HookActivity
                             intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false)
                     );
                 }
-    
+
                 if (mWaitingToSend != null) {
                     mWaitingToSend =
                             getStorageManager().getFileByPath(mWaitingToSend.getRemotePath());
-                    if (mWaitingToSend.isDown()) { 
+                    if (mWaitingToSend.isDown()) {
                         sendDownloadedFile();
                     }
                 }
-            
+
             } finally {
                 if (intent != null) {
                     removeStickyBroadcast(intent);
@@ -1103,32 +1271,29 @@ public class FileDisplayActivity extends HookActivity
             );
         }
 
-        private boolean isSameAccount(Context context, Intent intent) {
+        private boolean isSameAccount(Intent intent) {
             String accountName = intent.getStringExtra(FileDownloader.ACCOUNT_NAME);
             return (accountName != null && getAccount() != null &&
                     accountName.equals(getAccount().name));
         }
     }
-    
-    
+
+
     public void browseToRoot() {
-        OCFileListFragment listOfFiles = getListOfFilesFragment(); 
+        OCFileListFragment listOfFiles = getListOfFilesFragment();
         if (listOfFiles != null) {  // should never be null, indeed
             OCFile root = getStorageManager().getFileByPath(OCFile.ROOT_PATH);
-            listOfFiles.listDirectory(root);
-            // TODO Enable when "On Device" is recovered ?
-            // listOfFiles.listDirectory(root, MainApp.getOnlyOnDevice());
+            listOfFiles.listDirectory(root, MainApp.getOnlyOnDevice());
             setFile(listOfFiles.getCurrentFile());
             startSyncFolderOperation(root, false);
         }
         cleanSecondFragment();
-
     }
 
 
     /**
      * {@inheritDoc}
-     * 
+     * <p/>
      * Updates action bar and second fragment, if in dual pane mode.
      */
     @Override
@@ -1137,13 +1302,18 @@ public class FileDisplayActivity extends HookActivity
         cleanSecondFragment();
         // Sync Folder
         startSyncFolderOperation(directory, false);
+
+        MenuItem menuItem = mOptionsMenu.findItem(R.id.action_switch_view);
+
+        changeGridIcon();
+        switchLayout(directory);
     }
 
     /**
-     * Shows the information of the {@link OCFile} received as a 
+     * Shows the information of the {@link OCFile} received as a
      * parameter in the second fragment.
-     * 
-     * @param file          {@link OCFile} whose details will be shown
+     *
+     * @param file {@link OCFile} whose details will be shown
      */
     @Override
     public void showDetails(OCFile file) {
@@ -1166,13 +1336,14 @@ public class FileDisplayActivity extends HookActivity
 
     }
 
-
     @Override
     protected ServiceConnection newTransferenceServiceConnection() {
         return new ListServiceConnection();
     }
 
-    /** Defines callbacks for service binding, passed to bindService() */
+    /**
+     * Defines callbacks for service binding, passed to bindService()
+     */
     private class ListServiceConnection implements ServiceConnection {
 
         @Override
@@ -1189,7 +1360,7 @@ public class FileDisplayActivity extends HookActivity
                         if (!mWaitingToPreview.isDown()) {
                             requestForDownload();
                         }
-                }
+                    }
 
             } else if (component.equals(new ComponentName(FileDisplayActivity.this,
                     FileUploader.class))) {
@@ -1200,15 +1371,13 @@ public class FileDisplayActivity extends HookActivity
             }
             // a new chance to get the mDownloadBinder through
             // getFileDownloadBinder() - THIS IS A MESS
-            OCFileListFragment listOfFiles = getListOfFilesFragment(); 
+            OCFileListFragment listOfFiles = getListOfFilesFragment();
             if (listOfFiles != null) {
-                listOfFiles.listDirectory();
-                // TODO Enable when "On Device" is recovered ?
-                // listOfFiles.listDirectory(MainApp.getOnlyOnDevice());
+                listOfFiles.listDirectory(MainApp.getOnlyOnDevice());
             }
             FileFragment secondFragment = getSecondFragment();
             if (secondFragment != null && secondFragment instanceof FileDetailFragment) {
-                FileDetailFragment detailFragment = (FileDetailFragment)secondFragment;
+                FileDetailFragment detailFragment = (FileDetailFragment) secondFragment;
                 detailFragment.listenForTransferProgress();
                 detailFragment.updateFileDetails(false, false);
             }
@@ -1226,7 +1395,7 @@ public class FileDisplayActivity extends HookActivity
                 mUploaderBinder = null;
             }
         }
-    };    
+    }
 
     @Override
     public void onSavedCertificate() {
@@ -1250,77 +1419,55 @@ public class FileDisplayActivity extends HookActivity
     /**
      * Updates the view associated to the activity after the finish of some operation over files
      * in the current account.
-     * 
-     * @param operation     Removal operation performed.
-     * @param result        Result of the removal.
+     *
+     * @param operation Removal operation performed.
+     * @param result    Result of the removal.
      */
     @Override
     public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationResult result) {
         super.onRemoteOperationFinish(operation, result);
-        
+
         if (operation instanceof RemoveFileOperation) {
             onRemoveFileOperationFinish((RemoveFileOperation) operation, result);
 
         } else if (operation instanceof RenameFileOperation) {
-            onRenameFileOperationFinish((RenameFileOperation)operation, result);
+            onRenameFileOperationFinish((RenameFileOperation) operation, result);
 
         } else if (operation instanceof SynchronizeFileOperation) {
-            onSynchronizeFileOperationFinish((SynchronizeFileOperation)operation, result);
+            onSynchronizeFileOperationFinish((SynchronizeFileOperation) operation, result);
 
         } else if (operation instanceof CreateFolderOperation) {
-            onCreateFolderOperationFinish((CreateFolderOperation)operation, result);
-            
-        } else if (operation instanceof CreateShareOperation) {
-            onCreateShareOperationFinish((CreateShareOperation) operation, result);
-            
-        } else if (operation instanceof UnshareLinkOperation) {
-            onUnshareLinkOperationFinish((UnshareLinkOperation)operation, result);
-        
+            onCreateFolderOperationFinish((CreateFolderOperation) operation, result);
+
         } else if (operation instanceof MoveFileOperation) {
-            onMoveFileOperationFinish((MoveFileOperation)operation, result);
-        }
-        
-    }
+            onMoveFileOperationFinish((MoveFileOperation) operation, result);
 
-    
-    private void onCreateShareOperationFinish(CreateShareOperation operation,
-                                              RemoteOperationResult result) {
-        if (result.isSuccess()) {
-            refreshShowDetails();
-            refreshListOfFilesFragment();
+        } else if (operation instanceof CopyFileOperation) {
+            onCopyFileOperationFinish((CopyFileOperation) operation, result);
         }
-    }
 
-    
-    private void onUnshareLinkOperationFinish(UnshareLinkOperation operation,
-                                              RemoteOperationResult result) {
-        if (result.isSuccess()) {
-            refreshShowDetails();
-            refreshListOfFilesFragment();
-            
-        } else if (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
-            cleanSecondFragment();
-            refreshListOfFilesFragment();
-        }
     }
-    
+
     private void refreshShowDetails() {
         FileFragment details = getSecondFragment();
         if (details != null) {
             OCFile file = details.getFile();
             if (file != null) {
-                file = getStorageManager().getFileByPath(file.getRemotePath()); 
+                file = getStorageManager().getFileByPath(file.getRemotePath());
                 if (details instanceof PreviewMediaFragment) {
                     // Refresh  OCFile of the fragment
                     ((PreviewMediaFragment) details).updateFile(file);
+                } else if (details instanceof PreviewTextFragment) {
+                    // Refresh  OCFile of the fragment
+                    ((PreviewTextFragment) details).updateFile(file);
                 } else {
                     showDetails(file);
-                } 
+                }
             }
             invalidateOptionsMenu();
-        } 
+        }
     }
-    
+
     /**
      * Updates the view associated to the activity after the finish of an operation trying to
      * remove a file.
@@ -1330,24 +1477,22 @@ public class FileDisplayActivity extends HookActivity
      */
     private void onRemoveFileOperationFinish(RemoveFileOperation operation,
                                              RemoteOperationResult result) {
-        dismissLoadingDialog();
-        
         Toast msg = Toast.makeText(this,
                 ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
-                Toast.LENGTH_LONG); 
+                Toast.LENGTH_LONG);
         msg.show();
-        
+
         if (result.isSuccess()) {
             OCFile removedFile = operation.getFile();
             FileFragment second = getSecondFragment();
             if (second != null && removedFile.equals(second.getFile())) {
                 if (second instanceof PreviewMediaFragment) {
-                    ((PreviewMediaFragment)second).stopPreview(true);
+                    ((PreviewMediaFragment) second).stopPreview(true);
                 }
                 setFile(getStorageManager().getFileById(removedFile.getParentId()));
                 cleanSecondFragment();
             }
-            if (getStorageManager().getFileById(removedFile.getParentId()).equals(getCurrentDir())) {
+            if (getStorageManager().getFileById(removedFile.getParentId()).equals(getCurrentDir())){
                 refreshListOfFilesFragment();
             }
             invalidateOptionsMenu();
@@ -1358,34 +1503,54 @@ public class FileDisplayActivity extends HookActivity
             }
         }
     }
-    
-    
+
+
     /**
-     * Updates the view associated to the activity after the finish of an operation trying to move a 
+     * Updates the view associated to the activity after the finish of an operation trying to move a
      * file.
-     * 
-     * @param operation     Move operation performed.
-     * @param result        Result of the move operation.
+     *
+     * @param operation Move operation performed.
+     * @param result    Result of the move operation.
      */
     private void onMoveFileOperationFinish(MoveFileOperation operation,
                                            RemoteOperationResult result) {
         if (result.isSuccess()) {
-            dismissLoadingDialog();
             refreshListOfFilesFragment();
         } else {
-            dismissLoadingDialog();
             try {
-                Toast msg = Toast.makeText(FileDisplayActivity.this, 
-                        ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), 
-                        Toast.LENGTH_LONG); 
+                Toast msg = Toast.makeText(FileDisplayActivity.this,
+                        ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
+                        Toast.LENGTH_LONG);
                 msg.show();
 
             } catch (NotFoundException e) {
-                Log_OC.e(TAG, "Error while trying to show fail message " , e);
+                Log_OC.e(TAG, "Error while trying to show fail message ", e);
             }
         }
     }
 
+    /**
+     * Updates the view associated to the activity after the finish of an operation trying to copy a
+     * file.
+     *
+     * @param operation Copy operation performed.
+     * @param result    Result of the copy operation.
+     */
+    private void onCopyFileOperationFinish(CopyFileOperation operation, RemoteOperationResult result) {
+        if (result.isSuccess()) {
+            refreshListOfFilesFragment();
+        } else {
+            try {
+                Toast msg = Toast.makeText(FileDisplayActivity.this,
+                        ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
+                        Toast.LENGTH_LONG);
+                msg.show();
+
+            } catch (NotFoundException e) {
+                Log_OC.e(TAG, "Error while trying to show fail message ", e);
+            }
+        }
+    }
 
     /**
      * Updates the view associated to the activity after the finish of an operation trying to rename
@@ -1396,7 +1561,6 @@ public class FileDisplayActivity extends HookActivity
      */
     private void onRenameFileOperationFinish(RenameFileOperation operation,
                                              RemoteOperationResult result) {
-        dismissLoadingDialog();
         OCFile renamedFile = operation.getFile();
         if (result.isSuccess()) {
             FileFragment details = getSecondFragment();
@@ -1410,14 +1574,22 @@ public class FileDisplayActivity extends HookActivity
                         renamedFile.equals(details.getFile())) {
                     ((PreviewMediaFragment) details).updateFile(renamedFile);
                     if (PreviewMediaFragment.canBePreviewed(renamedFile)) {
-                        int position = ((PreviewMediaFragment)details).getPosition();
+                        int position = ((PreviewMediaFragment) details).getPosition();
                         startMediaPreview(renamedFile, position, true);
                     } else {
                         getFileOperationsHelper().openFile(renamedFile);
                     }
+                } else if (details instanceof PreviewTextFragment &&
+                        renamedFile.equals(details.getFile())) {
+                    ((PreviewTextFragment) details).updateFile(renamedFile);
+                    if (PreviewTextFragment.canBePreviewed(renamedFile)) {
+                        startTextPreview(renamedFile);
+                    } else {
+                        getFileOperationsHelper().openFile(renamedFile);
+                    }
                 }
             }
-            
+
             if (getStorageManager().getFileById(renamedFile.getParentId()).equals(getCurrentDir())){
                 refreshListOfFilesFragment();
             }
@@ -1425,9 +1597,9 @@ public class FileDisplayActivity extends HookActivity
         } else {
             Toast msg = Toast.makeText(this,
                     ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
-                    Toast.LENGTH_LONG); 
+                    Toast.LENGTH_LONG);
             msg.show();
-            
+
             if (result.isSslRecoverableException()) {
                 mLastSslUntrustedServerResult = result;
                 showUntrustedCertDialog(mLastSslUntrustedServerResult);
@@ -1442,6 +1614,7 @@ public class FileDisplayActivity extends HookActivity
                 OCFile syncedFile = operation.getLocalFile();
                 onTransferStateChanged(syncedFile, true, true);
                 invalidateOptionsMenu();
+                refreshShowDetails();
             }
         }
     }
@@ -1456,23 +1629,21 @@ public class FileDisplayActivity extends HookActivity
     private void onCreateFolderOperationFinish(CreateFolderOperation operation,
                                                RemoteOperationResult result) {
         if (result.isSuccess()) {
-            dismissLoadingDialog();
             refreshListOfFilesFragment();
         } else {
-            dismissLoadingDialog();
             try {
-                Toast msg = Toast.makeText(FileDisplayActivity.this, 
-                        ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), 
-                        Toast.LENGTH_LONG); 
+                Toast msg = Toast.makeText(FileDisplayActivity.this,
+                        ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
+                        Toast.LENGTH_LONG);
                 msg.show();
 
             } catch (NotFoundException e) {
-                Log_OC.e(TAG, "Error while trying to show fail message " , e);
+                Log_OC.e(TAG, "Error while trying to show fail message ", e);
             }
         }
     }
 
-    
+
     /**
      * {@inheritDoc}
      */
@@ -1483,16 +1654,16 @@ public class FileDisplayActivity extends HookActivity
         if (details != null && details instanceof FileDetailFragment &&
                 file.equals(details.getFile()) ) {
             if (downloading || uploading) {
-                ((FileDetailFragment)details).updateFileDetails(file, getAccount());
+                ((FileDetailFragment) details).updateFileDetails(file, getAccount());
             } else {
                 if (!file.fileExists()) {
                     cleanSecondFragment();
                 } else {
-                    ((FileDetailFragment)details).updateFileDetails(false, true);
+                    ((FileDetailFragment) details).updateFileDetails(false, true);
                 }
             }
         }
-            
+
     }
 
 
@@ -1521,31 +1692,65 @@ public class FileDisplayActivity extends HookActivity
         }
         return null;
     }
-    
-    public void startSyncFolderOperation(OCFile folder, boolean ignoreETag) {
-        long currentSyncTime = System.currentTimeMillis(); 
-        
-        mSyncInProgress = true;
-                
-        // perform folder synchronization
-        RemoteOperation synchFolderOp = new RefreshFolderOperation( folder,
-                currentSyncTime,
-                false,
-                getFileOperationsHelper().isSharedSupported(),
-                ignoreETag,
-                getStorageManager(),
-                getAccount(),
-                getApplicationContext()
+
+    /**
+     * Starts an operation to refresh the requested folder.
+     *
+     * The operation is run in a new background thread created on the fly.
+     *
+     * The refresh updates is a "light sync": properties of regular files in folder are updated (including
+     * associated shares), but not their contents. Only the contents of files marked to be kept-in-sync are
+     * synchronized too.
+     *
+     * @param folder        Folder to refresh.
+     * @param ignoreETag    If 'true', the data from the server will be fetched and sync'ed even if the eTag
+     *                      didn't change.
+     */
+    public void startSyncFolderOperation(final OCFile folder, final boolean ignoreETag) {
+
+        // the execution is slightly delayed to allow the activity get the window focus if it's being started
+        // or if the method is called from a dialog that is being dismissed
+        getHandler().postDelayed(
+                new Runnable() {
+                    @Override
+                    public void run() {
+                        if (hasWindowFocus()) {
+                            long currentSyncTime = System.currentTimeMillis();
+                            mSyncInProgress = true;
+
+                            // perform folder synchronization
+                            RemoteOperation synchFolderOp = new RefreshFolderOperation(folder,
+                                    currentSyncTime,
+                                    false,
+                                    getFileOperationsHelper().isSharedSupported(),
+                                    ignoreETag,
+                                    getStorageManager(),
+                                    getAccount(),
+                                    getApplicationContext()
+                            );
+                            synchFolderOp.execute(
+                                    getAccount(),
+                                    MainApp.getAppContext(),
+                                    FileDisplayActivity.this,
+                                    null,
+                                    null
+                            );
+
+                            mProgressBar.setIndeterminate(true);
+
+                            setBackgroundText();
+
+                        }   // else: NOTHING ; lets' not refresh when the user rotates the device but there is
+                        // another window floating over
+                    }
+                },
+                DELAY_TO_REQUEST_OPERATIONS_LATER
         );
-        synchFolderOp.execute(getAccount(), MainApp.getAppContext(), this, null, null);
-        
-        setSupportProgressBarIndeterminateVisibility(true);
 
-        setBackgroundText();
     }
 
     /**
-     * Show untrusted cert dialog 
+     * Show untrusted cert dialog
      */
     public void showUntrustedCertDialog(RemoteOperationResult result) {
         // Show a dialog with the certificate info
@@ -1555,7 +1760,7 @@ public class FileDisplayActivity extends HookActivity
         FragmentTransaction ft = fm.beginTransaction();
         dialog.show(ft, DIALOG_UNTRUSTED_CERT);
     }
-    
+
     private void requestForDownload(OCFile file) {
         Account account = getAccount();
         if (!mDownloaderBinder.isDownloading(account, mWaitingToPreview)) {
@@ -1565,43 +1770,42 @@ public class FileDisplayActivity extends HookActivity
             startService(i);
         }
     }
-    
-    private void sendDownloadedFile(){
+
+    private void sendDownloadedFile() {
         getFileOperationsHelper().sendDownloadedFile(mWaitingToSend);
         mWaitingToSend = null;
     }
 
-    
+
     /**
      * Requests the download of the received {@link OCFile} , updates the UI
      * to monitor the download progress and prepares the activity to send the file
      * when the download finishes.
-     * 
-     * @param file          {@link OCFile} to download and preview.
+     *
+     * @param file {@link OCFile} to download and preview.
      */
     public void startDownloadForSending(OCFile file) {
         mWaitingToSend = file;
         requestForDownload(mWaitingToSend);
-        boolean hasSecondFragment = (getSecondFragment()!= null);
+        boolean hasSecondFragment = (getSecondFragment() != null);
         updateFragmentsVisibility(hasSecondFragment);
     }
-    
+
     /**
      * Opens the image gallery showing the image {@link OCFile} received as parameter.
-     * 
-     * @param file                      Image {@link OCFile} to show.
+     *
+     * @param file Image {@link OCFile} to show.
      */
     public void startImagePreview(OCFile file) {
         Intent showDetailsIntent = new Intent(this, PreviewImageActivity.class);
         showDetailsIntent.putExtra(EXTRA_FILE, file);
         showDetailsIntent.putExtra(EXTRA_ACCOUNT, getAccount());
         startActivity(showDetailsIntent);
-        
     }
 
     /**
      * Stars the preview of an already down media {@link OCFile}.
-     * 
+     *
      * @param file                      Media {@link OCFile} to preview.
      * @param startPlaybackPosition     Media position where the playback will be started,
      *                                  in milliseconds.
@@ -1618,11 +1822,28 @@ public class FileDisplayActivity extends HookActivity
     }
 
     /**
+     * Stars the preview of a text file {@link OCFile}.
+     *
+     * @param file Text {@link OCFile} to preview.
+     */
+    public void startTextPreview(OCFile file) {
+        Bundle args = new Bundle();
+        args.putParcelable(EXTRA_FILE, file);
+        args.putParcelable(EXTRA_ACCOUNT, getAccount());
+        Fragment textPreviewFragment = Fragment.instantiate(getApplicationContext(),
+                PreviewTextFragment.class.getName(), args);
+        setSecondFragment(textPreviewFragment);
+        updateFragmentsVisibility(true);
+        //updateNavigationElementsInActionBar(file);
+        setFile(file);
+    }
+
+    /**
      * Requests the download of the received {@link OCFile} , updates the UI
      * to monitor the download progress and prepares the activity to preview
      * or open the file when the download finishes.
-     * 
-     * @param file          {@link OCFile} to download and preview.
+     *
+     * @param file {@link OCFile} to download and preview.
      */
     public void startDownloadForPreview(OCFile file) {
         Fragment detailFragment = FileDetailFragment.newInstance(file, getAccount());
@@ -1637,7 +1858,7 @@ public class FileDisplayActivity extends HookActivity
 
     public void cancelTransference(OCFile file) {
         getFileOperationsHelper().cancelTransference(file);
-        if (mWaitingToPreview != null && 
+        if (mWaitingToPreview != null &&
                 mWaitingToPreview.getRemotePath().equals(file.getRemotePath())) {
             mWaitingToPreview = null;
         }
@@ -1670,19 +1891,30 @@ public class FileDisplayActivity extends HookActivity
         }
     }
 
-    private void sortByDate(boolean ascending){
+    private void sortByDate(boolean ascending) {
         getListOfFilesFragment().sortByDate(ascending);
     }
 
-    private void sortBySize(boolean ascending){
+    private void sortBySize(boolean ascending) {
         getListOfFilesFragment().sortBySize(ascending);
     }
 
-    private void sortByName(boolean ascending){
+    private void sortByName(boolean ascending) {
         getListOfFilesFragment().sortByName(ascending);
     }
+    private boolean isGridView(){ return getListOfFilesFragment().isGridView(); }
+    private void switchToGridView() {
+        getListOfFilesFragment().switchToGridView();
+    }
+    private void switchToListView() {
+        getListOfFilesFragment().switchToListView();
+    }
 
    public void allFilesOption() {
        browseToRoot();
    }
+
+    public void refreshDirectory(){
+        getListOfFilesFragment().refreshDirectory();
+    }
 }
index a358f79..dc05de9 100644 (file)
@@ -38,8 +38,8 @@ import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.View.OnClickListener;
-import android.view.Window;
 import android.widget.Button;
+import android.widget.ProgressBar;
 import android.widget.Toast;
 
 import com.owncloud.android.R;
@@ -59,9 +59,10 @@ import com.owncloud.android.syncadapter.FileSyncAdapter;
 import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
 import com.owncloud.android.ui.fragment.FileFragment;
 import com.owncloud.android.ui.fragment.OCFileListFragment;
-import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ErrorMessageAdapter;
 
+import java.util.ArrayList;
+
 public class FolderPickerActivity extends FileActivity implements FileFragment.ContainerActivity, 
     OnClickListener, OnEnforceableRefreshListener {
 
@@ -69,6 +70,8 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
                                                             + ".EXTRA_FOLDER";
     public static final String EXTRA_FILE = UploadFilesActivity.class.getCanonicalName()
                                                             + ".EXTRA_FILE";
+    public static final String EXTRA_FILES = UploadFilesActivity.class.getCanonicalName()
+            + ".EXTRA_FILES";
     //TODO: Think something better
 
     private SyncBroadcastReceiver mSyncBroadcastReceiver;
@@ -81,12 +84,12 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
 
     protected Button mCancelBtn;
     protected Button mChooseBtn;
+    private ProgressBar mProgressBar;
 
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         Log_OC.d(TAG, "onCreate() start");
-        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
 
         super.onCreate(savedInstanceState); 
 
@@ -103,20 +106,23 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
         ActionBar actionBar = getSupportActionBar();
         actionBar.setDisplayShowTitleEnabled(true);
         actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
-        setSupportProgressBarIndeterminateVisibility(mSyncInProgress);
-            // always AFTER setContentView(...) ; to work around bug in its implementation
+
+        mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
+        mProgressBar.setIndeterminateDrawable(
+                getResources().getDrawable(
+                        R.drawable.actionbar_progress_indeterminate_horizontal));
+        mProgressBar.setIndeterminate(mSyncInProgress);
+        // always AFTER setContentView(...) ; to work around bug in its implementation
         
         // sets message for empty list of folders
         setBackgroundText();
 
         Log_OC.d(TAG, "onCreate() end");
-        
     }
 
     @Override
     protected void onStart() {
         super.onStart();
-        getSupportActionBar().setIcon(DisplayUtils.getSeasonalIconId());
     }
 
     /**
@@ -138,7 +144,7 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
             
             if (!stateWasRecovered) {
                 OCFileListFragment listOfFolders = getListOfFilesFragment(); 
-                listOfFolders.listDirectory(folder/*, false*/);
+                listOfFolders.listDirectory(folder, false);
                 
                 startSyncFolderOperation(folder, false);
             }
@@ -152,6 +158,7 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
         Bundle args = new Bundle();
         args.putBoolean(OCFileListFragment.ARG_JUST_FOLDERS, true);
         args.putBoolean(OCFileListFragment.ARG_ALLOW_CONTEXTUAL_ACTIONS, false);
+        args.putBoolean(OCFileListFragment.ARG_HIDE_FAB, true);
         listOfFiles.setArguments(args);
         FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
         transaction.add(R.id.fragment_container, listOfFiles, TAG_LIST_OF_FOLDERS);
@@ -217,8 +224,8 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
                                                                         getApplicationContext()
                                                                       );
         synchFolderOp.execute(getAccount(), this, null, null);
-        
-        setSupportProgressBarIndeterminateVisibility(true);
+
+        mProgressBar.setIndeterminate(true);
 
         setBackgroundText();
     }
@@ -260,7 +267,6 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
     public boolean onCreateOptionsMenu(Menu menu) {
         MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.main_menu, menu);
-        menu.findItem(R.id.action_upload).setVisible(false);
         menu.findItem(R.id.action_sort).setVisible(false);
         return true;
     }
@@ -307,9 +313,7 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
     protected void refreshListOfFilesFragment() {
         OCFileListFragment fileListFragment = getListOfFilesFragment();
         if (fileListFragment != null) {
-            fileListFragment.listDirectory();
-            // TODO Enable when "On Device" is recovered ?
-            // fileListFragment.listDirectory(false);
+            fileListFragment.listDirectory(false);
         }
     }
 
@@ -317,9 +321,7 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
         OCFileListFragment listOfFiles = getListOfFilesFragment(); 
         if (listOfFiles != null) {  // should never be null, indeed
             OCFile root = getStorageManager().getFileByPath(OCFile.ROOT_PATH);
-            listOfFiles.listDirectory(root);
-            // TODO Enable when "On Device" is recovered ?
-            // listOfFiles.listDirectory(root, false);
+            listOfFiles.listDirectory(root, false);
             setFile(listOfFiles.getCurrentFile());
             updateNavigationElementsInActionBar();
             startSyncFolderOperation(root, false);
@@ -347,9 +349,9 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
         actionBar.setDisplayHomeAsUpEnabled(!atRoot);
         actionBar.setHomeButtonEnabled(!atRoot);
         actionBar.setTitle(
-            atRoot 
-                ? getString(R.string.default_display_name_for_root_folder) 
-                : currentDir.getFileName()
+                atRoot
+                        ? getString(R.string.default_display_name_for_root_folder)
+                        : currentDir.getFileName()
         );
     }
 
@@ -370,12 +372,16 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
         } else if (v == mChooseBtn) {
             Intent i = getIntent();
             Parcelable targetFile = i.getParcelableExtra(FolderPickerActivity.EXTRA_FILE);
+            ArrayList<Parcelable> targetFiles = i.getParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES);
 
             Intent data = new Intent();
             data.putExtra(EXTRA_FOLDER, getCurrentFolder());
             if (targetFile != null) {
                 data.putExtra(EXTRA_FILE, targetFile);
             }
+            if (targetFiles != null){
+                data.putParcelableArrayListExtra(EXTRA_FILES, targetFiles);
+            }
             setResult(RESULT_OK, data);
             finish();
         }
@@ -387,7 +393,7 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
         super.onRemoteOperationFinish(operation, result);
         
         if (operation instanceof CreateFolderOperation) {
-            onCreateFolderOperationFinish((CreateFolderOperation)operation, result);
+            onCreateFolderOperationFinish((CreateFolderOperation) operation, result);
             
         }
     }
@@ -405,10 +411,8 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
             ) {
         
         if (result.isSuccess()) {
-            dismissLoadingDialog();
             refreshListOfFilesFragment();
         } else {
-            dismissLoadingDialog();
             try {
                 Toast msg = Toast.makeText(FolderPickerActivity.this, 
                         ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), 
@@ -471,9 +475,7 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
                                     equals(synchFolderRemotePath)) {
                                 OCFileListFragment fileListFragment = getListOfFilesFragment();
                                 if (fileListFragment != null) {
-                                    fileListFragment.listDirectory(currentDir);
-                                    // TODO Enable when "On Device" is recovered ?
-                                    // fileListFragment.listDirectory(currentDir, false);
+                                    fileListFragment.listDirectory(currentDir, false);
                                 }
                             }
                             setFile(currentFile);
@@ -522,10 +524,10 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
                     }
                     removeStickyBroadcast(intent);
                     Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
-                    setSupportProgressBarIndeterminateVisibility(mSyncInProgress /*|| mRefreshSharesInProgress*/);
+
+                    mProgressBar.setIndeterminate(mSyncInProgress);
 
                     setBackgroundText();
-                        
                 }
                 
             } catch (RuntimeException e) {
@@ -539,9 +541,9 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
     
 
     /**
-     * Shows the information of the {@link OCFile} received as a 
+     * Shows the information of the {@link OCFile} received as a
      * parameter in the second fragment.
-     * 
+     *
      * @param file          {@link OCFile} whose details will be shown
      */
     @Override
index fab638d..a0c9d5e 100644 (file)
@@ -25,8 +25,7 @@ import java.util.ArrayList;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.ActionBarActivity;
+import android.support.v7.app.AppCompatActivity;
 import android.text.method.ScrollingMovementMethod;
 import android.view.View;
 import android.view.ViewGroup;
@@ -45,7 +44,7 @@ import com.owncloud.android.utils.DisplayUtils;
  * Added to show explanations for notifications when the user clicks on them, and there no place
  * better to show them.
  */
-public class GenericExplanationActivity  extends ActionBarActivity {
+public class GenericExplanationActivity  extends AppCompatActivity {
 
     public static final String EXTRA_LIST = GenericExplanationActivity.class.getCanonicalName() +
             ".EXTRA_LIST";
@@ -81,9 +80,6 @@ public class GenericExplanationActivity  extends ActionBarActivity {
         } else {
             listView.setVisibility(View.GONE);
         }
-        
-        ActionBar actionBar = getSupportActionBar();
-        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
     }
     
     public class ExplanationListAdapterView extends ArrayAdapter<String> {
diff --git a/src/com/owncloud/android/ui/activity/LocalDirectorySelectorActivity.java b/src/com/owncloud/android/ui/activity/LocalDirectorySelectorActivity.java
new file mode 100644 (file)
index 0000000..ad75ab8
--- /dev/null
@@ -0,0 +1,55 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author Bartosz Przybylski
+ *   Copyright (C) 2015 ownCloud Inc.
+ *   Copyright (C) 2015 Bartosz Przybylski
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package com.owncloud.android.ui.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+
+import com.owncloud.android.R;
+
+/**
+ * Created by Bartosz Przybylski on 07.11.2015.
+ */
+public class LocalDirectorySelectorActivity extends UploadFilesActivity {
+
+       @Override
+       public void onCreate(Bundle savedInstanceState) {
+               super.onCreate(savedInstanceState);
+               mUploadBtn.setText(R.string.folder_picker_choose_button_text);
+               mRadioBtnCopyFiles.setVisibility(View.GONE);
+               mRadioBtnMoveFiles.setVisibility(View.GONE);
+       }
+
+       @Override
+       public void onClick(View v) {
+               if (v.getId() == R.id.upload_files_btn_cancel) {
+                       setResult(RESULT_CANCELED);
+                       finish();
+
+               } else if (v.getId() == R.id.upload_files_btn_upload) {
+                       Intent resultIntent = new Intent();
+                       resultIntent.putExtra(EXTRA_CHOSEN_FILES, getInitialDirectory().getAbsolutePath());
+                       setResult(RESULT_OK, resultIntent);
+                       finish();
+               }
+       }
+}
index 71b9d57..3ca5b2c 100644 (file)
@@ -35,8 +35,7 @@ import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.ActionBarActivity;
+import android.support.v7.app.AppCompatActivity;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.View.OnClickListener;
@@ -51,7 +50,7 @@ import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.FileStorageUtils;
 
 
-public class LogHistoryActivity extends ActionBarActivity {
+public class LogHistoryActivity extends AppCompatActivity {
 
     private static final String MAIL_ATTACHMENT_TYPE = "text/plain";
 
@@ -72,9 +71,7 @@ public class LogHistoryActivity extends ActionBarActivity {
 
         setContentView(R.layout.log_send_file);
         setTitle(getText(R.string.actionbar_logger));
-        ActionBar actionBar = getSupportActionBar();
-        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
-        actionBar.setDisplayHomeAsUpEnabled(true);
+        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
         Button deleteHistoryButton = (Button) findViewById(R.id.deleteLogHistoryButton);
         Button sendHistoryButton = (Button) findViewById(R.id.sendLogHistoryButton);
         TextView logTV = (TextView) findViewById(R.id.logTV);
index 09a9630..d06306b 100644 (file)
@@ -24,11 +24,11 @@ package com.owncloud.android.ui.activity;
 
 import java.util.Arrays;
 
+import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.ActionBarActivity;
+import android.support.v7.app.AppCompatActivity;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.view.KeyEvent;
@@ -41,25 +41,23 @@ import android.widget.Toast;
 
 import com.owncloud.android.R;
 import com.owncloud.android.lib.common.utils.Log_OC;
-import com.owncloud.android.utils.DisplayUtils;
-
-public class PassCodeActivity extends ActionBarActivity {
 
+public class PassCodeActivity extends AppCompatActivity {
 
     private static final String TAG = PassCodeActivity.class.getSimpleName();
 
-    public final static String ACTION_ENABLE = PassCodeActivity.class.getCanonicalName() +
-            ".ENABLE";
-    public final static String ACTION_DISABLE = PassCodeActivity.class.getCanonicalName() +
-            ".DISABLE";
-    public final static String ACTION_REQUEST = PassCodeActivity.class.getCanonicalName()  +
-            ".REQUEST";
+    public final static String ACTION_REQUEST_WITH_RESULT = "ACTION_REQUEST_WITH_RESULT";
+    public final static String ACTION_CHECK_WITH_RESULT = "ACTION_CHECK_WITH_RESULT";
+    public final static String ACTION_CHECK = "ACTION_CHECK";
+
+    public final static String KEY_PASSCODE  = "KEY_PASSCODE";
+    public final static String KEY_CHECK_RESULT = "KEY_CHECK_RESULT";
 
     private Button mBCancel;
     private TextView mPassCodeHdr;
     private TextView mPassCodeHdrExplanation;
     private EditText[] mPassCodeEditTexts = new EditText[4];
-    
+
     private String [] mPassCodeDigits = {"","","",""};
     private static String KEY_PASSCODE_DIGITS = "PASSCODE_DIGITS";
     private boolean mConfirmingPassCode = false;
@@ -91,13 +89,13 @@ public class PassCodeActivity extends ActionBarActivity {
         mPassCodeEditTexts[2] = (EditText) findViewById(R.id.txt2);
         mPassCodeEditTexts[3] = (EditText) findViewById(R.id.txt3);
 
-        if (ACTION_REQUEST.equals(getIntent().getAction())) {
+        if (ACTION_CHECK.equals(getIntent().getAction())) {
             /// this is a pass code request; the user has to input the right value
             mPassCodeHdr.setText(R.string.pass_code_enter_pass_code);
             mPassCodeHdrExplanation.setVisibility(View.INVISIBLE);
             setCancelButtonEnabled(false);      // no option to cancel
 
-        } else if (ACTION_ENABLE.equals(getIntent().getAction())) {
+        } else if (ACTION_REQUEST_WITH_RESULT.equals(getIntent().getAction())) {
             if (savedInstanceState != null) {
                 mConfirmingPassCode = savedInstanceState.getBoolean(PassCodeActivity.KEY_CONFIRMING_PASSCODE);
                 mPassCodeDigits = savedInstanceState.getStringArray(PassCodeActivity.KEY_PASSCODE_DIGITS);
@@ -115,7 +113,7 @@ public class PassCodeActivity extends ActionBarActivity {
                 setCancelButtonEnabled(true);
             }
 
-        } else if (ACTION_DISABLE.equals(getIntent().getAction())) {
+        } else if (ACTION_CHECK_WITH_RESULT.equals(getIntent().getAction())) {
             /// pass code preference has just been disabled in Preferences;
             // will confirm user knows pass code, then remove it
             mPassCodeHdr.setText(R.string.pass_code_remove_your_pass_code);
@@ -128,9 +126,6 @@ public class PassCodeActivity extends ActionBarActivity {
         }
 
         setTextListeners();
-        
-        ActionBar actionBar = getSupportActionBar();
-        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
     }
 
 
@@ -290,7 +285,7 @@ public class PassCodeActivity extends ActionBarActivity {
      * the previously typed pass code, if any.
      */
     private void processFullPassCode() {
-        if (ACTION_REQUEST.equals(getIntent().getAction())) {
+        if (ACTION_CHECK.equals(getIntent().getAction())) {
             if (checkPassCode()) {
                 /// pass code accepted in request, user is allowed to access the app
                 finish();
@@ -300,24 +295,20 @@ public class PassCodeActivity extends ActionBarActivity {
                         View.INVISIBLE);
             }
 
-        } else if (ACTION_DISABLE.equals(getIntent().getAction())) {
+        } else if (ACTION_CHECK_WITH_RESULT.equals(getIntent().getAction())) {
             if (checkPassCode()) {
-                /// pass code accepted when disabling, pass code is removed
-                SharedPreferences.Editor appPrefs = PreferenceManager
-                        .getDefaultSharedPreferences(getApplicationContext()).edit();
-                appPrefs.putBoolean("set_pincode", false);  // TODO remove; this should be
-                // unnecessary, was done before entering in the activity
-                appPrefs.commit();
-
-                Toast.makeText(PassCodeActivity.this, R.string.pass_code_removed, Toast.LENGTH_LONG).show();
-                finish();
 
+                Intent resultIntent = new Intent();
+                resultIntent.putExtra(KEY_CHECK_RESULT, true);
+                setResult(RESULT_OK, resultIntent);
+
+                finish();
             } else {
                 showErrorAndRestart(R.string.pass_code_wrong, R.string.pass_code_enter_pass_code,
                         View.INVISIBLE);
             }
 
-        } else if (ACTION_ENABLE.equals(getIntent().getAction())) {
+        } else if (ACTION_REQUEST_WITH_RESULT.equals(getIntent().getAction())) {
             /// enabling pass code
             if (!mConfirmingPassCode) {
                 requestPassCodeConfirmation();
@@ -409,7 +400,7 @@ public class PassCodeActivity extends ActionBarActivity {
 
     /**
      * Overrides click on the BACK arrow to correctly cancel ACTION_ENABLE or ACTION_DISABLE, while
-     * preventing than ACTION_REQUEST may be worked around.
+     * preventing than ACTION_CHECK may be worked around.
      *
      * @param keyCode       Key code of the key that triggered the down event.
      * @param event         Event triggered.
@@ -418,8 +409,8 @@ public class PassCodeActivity extends ActionBarActivity {
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event){
         if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()== 0){
-            if (ACTION_ENABLE.equals(getIntent().getAction()) ||
-                    ACTION_DISABLE.equals(getIntent().getAction())) {
+            if (ACTION_REQUEST_WITH_RESULT.equals(getIntent().getAction()) ||
+                    ACTION_CHECK_WITH_RESULT.equals(getIntent().getAction())) {
                 revertActionAndExit();
             }
             return true;
@@ -433,16 +424,12 @@ public class PassCodeActivity extends ActionBarActivity {
     protected void savePassCodeAndExit() {
         SharedPreferences.Editor appPrefs = PreferenceManager
                 .getDefaultSharedPreferences(getApplicationContext()).edit();
-        
-        appPrefs.putString("PrefPinCode1", mPassCodeDigits[0]);
-        appPrefs.putString("PrefPinCode2", mPassCodeDigits[1]);
-        appPrefs.putString("PrefPinCode3", mPassCodeDigits[2]);
-        appPrefs.putString("PrefPinCode4", mPassCodeDigits[3]);
-        appPrefs.putBoolean("set_pincode", true);    /// TODO remove; unnecessary,
-                                                     // Preferences did it before entering here
-        appPrefs.commit();
-
-        Toast.makeText(this, R.string.pass_code_stored, Toast.LENGTH_LONG).show();
+
+        Intent resultIntent = new Intent();
+        resultIntent.putExtra(KEY_PASSCODE,
+                mPassCodeDigits[0] + mPassCodeDigits[1] + mPassCodeDigits[2] + mPassCodeDigits[3]);
+
+        setResult(RESULT_OK, resultIntent);
         finish();
     }
 
@@ -473,7 +460,6 @@ public class PassCodeActivity extends ActionBarActivity {
         outState.putStringArray(PassCodeActivity.KEY_PASSCODE_DIGITS, mPassCodeDigits);
     }
 
-
     private class PassCodeDigitTextWatcher implements TextWatcher {
 
         private int mIndex = -1;
@@ -540,5 +526,4 @@ public class PassCodeActivity extends ActionBarActivity {
 
     }
 
-
 }
index ca7f887..d7288c9 100644 (file)
@@ -32,9 +32,11 @@ import android.content.ServiceConnection;
 import android.content.SharedPreferences;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.Configuration;
 import android.net.Uri;
-import android.os.Build;
+import android.os.AsyncTask;
 import android.os.Bundle;
+import android.os.Environment;
 import android.os.Handler;
 import android.os.IBinder;
 import android.preference.CheckBoxPreference;
@@ -44,17 +46,25 @@ import android.preference.Preference.OnPreferenceClickListener;
 import android.preference.PreferenceActivity;
 import android.preference.PreferenceCategory;
 import android.preference.PreferenceManager;
-//import android.support.v7.app.ActionBar;
-import android.app.ActionBar;
+import android.support.annotation.LayoutRes;
+import android.support.annotation.Nullable;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AlertDialog;
+import android.support.v7.app.AppCompatDelegate;
+import android.support.v7.widget.Toolbar;
 import android.view.ContextMenu;
 import android.view.ContextMenu.ContextMenuInfo;
 import android.view.Menu;
+import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemLongClickListener;
+import android.widget.ArrayAdapter;
 import android.widget.ListAdapter;
 import android.widget.ListView;
+import android.widget.Toast;
 
 import com.owncloud.android.BuildConfig;
 import com.owncloud.android.MainApp;
@@ -63,18 +73,31 @@ import com.owncloud.android.authentication.AccountUtils;
 import com.owncloud.android.authentication.AuthenticatorActivity;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.datamodel.ThumbnailsCacheManager;
 import com.owncloud.android.db.DbHandler;
 import com.owncloud.android.files.FileOperationsHelper;
 import com.owncloud.android.files.services.FileDownloader;
 import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.services.OperationsService;
+import com.owncloud.android.ui.PreferenceWithLongSummary;
 import com.owncloud.android.ui.RadioButtonPreference;
 import com.owncloud.android.utils.DisplayUtils;
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.concurrent.ExecutionException;
+import java.io.File;
+
 
 /**
  * An Activity that allows the user to change the application's settings.
+ *
+ * It proxies the necessary calls via {@link android.support.v7.app.AppCompatDelegate} to be used
+ * with AppCompat.
  */
 public class Preferences extends PreferenceActivity
         implements AccountManagerCallback<Boolean>, ComponentsGetter {
@@ -83,10 +106,15 @@ public class Preferences extends PreferenceActivity
 
     private static final int ACTION_SELECT_UPLOAD_PATH = 1;
     private static final int ACTION_SELECT_UPLOAD_VIDEO_PATH = 2;
+    private static final int ACTION_REQUEST_PASSCODE = 5;
+    private static final int ACTION_CONFIRM_PASSCODE = 6;
+    private static final int ACTION_SELECT_STORAGE_PATH = 3;
+    private static final int ACTION_PERFORM_MIGRATION = 4;
 
     private DbHandler mDbHandler;
     private CheckBoxPreference pCode;
     private Preference pAboutApp;
+    private AppCompatDelegate mDelegate;
 
     private PreferenceCategory mAccountsPrefCategory = null;
     private final Handler mHandler = new Handler();
@@ -95,6 +123,7 @@ public class Preferences extends PreferenceActivity
     private String mUploadPath;
     private PreferenceCategory mPrefInstantUploadCategory;
     private Preference mPrefInstantUpload;
+    private Preference mPrefInstantUploadBehaviour;
     private Preference mPrefInstantUploadPath;
     private Preference mPrefInstantUploadPathWiFi;
     private Preference mPrefInstantVideoUpload;
@@ -105,27 +134,22 @@ public class Preferences extends PreferenceActivity
     protected FileDownloader.FileDownloaderBinder mDownloaderBinder = null;
     protected FileUploader.FileUploaderBinder mUploaderBinder = null;
     private ServiceConnection mDownloadServiceConnection, mUploadServiceConnection = null;
+    private PreferenceWithLongSummary mPrefStoragePath;
+    private String mStoragePath;
+
 
     @SuppressWarnings("deprecation")
     @Override
     public void onCreate(Bundle savedInstanceState) {
+        getDelegate().installViewFactory();
+        getDelegate().onCreate(savedInstanceState);
         super.onCreate(savedInstanceState);
         mDbHandler = new DbHandler(getBaseContext());
         addPreferencesFromResource(R.xml.preferences);
 
-        // Set properties of Action Bar in an ugly workaround to build correctly without
-        // upgrading minSdk
-        // TODO : increase minSdk; scheduled for next realease, don't wont to mix with this US
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
-            ActionBar actionBar = getActionBar();
-            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
-                actionBar.setIcon(DisplayUtils.getSeasonalIconId());
-            }
-            actionBar.setDisplayHomeAsUpEnabled(true);
-            actionBar.setTitle(R.string.actionbar_settings);
-        } else {
-            setTitle(R.string.actionbar_settings);
-        }
+        ActionBar actionBar = getSupportActionBar();
+        actionBar.setDisplayHomeAsUpEnabled(true);
+        actionBar.setTitle(R.string.actionbar_settings);
 
         // For adding content description tag to a title field in the action bar
         int actionBarTitleId = getResources().getIdentifier("action_bar_title", "id", "android");
@@ -150,7 +174,49 @@ public class Preferences extends PreferenceActivity
                     mShowContextMenu = true;
                     mAccountName = ((RadioButtonPreference) obj).getKey();
 
-                    Preferences.this.openContextMenu(listView);
+                    String[] items = {
+                            getResources().getString(R.string.change_password),
+                            getResources().getString(R.string.delete_account)
+                    };
+                    final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Preferences.this);
+                    View convertView = getLayoutInflater().inflate(R.layout.alert_dialog_list_view, null);
+                    alertDialogBuilder.setView(convertView);
+                    ListView lv = (ListView) convertView.findViewById(R.id.list);
+                    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
+                            Preferences.this,R.layout.simple_dialog_list_item,items);
+                    lv.setAdapter(adapter);
+
+                    //Setup proper inline listener
+                    final AlertDialog alertDialog = alertDialogBuilder.create();
+                    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+                        @Override
+                        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                            AccountManager am = (AccountManager) getSystemService(ACCOUNT_SERVICE);
+                            Account accounts[] = am.getAccountsByType(MainApp.getAccountType());
+                            for (Account a : accounts) {
+                                if (a.name.equals(mAccountName)) {
+                                    if (position==0) {
+
+                                        // Change account password
+                                        Intent updateAccountCredentials = new Intent(Preferences.this, AuthenticatorActivity.class);
+                                        updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, a);
+                                        updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACTION,
+                                                AuthenticatorActivity.ACTION_UPDATE_TOKEN);
+                                        startActivity(updateAccountCredentials);
+                                        alertDialog.cancel();
+                                        
+                                    } else if (position==1) {
+
+                                        // Remove account
+                                        am.removeAccount(a, Preferences.this, mHandler);
+                                        Log_OC.d(TAG, "Remove an account " + a.name);
+                                        alertDialog.cancel();
+                                    }
+                                }
+                            }
+                        }
+                    });
+                    alertDialog.show();
 
                     View.OnLongClickListener longListener = (View.OnLongClickListener) obj;
                     return longListener.onLongClick(view);
@@ -174,28 +240,53 @@ public class Preferences extends PreferenceActivity
         registerForContextMenu(getListView());
 
         pCode = (CheckBoxPreference) findPreference("set_pincode");
-        if (pCode != null){
+        if (pCode != null) {
             pCode.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
                 @Override
                 public boolean onPreferenceChange(Preference preference, Object newValue) {
                     Intent i = new Intent(getApplicationContext(), PassCodeActivity.class);
-                    Boolean enable = (Boolean) newValue;
+                    Boolean incoming = (Boolean) newValue;
+
                     i.setAction(
-                            enable.booleanValue() ? PassCodeActivity.ACTION_ENABLE :
-                                    PassCodeActivity.ACTION_DISABLE
+                            incoming.booleanValue() ? PassCodeActivity.ACTION_REQUEST_WITH_RESULT :
+                                    PassCodeActivity.ACTION_CHECK_WITH_RESULT
                     );
-                    startActivity(i);
-                    
-                    return true;
+
+                    startActivityForResult(i, incoming.booleanValue() ? ACTION_REQUEST_PASSCODE :
+                            ACTION_CONFIRM_PASSCODE);
+
+                    // Don't update just yet, we will decide on it in onActivityResult
+                    return false;
                 }
-            });            
+            });
             
         }
 
+        final Preference pCacheSize = findPreference("pref_cache_size");
+        if (pCacheSize != null){
+            final SharedPreferences appPrefs =
+                    PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
+            Long cacheSize = ThumbnailsCacheManager.getMaxSize();
+            pCacheSize.setSummary(cacheSize + " Mb");
+            pCacheSize.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+                @Override
+                public boolean onPreferenceChange(Preference preference, Object newValue) {
+                    int size = Integer.decode((String) newValue);
+                    if (ThumbnailsCacheManager.setMaxSize(size)){
+                        appPrefs.edit().putInt("pref_cache_size", size);
+                        pCacheSize.setSummary(size + " MB");
+                        return true;
+                    } else {
+                        return false;
+                    }
+                }
+            });
+        }
+
         PreferenceCategory preferenceCategory = (PreferenceCategory) findPreference("more");
         
         boolean helpEnabled = getResources().getBoolean(R.bool.help_enabled);
-        Preference pHelp =  findPreference("help");
+        Preference pHelp = findPreference("help");
         if (pHelp != null ){
             if (helpEnabled) {
                 pHelp.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@@ -217,7 +308,7 @@ public class Preferences extends PreferenceActivity
         }
 
         if (BuildConfig.DEBUG) {
-            Preference pLog =  findPreference("log");
+            Preference pLog = findPreference("log");
             if (pLog != null ){
                 pLog.setOnPreferenceClickListener(new OnPreferenceClickListener() {
                     @Override
@@ -260,7 +351,7 @@ public class Preferences extends PreferenceActivity
                         intent.putExtra(Intent.EXTRA_TEXT, recommendText);
                         startActivity(intent);
 
-                        return(true);
+                        return true;
 
                     }
                 });
@@ -277,9 +368,10 @@ public class Preferences extends PreferenceActivity
                 pFeedback.setOnPreferenceClickListener(new OnPreferenceClickListener() {
                     @Override
                     public boolean onPreferenceClick(Preference preference) {
-                        String feedbackMail   =(String) getText(R.string.mail_feedback);
-                        String feedback   =(String) getText(R.string.prefs_feedback) + " - android v" + appVersion;
-                        Intent intent = new Intent(Intent.ACTION_SENDTO); 
+                        String feedbackMail = (String) getText(R.string.mail_feedback);
+                        String feedback     = String.format("%s - android v%s", getText(R.string.prefs_feedback),  appVersion);
+                        Intent intent       = new Intent(Intent.ACTION_SENDTO);
+
                         intent.setType("text/plain");
                         intent.putExtra(Intent.EXTRA_SUBJECT, feedback);
                         
@@ -318,7 +410,29 @@ public class Preferences extends PreferenceActivity
             }
         }
 
-        mPrefInstantUploadPath =  findPreference("instant_upload_path");
+        mPrefStoragePath =  (PreferenceWithLongSummary)findPreference("storage_path");
+        if (mPrefStoragePath != null) {
+
+            mPrefStoragePath.setOnPreferenceClickListener(new OnPreferenceClickListener() {
+                @Override
+                public boolean onPreferenceClick(Preference preference) {
+                    Intent intent = new Intent(Preferences.this, LocalDirectorySelectorActivity.class);
+                    intent.putExtra(UploadFilesActivity.KEY_DIRECTORY_PATH, mStoragePath);
+                    startActivityForResult(intent, ACTION_SELECT_STORAGE_PATH);
+                    return true;
+                }
+            });
+
+            mPrefStoragePath.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+                    @Override
+                    public boolean onPreferenceChange(Preference preference, Object newValue) {
+                        MainApp.setStoragePath((String) newValue);
+                        return true;
+                    }
+                });
+        }
+
+        mPrefInstantUploadPath = (PreferenceWithLongSummary)findPreference("instant_upload_path");
         if (mPrefInstantUploadPath != null){
 
             mPrefInstantUploadPath.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@@ -338,7 +452,7 @@ public class Preferences extends PreferenceActivity
         mPrefInstantUploadCategory =
                 (PreferenceCategory) findPreference("instant_uploading_category");
         
-        mPrefInstantUploadPathWiFi =  findPreference("instant_upload_on_wifi");
+        mPrefInstantUploadPathWiFi = findPreference("instant_upload_on_wifi");
         mPrefInstantUpload = findPreference("instant_uploading");
         
         toggleInstantPictureOptions(((CheckBoxPreference) mPrefInstantUpload).isChecked());
@@ -348,6 +462,9 @@ public class Preferences extends PreferenceActivity
             @Override
             public boolean onPreferenceChange(Preference preference, Object newValue) {
                 toggleInstantPictureOptions((Boolean) newValue);
+                toggleInstantUploadBehaviour(
+                        ((CheckBoxPreference)mPrefInstantVideoUpload).isChecked(),
+                        (Boolean) newValue);
                 return true;
             }
         });
@@ -375,22 +492,38 @@ public class Preferences extends PreferenceActivity
         toggleInstantVideoOptions(((CheckBoxPreference) mPrefInstantVideoUpload).isChecked());
         
         mPrefInstantVideoUpload.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
-            
+
             @Override
             public boolean onPreferenceChange(Preference preference, Object newValue) {
                 toggleInstantVideoOptions((Boolean) newValue);
+                toggleInstantUploadBehaviour(
+                        (Boolean) newValue,
+                        ((CheckBoxPreference) mPrefInstantUpload).isChecked());
                 return true;
             }
         });
-            
+
+        mPrefInstantUploadBehaviour = findPreference("prefs_instant_behaviour");
+        toggleInstantUploadBehaviour(
+                ((CheckBoxPreference)mPrefInstantVideoUpload).isChecked(),
+                ((CheckBoxPreference)mPrefInstantUpload).isChecked());
+
         /* About App */
-       pAboutApp = (Preference) findPreference("about_app");
+       pAboutApp = findPreference("about_app");
        if (pAboutApp != null) { 
-               pAboutApp.setTitle(String.format(getString(R.string.about_android), getString(R.string.app_name)));
-               pAboutApp.setSummary(String.format(getString(R.string.about_version), appVersion));
+               pAboutApp.setTitle(String.format(getString(R.string.about_android),
+                                                getString(R.string.app_name)));
+           try {
+               Integer currentVersion = getPackageManager().getPackageInfo
+                  (getPackageName(), 0).versionCode;
+               pAboutApp.setSummary(String.format(getString(R.string.about_version),
+                                    currentVersion));
+           } catch (NameNotFoundException e) {
+           }
        }
 
        loadInstantUploadPath();
+       loadStoragePath();
        loadInstantUploadVideoPath();
 
         /* ComponentsGetter */
@@ -405,6 +538,65 @@ public class Preferences extends PreferenceActivity
                     Context.BIND_AUTO_CREATE);
         }
 
+        /* Link to Beta apks */
+        Preference pBetaLink =  findPreference("beta_link");
+        if (pBetaLink != null ){
+            pBetaLink.setOnPreferenceClickListener(new OnPreferenceClickListener() {
+                @Override
+                public boolean onPreferenceClick(Preference preference) {
+                    Integer latestVersion = -1;
+                    Integer currentVersion = -1;
+                    try {
+                        currentVersion = getPackageManager().getPackageInfo
+                                                 (getPackageName(), 0).versionCode;
+                        LoadingVersionNumberTask loadTask = new LoadingVersionNumberTask();
+                        loadTask.execute();
+                        latestVersion = loadTask.get();
+                    } catch (InterruptedException | ExecutionException e) {
+                        e.printStackTrace();
+                    } catch (NameNotFoundException e) {
+                        e.printStackTrace();
+                    }
+                    if (latestVersion == -1 || currentVersion == -1) {
+                        Toast.makeText(getApplicationContext(), "No information available!",
+                                       Toast.LENGTH_SHORT).show();
+                    }
+                    if (latestVersion > currentVersion) {
+                        String betaLinkWeb = (String) getText(R.string.beta_link) +
+                                                              latestVersion + ".apk";
+                        if (betaLinkWeb != null && betaLinkWeb.length() > 0) {
+                            Uri uriUrl = Uri.parse(betaLinkWeb);
+                            Intent intent = new Intent(Intent.ACTION_VIEW, uriUrl);
+                            startActivity(intent);
+                            return true;
+                        }
+                    } else {
+                        Toast.makeText(getApplicationContext(), "No new version available!",
+                                       Toast.LENGTH_SHORT).show();
+                        return true;
+                    }
+                    return true;
+                }
+            });
+        }
+
+        /* Link to Beta apks */
+        Preference pChangelogLink =  findPreference("changelog_link");
+        if (pChangelogLink != null) {
+            pChangelogLink.setOnPreferenceClickListener(new OnPreferenceClickListener() {
+                @Override
+                public boolean onPreferenceClick(Preference preference) {
+                    String betaLinkWeb = getString(R.string.changelog);
+                    if (betaLinkWeb != null && betaLinkWeb.length() > 0) {
+                        Uri uriUrl = Uri.parse(betaLinkWeb);
+                        Intent intent = new Intent(Intent.ACTION_VIEW, uriUrl);
+                        startActivity(intent);
+                        return true;
+                    }
+                    return true;
+                }
+            });
+        }
     }
     
     private void toggleInstantPictureOptions(Boolean value){
@@ -412,8 +604,8 @@ public class Preferences extends PreferenceActivity
             mPrefInstantUploadCategory.addPreference(mPrefInstantUploadPathWiFi);
             mPrefInstantUploadCategory.addPreference(mPrefInstantUploadPath);
         } else {
-            mPrefInstantUploadCategory.removePreference(mPrefInstantUploadPathWiFi);
-            mPrefInstantUploadCategory.removePreference(mPrefInstantUploadPath);
+//            mPrefInstantUploadCategory.removePreference(mPrefInstantUploadPathWiFi);
+//            mPrefInstantUploadCategory.removePreference(mPrefInstantUploadPath);
         }
     }
     
@@ -422,8 +614,16 @@ public class Preferences extends PreferenceActivity
             mPrefInstantUploadCategory.addPreference(mPrefInstantVideoUploadPathWiFi);
             mPrefInstantUploadCategory.addPreference(mPrefInstantVideoUploadPath);
         } else {
-            mPrefInstantUploadCategory.removePreference(mPrefInstantVideoUploadPathWiFi);
-            mPrefInstantUploadCategory.removePreference(mPrefInstantVideoUploadPath);
+//            mPrefInstantUploadCategory.removePreference(mPrefInstantVideoUploadPathWiFi);
+//            mPrefInstantUploadCategory.removePreference(mPrefInstantVideoUploadPath);
+        }
+    }
+
+    private void toggleInstantUploadBehaviour(Boolean video, Boolean picture){
+        if (picture || video){
+            mPrefInstantUploadCategory.addPreference(mPrefInstantUploadBehaviour);
+        } else {
+            mPrefInstantUploadCategory.removePreference(mPrefInstantUploadBehaviour);
         }
     }
 
@@ -439,40 +639,6 @@ public class Preferences extends PreferenceActivity
         super.onCreateContextMenu(menu, v, menuInfo);
     }
 
-    /**
-     * Called when the user clicked on an item into the context menu created at
-     * {@link #onCreateContextMenu(ContextMenu, View, ContextMenuInfo)} for
-     * every ownCloud {@link Account} , containing 'secondary actions' for them.
-     * 
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean onContextItemSelected(android.view.MenuItem item) {
-        AccountManager am = (AccountManager) getSystemService(ACCOUNT_SERVICE);
-        Account accounts[] = am.getAccountsByType(MainApp.getAccountType());
-        for (Account a : accounts) {
-            if (a.name.equals(mAccountName)) {
-                if (item.getItemId() == R.id.change_password) {
-
-                    // Change account password
-                    Intent updateAccountCredentials = new Intent(this, AuthenticatorActivity.class);
-                    updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, a);
-                    updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACTION,
-                            AuthenticatorActivity.ACTION_UPDATE_TOKEN);
-                    startActivity(updateAccountCredentials);
-
-                } else if (item.getItemId() == R.id.delete_account) {
-
-                    // Remove account
-                    am.removeAccount(a, this, mHandler);
-                    Log_OC.d(TAG, "Remove an account " + a.name);
-                }
-            }
-        }
-
-        return true;
-    }
-
     @Override
     public void run(AccountManagerFuture<Boolean> future) {
         if (future.isDone()) {
@@ -543,8 +709,7 @@ public class Preferences extends PreferenceActivity
 
         if (requestCode == ACTION_SELECT_UPLOAD_PATH && resultCode == RESULT_OK){
 
-            OCFile folderToUpload =
-                    (OCFile) data.getParcelableExtra(UploadPathActivity.EXTRA_FOLDER);
+            OCFile folderToUpload =  data.getParcelableExtra(UploadPathActivity.EXTRA_FOLDER);
 
             mUploadPath = folderToUpload.getRemotePath();
 
@@ -555,10 +720,9 @@ public class Preferences extends PreferenceActivity
 
             saveInstantUploadPathOnPreferences();
 
-        } else if (requestCode == ACTION_SELECT_UPLOAD_VIDEO_PATH && resultCode == RESULT_OK){
+        } else if (requestCode == ACTION_SELECT_UPLOAD_VIDEO_PATH && resultCode == RESULT_OK) {
 
-            OCFile folderToUploadVideo =
-                    (OCFile) data.getParcelableExtra(UploadPathActivity.EXTRA_FOLDER);
+            OCFile folderToUploadVideo = data.getParcelableExtra(UploadPathActivity.EXTRA_FOLDER);
 
             mUploadVideoPath = folderToUploadVideo.getRemotePath();
 
@@ -568,9 +732,103 @@ public class Preferences extends PreferenceActivity
             mPrefInstantVideoUploadPath.setSummary(mUploadVideoPath);
 
             saveInstantUploadVideoPathOnPreferences();
+        } else if (requestCode == ACTION_SELECT_STORAGE_PATH && resultCode == RESULT_OK) {
+            File currentStorageDir = new File(mStoragePath);
+            File upcomingStorageDir = new File(data.getStringExtra(UploadFilesActivity.EXTRA_CHOSEN_FILES));
+
+            if (currentStorageDir != upcomingStorageDir) {
+                Intent migrationIntent = new Intent(this, StorageMigrationActivity.class);
+                migrationIntent.putExtra(StorageMigrationActivity.KEY_MIGRATION_SOURCE_DIR,
+                        currentStorageDir.getAbsolutePath());
+                migrationIntent.putExtra(StorageMigrationActivity.KEY_MIGRATION_TARGET_DIR,
+                        upcomingStorageDir.getAbsolutePath());
+                startActivityForResult(migrationIntent, ACTION_PERFORM_MIGRATION);
+            }
+        } else if (requestCode == ACTION_PERFORM_MIGRATION && resultCode == RESULT_OK) {
+            String resultStorageDir = data.getStringExtra(StorageMigrationActivity.KEY_MIGRATION_TARGET_DIR);
+            saveStoragePath(resultStorageDir);
+        } else if (requestCode == ACTION_REQUEST_PASSCODE && resultCode == RESULT_OK) {
+            String passcode = data.getStringExtra(PassCodeActivity.KEY_PASSCODE);
+            if (passcode != null && passcode.length() == 4) {
+                SharedPreferences.Editor appPrefs = PreferenceManager
+                        .getDefaultSharedPreferences(getApplicationContext()).edit();
+
+                for (int i = 1; i <= 4; ++i) {
+                    appPrefs.putString("PrefPinCode" + i, passcode.substring(i-1, i));
+                }
+                appPrefs.putBoolean("set_pincode", true);
+                appPrefs.commit();
+                Toast.makeText(this, R.string.pass_code_stored, Toast.LENGTH_LONG).show();
+            }
+        } else if (requestCode == ACTION_CONFIRM_PASSCODE && resultCode == RESULT_OK) {
+            if (data.getBooleanExtra(PassCodeActivity.KEY_CHECK_RESULT, false)) {
+
+                SharedPreferences.Editor appPrefs = PreferenceManager
+                        .getDefaultSharedPreferences(getApplicationContext()).edit();
+                appPrefs.putBoolean("set_pincode", false);
+                appPrefs.commit();
+
+                Toast.makeText(this, R.string.pass_code_removed, Toast.LENGTH_LONG).show();
+            }
         }
     }
 
+    public ActionBar getSupportActionBar() {
+        return getDelegate().getSupportActionBar();
+    }
+
+    public void setSupportActionBar(@Nullable Toolbar toolbar) {
+        getDelegate().setSupportActionBar(toolbar);
+    }
+
+    @Override
+    public MenuInflater getMenuInflater() {
+        return getDelegate().getMenuInflater();
+    }
+
+    @Override
+    public void setContentView(@LayoutRes int layoutResID) {
+        getDelegate().setContentView(layoutResID);
+    }
+    @Override
+    public void setContentView(View view) {
+        getDelegate().setContentView(view);
+    }
+
+    @Override
+    public void setContentView(View view, ViewGroup.LayoutParams params) {
+        getDelegate().setContentView(view, params);
+    }
+
+    @Override
+    public void addContentView(View view, ViewGroup.LayoutParams params) {
+        getDelegate().addContentView(view, params);
+    }
+
+    @Override
+    protected void onPostResume() {
+        super.onPostResume();
+        getDelegate().onPostResume();
+    }
+
+    @Override
+    protected void onTitleChanged(CharSequence title, int color) {
+        super.onTitleChanged(title, color);
+        getDelegate().setTitle(title);
+    }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        getDelegate().onConfigurationChanged(newConfig);
+    }
+
+    @Override
+    protected void onPostCreate(Bundle savedInstanceState) {
+        super.onPostCreate(savedInstanceState);
+        getDelegate().onPostCreate(savedInstanceState);
+    }
+
     @Override
     protected void onDestroy() {
         mDbHandler.close();
@@ -585,6 +843,24 @@ public class Preferences extends PreferenceActivity
         }
 
         super.onDestroy();
+        getDelegate().onDestroy();
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        getDelegate().onStop();
+    }
+
+    public void invalidateOptionsMenu() {
+        getDelegate().invalidateOptionsMenu();
+    }
+
+    private AppCompatDelegate getDelegate() {
+        if (mDelegate == null) {
+            mDelegate = AppCompatDelegate.create(this, null);
+        }
+        return mDelegate;
     }
 
     /**
@@ -704,6 +980,31 @@ public class Preferences extends PreferenceActivity
     }
 
     /**
+     * Save storage path
+     */
+    private void saveStoragePath(String newStoragePath) {
+        SharedPreferences appPrefs =
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
+        mStoragePath = newStoragePath;
+        MainApp.setStoragePath(mStoragePath);
+        SharedPreferences.Editor editor = appPrefs.edit();
+        editor.putString("storage_path", mStoragePath);
+        editor.commit();
+        mPrefStoragePath.setSummary(mStoragePath);
+    }
+
+    /**
+     * Load storage path set on preferences
+     */
+    private void loadStoragePath() {
+        SharedPreferences appPrefs =
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
+        mStoragePath = appPrefs.getString("storage_path", Environment.getExternalStorageDirectory()
+                                                         .getAbsolutePath());
+        mPrefStoragePath.setSummary(mStoragePath);
+    }
+
+    /**
      * Save the "Instant Upload Path" on preferences
      */
     private void saveInstantUploadPathOnPreferences() {
@@ -718,10 +1019,7 @@ public class Preferences extends PreferenceActivity
      * Load upload video path set on preferences
      */
     private void loadInstantUploadVideoPath() {
-        SharedPreferences appPrefs =
-                PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
-        mUploadVideoPath = appPrefs.getString("instant_video_upload_path", getString(R.string.instant_upload_path));
-        mPrefInstantVideoUploadPath.setSummary(mUploadVideoPath);
+        mPrefInstantVideoUploadPath.setSummary(MainApp.getStoragePath());
     }
 
     /**
@@ -735,7 +1033,7 @@ public class Preferences extends PreferenceActivity
         editor.commit();
     }
 
-    // Methods for ComponetsGetter
+    // Methods for ComponentsGetter
     @Override
     public FileDownloader.FileDownloaderBinder getFileDownloaderBinder() {
         return mDownloaderBinder;
@@ -774,14 +1072,10 @@ public class Preferences extends PreferenceActivity
 
             if (component.equals(new ComponentName(Preferences.this, FileDownloader.class))) {
                 mDownloaderBinder = (FileDownloader.FileDownloaderBinder) service;
-
             } else if (component.equals(new ComponentName(Preferences.this, FileUploader.class))) {
                 Log_OC.d(TAG, "Upload service connected");
                 mUploaderBinder = (FileUploader.FileUploaderBinder) service;
-            } else {
-                return;
             }
-
         }
 
         @Override
@@ -795,4 +1089,29 @@ public class Preferences extends PreferenceActivity
             }
         }
     };
+
+    /**
+     *
+     * Class for loading the version number
+     *
+     */
+    private class LoadingVersionNumberTask extends AsyncTask<Void, Void, Integer> {
+        protected Integer doInBackground(Void... args) {
+            try {
+                URL url = new URL("https://github.com/owncloud/android/raw/beta/apks/latest");
+                BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
+
+                Integer latestVersion = Integer.parseInt(in.readLine());
+                in.close();
+
+                return latestVersion;
+
+            } catch (MalformedURLException e) {
+                e.printStackTrace();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            return -1;
+        }
+    }
 }
diff --git a/src/com/owncloud/android/ui/activity/ShareActivity.java b/src/com/owncloud/android/ui/activity/ShareActivity.java
new file mode 100644 (file)
index 0000000..bf6e37a
--- /dev/null
@@ -0,0 +1,227 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author masensio
+ *   @author David A. Velasco
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.ui.activity;
+
+import android.app.SearchManager;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentTransaction;
+
+import com.owncloud.android.R;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.operations.CreateShareViaLinkOperation;
+import com.owncloud.android.operations.GetSharesForFileOperation;
+import com.owncloud.android.providers.UsersAndGroupsSearchProvider;
+
+import com.owncloud.android.lib.common.operations.RemoteOperation;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.resources.shares.OCShare;
+import com.owncloud.android.lib.resources.shares.ShareType;
+import com.owncloud.android.ui.dialog.ShareLinkToDialog;
+import com.owncloud.android.ui.fragment.SearchShareesFragment;
+import com.owncloud.android.ui.fragment.ShareFileFragment;
+import com.owncloud.android.utils.GetShareWithUsersAsyncTask;
+
+import org.apache.http.protocol.HTTP;
+
+
+/**
+ * Activity for sharing files
+ */
+
+public class ShareActivity extends FileActivity
+        implements ShareFileFragment.OnShareFragmentInteractionListener,
+        SearchShareesFragment.OnSearchFragmentInteractionListener {
+
+    private static final String TAG = ShareActivity.class.getSimpleName();
+
+    private static final String TAG_SHARE_FRAGMENT = "SHARE_FRAGMENT";
+    private static final String TAG_SEARCH_FRAGMENT = "SEARCH_USER_AND_GROUPS_FRAGMENT";
+
+    /** Tag for dialog */
+    private static final String FTAG_CHOOSER_DIALOG = "CHOOSER_DIALOG";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.share_activity);
+
+        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
+
+        if (savedInstanceState == null) {
+            // Add Share fragment on first creation
+            Fragment fragment = ShareFileFragment.newInstance(getFile(), getAccount());
+            ft.replace(R.id.share_fragment_container, fragment, TAG_SHARE_FRAGMENT);
+            ft.commit();
+        }
+
+    }
+
+    protected void onAccountSet(boolean stateWasRecovered) {
+        super.onAccountSet(stateWasRecovered);
+
+        // Load data into the list
+        Log_OC.d(TAG, "Refreshing lists on account set");
+        refreshSharesFromStorageManager();
+
+        // Request for a refresh of the data through the server (starts an Async Task)
+        refreshUsersOrGroupsListFromServer();
+    }
+
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        // Verify the action and get the query
+        if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
+            String query = intent.getStringExtra(SearchManager.QUERY);
+            Log_OC.w(TAG, "Ignored Intent requesting to query for " + query);
+
+        } else if (UsersAndGroupsSearchProvider.ACTION_SHARE_WITH.equals(intent.getAction())) {
+            Uri data = intent.getData();
+            doShareWith(
+                    data.getLastPathSegment(),
+                    UsersAndGroupsSearchProvider.DATA_GROUP.equals(data.getAuthority())
+            );
+
+        } else {
+            Log_OC.wtf(TAG, "Unexpected intent " + intent.toString());
+        }
+    }
+
+    private void doShareWith(String shareeName, boolean isGroup) {
+        getFileOperationsHelper().shareFileWithSharee(
+                getFile(),
+                shareeName,
+                (isGroup ? ShareType.GROUP : ShareType.USER)
+        );
+    }
+
+    @Override
+    public void showSearchUsersAndGroups() {
+        // replace ShareFragment with SearchFragment on demand
+        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
+        Fragment searchFragment = SearchShareesFragment.newInstance(getFile(), getAccount());
+        ft.replace(R.id.share_fragment_container, searchFragment, TAG_SEARCH_FRAGMENT);
+        ft.addToBackStack(null);    // BACK button will recover the ShareFragment
+        ft.commit();
+    }
+
+    @Override
+    // Call to Unshare operation
+    public void unshareWith(OCShare share) {
+        OCFile file = getFile();
+        getFileOperationsHelper().unshareFileWithUserOrGroup(file, share.getShareType(), share.getShareWith());
+    }
+
+    /**
+     * Get users and groups from the server to fill in the "share with" list
+     */
+    @Override
+    public void refreshUsersOrGroupsListFromServer() {
+        // Show loading
+        showLoadingDialog(getString(R.string.common_loading));
+        // Get Users and Groups
+        GetShareWithUsersAsyncTask getTask = new GetShareWithUsersAsyncTask(this);
+        Object[] params = {getFile(), getAccount(), getStorageManager()};
+        getTask.execute(params);
+    }
+
+    /**
+     * Updates the view associated to the activity after the finish of some operation over files
+     * in the current account.
+     *
+     * @param operation Removal operation performed.
+     * @param result    Result of the removal.
+     */
+    @Override
+    public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationResult result) {
+        super.onRemoteOperationFinish(operation, result);
+
+        if (result.isSuccess() ||
+            (operation instanceof GetSharesForFileOperation &&
+                result.getCode() == RemoteOperationResult.ResultCode.SHARE_NOT_FOUND
+            )
+        ) {
+            Log_OC.d(TAG, "Refreshing view on successful operation or finished refresh");
+            refreshSharesFromStorageManager();
+        }
+
+        if (operation instanceof CreateShareViaLinkOperation) {
+            // Send link to the app
+            String link = ((OCShare) (result.getData().get(0))).getShareLink();
+            Log_OC.d(TAG, "Share link = " + link);
+
+            Intent intentToShareLink = new Intent(Intent.ACTION_SEND);
+            intentToShareLink.putExtra(Intent.EXTRA_TEXT, link);
+            intentToShareLink.setType(HTTP.PLAIN_TEXT_TYPE);
+            String[] packagesToExclude = new String[]{getPackageName()};
+            DialogFragment chooserDialog = ShareLinkToDialog.newInstance(intentToShareLink, packagesToExclude);
+            chooserDialog.show(getSupportFragmentManager(), FTAG_CHOOSER_DIALOG);
+        }
+
+    }
+
+
+    /**
+     * Updates the view, reading data from {@link com.owncloud.android.datamodel.FileDataStorageManager}
+     */
+    private void refreshSharesFromStorageManager() {
+
+        ShareFileFragment shareFileFragment = getShareFileFragment();
+        if (shareFileFragment != null
+                && shareFileFragment.isAdded()) {   // only if added to the view hierarchy!!
+            shareFileFragment.refreshCapabilitiesFromDB();
+            shareFileFragment.refreshUsersOrGroupsListFromDB();
+            shareFileFragment.refreshPublicShareFromDB();
+        }
+
+        SearchShareesFragment searchShareesFragment = getSearchFragment();
+        if (searchShareesFragment != null &&
+                searchShareesFragment.isAdded()) {  // only if added to the view hierarchy!!
+            searchShareesFragment.refreshUsersOrGroupsListFromDB();
+        }
+    }
+
+    /**
+     * Shortcut to get access to the {@link ShareFileFragment} instance, if any
+     *
+     * @return  A {@link ShareFileFragment} instance, or null
+     */
+    private ShareFileFragment getShareFileFragment() {
+        return (ShareFileFragment) getSupportFragmentManager().findFragmentByTag(TAG_SHARE_FRAGMENT);
+    }
+
+    /**
+     * Shortcut to get access to the {@link SearchShareesFragment} instance, if any
+     *
+     * @return  A {@link SearchShareesFragment} instance, or null
+     */
+    private SearchShareesFragment getSearchFragment() {
+        return (SearchShareesFragment) getSupportFragmentManager().findFragmentByTag(TAG_SEARCH_FRAGMENT);
+    }
+
+}
diff --git a/src/com/owncloud/android/ui/activity/StorageMigrationActivity.java b/src/com/owncloud/android/ui/activity/StorageMigrationActivity.java
new file mode 100644 (file)
index 0000000..ee4f08e
--- /dev/null
@@ -0,0 +1,290 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author Bartosz Przybylski
+ *   Copyright (C) 2015 ownCloud Inc.
+ *   Copyright (C) 2015 Bartosz Przybylski
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package com.owncloud.android.ui.activity;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+
+import com.owncloud.android.MainApp;
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.FileDataStorageManager;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.utils.FileStorageUtils;
+
+import java.io.File;
+
+/**
+ * Created by Bartosz Przybylski on 07.11.2015.
+ */
+public class StorageMigrationActivity extends AppCompatActivity {
+       private static final String TAG = StorageMigrationActivity.class.getName();
+       public static final String KEY_MIGRATION_TARGET_DIR = "MIGRATION_TARGET";
+       public static final String KEY_MIGRATION_SOURCE_DIR = "MIGRATION_SOURCE";
+
+       private ProgressBar mProgressBar;
+       private Button mFinishButton;
+       private TextView mFeedbackText;
+
+       @Override
+       public void onCreate(Bundle savedInstanceState) {
+               super.onCreate(savedInstanceState);
+
+               setContentView(R.layout.migration_layout);
+               mProgressBar = (ProgressBar)findViewById(R.id.migrationProgress);
+               mFinishButton = (Button)findViewById(R.id.finishButton);
+               mFeedbackText = (TextView)findViewById(R.id.migrationText);
+
+               mProgressBar.setProgress(0);
+               mFinishButton.setVisibility(View.INVISIBLE);
+               mFeedbackText.setText(R.string.file_migration_preparing);
+
+               mFinishButton.setOnClickListener(new View.OnClickListener() {
+                       @Override
+                       public void onClick(View view) {
+                               setResult(RESULT_CANCELED);
+                               finish();
+                       }
+               });
+
+               String source = getIntent().getStringExtra(KEY_MIGRATION_SOURCE_DIR);
+               String destination = getIntent().getStringExtra(KEY_MIGRATION_TARGET_DIR);
+
+               if (source == null || destination == null) {
+                       Log_OC.e(TAG, "source or destination is null");
+                       finish();
+               }
+
+               new FileMigrationTask().execute(source, destination);
+       }
+
+       private class FileMigrationTask extends AsyncTask<String, Integer, Integer> {
+
+               private String mStorageTarget;
+               private String mStorageSource;
+               private int mProgress;
+
+               private static final int mProgressCopyUpperBound = 98;
+
+               private class MigrationException extends Exception {
+                       private int mResId;
+                       /*
+                        * @param resId resource identifier to use for displaying error
+                        */
+                       MigrationException(int resId) {
+                               super();
+                               this.mResId = resId;
+                       }
+
+                       int getResId() { return mResId; }
+               }
+
+               @Override
+               protected Integer doInBackground(String... args) {
+
+                       mStorageSource = args[0];
+                       mStorageTarget = args[1];
+                       mProgress = 0;
+
+                       publishProgress(mProgress++, R.string.file_migration_preparing);
+
+                       Context context = StorageMigrationActivity.this;
+                       String ocAuthority = context.getString(R.string.authority);
+
+                       Account[] ocAccounts = AccountManager.get(context).getAccountsByType(MainApp.getAccountType());
+                       boolean[] oldAutoSync = new boolean[ocAccounts.length];
+
+                       Log_OC.stopLogging();
+
+                       try {
+                               publishProgress(mProgress++, R.string.file_migration_checking_destination);
+
+                               checkDestinationAvailability();
+
+                               publishProgress(mProgress++, R.string.file_migration_saving_accounts_configuration);
+                               saveAccountsSyncStatus(ocAuthority, ocAccounts, oldAutoSync);
+
+                               publishProgress(mProgress++, R.string.file_migration_waiting_for_unfinished_sync);
+                               stopAccountsSyncing(ocAuthority, ocAccounts);
+                               waitForUnfinishedSynchronizations(ocAuthority, ocAccounts);
+
+                               publishProgress(mProgress++, R.string.file_migration_migrating);
+                               copyFiles();
+
+                               publishProgress(mProgress++, R.string.file_migration_updating_index);
+                               updateIndex(context);
+
+                               publishProgress(mProgress++, R.string.file_migration_cleaning);
+                               cleanup();
+
+                       } catch (MigrationException e) {
+                               rollback();
+                               Log_OC.startLogging(mStorageSource);
+                               return e.getResId();
+                       } finally {
+                               publishProgress(mProgress++, R.string.file_migration_restoring_accounts_configuration);
+                               restoreAccountsSyncStatus(ocAuthority, ocAccounts, oldAutoSync);
+                       }
+
+                       Log_OC.startLogging(mStorageTarget);
+                       publishProgress(mProgress++, R.string.file_migration_ok_finished);
+
+                       return 0;
+               }
+
+               @Override
+               protected void onProgressUpdate(Integer... progress) {
+                       mProgressBar.setProgress(progress[0]);
+                       if (progress.length > 1)
+                               mFeedbackText.setText(progress[1]);
+               }
+
+               @Override
+               protected void onPostExecute(Integer code) {
+                       mFinishButton.setVisibility(View.VISIBLE);
+                       if (code != 0) {
+                               mFeedbackText.setText(code);
+                       } else {
+                               mFeedbackText.setText(R.string.file_migration_ok_finished);
+                               mFinishButton.setOnClickListener(new View.OnClickListener() {
+                                       @Override
+                                       public void onClick(View view) {
+                                               Intent resultIntent = new Intent();
+                                               resultIntent.putExtra(KEY_MIGRATION_TARGET_DIR, mStorageTarget);
+                                               setResult(RESULT_OK, resultIntent);
+                                               finish();
+                                       }
+                               });
+                       }
+               }
+
+               void checkDestinationAvailability() throws MigrationException {
+                       File srcFile = new File(mStorageSource);
+                       File dstFile = new File(mStorageTarget);
+
+                       if (!dstFile.canRead() || !srcFile.canRead())
+                               throw new MigrationException(R.string.file_migration_failed_not_readable);
+
+                       if (!dstFile.canWrite() || !srcFile.canWrite())
+                               throw new MigrationException(R.string.file_migration_failed_not_writable);
+
+                       if (new File(dstFile, MainApp.getDataFolder()).exists())
+                               throw new MigrationException(R.string.file_migration_failed_dir_already_exists);
+
+                       if (dstFile.getFreeSpace() < FileStorageUtils.getFolderSize(new File(srcFile, MainApp.getDataFolder())))
+                               throw new MigrationException(R.string.file_migration_failed_not_enough_space);
+               }
+
+               void copyFiles() throws MigrationException {
+                       File srcFile = new File(mStorageSource + File.separator + MainApp.getDataFolder());
+                       File dstFile = new File(mStorageTarget + File.separator + MainApp.getDataFolder());
+
+                       copyDirs(srcFile, dstFile);
+                       mProgress = Math.max(mProgress, mProgressCopyUpperBound);
+                       publishProgress(mProgress);
+               }
+
+               void copyDirs(File src, File dst) throws MigrationException {
+                       if (!dst.mkdirs())
+                               throw new MigrationException(R.string.file_migration_failed_while_coping);
+
+                       for (File f : src.listFiles()) {
+
+                               mProgress = Math.min(mProgress+1, mProgressCopyUpperBound);
+                               publishProgress(mProgress);
+
+                               if (f.isDirectory())
+                                       copyDirs(f, new File(dst, f.getName()));
+                               else if (!FileStorageUtils.copyFile(f, new File(dst, f.getName())))
+                                       throw new MigrationException(R.string.file_migration_failed_while_coping);
+                       }
+
+               }
+
+               void updateIndex(Context context) throws MigrationException {
+                       FileDataStorageManager manager = new FileDataStorageManager(null, context.getContentResolver());
+
+                       try {
+                               manager.migrateStoredFiles(mStorageSource, mStorageTarget);
+                       } catch (Exception e) {
+                               throw new MigrationException(R.string.file_migration_failed_while_updating_index);
+                       }
+               }
+
+               void cleanup() {
+                       File srcFile = new File(mStorageSource + File.separator + MainApp.getDataFolder());
+                       if (!deleteRecursive(srcFile))
+                               Log_OC.w(TAG, "Migration cleanup step failed");
+               }
+
+               boolean deleteRecursive(File f) {
+                       boolean res = true;
+                       if (f.isDirectory())
+                               for (File c : f.listFiles())
+                                       res = deleteRecursive(c) && res;
+                       return f.delete() && res;
+               }
+
+
+               void rollback() {
+                       File dstFile = new File(mStorageTarget + File.separator + MainApp.getDataFolder());
+                       if (dstFile.exists())
+                               if (!dstFile.delete())
+                                       Log_OC.w(TAG, "Rollback step failed");
+               }
+
+               void saveAccountsSyncStatus(String authority, Account accounts[], boolean syncs[]) {
+                       for (int i = 0; i < accounts.length; ++i)
+                               syncs[i] = ContentResolver.getSyncAutomatically(accounts[i], authority);
+               }
+
+               void stopAccountsSyncing(String authority, Account accounts[]) {
+                       for (int i = 0; i < accounts.length; ++i)
+                               ContentResolver.setSyncAutomatically(accounts[i], authority, false);
+               }
+
+               void waitForUnfinishedSynchronizations(String authority, Account accounts[]) {
+                       for (int i = 0; i < accounts.length; ++i)
+                               while (ContentResolver.isSyncActive(accounts[i], authority))
+                                       try {
+                                               Thread.sleep(1000);
+                                       } catch (InterruptedException e) {
+                                               Log_OC.w(TAG, "Thread interrupted while waiting for account to end syncing");
+                                               Thread.currentThread().interrupt();
+                                       }
+               }
+
+               void restoreAccountsSyncStatus(String authority, Account accounts[], boolean oldSync[]) {
+                       for (int i = 0; i < accounts.length; ++i)
+                               ContentResolver.setSyncAutomatically(accounts[i], authority, oldSync[i]);
+               }
+
+       }
+}
index 7a7f8e5..1c5b9f7 100644 (file)
 
 package com.owncloud.android.ui.activity;
 
-import java.io.File;
-
 import android.accounts.Account;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.SharedPreferences;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Environment;
+import android.preference.PreferenceManager;
 import android.support.v4.app.DialogFragment;
 import android.support.v7.app.ActionBar;
+import android.view.Menu;
+import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
 import android.widget.Button;
+import android.widget.RadioButton;
 import android.widget.TextView;
 
 import com.owncloud.android.R;
+import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
-import com.owncloud.android.ui.dialog.IndeterminateProgressDialog;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDialogFragmentListener;
+import com.owncloud.android.ui.dialog.IndeterminateProgressDialog;
 import com.owncloud.android.ui.fragment.LocalFileListFragment;
-import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.FileStorageUtils;
 
+import java.io.File;
+
 
 /**
  * Displays local files and let the user choose what of them wants to upload
@@ -58,32 +65,35 @@ public class UploadFilesActivity extends FileActivity implements
     
     private ArrayAdapter<String> mDirectories;
     private File mCurrentDir = null;
-    private LocalFileListFragment mFileListFragment;
-    private Button mCancelBtn;
-    private Button mUploadBtn;
-    private Account mAccountOnCreation;
-    private DialogFragment mCurrentDialog;
+    protected LocalFileListFragment mFileListFragment;
+    protected Button mCancelBtn;
+    protected Button mUploadBtn;
+    protected Account mAccountOnCreation;
+    protected DialogFragment mCurrentDialog;
     
     public static final String EXTRA_CHOSEN_FILES =
             UploadFilesActivity.class.getCanonicalName() + ".EXTRA_CHOSEN_FILES";
 
     public static final int RESULT_OK_AND_MOVE = RESULT_FIRST_USER; 
     
-    private static final String KEY_DIRECTORY_PATH =
+    public static final String KEY_DIRECTORY_PATH =
             UploadFilesActivity.class.getCanonicalName() + ".KEY_DIRECTORY_PATH";
     private static final String TAG = "UploadFilesActivity";
     private static final String WAIT_DIALOG_TAG = "WAIT";
     private static final String QUERY_TO_MOVE_DIALOG_TAG = "QUERY_TO_MOVE";
-    
-    
+    protected RadioButton mRadioBtnCopyFiles;
+    protected RadioButton mRadioBtnMoveFiles;
+
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         Log_OC.d(TAG, "onCreate() start");
         super.onCreate(savedInstanceState);
 
         if(savedInstanceState != null) {
-            mCurrentDir = new File(savedInstanceState.getString(
-                    UploadFilesActivity.KEY_DIRECTORY_PATH));
+            mCurrentDir = new File(savedInstanceState.getString(KEY_DIRECTORY_PATH));
+        } else if (getIntent() != null && getIntent().hasExtra(KEY_DIRECTORY_PATH)) {
+            mCurrentDir = new File(getIntent().getStringExtra(KEY_DIRECTORY_PATH));
         } else {
             mCurrentDir = Environment.getExternalStorageDirectory();
         }
@@ -113,11 +123,25 @@ public class UploadFilesActivity extends FileActivity implements
         mCancelBtn.setOnClickListener(this);
         mUploadBtn = (Button) findViewById(R.id.upload_files_btn_upload);
         mUploadBtn.setOnClickListener(this);
+
+        SharedPreferences appPreferences = PreferenceManager
+                .getDefaultSharedPreferences(getApplicationContext());
+
+        Integer localBehaviour = appPreferences.getInt("prefs_uploader_behaviour", FileUploader.LOCAL_BEHAVIOUR_COPY);
+
+        mRadioBtnMoveFiles = (RadioButton) findViewById(R.id.upload_radio_move);
+        if (localBehaviour == FileUploader.LOCAL_BEHAVIOUR_MOVE){
+            mRadioBtnMoveFiles.setChecked(true);
+        }
+
+        mRadioBtnCopyFiles = (RadioButton) findViewById(R.id.upload_radio_copy);
+        if (localBehaviour == FileUploader.LOCAL_BEHAVIOUR_COPY){
+            mRadioBtnCopyFiles.setChecked(true);
+        }
         
             
         // Action bar setup
         ActionBar actionBar = getSupportActionBar();
-        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
         actionBar.setHomeButtonEnabled(true);   // mandatory since Android ICS, according to the
                                                 // official documentation
         actionBar.setDisplayHomeAsUpEnabled(mCurrentDir != null && mCurrentDir.getName() != null);
@@ -134,6 +158,13 @@ public class UploadFilesActivity extends FileActivity implements
         Log_OC.d(TAG, "onCreate() end");
     }
 
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater inflater = getMenuInflater();
+        inflater.inflate(R.menu.uploader_menu, menu);
+        return true;
+    }
+
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
@@ -145,6 +176,34 @@ public class UploadFilesActivity extends FileActivity implements
                 }
                 break;
             }
+            case R.id.action_sort: {
+                SharedPreferences appPreferences = PreferenceManager
+                        .getDefaultSharedPreferences(this);
+
+                // Read sorting order, default to sort by name ascending
+                Integer sortOrder = appPreferences
+                        .getInt("sortOrder", FileStorageUtils.SORT_NAME);
+
+                AlertDialog.Builder builder = new AlertDialog.Builder(this);
+                builder.setTitle(R.string.actionbar_sort_title)
+                        .setSingleChoiceItems(R.array.actionbar_sortby, sortOrder ,
+                                new DialogInterface.OnClickListener() {
+                                    public void onClick(DialogInterface dialog, int which) {
+                                        switch (which){
+                                            case 0:
+                                                mFileListFragment.sortByName(true);
+                                                break;
+                                            case 1:
+                                                mFileListFragment.sortByDate(false);
+                                                break;
+                                        }
+
+                                        dialog.dismiss();
+                                    }
+                                });
+                builder.create().show();
+                break;
+            }
             default:
                 retval = super.onOptionsItemSelected(item);
         }
@@ -344,9 +403,22 @@ public class UploadFilesActivity extends FileActivity implements
                 // return the list of selected files (success)
                 Intent data = new Intent();
                 data.putExtra(EXTRA_CHOSEN_FILES, mFileListFragment.getCheckedFilePaths());
-                setResult(RESULT_OK, data);
+
+                SharedPreferences.Editor appPreferencesEditor = PreferenceManager
+                        .getDefaultSharedPreferences(getApplicationContext()).edit();
+
+
+                if (mRadioBtnMoveFiles.isChecked()){
+                    setResult(RESULT_OK_AND_MOVE, data);
+                    appPreferencesEditor.putInt("prefs_uploader_behaviour",
+                            FileUploader.LOCAL_BEHAVIOUR_MOVE);
+                } else {
+                    setResult(RESULT_OK, data);
+                    appPreferencesEditor.putInt("prefs_uploader_behaviour",
+                            FileUploader.LOCAL_BEHAVIOUR_COPY);
+                }
+                appPreferencesEditor.apply();
                 finish();
-                
             } else {
                 // show a dialog to query the user if wants to move the selected files
                 // to the ownCloud folder instead of copying
index db704d1..a4e9cb7 100644 (file)
@@ -67,8 +67,7 @@ public class UploadPathActivity extends FolderPickerActivity implements FileFrag
 
             if (!stateWasRecovered) {
                 OCFileListFragment listOfFolders = getListOfFilesFragment();
-                // TODO Enable when "On Device" is recovered ?
-                listOfFolders.listDirectory(folder/*, false*/);
+                listOfFolders.listDirectory(folder, false);
 
                 startSyncFolderOperation(folder, false);
             }
index f0e0695..cd80a94 100644 (file)
@@ -33,8 +33,8 @@ import java.util.Vector;
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
-import android.app.AlertDialog;
-import android.app.AlertDialog.Builder;
+import android.support.v7.app.AlertDialog;
+import android.support.v7.app.AlertDialog.Builder;
 import android.app.Dialog;
 import android.app.ProgressDialog;
 import android.content.Context;
@@ -57,6 +57,8 @@ import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
 import android.support.v7.app.ActionBar;
+import android.view.Menu;
+import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.AdapterView;
@@ -64,6 +66,7 @@ import android.widget.AdapterView.OnItemClickListener;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ListView;
+import android.widget.ProgressBar;
 import android.widget.SimpleAdapter;
 import android.widget.Toast;
 
@@ -81,6 +84,7 @@ import com.owncloud.android.ui.dialog.LoadingDialog;
 import com.owncloud.android.utils.CopyTmpFileAsyncTask;
 import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ErrorMessageAdapter;
+import com.owncloud.android.utils.FileStorageUtils;
 
 
 /**
@@ -146,11 +150,6 @@ public class Uploader extends FileActivity
         if (mAccountSelected) {
             setAccount((Account) savedInstanceState.getParcelable(FileActivity.EXTRA_ACCOUNT));
         }
-
-
-        ActionBar actionBar = getSupportActionBar();
-        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
-
     }
 
     @Override
@@ -206,10 +205,19 @@ public class Uploader extends FileActivity
         final AlertDialog.Builder builder = new Builder(this);
         switch (id) {
         case DIALOG_WAITING:
-            ProgressDialog pDialog = new ProgressDialog(this);
+            final ProgressDialog pDialog = new ProgressDialog(this, R.style.ProgressDialogTheme);
             pDialog.setIndeterminate(false);
             pDialog.setCancelable(false);
             pDialog.setMessage(getResources().getString(R.string.uploader_info_uploading));
+            pDialog.setOnShowListener(new DialogInterface.OnShowListener() {
+                @Override
+                public void onShow(DialogInterface dialog) {
+                    ProgressBar v = (ProgressBar) pDialog.findViewById(android.R.id.progress);
+                    v.getIndeterminateDrawable().setColorFilter(getResources().getColor(R.color.color_accent),
+                            android.graphics.PorterDuff.Mode.MULTIPLY);
+
+                }
+            });
             return pDialog;
         case DIALOG_NO_ACCOUNT:
             builder.setIcon(android.R.drawable.ic_dialog_alert);
@@ -327,7 +335,9 @@ public class Uploader extends FileActivity
         // click on folder in the list
         Log_OC.d(TAG, "on item click");
         // TODO Enable when "On Device" is recovered ?
-        Vector<OCFile> tmpfiles = getStorageManager().getFolderContent(mFile /*, false*/);
+        Vector<OCFile> tmpfiles = getStorageManager().getFolderContent(mFile , false);
+        tmpfiles = sortFileList(tmpfiles);
+
         if (tmpfiles.size() <= 0) return;
         // filter on dirtype
         Vector<OCFile> files = new Vector<OCFile>();
@@ -356,9 +366,8 @@ public class Uploader extends FileActivity
 
             break;
             
-        case R.id.uploader_new_folder:
-            CreateFolderDialogFragment dialog = CreateFolderDialogFragment.newInstance(mFile);
-            dialog.show(getSupportFragmentManager(), "createdirdialog");
+        case R.id.uploader_cancel:
+            finish();
             break;
             
             
@@ -393,16 +402,17 @@ public class Uploader extends FileActivity
         setContentView(R.layout.uploader_layout);
         
         ListView mListView = (ListView) findViewById(android.R.id.list);
+        ActionBar actionBar = getSupportActionBar();
 
         String current_dir = mParents.peek();
         if(current_dir.equals("")){
-            getSupportActionBar().setTitle(getString(R.string.default_display_name_for_root_folder));
+            actionBar.setTitle(getString(R.string.uploader_top_message));
         }
         else{
-            getSupportActionBar().setTitle(current_dir);
+            actionBar.setTitle(current_dir);
         }
         boolean notRoot = (mParents.size() > 1);
-        ActionBar actionBar = getSupportActionBar();
+
         actionBar.setDisplayHomeAsUpEnabled(notRoot);
         actionBar.setHomeButtonEnabled(notRoot);
 
@@ -413,32 +423,47 @@ public class Uploader extends FileActivity
         mFile = getStorageManager().getFileByPath(full_path);
         if (mFile != null) {
             // TODO Enable when "On Device" is recovered ?
-            Vector<OCFile> files = getStorageManager().getFolderContent(mFile/*, false*/);
+            Vector<OCFile> files = getStorageManager().getFolderContent(mFile, false);
+            files = sortFileList(files);
+
             List<HashMap<String, Object>> data = new LinkedList<HashMap<String,Object>>();
             for (OCFile f : files) {
-                HashMap<String, Object> h = new HashMap<String, Object>();
                 if (f.isFolder()) {
+                    HashMap<String, Object> h = new HashMap<String, Object>();
                     h.put("dirname", f.getFileName());
+                    h.put("last_mod", DisplayUtils.getRelativeTimestamp(this, f));
                     data.add(h);
                 }
             }
             SimpleAdapter sa = new SimpleAdapter(this,
                                                 data,
                                                 R.layout.uploader_list_item_layout,
-                                                new String[] {"dirname"},
-                                                new int[] {R.id.filename});
+                                                new String[] {"dirname", "last_mod"},
+                                                new int[] {R.id.filename, R.id.last_mod});
             
             mListView.setAdapter(sa);
             Button btnChooseFolder = (Button) findViewById(R.id.uploader_choose_folder);
             btnChooseFolder.setOnClickListener(this);
             
-            Button btnNewFolder = (Button) findViewById(R.id.uploader_new_folder);
+            Button btnNewFolder = (Button) findViewById(R.id.uploader_cancel);
             btnNewFolder.setOnClickListener(this);
             
             mListView.setOnItemClickListener(this);
         }
     }
 
+    private Vector<OCFile> sortFileList(Vector<OCFile> files) {
+        SharedPreferences sharedPreferences = PreferenceManager
+                .getDefaultSharedPreferences(this);
+
+        // Read sorting order, default to sort by name ascending
+        FileStorageUtils.mSortOrder = sharedPreferences.getInt("sortOrder", 0);
+        FileStorageUtils.mSortAscending = sharedPreferences.getBoolean("sortAscending", true);
+
+        files = FileStorageUtils.sortOcFolder(files);
+        return files;
+    }
+
     private String generatePath(Stack<String> dirs) {
         String full_path = "";
 
@@ -602,9 +627,11 @@ public class Uploader extends FileActivity
                                                RemoteOperationResult result) {
         if (result.isSuccess()) {
             dismissLoadingDialog();
+            String remotePath = operation.getRemotePath().substring(0, operation.getRemotePath().length() -1);
+            String newFolder = remotePath.substring(remotePath.lastIndexOf("/") + 1);
+            mParents.push(newFolder);
             populateDirectoryList();
         } else {
-            dismissLoadingDialog();
             try {
                 Toast msg = Toast.makeText(this, 
                         ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), 
@@ -648,11 +675,25 @@ public class Uploader extends FileActivity
         }
     }
 
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater inflater = getMenuInflater();
+        inflater.inflate(R.menu.main_menu, menu);
+        menu.findItem(R.id.action_sort).setVisible(false);
+        menu.findItem(R.id.action_sync_account).setVisible(false);
+        return true;
+    }
     
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         boolean retval = true;
         switch (item.getItemId()) {
+            case R.id.action_create_dir:
+                CreateFolderDialogFragment dialog = CreateFolderDialogFragment.newInstance(mFile);
+                dialog.show(
+                        getSupportFragmentManager(),
+                        CreateFolderDialogFragment.CREATE_FOLDER_FRAGMENT);
+                break;
             case android.R.id.home:
                 if((mParents.size() > 1)) {
                     onBackPressed();
index 0f2536f..5a53a86 100644 (file)
@@ -120,10 +120,10 @@ public class DiskLruImageCache {
             }
             final InputStream in = snapshot.getInputStream( 0 );
             if ( in != null ) {
-                final BufferedInputStream buffIn = 
+                final BufferedInputStream buffIn =
                 new BufferedInputStream( in, IO_BUFFER_SIZE );
-                bitmap = BitmapFactory.decodeStream( buffIn );              
-            }   
+                bitmap = BitmapFactory.decodeStream( buffIn );
+            }
         } catch ( IOException e ) {
             e.printStackTrace();
         } finally {
@@ -193,4 +193,12 @@ public class DiskLruImageCache {
             e.printStackTrace();
         }
     }
+
+    public void setMaxSize(long maxSize){
+        mDiskCache.setMaxSize(maxSize);
+    }
+
+    public long getMaxSize(){
+        return mDiskCache.getMaxSize();
+    }
 }
\ No newline at end of file
diff --git a/src/com/owncloud/android/ui/adapter/DiskLruImageCacheFileProvider.java b/src/com/owncloud/android/ui/adapter/DiskLruImageCacheFileProvider.java
new file mode 100644 (file)
index 0000000..a3c54e8
--- /dev/null
@@ -0,0 +1,140 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   Copyright (C) 2015 Tobias Kaminsky
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *   adapted from: http://stephendnicholas.com/archives/974
+ *
+ */
+
+package com.owncloud.android.ui.adapter;
+
+import android.accounts.Account;
+import android.content.ContentProvider;
+import android.content.ContentValues;
+import android.content.UriMatcher;
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.graphics.Bitmap;
+import android.net.Uri;
+import android.os.ParcelFileDescriptor;
+import android.provider.OpenableColumns;
+
+import com.owncloud.android.MainApp;
+import com.owncloud.android.authentication.AccountUtils;
+import com.owncloud.android.datamodel.FileDataStorageManager;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.datamodel.ThumbnailsCacheManager;
+import com.owncloud.android.lib.common.utils.Log_OC;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class DiskLruImageCacheFileProvider extends ContentProvider {
+    private static String TAG = FileDataStorageManager.class.getSimpleName();
+    private FileDataStorageManager mFileDataStorageManager;
+
+    public static final String AUTHORITY = "org.owncloud.beta.imageCache.provider";
+
+    @Override
+    public boolean onCreate() {
+        return true;
+    }
+
+    private OCFile getFile(Uri uri){
+        Account account = AccountUtils.getCurrentOwnCloudAccount(MainApp.getAppContext());
+        mFileDataStorageManager = new FileDataStorageManager(account,
+                MainApp.getAppContext().getContentResolver());
+
+        OCFile ocFile = mFileDataStorageManager.getFileByPath(uri.getPath());
+        return ocFile;
+    }
+
+    @Override
+    public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
+        OCFile ocFile = getFile(uri);
+
+        Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(
+                String.valueOf("r" + ocFile.getRemoteId()));
+
+        // create a file to write bitmap data
+        File f = new File(MainApp.getAppContext().getCacheDir(), ocFile.getFileName());
+        try {
+            f.createNewFile();
+
+            //Convert bitmap to byte array
+            ByteArrayOutputStream bos = new ByteArrayOutputStream();
+            thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bos);
+            byte[] bitmapdata = bos.toByteArray();
+
+            //write the bytes in file
+            FileOutputStream fos = null;
+            try {
+                fos = new FileOutputStream(f);
+            } catch (FileNotFoundException e) {
+                e.printStackTrace();
+            }
+            fos.write(bitmapdata);
+            fos.flush();
+            fos.close();
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return ParcelFileDescriptor.open(f, ParcelFileDescriptor.MODE_READ_ONLY);
+    }
+
+    @Override
+    public String getType(Uri uri) {
+        OCFile ocFile = getFile(uri);
+        return ocFile.getMimetype();
+    }
+
+    @Override
+    public Cursor query(Uri uri, String[] arg1, String arg2, String[] arg3, String arg4) {
+        MatrixCursor cursor = null;
+
+        OCFile ocFile = getFile(uri);
+        File file = new File(MainApp.getAppContext().getCacheDir(), ocFile.getFileName());
+        if (file.exists()) {
+            cursor = new MatrixCursor(new String[] {
+                    OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE });
+            cursor.addRow(new Object[] { uri.getLastPathSegment(),
+                    file.length() });
+        }
+
+        return cursor;
+    }
+
+    @Override
+    public Uri insert(Uri uri, ContentValues values) {
+        return null;
+    }
+
+    @Override
+    public int delete(Uri uri, String selection, String[] selectionArgs) {
+        return 0;
+    }
+
+    @Override
+    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
+        return 0;
+    }
+}
index 26d77db..c46b296 100644 (file)
@@ -4,6 +4,7 @@
  *   @author Bartek Przybylski\r
  *   @author Tobias Kaminsky\r
  *   @author David A. Velasco\r
+ *   @author masensio\r
  *   Copyright (C) 2011  Bartek Przybylski\r
  *   Copyright (C) 2015 ownCloud Inc.\r
  *\r
@@ -24,12 +25,16 @@ package com.owncloud.android.ui.adapter;
 \r
 \r
 import java.io.File;\r
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.Map;\r
 import java.util.Vector;\r
 \r
 import android.accounts.Account;\r
 import android.content.Context;\r
 import android.content.SharedPreferences;\r
 import android.graphics.Bitmap;\r
+import android.graphics.Color;\r
 import android.graphics.BitmapFactory;\r
 import android.graphics.Canvas;\r
 import android.graphics.Paint;\r
@@ -57,6 +62,7 @@ import com.owncloud.android.services.OperationsService.OperationsServiceBinder;
 import com.owncloud.android.ui.activity.ComponentsGetter;\r
 import com.owncloud.android.utils.DisplayUtils;\r
 import com.owncloud.android.utils.FileStorageUtils;\r
+import com.owncloud.android.utils.MimetypeIconUtil;\r
 \r
 \r
 /**\r
@@ -64,7 +70,6 @@ import com.owncloud.android.utils.FileStorageUtils;
  * instance.\r
  */\r
 public class FileListListAdapter extends BaseAdapter implements ListAdapter {\r
-    private final static String PERMISSION_SHARED_WITH_ME = "S";\r
 \r
     private Context mContext;\r
     private OCFile mFile = null;\r
@@ -80,6 +85,8 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
     private enum ViewType {LIST_ITEM, GRID_IMAGE, GRID_ITEM };\r
 \r
     private SharedPreferences mAppPreferences;\r
+\r
+    private HashMap<Integer, Boolean> mSelection = new HashMap<Integer, Boolean>();\r
     \r
     public FileListListAdapter(\r
             boolean justFolders, \r
@@ -155,7 +162,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
         ViewType viewType;\r
         if (!mGridMode){\r
             viewType = ViewType.LIST_ITEM;\r
-        } else if (file.isImage()){\r
+        } else if (file.isImage() || file.isVideo()){\r
             viewType = ViewType.GRID_IMAGE;\r
         } else {\r
             viewType = ViewType.GRID_ITEM;\r
@@ -195,36 +202,38 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
             switch (viewType){\r
                 case LIST_ITEM:\r
                     TextView fileSizeV = (TextView) view.findViewById(R.id.file_size);\r
+                    TextView fileSizeSeparatorV = (TextView) view.findViewById(R.id.file_separator);\r
                     TextView lastModV = (TextView) view.findViewById(R.id.last_mod);\r
-                    ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);\r
+\r
 \r
                     lastModV.setVisibility(View.VISIBLE);\r
-                    lastModV.setText(showRelativeTimestamp(file));\r
+                    lastModV.setText(DisplayUtils.getRelativeTimestamp(mContext, file));\r
 \r
-                    checkBoxV.setVisibility(View.GONE);\r
 \r
+                    fileSizeSeparatorV.setVisibility(View.VISIBLE);\r
                     fileSizeV.setVisibility(View.VISIBLE);\r
                     fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.getFileLength()));\r
 \r
-                    if (!file.isFolder()) {\r
-                        AbsListView parentList = (AbsListView)parent;\r
-                        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {\r
-                            if (parentList.getChoiceMode() == AbsListView.CHOICE_MODE_NONE) {\r
-                                checkBoxV.setVisibility(View.GONE);\r
-                            } else {\r
-                                if (parentList.isItemChecked(position)) {\r
-                                    checkBoxV.setImageResource(\r
-                                            android.R.drawable.checkbox_on_background);\r
-                                } else {\r
-                                    checkBoxV.setImageResource(\r
-                                            android.R.drawable.checkbox_off_background);\r
-                                }\r
-                                checkBoxV.setVisibility(View.VISIBLE);\r
-                            }\r
-                        }\r
-\r
-                    } else { //Folder\r
-                        fileSizeV.setVisibility(View.INVISIBLE);\r
+//                    if (!file.isFolder()) {\r
+//                        AbsListView parentList = (AbsListView)parent;\r
+//                        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {\r
+//                            if (parentList.getChoiceMode() == AbsListView.CHOICE_MODE_NONE) {\r
+//                                checkBoxV.setVisibility(View.GONE);\r
+//                            } else {\r
+//                                if (parentList.isItemChecked(position)) {\r
+//                                    checkBoxV.setImageResource(\r
+//                                            R.drawable.ic_checkbox_marked);\r
+//                                } else {\r
+//                                    checkBoxV.setImageResource(\r
+//                                            R.drawable.ic_checkbox_blank_outline);\r
+//                                }\r
+//                                checkBoxV.setVisibility(View.VISIBLE);\r
+//                            }\r
+//                        }\r
+\r
+                    if (file.isFolder()) {\r
+                        fileSizeSeparatorV.setVisibility(View.GONE);\r
+                        fileSizeV.setVisibility(View.GONE);\r
                     }\r
 \r
                 case GRID_ITEM:\r
@@ -236,13 +245,21 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                 case GRID_IMAGE:\r
                     // sharedIcon\r
                     ImageView sharedIconV = (ImageView) view.findViewById(R.id.sharedIcon);\r
-                    if (file.isShareByLink()) {\r
+                    if (file.isSharedViaLink()) {\r
+                        sharedIconV.setImageResource(R.drawable.shared_via_link);\r
+                        sharedIconV.setVisibility(View.VISIBLE);\r
+                        sharedIconV.bringToFront();\r
+                    } else if (file.isSharedWithSharee() || file.isSharedWithMe() ) {\r
+                        sharedIconV.setImageResource(R.drawable.shared_via_users);\r
                         sharedIconV.setVisibility(View.VISIBLE);\r
                         sharedIconV.bringToFront();\r
                     } else {\r
                         sharedIconV.setVisibility(View.GONE);\r
                     }\r
 \r
+                    /*ImageView sharedWithMeIcon = (ImageView) view.findViewById(R.id.sharedWithMeIcon);\r
+                    sharedWithMeIcon.bringToFront();*/\r
+\r
                     // local state\r
                     ImageView localStateView = (ImageView) view.findViewById(R.id.localFileIndicator);\r
                     localStateView.bringToFront();\r
@@ -250,38 +267,69 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                             mTransferServiceGetter.getFileDownloaderBinder();\r
                     FileUploaderBinder uploaderBinder =\r
                             mTransferServiceGetter.getFileUploaderBinder();\r
-                    boolean downloading = (downloaderBinder != null &&\r
-                            downloaderBinder.isDownloading(mAccount, file));\r
                     OperationsServiceBinder opsBinder =\r
                             mTransferServiceGetter.getOperationsServiceBinder();\r
-                    downloading |= (opsBinder != null &&\r
-                            opsBinder.isSynchronizing(mAccount, file.getRemotePath()));\r
-                    if (downloading) {\r
-                        localStateView.setImageResource(R.drawable.downloading_file_indicator);\r
+\r
+                    localStateView.setVisibility(View.INVISIBLE);   // default first\r
+\r
+                    if ( //synchronizing\r
+                                opsBinder != null &&\r
+                                opsBinder.isSynchronizing(mAccount, file.getRemotePath())\r
+                            ) {\r
+                        localStateView.setImageResource(R.drawable.synchronizing_file_indicator);\r
                         localStateView.setVisibility(View.VISIBLE);\r
-                    } else if (uploaderBinder != null &&\r
-                            uploaderBinder.isUploading(mAccount, file)) {\r
-                        localStateView.setImageResource(R.drawable.uploading_file_indicator);\r
+\r
+                    } else if ( // downloading\r
+                                downloaderBinder != null &&\r
+                                downloaderBinder.isDownloading(mAccount, file)\r
+                            ) {\r
+                        localStateView.setImageResource(\r
+                                file.isFolder() ?\r
+                                        R.drawable.synchronizing_file_indicator :\r
+                                        R.drawable.downloading_file_indicator\r
+                        );\r
                         localStateView.setVisibility(View.VISIBLE);\r
+\r
+                    } else if ( //uploading\r
+                                uploaderBinder != null &&\r
+                                uploaderBinder.isUploading(mAccount, file)\r
+                            ) {\r
+                        localStateView.setImageResource(\r
+                                file.isFolder() ?\r
+                                        R.drawable.synchronizing_file_indicator :\r
+                                        R.drawable.uploading_file_indicator\r
+                        );\r
+                        localStateView.setVisibility(View.VISIBLE);\r
+\r
+                    } else if (file.getEtagInConflict() != null) {   // conflict\r
+                        localStateView.setImageResource(R.drawable.conflict_file_indicator);\r
+                        localStateView.setVisibility(View.VISIBLE);\r
+\r
                     } else if (file.isDown()) {\r
                         localStateView.setImageResource(R.drawable.local_file_indicator);\r
                         localStateView.setVisibility(View.VISIBLE);\r
-                    } else {\r
-                        localStateView.setVisibility(View.INVISIBLE);\r
                     }\r
 \r
-                    // share with me icon\r
-                    ImageView sharedWithMeIconV = (ImageView)\r
-                            view.findViewById(R.id.sharedWithMeIcon);\r
-                    sharedWithMeIconV.bringToFront();\r
-                    if (checkIfFileIsSharedWithMe(file) &&\r
-                            (!file.isFolder() || !mGridMode)) {\r
-                        sharedWithMeIconV.setVisibility(View.VISIBLE);\r
+                    break;\r
+            }\r
+\r
+            ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);\r
+            checkBoxV.setVisibility(View.GONE);\r
+\r
+            AbsListView parentList = (AbsListView)parent;\r
+            if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {\r
+                if (parentList.getChoiceMode() == AbsListView.CHOICE_MODE_NONE) {\r
+                    checkBoxV.setVisibility(View.GONE);\r
+                } else if (parentList.getCheckedItemCount() > 0){\r
+                    if (parentList.isItemChecked(position)) {\r
+                        checkBoxV.setImageResource(\r
+                                android.R.drawable.checkbox_on_background);\r
                     } else {\r
-                        sharedWithMeIconV.setVisibility(View.GONE);\r
+                        checkBoxV.setImageResource(\r
+                                android.R.drawable.checkbox_off_background);\r
                     }\r
-\r
-                    break;\r
+                    checkBoxV.setVisibility(View.VISIBLE);\r
+                }\r
             }\r
             \r
             // For all Views\r
@@ -299,8 +347,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                 if ((file.isImage() || file.isVideo()) && file.getRemoteId() != null){\r
                     // Thumbnail in Cache?\r
                     Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(\r
-                            String.valueOf(file.getRemoteId())\r
-                            );\r
+                            "t" + String.valueOf(file.getRemoteId()));\r
                     if (thumbnail != null && !file.needsUpdateThumbnail()){\r
 \r
                         if (file.isVideo()) {\r
@@ -326,73 +373,41 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                                     task\r
                                     );\r
                             fileIcon.setImageDrawable(asyncDrawable);\r
-                            task.execute(file);\r
+                            task.execute(file, true);\r
                         }\r
                     }\r
+\r
+                    if (file.getMimetype().equalsIgnoreCase("image/png")) {\r
+                        fileIcon.setBackgroundColor(mContext.getResources()\r
+                                .getColor(R.color.background_color));\r
+                    }\r
+\r
+\r
                 } else {\r
-                    fileIcon.setImageResource(DisplayUtils.getFileTypeIconId(file.getMimetype(),\r
+                    fileIcon.setImageResource(MimetypeIconUtil.getFileTypeIconId(file.getMimetype(),\r
                             file.getFileName()));\r
                 }\r
 \r
             } else {\r
                 // Folder\r
-                if (checkIfFileIsSharedWithMe(file)) {\r
-                    fileIcon.setImageResource(R.drawable.shared_with_me_folder);\r
-                } else if (file.isShareByLink()) {\r
-                    // If folder is sharedByLink, icon folder must be changed to\r
-                    // folder-public one\r
-                    fileIcon.setImageResource(R.drawable.folder_public);\r
-                } else {\r
-                    fileIcon.setImageResource(\r
-                            DisplayUtils.getFileTypeIconId(file.getMimetype(), file.getFileName())\r
-                    );\r
-                }\r
+                fileIcon.setImageResource(\r
+                        MimetypeIconUtil.getFolderTypeIconId(\r
+                                file.isSharedWithMe() || file.isSharedWithSharee(),\r
+                                file.isSharedViaLink()\r
+                        )\r
+                );\r
             }\r
         }\r
 \r
-        return view;\r
-    }\r
-\r
-    /**\r
-     * Local Folder size in human readable format\r
-     * \r
-     * @param path\r
-     *            String\r
-     * @return Size in human readable format\r
-     */\r
-    private String getFolderSizeHuman(String path) {\r
-\r
-        File dir = new File(path);\r
-\r
-        if (dir.exists()) {\r
-            long bytes = FileStorageUtils.getFolderSize(dir);\r
-            return DisplayUtils.bytesToHumanReadable(bytes);\r
+        if (mSelection.get(position) != null) {\r
+            view.setBackgroundColor(Color.rgb(248, 248, 248));\r
+        } else {\r
+            view.setBackgroundColor(Color.WHITE);\r
         }\r
 \r
-        return "0 B";\r
+        return view;\r
     }\r
 \r
-    /**\r
-     * Local Folder size\r
-     * @param dir File\r
-     * @return Size in bytes\r
-     */\r
-    private long getFolderSize(File dir) {\r
-        if (dir.exists()) {\r
-            long result = 0;\r
-            File[] fileList = dir.listFiles();\r
-            for(int i = 0; i < fileList.length; i++) {\r
-                if(fileList[i].isDirectory()) {\r
-                    result += getFolderSize(fileList[i]);\r
-                } else {\r
-                    result += fileList[i].length();\r
-                }\r
-            }\r
-            return result;\r
-        }\r
-        return 0;\r
-    } \r
-\r
     @Override\r
     public int getViewTypeCount() {\r
         return 1;\r
@@ -416,15 +431,14 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
      *                                  mStorageManager if is different (and not NULL)\r
      */\r
     public void swapDirectory(OCFile directory, FileDataStorageManager updatedStorageManager\r
-            /*, boolean onlyOnDevice*/) {\r
+            , boolean onlyOnDevice) {\r
         mFile = directory;\r
         if (updatedStorageManager != null && updatedStorageManager != mStorageManager) {\r
             mStorageManager = updatedStorageManager;\r
             mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);\r
         }\r
         if (mStorageManager != null) {\r
-            // TODO Enable when "On Device" is recovered ?\r
-            mFiles = mStorageManager.getFolderContent(mFile/*, onlyOnDevice*/);\r
+            mFiles = mStorageManager.getFolderContent(mFile, onlyOnDevice);\r
             mFilesOrig.clear();\r
             mFilesOrig.addAll(mFiles);\r
             \r
@@ -435,7 +449,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
             mFiles = null;\r
         }\r
 \r
-        mFiles = FileStorageUtils.sortFolder(mFiles);\r
+        mFiles = FileStorageUtils.sortOcFolder(mFiles);\r
         notifyDataSetChanged();\r
     }\r
     \r
@@ -458,20 +472,6 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
     }\r
     \r
     \r
-    /**\r
-     * Check if parent folder does not include 'S' permission and if file/folder\r
-     * is shared with me\r
-     * \r
-     * @param file: OCFile\r
-     * @return boolean: True if it is shared with me and false if it is not\r
-     */\r
-    private boolean checkIfFileIsSharedWithMe(OCFile file) {\r
-        return (mFile.getPermissions() != null \r
-                && !mFile.getPermissions().contains(PERMISSION_SHARED_WITH_ME)\r
-                && file.getPermissions() != null \r
-                && file.getPermissions().contains(PERMISSION_SHARED_WITH_ME));\r
-    }\r
-\r
     public void setSortOrder(Integer order, boolean ascending) {\r
         SharedPreferences.Editor editor = mAppPreferences.edit();\r
         editor.putInt("sortOrder", order);\r
@@ -482,17 +482,53 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
         FileStorageUtils.mSortAscending = ascending;\r
         \r
 \r
-        mFiles = FileStorageUtils.sortFolder(mFiles);\r
+        mFiles = FileStorageUtils.sortOcFolder(mFiles);\r
         notifyDataSetChanged();\r
 \r
     }\r
-    \r
-    private CharSequence showRelativeTimestamp(OCFile file){\r
-        return DisplayUtils.getRelativeDateTimeString(mContext, file.getModificationTimestamp(),\r
-                DateUtils.SECOND_IN_MILLIS, DateUtils.WEEK_IN_MILLIS, 0);\r
-    }\r
 \r
     public void setGridMode(boolean gridMode) {\r
         mGridMode = gridMode;\r
     }\r
+\r
+    public boolean isGridMode() {\r
+        return mGridMode;\r
+    }\r
+\r
+    public void setNewSelection(int position, boolean checked) {\r
+        mSelection.put(position, checked);\r
+        notifyDataSetChanged();\r
+    }\r
+\r
+    public void removeSelection(int position) {\r
+        mSelection.remove(position);\r
+        notifyDataSetChanged();\r
+    }\r
+\r
+    public void removeSelection(){\r
+         mSelection.clear();\r
+        notifyDataSetChanged();\r
+    }\r
+\r
+    public ArrayList<Integer> getCheckedItemPositions() {\r
+        ArrayList<Integer> ids = new ArrayList<Integer>();\r
+\r
+        for (Map.Entry<Integer, Boolean> entry : mSelection.entrySet()){\r
+            if (entry.getValue()){\r
+                ids.add(entry.getKey());\r
+            }\r
+        }\r
+        return ids;\r
+    }\r
+\r
+    public ArrayList<OCFile> getCheckedItems() {\r
+        ArrayList<OCFile> files = new ArrayList<OCFile>();\r
+\r
+        for (Map.Entry<Integer, Boolean> entry : mSelection.entrySet()){\r
+            if (entry.getValue()){\r
+                files.add((OCFile) getItem(entry.getKey()));\r
+            }\r
+        }\r
+        return files;\r
+    }\r
 }\r
index 287c5b9..ec48936 100644 (file)
@@ -25,7 +25,9 @@ import java.util.Arrays;
 import java.util.Comparator;
 
 import android.content.Context;
+import android.content.SharedPreferences;
 import android.graphics.Bitmap;
+import android.preference.PreferenceManager;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -37,21 +39,35 @@ import android.widget.TextView;
 
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.ThumbnailsCacheManager;
+import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.utils.BitmapUtils;
 import com.owncloud.android.utils.DisplayUtils;
+import com.owncloud.android.utils.MimetypeIconUtil;
+import com.owncloud.android.utils.FileStorageUtils;
 
 /**
  * This Adapter populates a ListView with all files and directories contained
  * in a local directory
  */
 public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
-    
+
+    private static final String TAG = LocalFileListAdapter.class.getSimpleName();
+
     private Context mContext;
     private File mDirectory;
     private File[] mFiles = null;
+    private SharedPreferences mAppPreferences;
     
     public LocalFileListAdapter(File directory, Context context) {
         mContext = context;
+
+        mAppPreferences = PreferenceManager
+                .getDefaultSharedPreferences(mContext);
+
+        // Read sorting order, default to sort by name ascending
+        FileStorageUtils.mSortOrder = mAppPreferences.getInt("sortOrder", 0);
+        FileStorageUtils.mSortAscending = mAppPreferences.getBoolean("sortAscending", true);
+
         swapDirectory(directory);
     }
 
@@ -103,6 +119,12 @@ public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
             fileName.setText(name);
             
             ImageView fileIcon = (ImageView) view.findViewById(R.id.thumbnail);
+
+            /** Cancellation needs do be checked and done before changing the drawable in fileIcon, or
+             * {@link ThumbnailsCacheManager#cancelPotentialWork} will NEVER cancel any task.
+             **/
+            boolean allowedToCreateNewThumbnail = (ThumbnailsCacheManager.cancelPotentialWork(file, fileIcon));
+
             if (!file.isDirectory()) {
                 fileIcon.setImageResource(R.drawable.file);
             } else {
@@ -111,9 +133,11 @@ public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
             fileIcon.setTag(file.hashCode());
 
             TextView fileSizeV = (TextView) view.findViewById(R.id.file_size);
+            TextView fileSizeSeparatorV = (TextView) view.findViewById(R.id.file_separator);
             TextView lastModV = (TextView) view.findViewById(R.id.last_mod);
             ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);
             if (!file.isDirectory()) {
+                fileSizeSeparatorV.setVisibility(View.VISIBLE);
                 fileSizeV.setVisibility(View.VISIBLE);
                 fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.length()));
 
@@ -124,9 +148,9 @@ public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
                     checkBoxV.setVisibility(View.GONE);
                 } else {
                     if (parentList.isItemChecked(position)) {
-                        checkBoxV.setImageResource(android.R.drawable.checkbox_on_background);
+                        checkBoxV.setImageResource(R.drawable.ic_checkbox_marked);
                     } else {
-                        checkBoxV.setImageResource(android.R.drawable.checkbox_off_background);
+                        checkBoxV.setImageResource(R.drawable.ic_checkbox_blank_outline);
                     }
                     checkBoxV.setVisibility(View.VISIBLE);
                 }
@@ -142,7 +166,7 @@ public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
                     } else {
 
                         // generate new Thumbnail
-                        if (ThumbnailsCacheManager.cancelPotentialWork(file, fileIcon)) {
+                        if (allowedToCreateNewThumbnail) {
                             final ThumbnailsCacheManager.ThumbnailGenerationTask task =
                                     new ThumbnailsCacheManager.ThumbnailGenerationTask(fileIcon);
                             if (thumbnail == null) {
@@ -156,13 +180,16 @@ public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
                                        );
                             fileIcon.setImageDrawable(asyncDrawable);
                             task.execute(file);
-                        }
+                            Log_OC.v(TAG, "Executing task to generate a new thumbnail");
+
+                        } // else, already being generated, don't restart it
                     }
                 } else {
-                    fileIcon.setImageResource(DisplayUtils.getFileTypeIconId(null, file.getName()));
+                    fileIcon.setImageResource(MimetypeIconUtil.getFileTypeIconId(null, file.getName()));
                 }  
 
             } else {
+                fileSizeSeparatorV.setVisibility(View.GONE);
                 fileSizeV.setVisibility(View.GONE);
                 lastModV.setVisibility(View.GONE);
                 checkBoxV.setVisibility(View.GONE);
@@ -173,7 +200,6 @@ public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
             view.findViewById(R.id.favoriteIcon).setVisibility(View.GONE);
             
             view.findViewById(R.id.sharedIcon).setVisibility(View.GONE);
-            view.findViewById(R.id.sharedWithMeIcon).setVisibility(View.GONE);
         }
 
         return view;
@@ -201,7 +227,7 @@ public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
     public void swapDirectory(File directory) {
         mDirectory = directory;
         mFiles = (mDirectory != null ? mDirectory.listFiles() : null);
-        if (mFiles != null) {
+        if (mFiles != null && mFiles.length > 0) {
             Arrays.sort(mFiles, new Comparator<File>() {
                 @Override
                 public int compare(File lhs, File rhs) {
@@ -218,7 +244,23 @@ public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
                 }
             
             });
+
+            mFiles = FileStorageUtils.sortLocalFolder(mFiles);
         }
         notifyDataSetChanged();
     }
+
+    public void setSortOrder(Integer order, boolean ascending) {
+        SharedPreferences.Editor editor = mAppPreferences.edit();
+        editor.putInt("sortOrder", order);
+        editor.putBoolean("sortAscending", ascending);
+        editor.commit();
+
+        FileStorageUtils.mSortOrder = order;
+        FileStorageUtils.mSortAscending = ascending;
+
+        mFiles = FileStorageUtils.sortLocalFolder(mFiles);
+        notifyDataSetChanged();
+
+    }
 }
index 78d0693..a8a6027 100644 (file)
@@ -28,6 +28,7 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
+import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
@@ -102,12 +103,18 @@ public class NavigationDrawerListAdapter extends BaseAdapter {
                 NavigationDrawerItem navItem = (NavigationDrawerItem) mAll.get(position);
 
                 View view = inflator.inflate(R.layout.drawer_list_item, null);
-                view.setMinimumHeight(40);
+
                 LinearLayout itemLayout = (LinearLayout) view.findViewById(R.id.itemLayout);
                 itemLayout.setContentDescription(navItem.getContentDescription());
+
                 TextView itemText = (TextView) view.findViewById(R.id.itemTitle);
                 itemText.setText(navItem.getTitle());
 
+                if(navItem.getIcon()!=0) {
+                    ImageView itemImage = (ImageView) view.findViewById(R.id.itemIcon);
+                    itemImage.setImageResource(navItem.getIcon());
+                }
+
                 return view;
             }
             // TODO re-enable when "Accounts" is available in Navigation Drawer
diff --git a/src/com/owncloud/android/ui/adapter/ShareUserListAdapter.java b/src/com/owncloud/android/ui/adapter/ShareUserListAdapter.java
new file mode 100644 (file)
index 0000000..413223d
--- /dev/null
@@ -0,0 +1,103 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author masensio
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.ui.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.owncloud.android.R;
+import com.owncloud.android.lib.resources.shares.OCShare;
+import com.owncloud.android.lib.resources.shares.ShareType;
+
+import java.util.ArrayList;
+
+/**
+ * Adapter to show a user/group in Share With List
+ */
+public class ShareUserListAdapter extends ArrayAdapter {
+
+    private Context mContext;
+    private ArrayList<OCShare> mShares;
+    private ShareUserAdapterListener mListener;
+
+    public ShareUserListAdapter(Context context, int resource, ArrayList<OCShare>shares,
+                                ShareUserAdapterListener listener) {
+        super(context, resource);
+        mContext= context;
+        mShares = shares;
+        mListener = listener;
+    }
+
+    @Override
+    public int getCount() {
+        return mShares.size();
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return mShares.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return 0;
+    }
+
+    @Override
+    public View getView(final int position, View convertView, ViewGroup parent) {
+        LayoutInflater inflator = (LayoutInflater) mContext
+                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        View view = inflator.inflate(R.layout.share_user_item, parent, false);
+
+        if (mShares != null && mShares.size() > position) {
+            OCShare share = mShares.get(position);
+
+            TextView userName = (TextView) view.findViewById(R.id.userOrGroupName);
+            String name = share.getSharedWithDisplayName();
+            if (share.getShareType() == ShareType.GROUP) {
+                name = getContext().getString(R.string.share_group_clarification, name);
+            }
+            userName.setText(name);
+
+            final ImageView unshareButton = (ImageView) view.findViewById(R.id.unshareButton);
+            unshareButton.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    mListener.unshareButtonPressed(mShares.get(position));
+                }
+            });
+
+        }
+        return view;
+    }
+
+    public interface ShareUserAdapterListener {
+        void unshareButtonPressed(OCShare share);
+    }
+
+
+
+}
index 1c8c8c2..742d6d8 100644 (file)
@@ -20,6 +20,9 @@
  */
 package com.owncloud.android.ui.adapter;
 
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateEncodingException;
 import java.security.cert.X509Certificate;
 import java.text.DateFormat;
 import java.util.Date;
@@ -31,6 +34,7 @@ import javax.security.auth.x500.X500Principal;
 import com.owncloud.android.R;
 import com.owncloud.android.ui.dialog.SslUntrustedCertDialog;
 
+import android.util.Log;
 import android.view.View;
 import android.widget.TextView;
 
@@ -42,7 +46,9 @@ public class X509CertificateViewAdapter implements SslUntrustedCertDialog.Certif
     //private final static String TAG = X509CertificateViewAdapter.class.getSimpleName();
     
     private X509Certificate mCertificate = null;
-    
+
+    private static final String TAG = X509CertificateViewAdapter.class.getSimpleName();
+
     public X509CertificateViewAdapter(X509Certificate certificate) {
         mCertificate = certificate;
     }
@@ -63,25 +69,68 @@ public class X509CertificateViewAdapter implements SslUntrustedCertDialog.Certif
         }
     }
 
+    private byte[] getDigest(String algorithm, byte[] message) {
+        MessageDigest md = null;
+
+        try {
+            md = MessageDigest.getInstance(algorithm);
+        } catch (NoSuchAlgorithmException e) {
+            return null;
+        }
+        md.reset();
+        return md.digest(message);
+    }
+
     private void showSignature(View dialogView) {
-        TextView sigView = ((TextView)dialogView.findViewById(R.id.value_signature));
-        TextView algorithmView = ((TextView)dialogView.findViewById(R.id.value_signature_algorithm));
-        sigView.setText(getHex(mCertificate.getSignature()));
-        algorithmView.setText(mCertificate.getSigAlgName());
+        byte[] cert = null;
+
+        TextView certFingerprintView = ((TextView) dialogView.findViewById(R.id.value_certificate_fingerprint));
+        TextView algorithmView = ((TextView) dialogView.findViewById(R.id.value_signature_algorithm));
+
+        try {
+            cert = mCertificate.getEncoded();
+            if (cert == null) {
+
+                certFingerprintView.setText(R.string.certificate_load_problem);
+                algorithmView.setText(R.string.certificate_load_problem);
+
+            } else {
+
+                certFingerprintView.setText(
+                        getDigestHexBytesWithColonsAndNewLines(dialogView, "SHA-256", cert)
+                                + getDigestHexBytesWithColonsAndNewLines(dialogView, "SHA-1", cert)
+                                + getDigestHexBytesWithColonsAndNewLines(dialogView, "MD5", cert));
+                algorithmView.setText(mCertificate.getSigAlgName());
+
+            }
+
+        } catch (CertificateEncodingException e) {
+            Log.e(TAG, "Problem while trying to decode the certificate.");
+        }
+
+
     }
     
-    public String getHex(final byte [] raw) {
-        if (raw == null) {
-           return null;
+    private final String getDigestHexBytesWithColonsAndNewLines(View dialogView, final String digestType, final byte [] cert) {
+        final byte[] rawDigest;
+        final String newLine = System.getProperty("line.separator");
+
+        rawDigest = getDigest(digestType, cert);
+
+        if ( rawDigest == null) {
+            return digestType + ":" + newLine + dialogView.getContext().getString(R.string.digest_algorithm_not_available) + newLine + newLine;
         }
-        final StringBuilder hex = new StringBuilder(2 * raw.length);
-        for (final byte b : raw) {
+
+        final StringBuilder hex = new StringBuilder(3 * rawDigest.length);
+
+        for (final byte b : rawDigest) {
            final int hiVal = (b & 0xF0) >> 4;
            final int loVal = b & 0x0F;
            hex.append((char) ('0' + (hiVal + (hiVal / 10 * 7))));
            hex.append((char) ('0' + (loVal + (loVal / 10 * 7))));
+           hex.append(":");
         }
-        return hex.toString();
+        return digestType + ":" + newLine + hex.toString().replaceFirst("\\:$","") + newLine + newLine;
      }    
 
     private void showValidity(Date notBefore, Date notAfter, View dialogView) {
diff --git a/src/com/owncloud/android/ui/dialog/AccountActionsDialogFragment.java b/src/com/owncloud/android/ui/dialog/AccountActionsDialogFragment.java
new file mode 100644 (file)
index 0000000..e8289d0
--- /dev/null
@@ -0,0 +1,147 @@
+package com.owncloud.android.ui.dialog;
+
+import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+import com.owncloud.android.R;
+import com.owncloud.android.ui.dialog.parcel.MenuItemParcelable;
+import com.owncloud.android.ui.dialog.parcel.MenuParcelable;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Dialog for choosing a file action.
+ */
+public class AccountActionsDialogFragment extends DialogFragment implements
+        OnItemClickListener {
+    private static final String ARG_ITEM_LIST = "ITEM_LIST";
+    private static final String ARG_FILE_POSITION = "FILE_POSITION";
+    public static final String FTAG_FILE_ACTIONS = "FILE_ACTIONS_FRAGMENT";
+
+    private List<MenuItemParcelable> mMenuItems;
+
+    private int mFilePosition;
+
+    private ListView mListView;
+
+    /**
+     * Listener interface for the file action fragment.
+     */
+    public interface FileActionsDialogFragmentListener {
+        // TODO Tobi change to int array?
+        public boolean onFileActionChosen(int menuId, int filePosition);
+    }
+
+    /**
+     * Public factory method to create new FileActionsDialogFragment instances.
+     *
+     * @param menu menu to be display.
+     * @return Dialog ready to show.
+     */
+    public static AccountActionsDialogFragment newInstance(Menu menu, int filePosition) {
+        AccountActionsDialogFragment fragment = new AccountActionsDialogFragment();
+        Bundle args = new Bundle();
+
+        MenuParcelable menuParcelable = new MenuParcelable();
+        menuParcelable.setMenuItems(calculateMenuParcel(menu));
+
+        args.putParcelable(ARG_ITEM_LIST, menuParcelable);
+        args.putInt(ARG_FILE_POSITION, filePosition);
+
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setStyle(DialogFragment.STYLE_NORMAL, R.style.ownCloud_Dialog);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.file_actions, null, false);
+        mListView = (ListView) view.findViewById(R.id.file_actions_list);
+
+        getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
+        return view;
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        mFilePosition = getArguments().getInt(ARG_FILE_POSITION);
+
+        MenuParcelable menu = getArguments().getParcelable(ARG_ITEM_LIST);
+        mMenuItems = menu.getMenuItems();
+        List<String> stringList = new ArrayList<String>();
+        for (int i = 0; i < mMenuItems.size(); i++) {
+            stringList.add(mMenuItems.get(i).getMenuText());
+        }
+
+        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
+                R.layout.simple_dialog_list_item, stringList);
+
+        mListView.setAdapter(adapter);
+
+        mListView.setOnItemClickListener(this);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        dismiss();
+        ((FileActionsDialogFragmentListener) getTargetFragment()).onFileActionChosen(mMenuItems.get(position).getMenuItemId(), mFilePosition);
+    }
+
+    /**
+     * calculates a parcelable list of MenuItemParcelable based on the given menu and the visibility of the menu items.
+     *
+     * @param menu the menu to be displayed
+     * @return a filtered List of parcelables based on the menu
+     */
+    private static List<MenuItemParcelable> calculateMenuParcel(Menu menu) {
+        int index = 0;
+        boolean hasNext = true;
+        List<MenuItemParcelable> itemList = new ArrayList<MenuItemParcelable>();
+        MenuParcelable menuParcelable = new MenuParcelable();
+        try {
+            while (hasNext) {
+                MenuItem item = menu.getItem(index);
+                if (item.isVisible()) {
+                    itemList.add(new MenuItemParcelable(item));
+                }
+                index++;
+            }
+        } catch (IndexOutOfBoundsException iobe) {
+            // reach the end of the item list
+        }
+
+        return itemList;
+    }
+}
index 83c6053..56df50e 100644 (file)
@@ -19,7 +19,7 @@
 
 package com.owncloud.android.ui.dialog;
 
-import android.app.AlertDialog;
+import android.support.v7.app.AlertDialog;
 import android.app.Dialog;
 import android.content.DialogInterface;
 import android.os.Bundle;
index e2dbe85..1be319f 100644 (file)
 
 package com.owncloud.android.ui.dialog;
 
-import android.app.AlertDialog;
+import android.support.v7.app.AlertDialog;
 import android.app.Dialog;
 import android.content.DialogInterface;
 import android.os.Bundle;
 import android.support.v4.app.DialogFragment;
 
+import com.owncloud.android.R;
 import com.owncloud.android.lib.common.utils.Log_OC;
 
 
@@ -81,8 +82,8 @@ public class ConfirmationDialogFragment extends DialogFragment {
             return null;
         }
 
-        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
-            .setIcon(android.R.drawable.ic_dialog_alert)
+        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.Theme_ownCloud_Dialog)
+            .setIcon(R.drawable.ic_warning)
             .setMessage(String.format(getString(resourceId), confirmationTarget))
             .setTitle(android.R.string.dialog_alert_title);
         if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
index 163197c..a01a7f9 100644 (file)
 
 package com.owncloud.android.ui.dialog;
 
-import android.app.AlertDialog;
+import android.support.v7.app.AlertDialog;
 import android.app.Dialog;
 import android.content.DialogInterface;
 import android.os.Bundle;
 import android.support.v4.app.DialogFragment;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentTransaction;
-import android.support.v7.app.ActionBarActivity;
+import android.support.v7.app.AppCompatActivity;
 
 import com.owncloud.android.R;
 import com.owncloud.android.utils.DisplayUtils;
@@ -60,8 +60,8 @@ public class ConflictsResolveDialog extends DialogFragment {
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         String remotepath = getArguments().getString("remotepath");
-        return new AlertDialog.Builder(getActivity())
-                   .setIcon(DisplayUtils.getSeasonalIconId())
+        return new AlertDialog.Builder(getActivity(), R.style.Theme_ownCloud_Dialog)
+                   .setIcon(R.drawable.ic_warning)
                    .setTitle(R.string.conflict_title)
                    .setMessage(String.format(getString(R.string.conflict_message), remotepath))
                    .setPositiveButton(R.string.conflict_use_local_version,
@@ -92,7 +92,7 @@ public class ConflictsResolveDialog extends DialogFragment {
                    .create();
     }
     
-    public void showDialog(ActionBarActivity activity) {
+    public void showDialog(AppCompatActivity activity) {
         Fragment prev = activity.getSupportFragmentManager().findFragmentByTag("dialog");
         FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
         if (prev != null) {
@@ -103,7 +103,7 @@ public class ConflictsResolveDialog extends DialogFragment {
         this.show(ft, "dialog");
     }
 
-    public void dismissDialog(ActionBarActivity activity) {
+    public void dismissDialog(AppCompatActivity activity) {
         Fragment prev = activity.getSupportFragmentManager().findFragmentByTag(getTag());
         if (prev != null) {
             FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
index ac1e312..7b58f4d 100644 (file)
@@ -25,7 +25,7 @@ import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.ui.activity.ComponentsGetter;
 
-import android.app.AlertDialog;
+import android.support.v7.app.AlertDialog;
 import android.app.Dialog;
 import android.content.DialogInterface;
 import android.os.Bundle;
index c12b9dd..609f721 100644 (file)
@@ -22,9 +22,9 @@ package com.owncloud.android.ui.dialog;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AuthenticatorActivity;
 
-import android.app.AlertDialog;
+import android.support.v7.app.AlertDialog;
 import android.app.Dialog;
-import android.app.AlertDialog.Builder;
+import android.support.v7.app.AlertDialog.Builder;
 import android.content.DialogInterface;
 import android.os.Bundle;
 import android.support.v4.app.DialogFragment;
diff --git a/src/com/owncloud/android/ui/dialog/ExpirationDatePickerDialogFragment.java b/src/com/owncloud/android/ui/dialog/ExpirationDatePickerDialogFragment.java
new file mode 100644 (file)
index 0000000..502e18a
--- /dev/null
@@ -0,0 +1,138 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author David A. Velasco
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.ui.dialog;
+
+
+import android.app.DatePickerDialog;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
+import android.text.format.DateUtils;
+import android.widget.DatePicker;
+import android.widget.Toast;
+
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.ui.activity.FileActivity;
+
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ *  Dialog requesting a date after today.
+ */
+public class ExpirationDatePickerDialogFragment
+        extends DialogFragment
+        implements DatePickerDialog.OnDateSetListener {
+
+    /** Tag for FragmentsManager */
+    public static final String DATE_PICKER_DIALOG = "DATE_PICKER_DIALOG";
+
+    /** Parameter constant for {@link OCFile} instance to set the expiration date */
+    private static final String ARG_FILE = "FILE";
+
+    /** Parameter constant for date chosen initially */
+    private static final String ARG_CHOSEN_DATE_IN_MILLIS = "CHOSEN_DATE_IN_MILLIS";
+
+    /** File to bind an expiration date */
+    private OCFile mFile;
+
+    /**
+     *  Factory method to create new instances
+     *
+     *  @param file                 File to bind an expiration date
+     *  @param chosenDateInMillis   Date chosen when the dialog appears
+     *  @return                     New dialog instance
+     */
+    public static ExpirationDatePickerDialogFragment newInstance(OCFile file, long chosenDateInMillis) {
+        Bundle arguments = new Bundle();
+        arguments.putParcelable(ARG_FILE, file);
+        arguments.putLong(ARG_CHOSEN_DATE_IN_MILLIS, chosenDateInMillis);
+
+        ExpirationDatePickerDialogFragment dialog = new ExpirationDatePickerDialogFragment();
+        dialog.setArguments(arguments);
+        return dialog;
+    }
+
+    /**
+     * {@inheritDoc}
+     *
+     * @return      A new dialog to let the user choose an expiration date that will be bound to a share link.
+     */
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        // Load arguments
+        mFile = getArguments().getParcelable(ARG_FILE);
+
+        // Chosen date received as an argument must be later than tomorrow ; default to tomorrow in other case
+        final Calendar chosenDate = Calendar.getInstance();
+        long tomorrowInMillis = chosenDate.getTimeInMillis() + DateUtils.DAY_IN_MILLIS;
+        long chosenDateInMillis = getArguments().getLong(ARG_CHOSEN_DATE_IN_MILLIS);
+        if (chosenDateInMillis > tomorrowInMillis) {
+            chosenDate.setTimeInMillis(chosenDateInMillis);
+        } else {
+            chosenDate.setTimeInMillis(tomorrowInMillis);
+        }
+
+        // Create a new instance of DatePickerDialog
+        DatePickerDialog dialog = new DatePickerDialog(
+                getActivity(),
+                this,
+                chosenDate.get(Calendar.YEAR),
+                chosenDate.get(Calendar.MONTH),
+                chosenDate.get(Calendar.DAY_OF_MONTH)
+        );
+
+        // Prevent days in the past may be chosen
+        DatePicker picker = dialog.getDatePicker();
+        picker.setMinDate(tomorrowInMillis - 1000);
+
+        // Enforce spinners view; ignored by MD-based theme in Android >=5, but calendar is REALLY buggy
+        // in Android < 5, so let's be sure it never appears (in tablets both spinners and calendar are
+        // shown by default)
+        picker.setCalendarViewShown(false);
+
+        return dialog;
+    }
+
+    /**
+     * Called when the user choses an expiration date.
+     *
+     * @param view              View instance where the date was chosen
+     * @param year              Year of the date chosen.
+     * @param monthOfYear       Month of the date chosen [0, 11]
+     * @param dayOfMonth        Day of the date chosen
+     */
+    @Override
+    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
+
+        Calendar chosenDate = Calendar.getInstance();
+        chosenDate.set(Calendar.YEAR, year);
+        chosenDate.set(Calendar.MONTH, monthOfYear);
+        chosenDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
+        long chosenDateInMillis = chosenDate.getTimeInMillis();
+
+        ((FileActivity)getActivity()).getFileOperationsHelper().setExpirationDateToShareViaLink(
+                mFile,
+                chosenDateInMillis
+        );
+    }
+}
diff --git a/src/com/owncloud/android/ui/dialog/FileActionsDialogFragment.java b/src/com/owncloud/android/ui/dialog/FileActionsDialogFragment.java
new file mode 100644 (file)
index 0000000..79eb52d
--- /dev/null
@@ -0,0 +1,159 @@
+package com.owncloud.android.ui.dialog;
+
+import android.support.v4.app.DialogFragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.owncloud.android.R;
+import com.owncloud.android.ui.dialog.parcel.MenuItemParcelable;
+import com.owncloud.android.ui.dialog.parcel.MenuParcelable;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Dialog for choosing a file action.
+ */
+public class FileActionsDialogFragment extends DialogFragment implements
+        OnItemClickListener {
+    private static final String ARG_ITEM_LIST = "ITEM_LIST";
+    private static final String ARG_FILE_POSITION = "FILE_POSITION";
+    private static final String ARG_FILE_NAME = "FILE_NAME";
+    public static final String FTAG_FILE_ACTIONS = "FILE_ACTIONS_FRAGMENT";
+
+    private List<MenuItemParcelable> mMenuItems;
+
+    private int mFilePosition;
+
+    private ListView mListView;
+
+    /**
+     * Listener interface for the file action fragment.
+     */
+    public interface FileActionsDialogFragmentListener {
+        public boolean onFileActionChosen(int menuId, int filePosition);
+    }
+
+    /**
+     * Public factory method to create new FileActionsDialogFragment instances.
+     *
+     * @param menu menu to be display.
+     * @return Dialog ready to show.
+     */
+    public static FileActionsDialogFragment newInstance(Menu menu, int filePosition, String fileName) {
+        FileActionsDialogFragment fragment = new FileActionsDialogFragment();
+        Bundle args = new Bundle();
+
+        MenuParcelable menuParcelable = new MenuParcelable();
+        menuParcelable.setMenuItems(calculateMenuParcel(menu));
+
+        args.putParcelable(ARG_ITEM_LIST, menuParcelable);
+        args.putInt(ARG_FILE_POSITION, filePosition);
+        args.putCharSequence(ARG_FILE_NAME, fileName);
+
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setStyle(DialogFragment.STYLE_NORMAL, R.style.ownCloud_Dialog);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        View view = inflater.inflate(R.layout.file_actions, null, false);
+        mListView = (ListView) view.findViewById(R.id.file_actions_list);
+
+        CharSequence title =  getArguments().getCharSequence(ARG_FILE_NAME);
+        if(title != null && title.length() > 0) {
+            TextView header = (TextView)view.findViewById(R.id.file_actions_header);
+            header.setText(title);
+            header.setVisibility(View.VISIBLE);
+            view.findViewById(R.id.file_actions_header_divider).setVisibility(View.VISIBLE);
+        } else {
+            getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
+        }
+
+        return view;
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        mFilePosition = getArguments().getInt(ARG_FILE_POSITION);
+
+        MenuParcelable menu = getArguments().getParcelable(ARG_ITEM_LIST);
+        mMenuItems = menu.getMenuItems();
+        List<String> stringList = new ArrayList<String>();
+        for (int i = 0; i < mMenuItems.size(); i++) {
+            stringList.add(mMenuItems.get(i).getMenuText());
+        }
+
+        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
+                R.layout.simple_dialog_list_item, stringList);
+
+        mListView.setAdapter(adapter);
+
+        mListView.setOnItemClickListener(this);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        dismiss();
+        ((FileActionsDialogFragmentListener) getTargetFragment())
+                .onFileActionChosen(mMenuItems.get(position).getMenuItemId(), mFilePosition);
+    }
+
+    /**
+     * calculates a parcelable list of MenuItemParcelable based on the given menu and the visibility of the menu items.
+     *
+     * @param menu the menu to be displayed
+     * @return a filtered List of parcelables based on the menu
+     */
+    private static List<MenuItemParcelable> calculateMenuParcel(Menu menu) {
+        int index = 0;
+        boolean hasNext = true;
+        List<MenuItemParcelable> itemList = new ArrayList<MenuItemParcelable>();
+        MenuParcelable menuParcelable = new MenuParcelable();
+        try {
+            while (hasNext) {
+                MenuItem item = menu.getItem(index);
+                if (item.isVisible()) {
+                    itemList.add(new MenuItemParcelable(item));
+                }
+                index++;
+            }
+        } catch (IndexOutOfBoundsException iobe) {
+            // reach the end of the item list
+        }
+
+        return itemList;
+    }
+}
index 6f4b680..95105dd 100644 (file)
@@ -26,6 +26,7 @@ import android.content.DialogInterface.OnKeyListener;
 import android.os.Bundle;
 import android.support.v4.app.DialogFragment;
 import android.view.KeyEvent;
+import android.widget.ProgressBar;
 
 import com.owncloud.android.R;
 
@@ -45,6 +46,7 @@ public class IndeterminateProgressDialog extends DialogFragment {
      */
     public static IndeterminateProgressDialog newInstance(int messageId, boolean cancelable) {
         IndeterminateProgressDialog fragment = new IndeterminateProgressDialog();
+        fragment.setStyle(DialogFragment.STYLE_NO_FRAME, R.style.ownCloud_AlertDialog);
         Bundle args = new Bundle();
         args.putInt(ARG_MESSAGE_ID, messageId);
         args.putBoolean(ARG_CANCELABLE, cancelable);
@@ -59,34 +61,43 @@ public class IndeterminateProgressDialog extends DialogFragment {
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         /// create indeterminate progress dialog
-        final ProgressDialog dialog = new ProgressDialog(getActivity());
-        dialog.setIndeterminate(true);
+        final ProgressDialog progressDialog = new ProgressDialog(getActivity(), R.style.ProgressDialogTheme);
+        progressDialog.setIndeterminate(true);
+        progressDialog.setOnShowListener(new DialogInterface.OnShowListener() {
+            @Override
+            public void onShow(DialogInterface dialog) {
+                ProgressBar v = (ProgressBar) progressDialog.findViewById(android.R.id.progress);
+                v.getIndeterminateDrawable().setColorFilter(getResources().getColor(R.color.color_accent),
+                        android.graphics.PorterDuff.Mode.MULTIPLY);
+
+            }
+        });
         
         /// set message
         int messageId = getArguments().getInt(ARG_MESSAGE_ID, R.string.placeholder_sentence);
-        dialog.setMessage(getString(messageId));
-        
+        progressDialog.setMessage(getString(messageId));
+
         /// set cancellation behavior
         boolean cancelable = getArguments().getBoolean(ARG_CANCELABLE, false);
         if (!cancelable) {
-            dialog.setCancelable(false);
+            progressDialog.setCancelable(false);
             // disable the back button
             OnKeyListener keyListener = new OnKeyListener() {
                 @Override
                 public boolean onKey(DialogInterface dialog, int keyCode,
                         KeyEvent event) {
 
-                    if( keyCode == KeyEvent.KEYCODE_BACK){                  
+                    if( keyCode == KeyEvent.KEYCODE_BACK) {
                         return true;
                     }
                     return false;
                 }
 
             };
-            dialog.setOnKeyListener(keyListener);
+            progressDialog.setOnKeyListener(keyListener);
         }
         
-        return dialog;
+        return progressDialog;
     }    
     
 }
index e8e68e7..6e9edb8 100644 (file)
@@ -21,12 +21,14 @@ package com.owncloud.android.ui.dialog;
 import com.owncloud.android.R;
 
 import android.app.Dialog;
+import android.graphics.PorterDuff;
 import android.os.Bundle;
 import android.support.v4.app.DialogFragment;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.Window;
+import android.widget.ProgressBar;
 import android.widget.TextView;
 
 public class LoadingDialog extends DialogFragment {
@@ -56,6 +58,11 @@ public class LoadingDialog extends DialogFragment {
         // set value
         TextView tv  = (TextView) v.findViewById(R.id.loadingText);
         tv.setText(mMessage);
+
+        // set progress wheel color
+        ProgressBar progressBar  = (ProgressBar) v.findViewById(R.id.loadingBar);
+        progressBar.getIndeterminateDrawable().setColorFilter(
+                getResources().getColor(R.color.color_accent), PorterDuff.Mode.SRC_IN);
         
         return v;
     }
diff --git a/src/com/owncloud/android/ui/dialog/OwnCloudListPreference.java b/src/com/owncloud/android/ui/dialog/OwnCloudListPreference.java
new file mode 100644 (file)
index 0000000..54ec499
--- /dev/null
@@ -0,0 +1,107 @@
+package com.owncloud.android.ui.dialog;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.Build;
+import android.os.Bundle;
+import android.preference.ListPreference;
+import android.preference.PreferenceManager;
+import android.support.v7.app.AppCompatDialog;
+import android.util.AttributeSet;
+
+import com.owncloud.android.R;
+import com.owncloud.android.lib.common.utils.Log_OC;
+
+import java.lang.reflect.Method;
+
+public class OwnCloudListPreference extends ListPreference {
+    private static final String TAG = OwnCloudListPreference.class.getSimpleName();
+
+    private Context mContext;
+    private AppCompatDialog mDialog;
+
+    public OwnCloudListPreference(Context context) {
+        super(context);
+        this.mContext = context;
+    }
+
+    public OwnCloudListPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        this.mContext = context;
+    }
+
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    public OwnCloudListPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+    }
+
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    public OwnCloudListPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    @Override
+    protected void showDialog(Bundle state) {
+        if (getEntries() == null || getEntryValues() == null) {
+            throw new IllegalStateException(
+                    "ListPreference requires an entries array and an entryValues array.");
+        }
+
+        int preselect = findIndexOfValue(getValue());
+
+        // same thing happens for the Standard ListPreference though
+        android.support.v7.app.AlertDialog.Builder builder =
+                new android.support.v7.app.AlertDialog.Builder(mContext, R.style.ownCloud_AlertDialog)
+                .setTitle(getDialogTitle())
+                .setIcon(getDialogIcon())
+                .setSingleChoiceItems(getEntries(), preselect, this);
+
+        PreferenceManager pm = getPreferenceManager();
+        try {
+            Method method = pm.getClass().getDeclaredMethod(
+                    "registerOnActivityDestroyListener",
+                    PreferenceManager.OnActivityDestroyListener.class);
+            method.setAccessible(true);
+            method.invoke(pm, this);
+        } catch (Exception e) {
+            // no way to handle this but logging it
+            Log_OC.e(TAG, "error invoking registerOnActivityDestroyListener", e);
+        }
+
+        mDialog = builder.create();
+        if (state != null) {
+            mDialog.onRestoreInstanceState(state);
+        }
+        mDialog.show();
+    }
+
+    @Override
+    public void onClick(DialogInterface dialog, int which) {
+        if (which >= 0 && getEntryValues() != null) {
+            String value = getEntryValues()[which].toString();
+            if (callChangeListener(value)) {
+                setValue(value);
+
+                // Workaround for pre kitkat since they don't support change listener within setValue
+                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
+                    setSummary(getEntries()[which]);
+                }
+            }
+            dialog.dismiss();
+        }
+    }
+
+    @Override
+    public AppCompatDialog getDialog() {
+        return mDialog;
+    }
+
+    @Override
+    public void onActivityDestroy() {
+        super.onActivityDestroy();
+        if (mDialog != null && mDialog.isShowing()) {
+            mDialog.dismiss();
+        }
+    }
+}
index 72f40f9..d42cf46 100644 (file)
@@ -25,7 +25,6 @@ package com.owncloud.android.ui.dialog;
  * 
  *  Triggers the removal according to the user response.
  */
-import java.util.Vector;
 
 import android.app.Dialog;
 import android.os.Bundle;
@@ -39,6 +38,8 @@ import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDia
 public class RemoveFileDialogFragment extends ConfirmationDialogFragment 
 implements ConfirmationDialogFragmentListener {
 
+    private OCFile mTargetFile;
+
     private static final String ARG_TARGET_FILE = "TARGET_FILE";
 
     /**
@@ -51,32 +52,29 @@ implements ConfirmationDialogFragmentListener {
         RemoveFileDialogFragment frag = new RemoveFileDialogFragment();
         Bundle args = new Bundle();
         
-        int messageStringId = R.string.confirmation_remove_alert;
+        int messageStringId = R.string.confirmation_remove_file_alert;
         
-        int posBtn = R.string.confirmation_remove_remote;
-        int neuBtn = -1;
+        int posBtn = R.string.confirmation_remove_file_remote;
+        int negBtn = -1;
         if (file.isFolder()) {
             messageStringId = R.string.confirmation_remove_folder_alert;
             posBtn = R.string.confirmation_remove_remote_and_local;
-            neuBtn = R.string.confirmation_remove_folder_local;
+            negBtn = R.string.confirmation_remove_local;
         } else if (file.isDown()) {
             posBtn = R.string.confirmation_remove_remote_and_local;
-            neuBtn = R.string.confirmation_remove_local;
+            negBtn = R.string.confirmation_remove_local;
         }
         
-        
         args.putInt(ARG_CONF_RESOURCE_ID, messageStringId);
         args.putStringArray(ARG_CONF_ARGUMENTS, new String[]{file.getFileName()});
         args.putInt(ARG_POSITIVE_BTN_RES, posBtn);
-        args.putInt(ARG_NEUTRAL_BTN_RES, neuBtn);
-        args.putInt(ARG_NEGATIVE_BTN_RES, R.string.common_cancel);
+        args.putInt(ARG_NEUTRAL_BTN_RES, R.string.common_no);
+        args.putInt(ARG_NEGATIVE_BTN_RES, negBtn);
         args.putParcelable(ARG_TARGET_FILE, file);
         frag.setArguments(args);
         
         return frag;
     }
-
-    private OCFile mTargetFile;
     
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
@@ -104,42 +102,13 @@ implements ConfirmationDialogFragmentListener {
      * Performs the removal of the local copy of the target file
      */
     @Override
-    public void onNeutral(String callerTag) {
+    public void onCancel(String callerTag) {
         ComponentsGetter cg = (ComponentsGetter)getActivity();
         cg.getFileOperationsHelper().removeFile(mTargetFile, true);
-        
-        FileDataStorageManager storageManager = cg.getStorageManager();
-        
-        boolean containsFavorite = false;
-        if (mTargetFile.isFolder()) {
-            // TODO Enable when "On Device" is recovered ?
-            Vector<OCFile> files = storageManager.getFolderContent(mTargetFile/*, false*/);
-            for(OCFile file: files) {
-                containsFavorite = file.isFavorite() || containsFavorite;
-
-                if (containsFavorite)
-                    break;
-            }
-        }
-
-        // Remove etag for parent, if file is a favorite
-        // or is a folder and contains favorite
-        if (mTargetFile.isFavorite() || containsFavorite) {
-            OCFile folder = null;
-            if (mTargetFile.isFolder()) {
-                folder = mTargetFile;
-            } else {
-                folder = storageManager.getFileById(mTargetFile.getParentId());
-            }
-            
-           folder.setEtag("");
-           storageManager.saveFile(folder);
-        }
     }
 
     @Override
-    public void onCancel(String callerTag) {
+    public void onNeutral(String callerTag) {
         // nothing to do here
     }
-    
 }
\ No newline at end of file
diff --git a/src/com/owncloud/android/ui/dialog/RemoveFilesDialogFragment.java b/src/com/owncloud/android/ui/dialog/RemoveFilesDialogFragment.java
new file mode 100644 (file)
index 0000000..6d40d8e
--- /dev/null
@@ -0,0 +1,159 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author David A. Velasco
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.ui.dialog;
+
+/**
+ *  Dialog requiring confirmation before removing a given OCFile.  
+ * 
+ *  Triggers the removal according to the user response.
+ */
+
+import android.app.Dialog;
+import android.content.res.Resources;
+import android.os.Bundle;
+
+import com.owncloud.android.MainApp;
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.FileDataStorageManager;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.ui.activity.ComponentsGetter;
+import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDialogFragmentListener;
+
+import java.util.ArrayList;
+import java.util.Vector;
+
+public class RemoveFilesDialogFragment extends ConfirmationDialogFragment
+implements ConfirmationDialogFragmentListener {
+
+    private ArrayList<OCFile> mTargetFiles;
+
+    private static final String ARG_TARGET_FILES = "TARGET_FILES";
+
+    /**
+     * Public factory method to create new RemoveFileDialogFragment instances.
+     * 
+     * @param files            Files to remove.
+     * @return                Dialog ready to show.
+     */
+    public static RemoveFilesDialogFragment newInstance(ArrayList<OCFile> files) {
+        RemoveFilesDialogFragment frag = new RemoveFilesDialogFragment();
+        Bundle args = new Bundle();
+        
+        int messageStringId = R.string.confirmation_remove_files_alert;
+        
+        int posBtn = R.string.confirmation_remove_file_remote;
+        int negBtn = -1;
+
+        boolean containsFolder = false;
+        boolean containsDown = false;
+        for (OCFile file: files) {
+            if (file.isFolder()) containsFolder = true;
+            if (file.isDown()) containsDown = true;
+        }
+
+        if (containsFolder) {
+            messageStringId = R.string.confirmation_remove_folders_alert;
+            posBtn = R.string.confirmation_remove_remote_and_local;
+            negBtn = R.string.confirmation_remove_local;
+        } else if (containsDown) {
+            posBtn = R.string.confirmation_remove_remote_and_local;
+            negBtn = R.string.confirmation_remove_local;
+        }
+        
+        args.putInt(ARG_CONF_RESOURCE_ID, messageStringId);
+        args.putStringArray(ARG_CONF_ARGUMENTS, new String[]{MainApp.getAppContext().getString(R.string.confirmation_remove_files)});
+        args.putInt(ARG_POSITIVE_BTN_RES, posBtn);
+        args.putInt(ARG_NEUTRAL_BTN_RES, R.string.common_no);
+        args.putInt(ARG_NEGATIVE_BTN_RES, negBtn);
+        args.putParcelableArrayList(ARG_TARGET_FILES, files);
+        frag.setArguments(args);
+        
+        return frag;
+    }
+    
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        Dialog dialog = super.onCreateDialog(savedInstanceState);
+        mTargetFiles = getArguments().getParcelableArrayList(ARG_TARGET_FILES);
+        
+        setOnConfirmationListener(this);
+        
+        return dialog;
+    }    
+
+    /**
+     * Performs the removal of the target file, both locally and in the server.
+     */
+    @Override
+    public void onConfirmation(String callerTag) {
+        ComponentsGetter cg = (ComponentsGetter) getActivity();
+        FileDataStorageManager storageManager = cg.getStorageManager();
+        for (OCFile targetFile : mTargetFiles) {
+            if (storageManager.getFileById(targetFile.getFileId()) != null) {
+                cg.getFileOperationsHelper().removeFile(targetFile, false);
+            }
+        }
+    }
+    
+    /**
+     * Performs the removal of the local copy of the target file
+     */
+    @Override
+    public void onCancel(String callerTag) {
+        ComponentsGetter cg = (ComponentsGetter) getActivity();
+
+        for (OCFile targetFile : mTargetFiles) {
+            cg.getFileOperationsHelper().removeFile(targetFile, true);
+
+            FileDataStorageManager storageManager = cg.getStorageManager();
+
+            boolean containsFavorite = false;
+            if (targetFile.isFolder()) {
+                Vector<OCFile> files = storageManager.getFolderContent(targetFile, false);
+                for (OCFile file : files) {
+                    containsFavorite = file.isFavorite() || containsFavorite;
+
+                    if (containsFavorite)
+                        break;
+                }
+            }
+
+            // Remove etag for parent, if file is a favorite
+            // or is a folder and contains favorite
+            if (targetFile.isFavorite() || containsFavorite) {
+                OCFile folder = null;
+                if (targetFile.isFolder()) {
+                    folder = targetFile;
+                } else {
+                    folder = storageManager.getFileById(targetFile.getParentId());
+                }
+
+                folder.setEtag("");
+                storageManager.saveFile(folder);
+            }
+        }
+    }
+
+    @Override
+    public void onNeutral(String callerTag) {
+        // nothing to do here
+    }
+}
\ No newline at end of file
index d4bf31c..24e1b14 100644 (file)
@@ -25,7 +25,7 @@ package com.owncloud.android.ui.dialog;
  * 
  *  Triggers the rename operation. 
  */
-import android.app.AlertDialog;
+import android.support.v7.app.AlertDialog;
 import android.app.Dialog;
 import android.content.DialogInterface;
 import android.os.Bundle;
index 29b591d..29eaac2 100644 (file)
@@ -25,7 +25,7 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
-import android.app.AlertDialog;
+import android.support.v7.app.AlertDialog;
 import android.app.Dialog;
 import android.content.ComponentName;
 import android.content.Context;
@@ -44,11 +44,8 @@ import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.owncloud.android.R;
-import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.utils.Log_OC;
-import com.owncloud.android.ui.activity.ComponentsGetter;
 import com.owncloud.android.ui.activity.CopyToClipboardActivity;
-import com.owncloud.android.ui.activity.FileActivity;
 
 /**
  * Dialog showing a list activities able to resolve a given Intent, 
@@ -61,20 +58,15 @@ public class ShareLinkToDialog  extends DialogFragment {
             ".ARG_INTENT";
     private final static String ARG_PACKAGES_TO_EXCLUDE =  ShareLinkToDialog.class.getSimpleName() +
             ".ARG_PACKAGES_TO_EXCLUDE";
-    private final static String ARG_FILE_TO_SHARE = ShareLinkToDialog.class.getSimpleName() +
-            ".FILE_TO_SHARE";
-    
+
     private ActivityAdapter mAdapter;
-    private OCFile mFile;
     private Intent mIntent;
     
-    public static ShareLinkToDialog newInstance(Intent intent, String[] packagesToExclude,
-                                                OCFile fileToShare) {
+    public static ShareLinkToDialog newInstance(Intent intent, String[] packagesToExclude) {
         ShareLinkToDialog f = new ShareLinkToDialog();
         Bundle args = new Bundle();
         args.putParcelable(ARG_INTENT, intent);
         args.putStringArray(ARG_PACKAGES_TO_EXCLUDE, packagesToExclude);
-        args.putParcelable(ARG_FILE_TO_SHARE, fileToShare);
         f.setArguments(args);
         return f;
     }
@@ -90,8 +82,7 @@ public class ShareLinkToDialog  extends DialogFragment {
         String[] packagesToExclude = getArguments().getStringArray(ARG_PACKAGES_TO_EXCLUDE);
         List<String> packagesToExcludeList = Arrays.asList(packagesToExclude != null ?
                 packagesToExclude : new String[0]);
-        mFile = getArguments().getParcelable(ARG_FILE_TO_SHARE);
-        
+
         PackageManager pm= getActivity().getPackageManager();
         List<ResolveInfo> activities = pm.queryIntentActivities(mIntent,
                 PackageManager.MATCH_DEFAULT_ONLY);
@@ -142,19 +133,10 @@ public class ShareLinkToDialog  extends DialogFragment {
                             ComponentName name=new ComponentName(
                                     actInfo.applicationInfo.packageName, 
                                     actInfo.name);
-                            mIntent.setComponent(name);                               
-
-                            if (sendAction) {
-                                dialog.dismiss();    // explicitly added for Android 2.x devices
-
-                                // Send the file
-                                ((FileActivity)getActivity()).startActivity(mIntent);
+                            mIntent.setComponent(name);
 
-                            } else {
-                                // Create a new share resource
-                                ((ComponentsGetter)getActivity()).getFileOperationsHelper()
-                                    .shareFileWithLinkToApp(mFile, "", mIntent);
-                            }
+                            // Send the file
+                            getActivity().startActivity(mIntent);
                         }
         })
         .create();
index d2d29fe..1b7def2 100644 (file)
  */
 package com.owncloud.android.ui.dialog;
 
-import android.app.AlertDialog;
+import android.support.v7.app.AlertDialog;
 import android.app.Dialog;
 import android.content.DialogInterface;
-import android.content.Intent;
 import android.os.Bundle;
 import android.support.v4.app.DialogFragment;
 import android.view.LayoutInflater;
@@ -45,25 +44,26 @@ public class SharePasswordDialogFragment extends DialogFragment
         implements DialogInterface.OnClickListener {
 
     private static final String ARG_FILE = "FILE";
-    private static final String ARG_SEND_INTENT = "SEND_INTENT";
+    private static final String ARG_CREATE_SHARE = "CREATE_SHARE";
 
     public static final String PASSWORD_FRAGMENT = "PASSWORD_FRAGMENT";
 
     private OCFile mFile;
-    private Intent mSendIntent;
+    private boolean mCreateShare;
 
     /**
      * Public factory method to create new SharePasswordDialogFragment instances.
      *
-     * @param file
-     * @param sendIntent
-     * @return              Dialog ready to show.
+     * @param   file            OCFile bound to the public share that which password will be set or updated
+     * @param   createShare     When 'true', the public share will be created; when 'false', will be assumed
+     *                          that the public share already exists, and its state will be directly updated.
+     * @return                  Dialog ready to show.
      */
-    public static SharePasswordDialogFragment newInstance(OCFile file, Intent sendIntent) {
+    public static SharePasswordDialogFragment newInstance(OCFile file, boolean createShare) {
         SharePasswordDialogFragment frag = new SharePasswordDialogFragment();
         Bundle args = new Bundle();
         args.putParcelable(ARG_FILE, file);
-        args.putParcelable(ARG_SEND_INTENT, sendIntent);
+        args.putBoolean(ARG_CREATE_SHARE, createShare);
         frag.setArguments(args);
         return frag;
     }
@@ -71,7 +71,7 @@ public class SharePasswordDialogFragment extends DialogFragment
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         mFile = getArguments().getParcelable(ARG_FILE);
-        mSendIntent = getArguments().getParcelable(ARG_SEND_INTENT);
+        mCreateShare = getArguments().getBoolean(ARG_CREATE_SHARE, false);
 
         // Inflate the layout for the dialog
         LayoutInflater inflater = getActivity().getLayoutInflater();
@@ -97,9 +97,6 @@ public class SharePasswordDialogFragment extends DialogFragment
     @Override
     public void onClick(DialogInterface dialog, int which) {
         if (which == AlertDialog.BUTTON_POSITIVE) {
-            // Enable the flag "Share again"
-            ((FileActivity) getActivity()).setTryShareAgain(true);
-
             String password =
                     ((TextView)(getDialog().findViewById(R.id.share_password)))
                         .getText().toString();
@@ -112,13 +109,16 @@ public class SharePasswordDialogFragment extends DialogFragment
                 return;
             }
 
-            // Share the file
-            ((FileActivity)getActivity()).getFileOperationsHelper()
-                                    .shareFileWithLinkToApp(mFile, password, mSendIntent);
+            if (mCreateShare) {
+                // Share the file
+                ((FileActivity) getActivity()).getFileOperationsHelper().
+                        shareFileViaLink(mFile, password);
 
-        } else {
-            // Disable the flag "Share again"
-            ((FileActivity) getActivity()).setTryShareAgain(false);
+            } else {
+                // updat existing link
+                ((FileActivity) getActivity()).getFileOperationsHelper().
+                        setPasswordToShareViaLink(mFile, password);
+            }
         }
     }
 }
index 7eb861c..5b01c8f 100644 (file)
@@ -20,7 +20,7 @@
 package com.owncloud.android.ui.dialog;
 
 import android.accounts.Account;
-import android.app.AlertDialog;
+import android.support.v7.app.AlertDialog;
 import android.app.Dialog;
 import android.content.DialogInterface;
 import android.content.Intent;
diff --git a/src/com/owncloud/android/ui/dialog/parcel/MenuItemParcelable.java b/src/com/owncloud/android/ui/dialog/parcel/MenuItemParcelable.java
new file mode 100644 (file)
index 0000000..dadac2d
--- /dev/null
@@ -0,0 +1,61 @@
+package com.owncloud.android.ui.dialog.parcel;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.view.MenuItem;
+
+public class MenuItemParcelable implements Parcelable {
+    int mMenuItemId;
+    String mMenuText;
+
+    public MenuItemParcelable() {}
+
+    public MenuItemParcelable(MenuItem menuItem) {
+        mMenuItemId = menuItem.getItemId();
+        mMenuText = menuItem.getTitle().toString();
+    }
+
+    public MenuItemParcelable(Parcel read) {
+        mMenuItemId = read.readInt();
+    }
+
+    public void setMenuItemId(int id) {
+        mMenuItemId = id;
+    }
+
+    public int getMenuItemId() {
+        return mMenuItemId;
+    }
+
+    public String getMenuText() {
+        return mMenuText;
+    }
+
+    public void setMenuText(String mMenuText) {
+        this.mMenuText = mMenuText;
+    }
+
+    public static final Parcelable.Creator<MenuItemParcelable> CREATOR =
+            new Parcelable.Creator<MenuItemParcelable>() {
+
+                @Override
+                public MenuItemParcelable createFromParcel(Parcel source) {
+                    return new MenuItemParcelable(source);
+                }
+
+                @Override
+                public MenuItemParcelable[] newArray(int size) {
+                    return new MenuItemParcelable[size];
+                }
+            };
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(mMenuItemId);
+    }
+}
diff --git a/src/com/owncloud/android/ui/dialog/parcel/MenuParcelable.java b/src/com/owncloud/android/ui/dialog/parcel/MenuParcelable.java
new file mode 100644 (file)
index 0000000..7b6f526
--- /dev/null
@@ -0,0 +1,51 @@
+package com.owncloud.android.ui.dialog.parcel;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class MenuParcelable implements Parcelable {
+
+    private List<MenuItemParcelable> mMenuItems = new ArrayList<MenuItemParcelable>();
+
+    public List<MenuItemParcelable> getMenuItems() {
+        return mMenuItems;
+    }
+
+    public void setMenuItems(List<MenuItemParcelable> menuItems) {
+        this.mMenuItems = menuItems;
+    }
+
+    public MenuParcelable() {
+        mMenuItems = new ArrayList<MenuItemParcelable>();
+    }
+
+    public MenuParcelable(Parcel in) {
+        in.readTypedList(mMenuItems, MenuItemParcelable.CREATOR);
+    }
+
+    public static final Parcelable.Creator<MenuParcelable> CREATOR = new Parcelable.Creator<MenuParcelable>() {
+
+        @Override
+        public MenuParcelable createFromParcel(Parcel in) {
+            return new MenuParcelable(in);
+        }
+
+        @Override
+        public MenuParcelable[] newArray(int size) {
+            return new MenuParcelable[size];
+        }
+    };
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel outParcel, int flags) {
+        outParcel.writeTypedList(mMenuItems);
+    }
+}
index 941654b..589ccfe 100644 (file)
@@ -22,11 +22,15 @@ package com.owncloud.android.ui.fragment;
 
 import java.util.ArrayList;
 
+import android.app.Activity;
 import android.os.Build;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.support.v4.widget.SwipeRefreshLayout;
+import android.view.ActionMode;
 import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AbsListView;
@@ -36,12 +40,16 @@ import android.widget.GridView;
 import android.widget.ListAdapter;
 import android.widget.ListView;
 import android.widget.TextView;
+import android.widget.Toast;
 
+import com.getbase.floatingactionbutton.FloatingActionButton;
+import com.getbase.floatingactionbutton.FloatingActionsMenu;
 import com.owncloud.android.R;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.ExtendedListView;
 import com.owncloud.android.ui.activity.OnEnforceableRefreshListener;
 import com.owncloud.android.ui.adapter.FileListListAdapter;
+import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
 
 import third_parties.in.srain.cube.GridViewWithHeaderAndFooter;
 
@@ -64,6 +72,11 @@ public class ExtendedListFragment extends Fragment
     private SwipeRefreshLayout mRefreshGridLayout;
     private SwipeRefreshLayout mRefreshEmptyLayout;
     private TextView mEmptyListMessage;
+
+    private FloatingActionsMenu fabMain;
+    private FloatingActionButton fabUpload;
+    private FloatingActionButton fabMkdir;
+    private FloatingActionButton fabUploadFromApp;
     
     // Save the state of the scroll in browsing
     private ArrayList<Integer> mIndexes;
@@ -71,8 +84,8 @@ public class ExtendedListFragment extends Fragment
     private ArrayList<Integer> mTops;
     private int mHeightCell = 0;
 
-    private OnEnforceableRefreshListener mOnRefreshListener = null;
-    
+    private SwipeRefreshLayout.OnRefreshListener mOnRefreshListener = null;
+
     protected AbsListView mCurrentListView;
     private ExtendedListView mListView;
     private View mListFooterView;
@@ -96,8 +109,23 @@ public class ExtendedListFragment extends Fragment
         return mCurrentListView;
     }
 
+    public FloatingActionButton getFabUpload() {
+        return fabUpload;
+    }
+
+    public FloatingActionButton getFabUploadFromApp() {
+        return fabUploadFromApp;
+    }
+
+    public FloatingActionButton getFabMkdir() {
+        return fabMkdir;
+    }
 
-    protected void switchToGridView() {
+    public FloatingActionsMenu getFabMain() {
+        return fabMain;
+    }
+
+    public void switchToGridView() {
         if ((mCurrentListView == mListView)) {
 
             mListView.setAdapter(null);
@@ -112,8 +140,8 @@ public class ExtendedListFragment extends Fragment
             mCurrentListView = mGridView;
         }
     }
-    
-    protected void switchToListView() {
+
+    public void switchToListView() {
         if (mCurrentListView == mGridView) {
             mGridView.setAdapter(null);
             mRefreshGridLayout.setVisibility(View.GONE);
@@ -127,6 +155,13 @@ public class ExtendedListFragment extends Fragment
             mCurrentListView = mListView;
         }
     }
+
+    public boolean isGridView(){
+        if (mAdapter instanceof FileListListAdapter) {
+            return ((FileListListAdapter) mAdapter).isGridMode();
+        }
+        return false;
+    }
     
     
     @Override
@@ -134,15 +169,61 @@ public class ExtendedListFragment extends Fragment
                              Bundle savedInstanceState) {
         Log_OC.d(TAG, "onCreateView");
 
+        // TODO Tobi remove
+//         AbsListView.MultiChoiceModeListener listener = new AbsListView.MultiChoiceModeListener() {
+//            @Override
+//            public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
+//                // Capture total checked items
+//                final int checkedCount = mListView.getCheckedItemCount();
+//                // Set the CAB title according to total checked items
+//                mode.setTitle(checkedCount + " Selected");
+//                // Calls toggleSelection method from ListViewAdapter Class
+//                 // mAdapter.toggleSelection(position);
+//
+//                if (checked){
+//                    mAdapter.setNewSelection(position,checked);
+//                } else {
+//                    mAdapter.removeSelection(position);
+//                }
+//            }
+//
+//            @Override
+//            public boolean onCreateActionMode(ActionMode mode, Menu menu) {
+//                mode.getMenuInflater().inflate(R.menu.context, menu);
+//                return true;
+//            }
+//
+//            @Override
+//            public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
+//                return false;
+//            }
+//
+//            @Override
+//            public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
+//                return false;
+//            }
+//
+//            @Override
+//            public void onDestroyActionMode(ActionMode mode) {
+//                // mAdapter.removeSelection();
+//            }
+//        };
+
         View v = inflater.inflate(R.layout.list_fragment, null);
 
         mListView = (ExtendedListView)(v.findViewById(R.id.list_root));
         mListView.setOnItemClickListener(this);
+        mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
+        // mListView.setMultiChoiceModeListener(listener);
         mListFooterView = inflater.inflate(R.layout.list_footer, null, false);
 
         mGridView = (GridViewWithHeaderAndFooter) (v.findViewById(R.id.grid_root));
         mGridView.setNumColumns(GridView.AUTO_FIT);
         mGridView.setOnItemClickListener(this);
+        mGridView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
+
+        // mGridView.setMultiChoiceModeListener(listener);
+
         mGridFooterView = inflater.inflate(R.layout.list_footer, null, false);
 
         if (savedInstanceState != null) {
@@ -171,6 +252,11 @@ public class ExtendedListFragment extends Fragment
 
         mCurrentListView = mListView;   // list as default
 
+        fabMain = (FloatingActionsMenu) v.findViewById(R.id.fab_main);
+        fabUpload = (FloatingActionButton) v.findViewById(R.id.fab_upload);
+        fabMkdir = (FloatingActionButton) v.findViewById(R.id.fab_mkdir);
+        fabUploadFromApp = (FloatingActionButton) v.findViewById(R.id.fab_upload_from_app);
+
         return v;
     }
 
@@ -320,6 +406,23 @@ public class ExtendedListFragment extends Fragment
     }
 
     /**
+     * Disables FAB.
+     *
+     * Sets the 'visibility' state of the FAB contained in the fragment.
+     *
+     * When 'false' is set, FAB visibility is set to View.GONE programatically,
+     *
+     * @param   enabled     Desired visibility for the FAB.
+     */
+    public void setFabEnabled(boolean enabled) {
+        if(enabled) {
+            fabMain.setVisibility(View.VISIBLE);
+        } else {
+            fabMain.setVisibility(View.GONE);
+        }
+    }
+
+    /**
      * Set message for empty list view
      */
     public void setMessageForEmptyList(String message) {
@@ -338,9 +441,9 @@ public class ExtendedListFragment extends Fragment
     }
 
     private void onCreateSwipeToRefresh(SwipeRefreshLayout refreshLayout) {
-        // Colors in animations: background
-        refreshLayout.setColorScheme(R.color.background_color, R.color.background_color,
-                R.color.background_color, R.color.background_color);
+        // Colors in animations
+        refreshLayout.setColorSchemeResources(R.color.color_accent, R.color.primary,
+                R.color.primary_dark);
 
         refreshLayout.setOnRefreshListener(this);
     }
@@ -352,7 +455,7 @@ public class ExtendedListFragment extends Fragment
         mRefreshEmptyLayout.setRefreshing(false);
 
         if (mOnRefreshListener != null) {
-            mOnRefreshListener.onRefresh(ignoreETag);
+            mOnRefreshListener.onRefresh();
         }
     }
 
index 9916a3d..e9cd916 100644 (file)
  */
 package com.owncloud.android.ui.fragment;
 
-import java.lang.ref.WeakReference;
-
 import android.accounts.Account;
-import android.content.Intent;
+import android.graphics.Bitmap;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -38,20 +36,24 @@ import android.widget.ImageView;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
+import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.datamodel.ThumbnailsCacheManager;
 import com.owncloud.android.files.FileMenuFilter;
 import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
 import com.owncloud.android.lib.common.network.OnDatatransferProgressListener;
 import com.owncloud.android.lib.common.utils.Log_OC;
-import com.owncloud.android.services.observer.FileObserverService;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
 import com.owncloud.android.ui.dialog.RenameFileDialogFragment;
 import com.owncloud.android.utils.DisplayUtils;
+import com.owncloud.android.utils.MimetypeIconUtil;
+
+import java.lang.ref.WeakReference;
 
 
 /**
@@ -62,9 +64,9 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
     private int mLayout;
     private View mView;
     private Account mAccount;
-    
+
     public ProgressListener mProgressListener;
-    
+
     private static final String TAG = FileDetailFragment.class.getSimpleName();
     public static final String FTAG_CONFIRMATION = "REMOVE_CONFIRMATION_FRAGMENT";
     public static final String FTAG_RENAME_FILE = "RENAME_FILE_FRAGMENT";
@@ -103,14 +105,14 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
         mLayout = R.layout.file_details_empty;
         mProgressListener = null;
     }
-    
+
 
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setHasOptionsMenu(true);
     }
-    
+
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -120,19 +122,20 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
         mAccount = getArguments().getParcelable(ARG_ACCOUNT);
 
         if (savedInstanceState != null) {
-            setFile((OCFile)savedInstanceState.getParcelable(FileActivity.EXTRA_FILE));
+            setFile((OCFile) savedInstanceState.getParcelable(FileActivity.EXTRA_FILE));
             mAccount = savedInstanceState.getParcelable(FileActivity.EXTRA_ACCOUNT);
         }
-        
-        if(getFile() != null && mAccount != null) {
+
+        if (getFile() != null && mAccount != null) {
             mLayout = R.layout.file_details_fragment;
         }
-        
+
         mView = inflater.inflate(mLayout, null);
         
         if (mLayout == R.layout.file_details_fragment) {
             mView.findViewById(R.id.fdFavorite).setOnClickListener(this);
             ProgressBar progressBar = (ProgressBar)mView.findViewById(R.id.fdProgressBar);
+            DisplayUtils.colorPreLollipopHorizontalProgressBar(progressBar);
             mProgressListener = new ProgressListener(progressBar);
             mView.findViewById(R.id.fdCancelBtn).setOnClickListener(this);
         }
@@ -153,20 +156,20 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
         super.onStart();
         listenForTransferProgress();
     }
-    
+
     @Override
     public void onStop() {
         leaveTransferProgress();
         super.onStop();
     }
 
-    
+
     @Override
     public View getView() {
         return super.getView() == null ? mView : super.getView();
     }
 
-    
+
     /**
      * {@inheritDoc}
      */
@@ -174,16 +177,16 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         super.onCreateOptionsMenu(menu, inflater);
         inflater.inflate(R.menu.file_actions_menu, menu);
-   }
+    }
+
 
-    
     /**
      * {@inheritDoc}
      */
     @Override
-    public void onPrepareOptionsMenu (Menu menu) {
+    public void onPrepareOptionsMenu(Menu menu) {
         super.onPrepareOptionsMenu(menu);
-        
+
         if (mContainerActivity.getStorageManager() != null) {
             FileMenuFilter mf = new FileMenuFilter(
                 getFile(),
@@ -193,7 +196,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
             );
             mf.filter(menu);
         }
-        
+
         // additional restriction for this fragment 
         MenuItem item = menu.findItem(R.id.action_see_details);
         if (item != null) {
@@ -207,9 +210,34 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
             item.setVisible(false);
             item.setEnabled(false);
         }
+
+        // additional restriction for this fragment
+        item = menu.findItem(R.id.action_copy);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
+
+        item = menu.findItem(R.id.action_switch_view);
+        if (item != null){
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
+
+        item = menu.findItem(R.id.action_sync_account);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
+
+        item = menu.findItem(R.id.action_sort);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
     }
 
-    
+
     /**
      * {@inheritDoc}
      */
@@ -217,11 +245,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
             case R.id.action_share_file: {
-                mContainerActivity.getFileOperationsHelper().shareFileWithLink(getFile());
-                return true;
-            }
-            case R.id.action_unshare_file: {
-                mContainerActivity.getFileOperationsHelper().unshareFileWithLink(getFile());
+                mContainerActivity.getFileOperationsHelper().showShareFile(getFile());
                 return true;
             }
             case R.id.action_open_file_with: {
@@ -238,12 +262,11 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
                 dialog.show(getFragmentManager(), FTAG_RENAME_FILE);
                 return true;
             }
-            case R.id.action_cancel_download:
-            case R.id.action_cancel_upload: {
+            case R.id.action_cancel_sync: {
                 ((FileDisplayActivity)mContainerActivity).cancelTransference(getFile());
                 return true;
             }
-            case R.id.action_download_file: 
+            case R.id.action_download_file:
             case R.id.action_sync_file: {
                 mContainerActivity.getFileOperationsHelper().syncFile(getFile());
                 return true;
@@ -252,9 +275,9 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
                 // Obtain the file
                 if (!getFile().isDown()) {  // Download the file                    
                     Log_OC.d(TAG, getFile().getRemotePath() + " : File must be downloaded");
-                    ((FileDisplayActivity)mContainerActivity).startDownloadForSending(getFile());
-                    
-                else {
+                    ((FileDisplayActivity) mContainerActivity).startDownloadForSending(getFile());
+                }
+                else {
                     mContainerActivity.getFileOperationsHelper().sendDownloadedFile(getFile());
                 }
                 return true;
@@ -281,7 +304,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
                 break;
             }
             case R.id.fdCancelBtn: {
-                ((FileDisplayActivity)mContainerActivity).cancelTransference(getFile());
+                ((FileDisplayActivity) mContainerActivity).cancelTransference(getFile());
                 break;
             }
             default:
@@ -289,20 +312,19 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
         }
     }
 
-
     /**
      * Check if the fragment was created with an empty layout. An empty fragment can't show file details, must be replaced.
-     * 
-     * @return  True when the fragment was created with the empty layout.
+     *
+     * @return True when the fragment was created with the empty layout.
      */
     public boolean isEmpty() {
         return (mLayout == R.layout.file_details_empty || getFile() == null || mAccount == null);
     }
 
-    
+
     /**
      * Use this method to signal this Activity that it shall update its view.
-     * 
+     *
      * @param file : An {@link OCFile}
      */
     public void updateFileDetails(OCFile file, Account ocAccount) {
@@ -313,14 +335,13 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
 
     /**
      * Updates the view with all relevant details about that file.
+     * <p/>
+     * TODO Remove parameter when the transferring state of files is kept in database.
      *
-     * TODO Remove parameter when the transferring state of files is kept in database. 
-     * 
-     * @param transferring      Flag signaling if the file should be considered as downloading or uploading, 
-     *                          although {@link FileDownloaderBinder#isDownloading(Account, OCFile)}  and 
-     *                          {@link FileUploaderBinder#isUploading(Account, OCFile)} return false.
-     *                          
-     * @param refresh           If 'true', try to refresh the whole file from the database
+     * @param transferring Flag signaling if the file should be considered as downloading or uploading,
+     *                     although {@link FileDownloaderBinder#isDownloading(Account, OCFile)}  and
+     *                     {@link FileUploaderBinder#isUploading(Account, OCFile)} return false.
+     * @param refresh      If 'true', try to refresh the whole file from the database
      */
     public void updateFileDetails(boolean transferring, boolean refresh) {
         if (readyToShow()) {
@@ -329,10 +350,10 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
                 setFile(storageManager.getFileByPath(getFile().getRemotePath()));
             }
             OCFile file = getFile();
-            
+
             // set file details
             setFilename(file.getFileName());
-            setFiletype(file.getMimetype(), file.getFileName());
+            setFiletype(file);
             setFilesize(file.getFileLength());
 
             setTimeModified(file.getModificationTimestamp());
@@ -348,7 +369,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
                     (uploaderBinder != null && uploaderBinder.isUploading(mAccount, file))
                     ) {
                 setButtonsForTransferring();
-                
+
             } else if (file.isDown()) {
                 
                 setButtonsForDown();
@@ -361,65 +382,106 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
         }
         getView().invalidate();
     }
-    
+
     /**
      * Checks if the fragment is ready to show details of a OCFile
-     *  
-     * @return  'True' when the fragment is ready to show details of a file
+     *
+     * @return 'True' when the fragment is ready to show details of a file
      */
     private boolean readyToShow() {
-        return (getFile() != null && mAccount != null && mLayout == R.layout.file_details_fragment);        
+        return (getFile() != null && mAccount != null && mLayout == R.layout.file_details_fragment);
     }
 
 
     /**
      * Updates the filename in view
+     *
      * @param filename to set
      */
     private void setFilename(String filename) {
         TextView tv = (TextView) getView().findViewById(R.id.fdFilename);
-        if (tv != null)
+        if (tv != null) {
             tv.setText(filename);
+        }
     }
 
     /**
      * Updates the MIME type in view
-     * @param mimetype      MIME type to set
-     * @param filename      Name of the file, to deduce the icon to use in case the MIME type is not precise enough
+     * @param file : An {@link OCFile}
      */
-    private void setFiletype(String mimetype, String filename) {
+    private void setFiletype(OCFile file) {
+        String mimetype = file.getMimetype();
         TextView tv = (TextView) getView().findViewById(R.id.fdType);
         if (tv != null) {
+                       // mimetype      MIME type to set
             String printableMimetype = DisplayUtils.convertMIMEtoPrettyPrint(mimetype);
             tv.setText(printableMimetype);
         }
+
         ImageView iv = (ImageView) getView().findViewById(R.id.fdIcon);
+
         if (iv != null) {
-            iv.setImageResource(DisplayUtils.getFileTypeIconId(mimetype, filename));
+            Bitmap thumbnail;
+            iv.setTag(file.getFileId());
+
+            if (file.isImage()) {
+                String tagId = String.valueOf(file.getRemoteId());
+                thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(tagId);
+
+                if (thumbnail != null && !file.needsUpdateThumbnail()) {
+                    iv.setImageBitmap(thumbnail);
+                } else {
+                    // generate new Thumbnail
+                    if (ThumbnailsCacheManager.cancelPotentialWork(file, iv)) {
+                        final ThumbnailsCacheManager.ThumbnailGenerationTask task =
+                                new ThumbnailsCacheManager.ThumbnailGenerationTask(
+                                        iv, mContainerActivity.getStorageManager(), mAccount
+                                );
+                        if (thumbnail == null) {
+                            thumbnail = ThumbnailsCacheManager.mDefaultImg;
+                        }
+                        final ThumbnailsCacheManager.AsyncDrawable asyncDrawable =
+                                new ThumbnailsCacheManager.AsyncDrawable(
+                                        MainApp.getAppContext().getResources(),
+                                        thumbnail,
+                                        task
+                                );
+                        iv.setImageDrawable(asyncDrawable);
+                        task.execute(file);
+                    }
+                }
+            } else {
+                               // Name of the file, to deduce the icon to use in case the MIME type is not precise enough
+                               String filename = file.getFileName();
+                iv.setImageResource(MimetypeIconUtil.getFileTypeIconId(mimetype, filename));
+                       }
         }
     }
 
     /**
      * Updates the file size in view
+     *
      * @param filesize in bytes to set
      */
     private void setFilesize(long filesize) {
         TextView tv = (TextView) getView().findViewById(R.id.fdSize);
-        if (tv != null)
+        if (tv != null) {
             tv.setText(DisplayUtils.bytesToHumanReadable(filesize));
+        }
     }
-    
+
     /**
      * Updates the time that the file was last modified
+     *
      * @param milliseconds Unix time to set
      */
-    private void setTimeModified(long milliseconds){
+    private void setTimeModified(long milliseconds) {
         TextView tv = (TextView) getView().findViewById(R.id.fdModified);
-        if(tv != null){
+        if (tv != null) {
             tv.setText(DisplayUtils.unixTimeToHumanReadable(milliseconds));
         }
     }
-    
+
     /**
      * Enables or disables buttons for a file being downloaded
      */
@@ -430,21 +492,24 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
             
             // show the progress bar for the transfer
             getView().findViewById(R.id.fdProgressBlock).setVisibility(View.VISIBLE);
-            TextView progressText = (TextView)getView().findViewById(R.id.fdProgressText);
+            TextView progressText = (TextView) getView().findViewById(R.id.fdProgressText);
             progressText.setVisibility(View.VISIBLE);
             FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder();
             FileUploaderBinder uploaderBinder = mContainerActivity.getFileUploaderBinder();
             //if (getFile().isDownloading()) {
             if (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, getFile())) {
                 progressText.setText(R.string.downloader_download_in_progress_ticker);
-            } else if (uploaderBinder != null && uploaderBinder.isUploading(mAccount, getFile())) {
-                progressText.setText(R.string.uploader_upload_in_progress_ticker);
+            }
+            else {
+                if (uploaderBinder != null && uploaderBinder.isUploading(mAccount, getFile())) {
+                    progressText.setText(R.string.uploader_upload_in_progress_ticker);
+                }
             }
         }
     }
 
     /**
-     * Enables or disables buttons for a file locally available 
+     * Enables or disables buttons for a file locally available
      */
     private void setButtonsForDown() {
         if (!isEmpty()) {
@@ -452,13 +517,13 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
             
             // hides the progress bar
             getView().findViewById(R.id.fdProgressBlock).setVisibility(View.GONE);
-            TextView progressText = (TextView)getView().findViewById(R.id.fdProgressText);
+            TextView progressText = (TextView) getView().findViewById(R.id.fdProgressText);
             progressText.setVisibility(View.GONE);
         }
     }
 
     /**
-     * Enables or disables buttons for a file not locally available 
+     * Enables or disables buttons for a file not locally available
      */
     private void setButtonsForRemote() {
         if (!isEmpty()) {
@@ -466,11 +531,11 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
             
             // hides the progress bar
             getView().findViewById(R.id.fdProgressBlock).setVisibility(View.GONE);
-            TextView progressText = (TextView)getView().findViewById(R.id.fdProgressText);
+            TextView progressText = (TextView) getView().findViewById(R.id.fdProgressText);
             progressText.setVisibility(View.GONE);
         }
     }
-    
+
 
     public void listenForTransferProgress() {
         if (mProgressListener != null) {
@@ -484,8 +549,8 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
             }
         }
     }
-    
-    
+
+
     public void leaveTransferProgress() {
         if (mProgressListener != null) {
             if (mContainerActivity.getFileDownloaderBinder() != null) {
@@ -500,7 +565,6 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
     }
 
 
-    
     /**
      * Helper class responsible for updating the progress bar shown for file uploading or
      * downloading
@@ -508,11 +572,11 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
     private class ProgressListener implements OnDatatransferProgressListener {
         int mLastPercent = 0;
         WeakReference<ProgressBar> mProgressBar = null;
-        
+
         ProgressListener(ProgressBar progressBar) {
             mProgressBar = new WeakReference<ProgressBar>(progressBar);
         }
-        
+
         @Override
         public void onTransferProgress(long progressRate, long totalTransferredSoFar,
                                        long totalToTransfer, String filename) {
index fd5aeef..cacfa2d 100644 (file)
@@ -141,9 +141,8 @@ public class FileFragment extends Fragment {
          * @param downloading   Flag signaling if the file is now downloading.
          * @param uploading     Flag signaling if the file is now uploading.
          */
-        public void onTransferStateChanged(OCFile file, boolean downloading, boolean uploading); 
+        public void onTransferStateChanged(OCFile file, boolean downloading, boolean uploading);
 
-        
     }
 
 }
index 8a268b7..c5f74a7 100644 (file)
@@ -37,6 +37,7 @@ import android.widget.ListView;
 import com.owncloud.android.R;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.adapter.LocalFileListAdapter;
+import com.owncloud.android.utils.FileStorageUtils;
 
 
 /**
@@ -54,7 +55,6 @@ public class LocalFileListFragment extends ExtendedListFragment {
     /** Adapter to connect the data from the directory with the View object */
     private LocalFileListAdapter mAdapter = null;
 
-    
     /**
      * {@inheritDoc}
      */
@@ -79,6 +79,7 @@ public class LocalFileListFragment extends ExtendedListFragment {
         View v = super.onCreateView(inflater, container, savedInstanceState);
         setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
         setSwipeEnabled(false); // Disable pull-to-refresh
+        setFabEnabled(false); // Disable FAB
         setMessageForEmptyList(getString(R.string.local_file_list_empty));
         Log_OC.i(TAG, "onCreateView() end");
         return v;
@@ -120,9 +121,9 @@ public class LocalFileListFragment extends ExtendedListFragment {
                 ImageView checkBoxV = (ImageView) v.findViewById(R.id.custom_checkbox);
                 if (checkBoxV != null) {
                     if (((ListView)getListView()).isItemChecked(position)) {
-                        checkBoxV.setImageResource(android.R.drawable.checkbox_on_background);
+                        checkBoxV.setImageResource(R.drawable.ic_checkbox_marked);
                     } else {
-                        checkBoxV.setImageResource(android.R.drawable.checkbox_off_background);
+                        checkBoxV.setImageResource(R.drawable.ic_checkbox_blank_outline);
                     }
                 }
                 // notify the change to the container Activity
@@ -228,7 +229,19 @@ public class LocalFileListFragment extends ExtendedListFragment {
         return result.toArray(new String[result.size()]);
     }
 
-    
+    public void sortByName(boolean descending) {
+        mAdapter.setSortOrder(FileStorageUtils.SORT_NAME, descending);
+    }
+
+    public void sortByDate(boolean descending) {
+        mAdapter.setSortOrder(FileStorageUtils.SORT_DATE, descending);
+    }
+
+    public void sortBySize(boolean descending) {
+        mAdapter.setSortOrder(FileStorageUtils.SORT_SIZE, descending);
+    }
+
+
     /**
      * Interface to implement by any Activity that includes some instance of LocalFileListFragment
      */
index 5dfb329..c606e67 100644 (file)
  */
 package com.owncloud.android.ui.fragment;
 
-import java.io.File;
-
+import android.accounts.Account;
 import android.app.Activity;
+import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Build;
+import android.net.Uri;
 import android.os.Bundle;
+import android.preference.PreferenceManager;
 import android.support.v4.widget.SwipeRefreshLayout;
+import android.view.ActionMode;
+import android.support.v7.app.AlertDialog;
 import android.view.ContextMenu;
+import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
+import android.widget.AbsListView;
 import android.widget.AdapterView;
 import android.widget.AdapterView.AdapterContextMenuInfo;
+import android.widget.PopupMenu;
+import android.widget.TextView;
+import android.widget.Toast;
 
+import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
 import com.owncloud.android.datamodel.FileDataStorageManager;
@@ -42,21 +55,34 @@ import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.files.FileMenuFilter;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.status.OwnCloudVersion;
+import com.owncloud.android.media.MediaService;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.activity.FolderPickerActivity;
 import com.owncloud.android.ui.activity.OnEnforceableRefreshListener;
+import com.owncloud.android.ui.activity.UploadFilesActivity;
 import com.owncloud.android.ui.adapter.FileListListAdapter;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
+import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
+import com.owncloud.android.ui.dialog.FileActionsDialogFragment;
 import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
+import com.owncloud.android.ui.dialog.RemoveFilesDialogFragment;
 import com.owncloud.android.ui.dialog.RenameFileDialogFragment;
+import com.owncloud.android.ui.dialog.UploadSourceDialogFragment;
 import com.owncloud.android.ui.preview.PreviewImageFragment;
 import com.owncloud.android.ui.preview.PreviewMediaFragment;
+import com.owncloud.android.utils.DisplayUtils;
+import com.owncloud.android.utils.ExceptionHandler;
+import com.owncloud.android.utils.FileStorageUtils;
+import com.owncloud.android.ui.preview.PreviewTextFragment;
 import com.owncloud.android.utils.FileStorageUtils;
 
+import java.io.File;
+import java.util.ArrayList;
+
 /**
  * A Fragment that lists all files and folders in a given path.
- * 
+ *
  * TODO refactor to get rid of direct dependency on FileDisplayActivity
  */
 public class OCFileListFragment extends ExtendedListFragment {
@@ -65,21 +91,25 @@ public class OCFileListFragment extends ExtendedListFragment {
 
     private static final String MY_PACKAGE = OCFileListFragment.class.getPackage() != null ?
             OCFileListFragment.class.getPackage().getName() : "com.owncloud.android.ui.fragment";
-            
+
     public final static String ARG_JUST_FOLDERS = MY_PACKAGE + ".JUST_FOLDERS";
     public final static String ARG_ALLOW_CONTEXTUAL_ACTIONS = MY_PACKAGE + ".ALLOW_CONTEXTUAL";
-            
+    public final static String ARG_HIDE_FAB = MY_PACKAGE + ".HIDE_FAB";
+
     private static final String KEY_FILE = MY_PACKAGE + ".extra.FILE";
+    private static final String KEY_FAB_EVER_CLICKED = "FAB_EVER_CLICKED";
+
+    private static String DIALOG_CREATE_FOLDER = "DIALOG_CREATE_FOLDER";
 
     private FileFragment.ContainerActivity mContainerActivity;
-   
+
     private OCFile mFile = null;
     private FileListListAdapter mAdapter;
     private boolean mJustFolders;
     
     private OCFile mTargetFile;
-    
-   
+
+    private boolean miniFabClicked = false;
     
     /**
      * {@inheritDoc}
@@ -90,21 +120,21 @@ public class OCFileListFragment extends ExtendedListFragment {
         Log_OC.e(TAG, "onAttach");
         try {
             mContainerActivity = (FileFragment.ContainerActivity) activity;
-            
+
         } catch (ClassCastException e) {
-            throw new ClassCastException(activity.toString() + " must implement " + 
+            throw new ClassCastException(activity.toString() + " must implement " +
                     FileFragment.ContainerActivity.class.getSimpleName());
         }
         try {
             setOnRefreshListener((OnEnforceableRefreshListener) activity);
             
         } catch (ClassCastException e) {
-            throw new ClassCastException(activity.toString() + " must implement " + 
+            throw new ClassCastException(activity.toString() + " must implement " +
                     SwipeRefreshLayout.OnRefreshListener.class.getSimpleName());
         }
     }
 
-    
+
     @Override
     public void onDetach() {
         setOnRefreshListener(null);
@@ -136,41 +166,291 @@ public class OCFileListFragment extends ExtendedListFragment {
                 mJustFolders,
                 getActivity(),
                 mContainerActivity
-                );
+        );
         setListAdapter(mAdapter);
 
-        registerForContextMenu();
+        registerLongClickListener();
+
+        boolean hideFab = (args != null) && args.getBoolean(ARG_HIDE_FAB, false);
+        if (hideFab) {
+            setFabEnabled(false);
+        } else {
+            setFabEnabled(true);
+            registerFabListeners();
+
+            // detect if a mini FAB has ever been clicked
+            final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
+            if(prefs.getLong(KEY_FAB_EVER_CLICKED, 0) > 0) {
+                miniFabClicked = true;
+            }
+
+            // add labels to the min FABs when none of them has ever been clicked on
+            if(!miniFabClicked) {
+                setFabLabels();
+            } else {
+                removeFabLabels();
+            }
+        }
   }
 
     /**
+     * adds labels to all mini FABs.
+     */
+    private void setFabLabels() {
+        getFabUpload().setTitle(getResources().getString(R.string.actionbar_upload));
+        getFabMkdir().setTitle(getResources().getString(R.string.actionbar_mkdir));
+        getFabUploadFromApp().setTitle(getResources().getString(R.string.actionbar_upload_from_apps));
+    }
+
+    /**
+     * registers all listeners on all mini FABs.
+     */
+    private void registerFabListeners() {
+        registerFabUploadListeners();
+        registerFabMkDirListeners();
+        registerFabUploadFromAppListeners();
+    }
+
+    /**
+     * registers {@link android.view.View.OnClickListener} and {@link android.view.View.OnLongClickListener}
+     * on the Upload mini FAB for the linked action and {@link Toast} showing the underlying action.
+     */
+    private void registerFabUploadListeners() {
+        getFabUpload().setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent action = new Intent(getActivity(), UploadFilesActivity.class);
+                action.putExtra(
+                        UploadFilesActivity.EXTRA_ACCOUNT,
+                        ((FileActivity) getActivity()).getAccount()
+                );
+                getActivity().startActivityForResult(action, UploadSourceDialogFragment.ACTION_SELECT_MULTIPLE_FILES);
+                getFabMain().collapse();
+                recordMiniFabClick();
+            }
+        });
+
+        getFabUpload().setOnLongClickListener(new View.OnLongClickListener() {
+            @Override
+            public boolean onLongClick(View v) {
+                Toast.makeText(getActivity(), R.string.actionbar_upload, Toast.LENGTH_SHORT).show();
+                return true;
+            }
+        });
+    }
+
+    /**
+     * registers {@link android.view.View.OnClickListener} and {@link android.view.View.OnLongClickListener}
+     * on the 'Create Dir' mini FAB for the linked action and {@link Toast} showing the underlying action.
+     */
+    private void registerFabMkDirListeners() {
+        getFabMkdir().setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                CreateFolderDialogFragment dialog =
+                        CreateFolderDialogFragment.newInstance(mFile);
+                dialog.show(getActivity().getSupportFragmentManager(), FileDisplayActivity.DIALOG_CREATE_FOLDER);
+                getFabMain().collapse();
+                recordMiniFabClick();
+            }
+        });
+
+        getFabMkdir().setOnLongClickListener(new View.OnLongClickListener() {
+            @Override
+            public boolean onLongClick(View v) {
+                Toast.makeText(getActivity(), R.string.actionbar_mkdir, Toast.LENGTH_SHORT).show();
+                return true;
+            }
+        });
+    }
+
+    /**
+     * registers {@link android.view.View.OnClickListener} and {@link android.view.View.OnLongClickListener}
+     * on the Upload from App mini FAB for the linked action and {@link Toast} showing the underlying action.
+     */
+    private void registerFabUploadFromAppListeners() {
+        getFabUploadFromApp().setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent action = new Intent(Intent.ACTION_GET_CONTENT);
+                action = action.setType("*/*").addCategory(Intent.CATEGORY_OPENABLE);
+
+                //Intent.EXTRA_ALLOW_MULTIPLE is only supported on api level 18+, Jelly Bean
+                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+                    action.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
+                }
+
+                getActivity().startActivityForResult(
+                        Intent.createChooser(action, getString(R.string.upload_chooser_title)),
+                        UploadSourceDialogFragment.ACTION_SELECT_CONTENT_FROM_APPS
+                );
+                getFabMain().collapse();
+                recordMiniFabClick();
+            }
+        });
+
+        getFabUploadFromApp().setOnLongClickListener(new View.OnLongClickListener() {
+            @Override
+            public boolean onLongClick(View v) {
+                Toast.makeText(getActivity(),
+                        R.string.actionbar_upload_from_apps,
+                        Toast.LENGTH_SHORT).show();
+                return true;
+            }
+        });
+    }
+
+    /**
+     * records a click on a mini FAB and thus:
+     * <ol>
+     *     <li>persists the click fact</li>
+     *     <li>removes the mini FAB labels</li>
+     * </ol>
+     */
+    private void recordMiniFabClick() {
+        // only record if it hasn't been done already at some other time
+        if(!miniFabClicked) {
+            final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
+            sp.edit().putLong(KEY_FAB_EVER_CLICKED, 1).commit();
+            miniFabClicked = true;
+        }
+    }
+
+    /**
+     * removes the labels on all known min FABs.
+     */
+    private void removeFabLabels() {
+        getFabUpload().setTitle(null);
+        getFabMkdir().setTitle(null);
+        getFabUploadFromApp().setTitle(null);
+        ((TextView) getFabUpload().getTag(com.getbase.floatingactionbutton.R.id.fab_label)).setVisibility(View.GONE);
+        ((TextView) getFabMkdir().getTag(com.getbase.floatingactionbutton.R.id.fab_label)).setVisibility(View.GONE);
+        ((TextView) getFabUploadFromApp().getTag(com.getbase.floatingactionbutton.R.id.fab_label)).setVisibility(View.GONE);
+    }
+
+    private void registerLongClickListener() {
+        getListView().setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
+            private Menu menu;
+
+            @Override
+            public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
+                final int checkedCount = getListView().getCheckedItemCount();
+                // TODO Tobi extract to values
+                mode.setTitle(checkedCount + " selected");
+
+                if (checked) {
+                    mAdapter.setNewSelection(position, checked);
+                } else {
+                    mAdapter.removeSelection(position);
+                }
+
+                // TODO maybe change: only recreate menu if count changes
+                menu.clear();
+                if (checkedCount == 1) {
+                    createContextMenu(menu);
+                } else {
+                    // download, move, copy, delete
+                    getActivity().getMenuInflater().inflate(R.menu.multiple_file_actions_menu, menu);
+                }
+
+            }
+
+            @Override
+            public boolean onCreateActionMode(ActionMode mode, Menu menu) {
+                this.menu = menu;
+                return true;
+            }
+
+            @Override
+            public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
+                return false;
+            }
+
+            @Override
+            public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
+                return onFileActionChosen(item.getItemId());
+            }
+
+            @Override
+            public void onDestroyActionMode(ActionMode mode) {
+                mAdapter.removeSelection();
+            }
+        });
+    }
+
+
+    private void showFileAction(int fileIndex) {
+        Bundle args = getArguments();
+        PopupMenu pm = new PopupMenu(getActivity(),null);
+        Menu menu = pm.getMenu();
+
+        boolean allowContextualActions =
+                (args == null) ? true : args.getBoolean(ARG_ALLOW_CONTEXTUAL_ACTIONS, true);
+
+        if (allowContextualActions) {
+            MenuInflater inflater = getActivity().getMenuInflater();
+
+            inflater.inflate(R.menu.file_actions_menu, menu);
+            OCFile targetFile = (OCFile) mAdapter.getItem(fileIndex);
+
+            if (mContainerActivity.getStorageManager() != null) {
+                FileMenuFilter mf = new FileMenuFilter(
+                        targetFile,
+                        mContainerActivity.getStorageManager().getAccount(),
+                        mContainerActivity,
+                        getActivity()
+                );
+                mf.filter(menu);
+            }
+
+            /// TODO break this direct dependency on FileDisplayActivity... if possible
+            MenuItem item = menu.findItem(R.id.action_open_file_with);
+            FileFragment frag = ((FileDisplayActivity)getActivity()).getSecondFragment();
+            if (frag != null && frag instanceof FileDetailFragment &&
+                    frag.getFile().getFileId() == targetFile.getFileId()) {
+                item = menu.findItem(R.id.action_see_details);
+                if (item != null) {
+                    item.setVisible(false);
+                    item.setEnabled(false);
+                }
+            }
+
+            FileActionsDialogFragment dialog = FileActionsDialogFragment.newInstance(menu,
+                    fileIndex, targetFile.getFileName());
+            dialog.setTargetFragment(this, 0);
+            dialog.show(getFragmentManager(), FileActionsDialogFragment.FTAG_FILE_ACTIONS);
+        }
+    }
+
+    /**
      * Saves the current listed folder.
      */
     @Override
-    public void onSaveInstanceState (Bundle outState) {
+    public void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
         outState.putParcelable(KEY_FILE, mFile);
     }
-    
+
     /**
      * Call this, when the user presses the up button.
-     * 
-     * Tries to move up the current folder one level. If the parent folder was removed from the 
-     * database, it continues browsing up until finding an existing folders.
-     * 
-     * return       Count of folder levels browsed up.
+     * <p>
+     *     Tries to move up the current folder one level. If the parent folder was removed from the
+     *     database, it continues browsing up until finding an existing folders.
+     * </p>
+     * @return Count of folder levels browsed up.
      */
     public int onBrowseUp() {
         OCFile parentDir = null;
         int moveCount = 0;
-        
-        if(mFile != null){
+
+        if (mFile != null) {
             FileDataStorageManager storageManager = mContainerActivity.getStorageManager();
-            
+
             String parentPath = null;
             if (mFile.getParentId() != FileDataStorageManager.ROOT_PARENT_ID) {
                 parentPath = new File(mFile.getRemotePath()).getParent();
-                parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath : 
-                       parentPath + OCFile.PATH_SEPARATOR;
+                parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath :
+                        parentPath + OCFile.PATH_SEPARATOR;
                 parentDir = storageManager.getFileByPath(parentPath);
                 moveCount++;
             } else {
@@ -178,81 +458,74 @@ public class OCFileListFragment extends ExtendedListFragment {
             }
             while (parentDir == null) {
                 parentPath = new File(parentPath).getParent();
-                parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath : 
-                       parentPath + OCFile.PATH_SEPARATOR;
+                parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath :
+                        parentPath + OCFile.PATH_SEPARATOR;
                 parentDir = storageManager.getFileByPath(parentPath);
                 moveCount++;
             }   // exit is granted because storageManager.getFileByPath("/") never returns null
             mFile = parentDir;
 
-            // TODO Enable when "On Device" is recovered ?
-            listDirectory(mFile /*, MainApp.getOnlyOnDevice()*/);
+            listDirectory(mFile, MainApp.getOnlyOnDevice());
 
             onRefresh(false);
-            
+
             // restore index and top position
             restoreIndexAndTopPosition();
-            
+
         }   // else - should never happen now
-   
+
         return moveCount;
     }
-    
+
     @Override
     public void onItemClick(AdapterView<?> l, View v, int position, long id) {
         OCFile file = (OCFile) mAdapter.getItem(position);
         if (file != null) {
-            if (file.isFolder()) { 
+            if (file.isFolder()) {
                 // update state and view of this fragment
-                // TODO Enable when "On Device" is recovered ?
-                listDirectory(file/*, MainApp.getOnlyOnDevice()*/);
+                listDirectory(file, MainApp.getOnlyOnDevice());
                 // then, notify parent activity to let it update its state and view
                 mContainerActivity.onBrowsedDownTo(file);
                 // save index and top position
                 saveIndexAndTopPosition(position);
-                
+
             } else { /// Click on a file
                 if (PreviewImageFragment.canBePreviewed(file)) {
                     // preview image - it handles the download, if needed
                     ((FileDisplayActivity)mContainerActivity).startImagePreview(file);
-                    
-                } else if (file.isDown()) {
-                    if (PreviewMediaFragment.canBePreviewed(file)) {
+                } else if (PreviewTextFragment.canBePreviewed(file)){
+                    ((FileDisplayActivity)mContainerActivity).startTextPreview(file);
+                } else if (PreviewMediaFragment.canBePreviewed(file)) {
                         // media preview
-                        ((FileDisplayActivity)mContainerActivity).startMediaPreview(file, 0, true);
-                    } else {
+                        ((FileDisplayActivity) mContainerActivity).startMediaPreview(file, 0, true);
+                    } else if (file.isDown()) {
                         mContainerActivity.getFileOperationsHelper().openFile(file);
-                    }
-                    
                 } else {
                     // automatic download, preview on finish
-                    ((FileDisplayActivity)mContainerActivity).startDownloadForPreview(file);
+                    ((FileDisplayActivity) mContainerActivity).startDownloadForPreview(file);
                 }
-                    
             }
-            
         } else {
             Log_OC.d(TAG, "Null object in ListAdapter!!");
         }
-        
     }
-    
+
     /**
      * {@inheritDoc}
      */
-    @Override
-    public void onCreateContextMenu (
-            ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
-        super.onCreateContextMenu(menu, v, menuInfo);
+    // TODO Tobi needed?
+    public void createContextMenu(Menu menu) {
         Bundle args = getArguments();
-        boolean allowContextualActions = 
-                (args == null) ? true : args.getBoolean(ARG_ALLOW_CONTEXTUAL_ACTIONS, true); 
+        boolean allowContextualActions =
+                (args == null) ? true : args.getBoolean(ARG_ALLOW_CONTEXTUAL_ACTIONS, true);
         if (allowContextualActions) {
             MenuInflater inflater = getActivity().getMenuInflater();
             inflater.inflate(R.menu.file_actions_menu, menu);
-            AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
-            OCFile targetFile = (OCFile) mAdapter.getItem(info.position);
-            
+            OCFile targetFile = null;
+            if (mAdapter.getCheckedItems().size() == 1){
+                targetFile = mAdapter.getCheckedItems().get(0);
+            }
+
             if (mContainerActivity.getStorageManager() != null) {
                 FileMenuFilter mf = new FileMenuFilter(
                     targetFile,
@@ -274,83 +547,141 @@ public class OCFileListFragment extends ExtendedListFragment {
                     item.setEnabled(false);
                 }
             }
+
+//            String.format(mContext.getString(R.string.subject_token),
+//                    getClient().getCredentials().getUsername(), file.getFileName()));
+        }
+    }
+
+    public boolean onFileActionChosen(int menuId) {
+        if (mAdapter.getCheckedItems().size() == 1){
+            OCFile mTargetFile = mAdapter.getCheckedItems().get(0);
+
+            switch (menuId) {
+                case R.id.action_share_file: {
+                    mContainerActivity.getFileOperationsHelper().showShareFile(mTargetFile);
+                    return true;
+                }
+                case R.id.action_open_file_with: {
+                    mContainerActivity.getFileOperationsHelper().openFile(mTargetFile);
+                    return true;
+                }
+                case R.id.action_rename_file: {
+                    RenameFileDialogFragment dialog = RenameFileDialogFragment.newInstance(mTargetFile);
+                    dialog.show(getFragmentManager(), FileDetailFragment.FTAG_RENAME_FILE);
+                    return true;
+                }
+                case R.id.action_remove_file: {
+                    RemoveFileDialogFragment dialog = RemoveFileDialogFragment.newInstance(mTargetFile);
+                    dialog.show(getFragmentManager(), ConfirmationDialogFragment.FTAG_CONFIRMATION);
+                    return true;
+                }
+                case R.id.action_download_file:
+                case R.id.action_sync_file: {
+                    mContainerActivity.getFileOperationsHelper().syncFile(mTargetFile);
+                    return true;
+                }
+                case R.id.action_cancel_sync: {
+                    ((FileDisplayActivity) mContainerActivity).cancelTransference(mTargetFile);
+                    return true;
+                }
+                case R.id.action_see_details: {
+                    mContainerActivity.showDetails(mTargetFile);
+                    return true;
+                }
+                case R.id.action_send_file: {
+                    // Obtain the file
+                    if (!mTargetFile.isDown()) {  // Download the file
+                        Log_OC.d(TAG, mTargetFile.getRemotePath() + " : File must be downloaded");
+                        ((FileDisplayActivity) mContainerActivity).startDownloadForSending(mTargetFile);
+                        return true;
+                    } else {
+                        mContainerActivity.getFileOperationsHelper().sendDownloadedFile(mTargetFile);
+                    }
+                }
+                case R.id.action_stream_file: {
+                    Account account = ((FileActivity)mContainerActivity).getAccount();
+                    Context context = MainApp.getAppContext();
+                    String uri = PreviewMediaFragment.generateUrlWithCredentials(account, context, mTargetFile);
+                    MediaService.streamWithExternalApp(uri, getActivity()).show();
+                    return true;
+                }
+                case R.id.action_move: {
+                    Intent action = new Intent(getActivity(), FolderPickerActivity.class);
+                    ArrayList files = new ArrayList();
+                    files.add(mTargetFile);
+                    action.putParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES, files);
+                    getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_MOVE_FILES);
+                    return true;
+                }
+                case R.id.action_favorite_file: {
+                    mContainerActivity.getFileOperationsHelper().toggleFavorite(mTargetFile, true);
+                    return true;
+                }
+                case R.id.action_unfavorite_file: {
+                    mContainerActivity.getFileOperationsHelper().toggleFavorite(mTargetFile, false);
+                    return true;
+                }
+                case R.id.action_copy:
+                    Intent action = new Intent(getActivity(), FolderPickerActivity.class);
+                    ArrayList files = new ArrayList();
+                    files.add(mTargetFile);
+                    action.putExtra(FolderPickerActivity.EXTRA_FILES, files);
+                    getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_COPY_FILES);
+                    return true;
+                default:
+                    return false;
+            }
+        } else {
+            ArrayList<OCFile> mTargetFiles = mAdapter.getCheckedItems();
+
+            switch (menuId) {
+                case R.id.action_remove_file: {
+                    RemoveFilesDialogFragment dialog = RemoveFilesDialogFragment.newInstance(mTargetFiles);
+                    dialog.show(getFragmentManager(), ConfirmationDialogFragment.FTAG_CONFIRMATION);
+                    return true;
+                }
+                case R.id.action_download_file:
+                case R.id.action_sync_file: {
+                    mContainerActivity.getFileOperationsHelper().syncFiles(mTargetFiles);
+                    return true;
+                }
+                case R.id.action_move: {
+                    Intent action = new Intent(getActivity(), FolderPickerActivity.class);
+                    action.putParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES, mTargetFiles);
+                    getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_MOVE_FILES);
+                    return true;
+                }
+                case R.id.action_favorite_file: {
+                    mContainerActivity.getFileOperationsHelper().toggleFavorites(mTargetFiles, true);
+                    return true;
+                }
+                case R.id.action_unfavorite_file: {
+                    mContainerActivity.getFileOperationsHelper().toggleFavorites(mTargetFiles, false);
+                    return true;
+                }
+                case R.id.action_copy:
+                    Intent action = new Intent(getActivity(), FolderPickerActivity.class);
+                    action.putParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES, mTargetFiles);
+                    getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_COPY_FILES);
+                    return true;
+                default:
+                    return false;
+            }
         }
     }
-    
     
     /**
      * {@inhericDoc}
      */
     @Override
     public boolean onContextItemSelected (MenuItem item) {
-        AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();        
-        mTargetFile = (OCFile) mAdapter.getItem(info.position);
-        switch (item.getItemId()) {                
-            case R.id.action_share_file: {
-                mContainerActivity.getFileOperationsHelper().shareFileWithLink(mTargetFile);
-                return true;
-            }
-            case R.id.action_open_file_with: {
-                mContainerActivity.getFileOperationsHelper().openFile(mTargetFile);
-                return true;
-            }
-            case R.id.action_unshare_file: {
-                mContainerActivity.getFileOperationsHelper().unshareFileWithLink(mTargetFile);
-                return true;
-            }
-            case R.id.action_rename_file: {
-                RenameFileDialogFragment dialog = RenameFileDialogFragment.newInstance(mTargetFile);
-                dialog.show(getFragmentManager(), FileDetailFragment.FTAG_RENAME_FILE);
-                return true;
-            }
-            case R.id.action_remove_file: {
-                RemoveFileDialogFragment dialog = RemoveFileDialogFragment.newInstance(mTargetFile);
-                dialog.show(getFragmentManager(), ConfirmationDialogFragment.FTAG_CONFIRMATION);
-                return true;
-            }
-            case R.id.action_download_file: 
-            case R.id.action_sync_file: {
-                mContainerActivity.getFileOperationsHelper().syncFile(mTargetFile);
-                return true;
-            }
-            case R.id.action_cancel_download:
-            case R.id.action_cancel_upload: {
-                ((FileDisplayActivity)mContainerActivity).cancelTransference(mTargetFile);
-                return true;
-            }
-            case R.id.action_see_details: {
-                mContainerActivity.showDetails(mTargetFile);
-                return true;
-            }
-            case R.id.action_send_file: {
-                // Obtain the file
-                if (!mTargetFile.isDown()) {  // Download the file
-                    Log_OC.d(TAG, mTargetFile.getRemotePath() + " : File must be downloaded");
-                    ((FileDisplayActivity)mContainerActivity).startDownloadForSending(mTargetFile);
-                    
-                } else {
-                    mContainerActivity.getFileOperationsHelper().sendDownloadedFile(mTargetFile);
-                }
-                return true;
-            }
-            case R.id.action_move: {
-                Intent action = new Intent(getActivity(), FolderPickerActivity.class);
-
-                // Pass mTargetFile that contains info of selected file/folder
-                action.putExtra(FolderPickerActivity.EXTRA_FILE, mTargetFile);
-                getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_MOVE_FILES);
-                return true;
-            }
-            case R.id.action_favorite_file:{
-                mContainerActivity.getFileOperationsHelper().toggleFavorite(mTargetFile, true);
-                return true;
-            }
-            case R.id.action_unfavorite_file:{
-                mContainerActivity.getFileOperationsHelper().toggleFavorite(mTargetFile, false);
-                return true;
-            }
-            default:
-                return super.onContextItemSelected(item); 
+        AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
+        boolean matched = onFileActionChosen(item.getItemId())  ;
+        if(!matched) {
+            return super.onContextItemSelected(item);
+        } else {
+            return matched;
         }
     }
 
@@ -358,56 +689,53 @@ public class OCFileListFragment extends ExtendedListFragment {
     /**
      * Use this to query the {@link OCFile} that is currently
      * being displayed by this fragment
+     *
      * @return The currently viewed OCFile
      */
-    public OCFile getCurrentFile(){
+    public OCFile getCurrentFile() {
         return mFile;
     }
-    
+
     /**
-     * Calls {@link OCFileListFragment#listDirectory(OCFile)} with a null parameter
+     * Calls {@link OCFileListFragment#listDirectory(OCFile, boolean)} with a null parameter
      */
-    public void listDirectory(/*boolean onlyOnDevice*/){
-        listDirectory(null);
-        // TODO Enable when "On Device" is recovered ?
-        // listDirectory(null, onlyOnDevice);
+    public void listDirectory(boolean onlyOnDevice){
+        listDirectory(null, onlyOnDevice);
     }
     
     public void refreshDirectory(){
-        // TODO Enable when "On Device" is recovered ?
-        listDirectory(getCurrentFile()/*, MainApp.getOnlyOnDevice()*/);
+        listDirectory(getCurrentFile(), MainApp.getOnlyOnDevice());
     }
-    
+
     /**
      * Lists the given directory on the view. When the input parameter is null,
      * it will either refresh the last known directory. list the root
      * if there never was a directory.
-     * 
+     *
      * @param directory File to be listed
      */
-    public void listDirectory(OCFile directory/*, boolean onlyOnDevice*/) {
+    public void listDirectory(OCFile directory, boolean onlyOnDevice) {
         FileDataStorageManager storageManager = mContainerActivity.getStorageManager();
         if (storageManager != null) {
 
             // Check input parameters for null
-            if(directory == null){
-                if(mFile != null){
+            if (directory == null) {
+                if (mFile != null) {
                     directory = mFile;
                 } else {
                     directory = storageManager.getFileByPath("/");
                     if (directory == null) return; // no files, wait for sync
                 }
             }
-        
-        
+
+
             // If that's not a directory -> List its parent
-            if(!directory.isFolder()){
+            if (!directory.isFolder()) {
                 Log_OC.w(TAG, "You see, that is not a directory -> " + directory.toString());
                 directory = storageManager.getFileById(directory.getParentId());
             }
 
-            // TODO Enable when "On Device" is recovered ?
-            mAdapter.swapDirectory(directory, storageManager/*, onlyOnDevice*/);
+            mAdapter.swapDirectory(directory, storageManager, onlyOnDevice);
             if (mFile == null || !mFile.equals(directory)) {
                 mCurrentListView.setSelection(0);
             }
@@ -428,9 +756,12 @@ public class OCFileListFragment extends ExtendedListFragment {
                 if (file.isFolder()) {
                     foldersCount++;
                 } else {
-                    filesCount++;
-                    if (file.isImage() || file.isVideo()){
-                        imagesCount++;
+                    if (!file.isHidden()) {
+                        filesCount++;
+
+                        if (file.isImage() || file.isVideo()) {
+                            imagesCount++;
+                        }
                     }
                 }
             }
@@ -441,8 +772,9 @@ public class OCFileListFragment extends ExtendedListFragment {
             OwnCloudVersion version = AccountUtils.getServerVersion(
                     ((FileActivity)mContainerActivity).getAccount());
             if (version != null && version.supportsRemoteThumbnails() &&
-                imagesCount > 0 && imagesCount == filesCount) {
+                    DisplayUtils.isGridView(mFile, mContainerActivity.getStorageManager())) {
                 switchToGridView();
+                registerLongClickListener();
             } else {
                 switchToListView();
 //                switchToGridView();
@@ -490,7 +822,6 @@ public class OCFileListFragment extends ExtendedListFragment {
         return output;
     }
 
-
     public void sortByName(boolean descending) {
         mAdapter.setSortOrder(FileStorageUtils.SORT_NAME, descending);
     }
@@ -502,6 +833,4 @@ public class OCFileListFragment extends ExtendedListFragment {
     public void sortBySize(boolean descending) {
         mAdapter.setSortOrder(FileStorageUtils.SORT_SIZE, descending);
     }
-
-    
 }
diff --git a/src/com/owncloud/android/ui/fragment/SearchShareesFragment.java b/src/com/owncloud/android/ui/fragment/SearchShareesFragment.java
new file mode 100644 (file)
index 0000000..0059b3f
--- /dev/null
@@ -0,0 +1,247 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author masensio
+ *   @author David A. Velasco
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.ui.fragment;
+
+import android.accounts.Account;
+import android.app.Activity;
+import android.app.SearchManager;
+import android.content.Context;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.ListView;
+import android.widget.SearchView;
+
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.lib.resources.shares.OCShare;
+import com.owncloud.android.ui.activity.FileActivity;
+import com.owncloud.android.ui.activity.ShareActivity;
+import com.owncloud.android.ui.adapter.ShareUserListAdapter;
+
+import java.util.ArrayList;
+
+/**
+ * Fragment for Searching sharees (users and groups)
+ *
+ * A simple {@link Fragment} subclass.
+ *
+ * Activities that contain this fragment must implement the
+ * {@link SearchShareesFragment.OnSearchFragmentInteractionListener} interface
+ * to handle interaction events.
+ *
+ * Use the {@link SearchShareesFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class SearchShareesFragment extends Fragment implements ShareUserListAdapter.ShareUserAdapterListener {
+    private static final String TAG = SearchShareesFragment.class.getSimpleName();
+
+    // the fragment initialization parameters
+    private static final String ARG_FILE = "FILE";
+    private static final String ARG_ACCOUNT = "ACCOUNT";
+
+    // Parameters
+    private OCFile mFile;
+    private Account mAccount;
+
+    // other members
+    private ArrayList<OCShare> mShares;
+    private ShareUserListAdapter mUserGroupsAdapter = null;
+    private OnSearchFragmentInteractionListener mListener;
+
+
+    /**
+     * Public factory method to create new SearchShareesFragment instances.
+     *
+     * @param fileToShare   An {@link OCFile} to be shared
+     * @param account       The ownCloud account containing fileToShare
+     * @return A new instance of fragment SearchShareesFragment.
+     */
+    public static SearchShareesFragment newInstance(OCFile fileToShare, Account account) {
+        SearchShareesFragment fragment = new SearchShareesFragment();
+        Bundle args = new Bundle();
+        args.putParcelable(ARG_FILE, fileToShare);
+        args.putParcelable(ARG_ACCOUNT, account);
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    public SearchShareesFragment() {
+        // Required empty public constructor
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (getArguments() != null) {
+            mFile = getArguments().getParcelable(ARG_FILE);
+            mAccount = getArguments().getParcelable(ARG_ACCOUNT);
+        }
+
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        // Inflate the layout for this fragment
+        View view = inflater.inflate(R.layout.search_users_groups_layout, container, false);
+
+        // Get the SearchView and set the searchable configuration
+        SearchView searchView = (SearchView) view.findViewById(R.id.searchView);
+        SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
+        searchView.setSearchableInfo(searchManager.getSearchableInfo(
+                getActivity().getComponentName())   // assumes parent activity is the searchable activity
+        );
+        searchView.setIconifiedByDefault(false);    // do not iconify the widget; expand it by default
+
+        searchView.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); // avoid fullscreen with softkeyboard
+
+        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
+            @Override
+            public boolean onQueryTextSubmit(String query) {
+                Log_OC.v(TAG, "onQueryTextSubmit intercepted, query: " + query);
+                return true;    // return true to prevent the query is processed to be queried;
+                // a user / group will be picked only if selected in the list of suggestions
+            }
+
+            @Override
+            public boolean onQueryTextChange(String newText) {
+                return false;   // let it for the parent listener in the hierarchy / default behaviour
+            }
+        });
+
+        return view;
+    }
+
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+
+        // Load data into the list
+        refreshUsersOrGroupsListFromDB();
+    }
+
+
+    /**
+     * Get users and groups from the DB to fill in the "share with" list
+     *
+     * Depends on the parent Activity provides a {@link com.owncloud.android.datamodel.FileDataStorageManager}
+     * instance ready to use. If not ready, does nothing.
+     */
+    public void refreshUsersOrGroupsListFromDB (){
+        // Get Users and Groups
+        if (((FileActivity) mListener).getStorageManager() != null) {
+            mShares = ((FileActivity) mListener).getStorageManager().getSharesWithForAFile(
+                    mFile.getRemotePath(),
+                    mAccount.name
+            );
+
+            // Update list of users/groups
+            updateListOfUserGroups();
+        }
+    }
+
+    private void updateListOfUserGroups() {
+        // Update list of users/groups
+        // TODO Refactoring: create a new {@link ShareUserListAdapter} instance with every call should not be needed
+        mUserGroupsAdapter = new ShareUserListAdapter(
+                getActivity().getApplicationContext(),
+                R.layout.share_user_item, mShares, this
+        );
+
+        // Show data
+        ListView usersList = (ListView) getView().findViewById(R.id.searchUsersListView);
+
+        if (mShares.size() > 0) {
+            usersList.setVisibility(View.VISIBLE);
+            usersList.setAdapter(mUserGroupsAdapter);
+
+        } else {
+            usersList.setVisibility(View.GONE);
+        }
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        try {
+            mListener = (OnSearchFragmentInteractionListener) activity;
+        } catch (ClassCastException e) {
+            throw new ClassCastException(activity.toString()
+                    + " must implement OnFragmentInteractionListener");
+        }
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        // focus the search view and request the software keyboard be shown
+        View searchView = getView().findViewById(R.id.searchView);
+        if (searchView.requestFocus()) {
+            InputMethodManager imm = (InputMethodManager)
+                    getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+            if (imm != null) {
+                imm.showSoftInput(searchView.findFocus(), InputMethodManager.SHOW_IMPLICIT);
+            }
+        }
+    }
+
+    @Override
+    public void onDetach() {
+        super.onDetach();
+        mListener = null;
+    }
+
+    @Override
+    public void unshareButtonPressed(OCShare share) {
+        // Unshare
+        mListener.unshareWith(share);
+        Log_OC.d(TAG, "Unshare - " + share.getSharedWithDisplayName());
+    }
+
+    /**
+     * This interface must be implemented by activities that contain this
+     * fragment to allow an interaction in this fragment to be communicated
+     * to the activity and potentially other fragments contained in that
+     * activity.
+     * <p/>
+     * See the Android Training lesson <a href=
+     * "http://developer.android.com/training/basics/fragments/communicating.html"
+     * >Communicating with Other Fragments</a> for more information.
+     */
+    public interface OnSearchFragmentInteractionListener {
+        void unshareWith(OCShare share);
+    }
+
+}
diff --git a/src/com/owncloud/android/ui/fragment/ShareFileFragment.java b/src/com/owncloud/android/ui/fragment/ShareFileFragment.java
new file mode 100644 (file)
index 0000000..46382a6
--- /dev/null
@@ -0,0 +1,755 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author masensio
+ *   @author David A. Velasco
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.ui.fragment;
+
+import android.accounts.Account;
+import android.app.Activity;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v7.widget.AppCompatButton;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.CompoundButton;
+import android.widget.ImageView;
+import android.widget.ListAdapter;
+import android.widget.ListView;
+import android.widget.ScrollView;
+import android.widget.Switch;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.owncloud.android.R;
+import com.owncloud.android.authentication.AccountUtils;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.datamodel.ThumbnailsCacheManager;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.lib.resources.shares.OCShare;
+import com.owncloud.android.lib.resources.shares.ShareType;
+import com.owncloud.android.lib.resources.status.OCCapability;
+import com.owncloud.android.ui.activity.FileActivity;
+import com.owncloud.android.ui.adapter.ShareUserListAdapter;
+import com.owncloud.android.ui.dialog.ExpirationDatePickerDialogFragment;
+import com.owncloud.android.utils.DisplayUtils;
+import com.owncloud.android.utils.MimetypeIconUtil;
+
+import java.text.SimpleDateFormat;
+
+import java.util.ArrayList;
+import java.util.Date;
+
+/**
+ * Fragment for Sharing a file with sharees (users or groups) or creating
+ * a public link.
+ *
+ * A simple {@link Fragment} subclass.
+ *
+ * Activities that contain this fragment must implement the
+ * {@link ShareFileFragment.OnShareFragmentInteractionListener} interface
+ * to handle interaction events.
+ *
+ * Use the {@link ShareFileFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class ShareFileFragment extends Fragment
+        implements ShareUserListAdapter.ShareUserAdapterListener{
+
+    private static final String TAG = ShareFileFragment.class.getSimpleName();
+
+    /** The fragment initialization parameters */
+    private static final String ARG_FILE = "FILE";
+    private static final String ARG_ACCOUNT = "ACCOUNT";
+
+//    /** Tag for dialog */
+//    private static final String FTAG_CHOOSER_DIALOG = "CHOOSER_DIALOG";
+
+    /** File to share, received as a parameter in construction time */
+    private OCFile mFile;
+
+    /** OC account holding the file to share, received as a parameter in construction time */
+    private Account mAccount;
+
+    /** Reference to parent listener */
+    private OnShareFragmentInteractionListener mListener;
+
+    /** List of private shares bound to the file */
+    private ArrayList<OCShare> mPrivateShares;
+
+    /** Capabilities of the server */
+    private OCCapability mCapabilities;
+
+    /** Adapter to show private shares */
+    private ShareUserListAdapter mUserGroupsAdapter = null;
+
+    /** Public share bound to the file */
+    private OCShare mPublicShare;
+
+    /** Listener for changes on switch to share / unshare publicly */
+    private CompoundButton.OnCheckedChangeListener mOnShareViaLinkSwitchCheckedChangeListener;
+
+    /**
+     * Listener for user actions to set, update or clear password on public link
+     */
+    private OnPasswordInteractionListener mOnPasswordInteractionListener = null;
+
+    /**
+     * Listener for user actions to set, update or clear expiration date on public link
+     */
+    private OnExpirationDateInteractionListener mOnExpirationDateInteractionListener = null;
+
+
+    /**
+     * Public factory method to create new ShareFileFragment instances.
+     *
+     * @param fileToShare An {@link OCFile} to show in the fragment
+     * @param account     An ownCloud account
+     * @return A new instance of fragment ShareFileFragment.
+     */
+    public static ShareFileFragment newInstance(OCFile fileToShare, Account account) {
+        ShareFileFragment fragment = new ShareFileFragment();
+        Bundle args = new Bundle();
+        args.putParcelable(ARG_FILE, fileToShare);
+        args.putParcelable(ARG_ACCOUNT, account);
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    public ShareFileFragment() {
+        // Required empty public constructor
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Log_OC.d(TAG, "onCreate");
+        if (getArguments() != null) {
+            mFile = getArguments().getParcelable(ARG_FILE);
+            mAccount = getArguments().getParcelable(ARG_ACCOUNT);
+        }
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        Log_OC.d(TAG, "onCreateView");
+
+        // Inflate the layout for this fragment
+        View view = inflater.inflate(R.layout.share_file_layout, container, false);
+
+        // Setup layout
+        // Image
+        ImageView icon = (ImageView) view.findViewById(R.id.shareFileIcon);
+        icon.setImageResource(MimetypeIconUtil.getFileTypeIconId(mFile.getMimetype(),
+                mFile.getFileName()));
+        if (mFile.isImage()) {
+            String remoteId = String.valueOf(mFile.getRemoteId());
+            Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(remoteId);
+            if (thumbnail != null) {
+                icon.setImageBitmap(thumbnail);
+            }
+        }
+        // Name
+        TextView filename = (TextView) view.findViewById(R.id.shareFileName);
+        filename.setText(mFile.getFileName());
+        // Size
+        TextView size = (TextView) view.findViewById(R.id.shareFileSize);
+        if (mFile.isFolder()) {
+            size.setVisibility(View.GONE);
+        } else {
+            size.setText(DisplayUtils.bytesToHumanReadable(mFile.getFileLength()));
+        }
+
+        //  Add User Button
+        Button addUserGroupButton = (Button)
+                view.findViewById(R.id.addUserButton);
+        addUserGroupButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                boolean shareWithUsersEnable = AccountUtils.hasSearchUsersSupport(mAccount);
+                if (shareWithUsersEnable) {
+                    // Show Search Fragment
+                    mListener.showSearchUsersAndGroups();
+                } else {
+                    String message = getString(R.string.share_sharee_unavailable);
+                    Toast.makeText(getActivity(), message, Toast.LENGTH_LONG).show();
+                }
+            }
+        });
+
+        // Switch to create public share
+        mOnShareViaLinkSwitchCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton switchView, boolean isChecked) {
+            }
+        };
+
+        // Set listener for user actions on switch for sharing/unsharing via link
+        initShareViaLinkListener(view);
+
+        // Set listener for user actions on expiration date
+        initExpirationListener(view);
+
+        // Set listener for user actions on password
+        initPasswordListener(view);
+
+        return view;
+    }
+
+
+    /**
+     * Binds listener for user actions to create or delete a public share
+     * to the views receiving the user events.
+     *
+     * @param shareView     Root view in the fragment.
+     */
+    private void initShareViaLinkListener(View shareView) {
+        mOnShareViaLinkSwitchCheckedChangeListener = new OnShareViaLinkListener();
+        Switch shareViaLinkSwitch = (Switch) shareView.findViewById(R.id.shareViaLinkSectionSwitch);
+        shareViaLinkSwitch.setOnCheckedChangeListener(mOnShareViaLinkSwitchCheckedChangeListener);
+    }
+
+    /**
+     * Listener for user actions that create or delete a public share.
+     */
+    private class OnShareViaLinkListener
+            implements CompoundButton.OnCheckedChangeListener {
+
+        /**
+         * Called by R.id.shareViaLinkSectionSwitch to create or delete a public link.
+         *
+         * @param switchView    {@link Switch} toggled by the user, R.id.shareViaLinkSectionSwitch
+         * @param isChecked     New switch state.
+         */
+        @Override
+        public void onCheckedChanged(CompoundButton switchView, boolean isChecked) {
+            if (!isResumed()) {
+                // very important, setCheched(...) is called automatically during
+                // Fragment recreation on device rotations
+                return;
+            }
+            if (isChecked) {
+                if (mCapabilities != null &&
+                        mCapabilities.getFilesSharingPublicPasswordEnforced().isTrue()) {
+                    // password enforced by server, request to the user before trying to create
+                    ((FileActivity) getActivity()).getFileOperationsHelper().
+                            requestPasswordForShareViaLink(mFile, true);
+
+                } else {
+                    // create without password if not enforced by server or we don't know if enforced;
+                    ((FileActivity) getActivity()).getFileOperationsHelper().
+                            shareFileViaLink(mFile, null);
+
+                    // FileActivtiy#onCreateShareViaLinkOperationFinish still handles the guess of enforcement
+                    // for server in versions previous to OwnCloudVersion#MINIMUM_VERSION_CAPABILITIES_API
+                }
+
+            } else {
+                ((FileActivity) getActivity()).getFileOperationsHelper().
+                        unshareFileViaLink(mFile);
+            }
+
+            // undo the toggle to grant the view will be correct if any intermediate dialog is cancelled or
+            // the create/delete operation fails
+            switchView.setOnCheckedChangeListener(null);
+            switchView.toggle();
+            switchView.setOnCheckedChangeListener(mOnShareViaLinkSwitchCheckedChangeListener);
+        }
+    }
+
+
+    /**
+     * Binds listener for user actions that start any update on a expiration date
+     * for the public link to the views receiving the user events.
+     *
+     * @param shareView     Root view in the fragment.
+     */
+    private void initExpirationListener(View shareView) {
+        mOnExpirationDateInteractionListener = new OnExpirationDateInteractionListener();
+
+        ((Switch) shareView.findViewById(R.id.shareViaLinkExpirationSwitch)).
+                setOnCheckedChangeListener(mOnExpirationDateInteractionListener);
+
+        shareView.findViewById(R.id.shareViaLinkExpirationLabel).
+                setOnClickListener(mOnExpirationDateInteractionListener);
+
+        shareView.findViewById(R.id.shareViaLinkExpirationValue).
+                setOnClickListener(mOnExpirationDateInteractionListener);
+    }
+
+    /**
+     * Listener for user actions that start any update on the expiration date for the public link.
+     */
+    private class OnExpirationDateInteractionListener
+            implements CompoundButton.OnCheckedChangeListener, View.OnClickListener {
+
+        /**
+         * Called by R.id.shareViaLinkExpirationSwitch to set or clear the expiration date.
+         *
+         * @param switchView    {@link Switch} toggled by the user, R.id.shareViaLinkExpirationSwitch
+         * @param isChecked     New switch state.
+         */
+        @Override
+        public void onCheckedChanged(CompoundButton switchView, boolean isChecked) {
+            if (!isResumed()) {
+                // very important, setCheched(...) is called automatically during
+                // Fragment recreation on device rotations
+                return;
+            }
+            if (isChecked) {
+                ExpirationDatePickerDialogFragment dialog =
+                        ExpirationDatePickerDialogFragment.newInstance(mFile, -1);
+                dialog.show(
+                        getActivity().getSupportFragmentManager(),
+                        ExpirationDatePickerDialogFragment.DATE_PICKER_DIALOG
+                );
+
+            } else {
+                ((FileActivity) getActivity()).getFileOperationsHelper().
+                        setExpirationDateToShareViaLink(mFile, -1);
+            }
+
+            // undo the toggle to grant the view will be correct if the dialog is cancelled
+            switchView.setOnCheckedChangeListener(null);
+            switchView.toggle();
+            switchView.setOnCheckedChangeListener(mOnExpirationDateInteractionListener);
+        }
+
+        /**
+         * Called by R.id.shareViaLinkExpirationLabel or R.id.shareViaLinkExpirationValue
+         * to change the current expiration date.
+         *
+         * @param expirationView      Label or value view touched by the user.
+         */
+        @Override
+        public void onClick(View expirationView) {
+            if (mPublicShare != null && mPublicShare.getExpirationDate() > 0) {
+                long chosenDateInMillis = -1;
+                if (mPublicShare != null) {
+                    chosenDateInMillis = mPublicShare.getExpirationDate();
+                }
+                ExpirationDatePickerDialogFragment dialog =
+                        ExpirationDatePickerDialogFragment.newInstance(
+                                mFile,
+                                chosenDateInMillis
+                        );
+                dialog.show(
+                        getActivity().getSupportFragmentManager(),
+                        ExpirationDatePickerDialogFragment.DATE_PICKER_DIALOG
+                );
+            }
+        }
+    }
+
+
+    /**
+     * Binds listener for user actions that start any update on a password for the public link
+     * to the views receiving the user events.
+     *
+     * @param shareView     Root view in the fragment.
+     */
+    private void initPasswordListener(View shareView) {
+        mOnPasswordInteractionListener = new OnPasswordInteractionListener();
+
+        ((Switch) shareView.findViewById(R.id.shareViaLinkPasswordSwitch)).
+                setOnCheckedChangeListener(mOnPasswordInteractionListener);
+
+        shareView.findViewById(R.id.shareViaLinkPasswordLabel).
+                setOnClickListener(mOnPasswordInteractionListener);
+
+        shareView.findViewById(R.id.shareViaLinkPasswordValue).
+                setOnClickListener(mOnPasswordInteractionListener);
+    }
+
+
+    /**
+     * Listener for user actions that start any update on a password for the public link.
+     */
+    private class OnPasswordInteractionListener
+            implements CompoundButton.OnCheckedChangeListener, View.OnClickListener {
+
+        /**
+         * Called by R.id.shareViaLinkPasswordSwitch to set or clear the password.
+         *
+         * @param switchView    {@link Switch} toggled by the user, R.id.shareViaLinkPasswordSwitch
+         * @param isChecked     New switch state.
+         */
+        @Override
+        public void onCheckedChanged(CompoundButton switchView, boolean isChecked) {
+            if (!isResumed()) {
+                // very important, setCheched(...) is called automatically during
+                // Fragment recreation on device rotations
+                return;
+            }
+            if (isChecked) {
+                ((FileActivity) getActivity()).getFileOperationsHelper().
+                        requestPasswordForShareViaLink(mFile, false);
+            } else {
+                ((FileActivity) getActivity()).getFileOperationsHelper().
+                        setPasswordToShareViaLink(mFile, "");   // "" clears
+            }
+
+            // undo the toggle to grant the view will be correct if the dialog is cancelled
+            switchView.setOnCheckedChangeListener(null);
+            switchView.toggle();
+            switchView.setOnCheckedChangeListener(mOnPasswordInteractionListener);
+        }
+
+        /**
+         * Called by R.id.shareViaLinkPasswordLabel or R.id.shareViaLinkPasswordValue
+         * to change the current password.
+         *
+         * @param passwordView      Label or value view touched by the user.
+         */
+        @Override
+        public void onClick(View passwordView) {
+            if (mPublicShare != null && mPublicShare.isPasswordProtected()) {
+                ((FileActivity) getActivity()).getFileOperationsHelper().
+                        requestPasswordForShareViaLink(mFile, false);
+            }
+        }
+    }
+
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        Log_OC.d(TAG, "onActivityCreated");
+
+        // Load known capabilities of the server from DB
+        refreshCapabilitiesFromDB();
+
+        // Load data into the list of private shares
+        refreshUsersOrGroupsListFromDB();
+
+        // Load data of public share, if exists
+        refreshPublicShareFromDB();
+    }
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+        try {
+            mListener = (OnShareFragmentInteractionListener) activity;
+        } catch (ClassCastException e) {
+            throw new ClassCastException(activity.toString()
+                    + " must implement OnShareFragmentInteractionListener");
+        }
+    }
+
+    @Override
+    public void onDetach() {
+        super.onDetach();
+        mListener = null;
+    }
+
+
+    /**
+     * Get known server capabilities from DB
+     *
+     * Depends on the parent Activity provides a {@link com.owncloud.android.datamodel.FileDataStorageManager}
+     * instance ready to use. If not ready, does nothing.
+     */
+    public void refreshCapabilitiesFromDB() {
+        if (((FileActivity)mListener).getStorageManager() != null) {
+            mCapabilities = ((FileActivity)mListener).getStorageManager().
+                    getCapability(mAccount.name);
+        }
+    }
+
+
+    /**
+     * Get users and groups from the DB to fill in the "share with" list.
+     *
+     * Depends on the parent Activity provides a {@link com.owncloud.android.datamodel.FileDataStorageManager}
+     * instance ready to use. If not ready, does nothing.
+     */
+    public void refreshUsersOrGroupsListFromDB (){
+        if (((FileActivity) mListener).getStorageManager() != null) {
+            // Get Users and Groups
+            mPrivateShares = ((FileActivity) mListener).getStorageManager().getSharesWithForAFile(
+                    mFile.getRemotePath(),
+                    mAccount.name
+            );
+
+            // Update list of users/groups
+            updateListOfUserGroups();
+        }
+    }
+
+    private void updateListOfUserGroups() {
+        // Update list of users/groups
+        // TODO Refactoring: create a new {@link ShareUserListAdapter} instance with every call should not be needed
+        mUserGroupsAdapter = new ShareUserListAdapter(
+                getActivity(),
+                R.layout.share_user_item,
+                mPrivateShares,
+                this
+        );
+
+        // Show data
+        TextView noShares = (TextView) getView().findViewById(R.id.shareNoUsers);
+        ListView usersList = (ListView) getView().findViewById(R.id.shareUsersList);
+
+        if (mPrivateShares.size() > 0) {
+            noShares.setVisibility(View.GONE);
+            usersList.setVisibility(View.VISIBLE);
+            usersList.setAdapter(mUserGroupsAdapter);
+            setListViewHeightBasedOnChildren(usersList);
+        } else {
+            noShares.setVisibility(View.VISIBLE);
+            usersList.setVisibility(View.GONE);
+        }
+
+        // Set Scroll to initial position
+        ScrollView scrollView = (ScrollView) getView().findViewById(R.id.shareScroll);
+        scrollView.scrollTo(0, 0);
+    }
+
+    @Override
+    public void unshareButtonPressed(OCShare share) {
+        // Unshare
+        mListener.unshareWith(share);
+        Log_OC.d(TAG, "Unshare - " + share.getSharedWithDisplayName());
+    }
+
+
+
+    /**
+     * Get public link from the DB to fill in the "Share link" section in the UI.
+     *
+     * Takes into account server capabilities before reading database.
+     *
+     * Depends on the parent Activity provides a {@link com.owncloud.android.datamodel.FileDataStorageManager}
+     * instance ready to use. If not ready, does nothing.
+     */
+    public void refreshPublicShareFromDB() {
+        if (isPublicShareDisabled()) {
+            hidePublicShare();
+
+        } else if (((FileActivity) mListener).getStorageManager() != null) {
+            // Get public share
+            mPublicShare = ((FileActivity) mListener).getStorageManager().getFirstShareByPathAndType(
+                    mFile.getRemotePath(),
+                    ShareType.PUBLIC_LINK,
+                    ""
+            );
+
+            // Update public share section
+            updatePublicShareSection();
+        }
+    }
+
+    /**
+     * @return  'True' when public share is disabled in the server
+     */
+    private boolean isPublicShareDisabled() {
+        return (mCapabilities != null &&
+                mCapabilities.getFilesSharingPublicEnabled().isFalse()
+        );
+    }
+
+    /**
+     * Updates in the UI the section about public share with the information in the current
+     * public share bound to mFile, if any
+     */
+    private void updatePublicShareSection() {
+        if (mPublicShare != null && ShareType.PUBLIC_LINK.equals(mPublicShare.getShareType())) {
+            /// public share bound -> expand section
+            Switch shareViaLinkSwitch = getShareViaLinkSwitch();
+            if (!shareViaLinkSwitch.isChecked()) {
+                // set null listener before setChecked() to prevent infinite loop of calls
+                shareViaLinkSwitch.setOnCheckedChangeListener(null);
+                shareViaLinkSwitch.setChecked(true);
+                shareViaLinkSwitch.setOnCheckedChangeListener(
+                        mOnShareViaLinkSwitchCheckedChangeListener
+                );
+            }
+            getExpirationDateSection().setVisibility(View.VISIBLE);
+            getPasswordSection().setVisibility(View.VISIBLE);
+            // GetLink button
+            AppCompatButton getLinkButton = getGetLinkButton();
+            getLinkButton.setVisibility(View.VISIBLE);
+            getLinkButton.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    //GetLink from the server and show ShareLinkToDialog
+                    ((FileActivity) getActivity()).getFileOperationsHelper().
+                            getFileWithLink(mFile);
+
+                }
+            });
+
+            /// update state of expiration date switch and message depending on expiration date
+            Switch expirationDateSwitch = getExpirationDateSwitch();
+            // set null listener before setChecked() to prevent infinite loop of calls
+            expirationDateSwitch.setOnCheckedChangeListener(null);
+            long expirationDate = mPublicShare.getExpirationDate();
+            if (expirationDate > 0) {
+                if (!expirationDateSwitch.isChecked()) {
+                    expirationDateSwitch.toggle();
+                }
+                String formattedDate =
+                        SimpleDateFormat.getDateInstance().format(
+                                new Date(expirationDate)
+                        );
+                getExpirationDateValue().setText(formattedDate);
+            } else {
+                if (expirationDateSwitch.isChecked()) {
+                    expirationDateSwitch.toggle();
+                }
+                getExpirationDateValue().setText(R.string.empty);
+            }
+            // recover listener
+            expirationDateSwitch.setOnCheckedChangeListener(
+                    mOnExpirationDateInteractionListener
+            );
+
+            /// update state of password switch and message depending on password protection
+            Switch passwordSwitch = getPasswordSwitch();
+            // set null listener before setChecked() to prevent infinite loop of calls
+            passwordSwitch.setOnCheckedChangeListener(null);
+            if (mPublicShare.isPasswordProtected()) {
+                if (!passwordSwitch.isChecked()) {
+                    passwordSwitch.toggle();
+                }
+                getPasswordValue().setVisibility(View.VISIBLE);
+            } else {
+                if (passwordSwitch.isChecked()) {
+                    passwordSwitch.toggle();
+                }
+                getPasswordValue().setVisibility(View.INVISIBLE);
+            }
+            // recover listener
+            passwordSwitch.setOnCheckedChangeListener(
+                    mOnPasswordInteractionListener
+            );
+
+
+        } else {
+            /// no public share -> collapse section
+            Switch shareViaLinkSwitch = getShareViaLinkSwitch();
+            if (shareViaLinkSwitch.isChecked()) {
+                shareViaLinkSwitch.setOnCheckedChangeListener(null);
+                getShareViaLinkSwitch().setChecked(false);
+                shareViaLinkSwitch.setOnCheckedChangeListener(
+                        mOnShareViaLinkSwitchCheckedChangeListener
+                );
+            }
+            getExpirationDateSection().setVisibility(View.GONE);
+            getPasswordSection().setVisibility(View.GONE);
+            getGetLinkButton().setVisibility(View.GONE);
+        }
+    }
+
+
+    /// BEWARE: next methods will failed with NullPointerException if called before onCreateView() finishes
+
+    private Switch getShareViaLinkSwitch() {
+        return (Switch) getView().findViewById(R.id.shareViaLinkSectionSwitch);
+    }
+
+    private View getExpirationDateSection() {
+        return getView().findViewById(R.id.shareViaLinkExpirationSection);
+    }
+
+    private Switch getExpirationDateSwitch() {
+        return (Switch) getView().findViewById(R.id.shareViaLinkExpirationSwitch);
+    }
+
+    private TextView getExpirationDateValue() {
+        return (TextView) getView().findViewById(R.id.shareViaLinkExpirationValue);
+    }
+
+    private View getPasswordSection() {
+        return getView().findViewById(R.id.shareViaLinkPasswordSection);
+    }
+
+    private Switch getPasswordSwitch() {
+        return (Switch) getView().findViewById(R.id.shareViaLinkPasswordSwitch);
+    }
+
+    private TextView getPasswordValue() {
+        return (TextView) getView().findViewById(R.id.shareViaLinkPasswordValue);
+    }
+
+    private AppCompatButton getGetLinkButton() {
+        return (AppCompatButton) getView().findViewById(R.id.shareViaLinkGetLinkButton);
+    }
+
+    /**
+     * Hides all the UI elements related to public share
+     */
+    private void hidePublicShare() {
+        getShareViaLinkSwitch().setVisibility(View.GONE);
+        getExpirationDateSection().setVisibility(View.GONE);
+        getPasswordSection().setVisibility(View.GONE);
+        getGetLinkButton().setVisibility(View.GONE);
+    }
+
+    public static void setListViewHeightBasedOnChildren(ListView listView) {
+        ListAdapter listAdapter = listView.getAdapter();
+        if (listAdapter == null) {
+            return;
+        }
+        int desiredWidth = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.AT_MOST);
+        int totalHeight = 0;
+        View view = null;
+        for (int i = 0; i < listAdapter.getCount(); i++) {
+            view = listAdapter.getView(i, view, listView);
+            if (i == 0) {
+                view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, ViewGroup.LayoutParams.WRAP_CONTENT));
+            }
+            view.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
+            totalHeight += view.getMeasuredHeight();
+        }
+        ViewGroup.LayoutParams params = listView.getLayoutParams();
+        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
+        listView.setLayoutParams(params);
+        listView.requestLayout();
+    }
+
+    /**
+     * This interface must be implemented by activities that contain this
+     * fragment to allow an interaction in this fragment to be communicated
+     * to the activity and potentially other fragments contained in that
+     * activity.
+     * <p/>
+     * See the Android Training lesson <a href=
+     * "http://developer.android.com/training/basics/fragments/communicating.html"
+     * >Communicating with Other Fragments</a> for more information.
+     */
+    public interface OnShareFragmentInteractionListener {
+        void showSearchUsersAndGroups();
+        void refreshUsersOrGroupsListFromServer();
+        void unshareWith(OCShare share);
+    }
+
+}
index 631a836..e63b324 100644 (file)
@@ -38,6 +38,7 @@ import android.widget.TextView;
 
 import com.owncloud.android.lib.common.network.OnDatatransferProgressListener;
 import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.utils.DisplayUtils;
 
 
 /**
@@ -58,9 +59,9 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
 
     public ProgressListener mProgressListener;
     private boolean mListening;
-    
+
     private static final String TAG = FileDownloadFragment.class.getSimpleName();
-    
+
     private boolean mIgnoreFirstSavedState;
     private boolean mError;
 
@@ -117,30 +118,30 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
         mIgnoreFirstSavedState = args.getBoolean(ARG_IGNORE_FIRST);
         mAccount = args.getParcelable(ARG_ACCOUNT);
     }
-    
+
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
+                             Bundle savedInstanceState) {
         super.onCreateView(inflater, container, savedInstanceState);
-        
+
         if (savedInstanceState != null) {
             if (!mIgnoreFirstSavedState) {
-                setFile((OCFile)savedInstanceState.getParcelable(FileDownloadFragment.EXTRA_FILE));
+                setFile((OCFile) savedInstanceState.getParcelable(FileDownloadFragment.EXTRA_FILE));
                 mAccount = savedInstanceState.getParcelable(FileDownloadFragment.EXTRA_ACCOUNT);
                 mError = savedInstanceState.getBoolean(FileDownloadFragment.EXTRA_ERROR);
-            } else {
+            }
+            else {
                 mIgnoreFirstSavedState = false;
             }
         }
-        
-        View view = null;
-        view = inflater.inflate(R.layout.file_download_fragment, container, false);
-        mView = view;
+
+        mView = inflater.inflate(R.layout.file_download_fragment, container, false);
         
         ProgressBar progressBar = (ProgressBar)mView.findViewById(R.id.progressBar);
+        DisplayUtils.colorPreLollipopHorizontalProgressBar(progressBar);
         mProgressListener = new ProgressListener(progressBar);
-        
+
         (mView.findViewById(R.id.cancelBtn)).setOnClickListener(this);
         
         (mView.findViewById(R.id.fileDownloadLL)).setOnClickListener(new OnClickListener() {
@@ -152,13 +153,14 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
 
         if (mError) {
             setButtonsForRemote();
-        } else {
+        }
+        else {
             setButtonsForTransferring();
         }
-        
-        return view;
+
+        return mView;
     }
-    
+
 
     @Override
     public void onSaveInstanceState(Bundle outState) {
@@ -173,7 +175,7 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
         super.onStart();
         listenForTransferProgress();
     }
-    
+
     @Override
     public void onResume() {
         super.onResume();
@@ -185,19 +187,19 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
         super.onPause();
     }
 
-    
+
     @Override
     public void onStop() {
         leaveTransferProgress();
         super.onStop();
     }
-    
+
     @Override
     public void onDestroy() {
         super.onDestroy();
     }
-    
-    
+
+
     @Override
     public View getView() {
         if (!mListening) {
@@ -206,7 +208,7 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
         return super.getView() == null ? mView : super.getView();
     }
 
-    
+
     @Override
     public void onClick(View v) {
         switch (v.getId()) {
@@ -220,53 +222,52 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
         }
     }
 
-    
+
     /**
      * Enables or disables buttons for a file being downloaded
      */
     private void setButtonsForTransferring() {
         getView().findViewById(R.id.cancelBtn).setVisibility(View.VISIBLE);
-    
+
         // show the progress bar for the transfer
         getView().findViewById(R.id.progressBar).setVisibility(View.VISIBLE);
-        TextView progressText = (TextView)getView().findViewById(R.id.progressText);
+        TextView progressText = (TextView) getView().findViewById(R.id.progressText);
         progressText.setText(R.string.downloader_download_in_progress_ticker);
         progressText.setVisibility(View.VISIBLE);
-                
+
         // hides the error icon
         getView().findViewById(R.id.errorText).setVisibility(View.GONE);
         getView().findViewById(R.id.error_image).setVisibility(View.GONE);
     }
-    
 
     /**
-     * Enables or disables buttons for a file locally available 
+     * Enables or disables buttons for a file locally available
      */
     private void setButtonsForDown() {
         getView().findViewById(R.id.cancelBtn).setVisibility(View.GONE);
-    
+
         // hides the progress bar
         getView().findViewById(R.id.progressBar).setVisibility(View.GONE);
-        
+
         // updates the text message
-        TextView progressText = (TextView)getView().findViewById(R.id.progressText);
+        TextView progressText = (TextView) getView().findViewById(R.id.progressText);
         progressText.setText(R.string.common_loading);
         progressText.setVisibility(View.VISIBLE);
-        
+
         // hides the error icon
         getView().findViewById(R.id.errorText).setVisibility(View.GONE);
         getView().findViewById(R.id.error_image).setVisibility(View.GONE);
     }
 
-    
+
     /**
-     * Enables or disables buttons for a file not locally available 
-     * 
+     * Enables or disables buttons for a file not locally available
+     * <p/>
      * Currently, this is only used when a download was failed
      */
     private void setButtonsForRemote() {
         getView().findViewById(R.id.cancelBtn).setVisibility(View.GONE);
-        
+
         // hides the progress bar and message
         getView().findViewById(R.id.progressBar).setVisibility(View.GONE);
         getView().findViewById(R.id.progressText).setVisibility(View.GONE);
@@ -275,7 +276,7 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
         getView().findViewById(R.id.errorText).setVisibility(View.VISIBLE);
         getView().findViewById(R.id.error_image).setVisibility(View.VISIBLE);
     }
-    
+
 
     public void listenForTransferProgress() {
         if (mProgressListener != null && !mListening) {
@@ -288,8 +289,8 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
             }
         }
     }
-    
-    
+
+
     public void leaveTransferProgress() {
         if (mProgressListener != null) {
             if (mContainerActivity.getFileDownloaderBinder() != null) {
@@ -308,11 +309,11 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
     private class ProgressListener implements OnDatatransferProgressListener {
         int mLastPercent = 0;
         WeakReference<ProgressBar> mProgressBar = null;
-        
+
         ProgressListener(ProgressBar progressBar) {
             mProgressBar = new WeakReference<ProgressBar>(progressBar);
         }
-        
+
         @Override
         public void onTransferProgress(
                 long progressRate, long totalTransferredSoFar, long totalToTransfer, String filename
@@ -333,8 +334,9 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
 
     public void setError(boolean error) {
         mError = error;
-    };
-    
+    }
+
+    ;
 
 
 }
index 69182d6..5bb24e7 100644 (file)
@@ -4,12 +4,16 @@ import android.annotation.SuppressLint;
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
+import android.graphics.Movie;
 import android.os.Build;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.ImageView;
 
-import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.datamodel.OCFile;
+
+import java.io.FileInputStream;
+import java.io.InputStream;
 
 public class ImageViewCustom extends ImageView {
 
@@ -23,7 +27,12 @@ public class ImageViewCustom extends ImageView {
     private int mBitmapHeight;
     private int mBitmapWidth;
 
-    
+    private Movie mGifMovie;
+    private int mMovieWidth, mMovieHeight;
+    private long mMovieDuration;
+    private long mMovieRunDuration;
+    private long mLastTick;
+
     public ImageViewCustom(Context context) {
         super(context);
     }
@@ -39,18 +48,58 @@ public class ImageViewCustom extends ImageView {
     @SuppressLint("NewApi")
        @Override
     protected void onDraw(Canvas canvas) {
-
         if(IS_ICS_OR_HIGHER && checkIfMaximumBitmapExceed(canvas) || IS_VERSION_BUGGY_ON_RECYCLES ) {
             // Software type is set with two targets:
             // 1. prevent that bitmaps larger than maximum textures allowed are shown as black views in devices
             //  with LAYER_TYPE_HARDWARE enabled by default;
-            // 2. grant that bitmaps are correctly dellocated from memory in versions suffering the bug fixed in
+            // 2. grant that bitmaps are correctly de-allocated from memory in versions suffering the bug fixed in
             //  https://android.googlesource.com/platform/frameworks/base/+/034de6b1ec561797a2422314e6ef03e3cd3e08e0;
             //
             setLayerType(View.LAYER_TYPE_SOFTWARE, null);
         }
 
-        super.onDraw(canvas);
+        if(mGifMovie == null){
+            super.onDraw(canvas);
+        } else {
+            long nowTick = android.os.SystemClock.uptimeMillis();
+            if (mLastTick == 0) {
+                mMovieRunDuration = 0;
+            } else {
+                mMovieRunDuration += nowTick - mLastTick;
+                if(mMovieRunDuration > mMovieDuration){
+                        mMovieRunDuration = 0;
+                }
+            }
+
+            mGifMovie.setTime((int) mMovieRunDuration);
+
+            float scale;
+            if(mGifMovie.height() > getHeight() || mGifMovie.width() > getWidth()) {
+                scale = (1f / Math.min(canvas.getHeight() / mGifMovie.height(),
+                        canvas.getWidth() / mGifMovie.width())) + 0.25f;
+            } else {
+                scale = Math.min(canvas.getHeight() / mGifMovie.height(),
+                                 canvas.getWidth() / mGifMovie.width());
+            }
+
+            canvas.scale(scale, scale);
+            canvas.translate(((float) getWidth() / scale - (float) mGifMovie.width()) / 2f,
+                    ((float) getHeight() / scale - (float) mGifMovie.height()) /2f);
+
+            mGifMovie.draw(canvas, 0, 0);
+
+            mLastTick = nowTick;
+            invalidate();
+        }
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        if (mGifMovie == null){
+            setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
+        } else {
+            setMeasuredDimension(mMovieWidth, mMovieHeight);
+        }
     }
 
     /**
@@ -60,13 +109,9 @@ public class ImageViewCustom extends ImageView {
      */
     @SuppressLint("NewApi")
        private boolean checkIfMaximumBitmapExceed(Canvas canvas) {
-        Log_OC.v(TAG, "Canvas maximum: " + canvas.getMaximumBitmapWidth() + " - " + canvas.getMaximumBitmapHeight());
-        if (mBitmapWidth > canvas.getMaximumBitmapWidth()
-                || mBitmapHeight > canvas.getMaximumBitmapHeight()) {
-            return true;
-        }
-        
-        return false;
+        return mBitmapWidth > canvas.getMaximumBitmapWidth()
+                || mBitmapHeight > canvas.getMaximumBitmapHeight();
+
     }
     
     @Override
@@ -74,10 +119,25 @@ public class ImageViewCustom extends ImageView {
      * Keeps the size of the bitmap cached in member variables for faster access in {@link #onDraw(Canvas)} ,
      * but without keeping another reference to the {@link Bitmap}
      */
-    public void setImageBitmap (Bitmap bm) {
+    public void setImageBitmap(Bitmap bm) {
         mBitmapWidth = bm.getWidth();
         mBitmapHeight = bm.getHeight();
         super.setImageBitmap(bm);
     }
 
+    public void setGifImage(OCFile file){
+      try {
+          InputStream gifInputStream = new FileInputStream(file.getStoragePath());
+          setLayerType(View.LAYER_TYPE_SOFTWARE, null);
+          setFocusable(true);
+
+          mGifMovie = Movie.decodeStream(gifInputStream);
+          mMovieWidth = mGifMovie.width();
+          mMovieHeight = mGifMovie.height();
+          mMovieDuration = mGifMovie.duration();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
 }
index b2d0c8c..6a260dd 100644 (file)
@@ -40,6 +40,7 @@ import android.view.View;
 import android.view.Window;
 
 import com.ortiz.touch.ExtendedViewPager;
+import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
 import com.owncloud.android.datamodel.FileDataStorageManager;
@@ -51,16 +52,12 @@ import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
 import com.owncloud.android.lib.common.operations.OnRemoteOperationListener;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
-import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.common.utils.Log_OC;
-import com.owncloud.android.operations.CreateShareOperation;
 import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
-import com.owncloud.android.operations.UnshareLinkOperation;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.fragment.FileFragment;
-import com.owncloud.android.utils.DisplayUtils;
 
 
 /**
@@ -104,7 +101,6 @@ public class PreviewImageActivity extends FileActivity implements
 
         // ActionBar
         ActionBar actionBar = getSupportActionBar();
-        actionBar.setIcon(DisplayUtils.getSeasonalIconId());
         updateActionBarTitleAndHomeButton(null);
         actionBar.hide();
 
@@ -133,6 +129,9 @@ public class PreviewImageActivity extends FileActivity implements
                 }
             });
 
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+                getWindow().setStatusBarColor(getResources().getColor(R.color.owncloud_blue_dark_transparent));
+            }
         }
             
         if (savedInstanceState != null) {
@@ -153,9 +152,8 @@ public class PreviewImageActivity extends FileActivity implements
             parentFolder = getStorageManager().getFileByPath(OCFile.ROOT_PATH);
         }
 
-        // TODO Enable when "On Device" is recovered ?
         mPreviewImagePagerAdapter = new PreviewImagePagerAdapter(getSupportFragmentManager(),
-                parentFolder, getAccount(), getStorageManager()/*, MainApp.getOnlyOnDevice()*/);
+                parentFolder, getAccount(), getStorageManager(), MainApp.getOnlyOnDevice());
 
         mViewPager = (ExtendedViewPager) findViewById(R.id.fragmentPager);
         int position = mHasSavedPosition ? mSavedPosition :
@@ -227,13 +225,7 @@ public class PreviewImageActivity extends FileActivity implements
     public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationResult result) {
         super.onRemoteOperationFinish(operation, result);
         
-        if (operation instanceof CreateShareOperation) {
-            onCreateShareOperationFinish((CreateShareOperation) operation, result);
-            
-        } else if (operation instanceof UnshareLinkOperation) {
-            onUnshareLinkOperationFinish((UnshareLinkOperation) operation, result);
-            
-        } else if (operation instanceof RemoveFileOperation) {
+        if (operation instanceof RemoveFileOperation) {
             finish();
         } else if (operation instanceof SynchronizeFileOperation) {
             onSynchronizeFileOperationFinish((SynchronizeFileOperation) operation, result);
@@ -241,32 +233,6 @@ public class PreviewImageActivity extends FileActivity implements
         }
     }
     
-    
-    private void onUnshareLinkOperationFinish(UnshareLinkOperation operation,
-                                              RemoteOperationResult result) {
-        if (result.isSuccess()) {
-            OCFile file = getStorageManager().getFileByPath(getFile().getRemotePath());
-            if (file != null) {
-                setFile(file);
-            }
-            invalidateOptionsMenu();
-        } else if  (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
-            backToDisplayActivity();
-        }
-            
-    }
-    
-    private void onCreateShareOperationFinish(CreateShareOperation operation,
-                                              RemoteOperationResult result) {
-        if (result.isSuccess()) {
-            OCFile file = getStorageManager().getFileByPath(getFile().getRemotePath());
-            if (file != null) {
-                setFile(file);
-            }
-            invalidateOptionsMenu();
-        }
-    }
-
     private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation,
                                                   RemoteOperationResult result) {
         if (result.isSuccess()) {
@@ -397,7 +363,6 @@ public class PreviewImageActivity extends FileActivity implements
         
     }
 
-    
     private void requestForDownload(OCFile file) {
         if (mDownloaderBinder == null) {
             Log_OC.d(TAG, "requestForDownload called without binder to download service");
@@ -427,12 +392,7 @@ public class PreviewImageActivity extends FileActivity implements
             OCFile currentFile = mPreviewImagePagerAdapter.getFileAt(position); 
             getSupportActionBar().setTitle(currentFile.getFileName());
             mDrawerToggle.setDrawerIndicatorEnabled(false);
-            if (!currentFile.isDown()) {
-                if (!mPreviewImagePagerAdapter.pendingErrorAt(position)) {
-                    requestForDownload(currentFile);
-                }
-            }
-
+            
             // Call to reset image zoom to initial state
             ((PreviewImagePagerAdapter) mViewPager.getAdapter()).resetZoom();
         }
@@ -610,7 +570,7 @@ public class PreviewImageActivity extends FileActivity implements
 
     /**
      * Checks if OS version is Honeycomb one or higher
-     * 
+     *
      * @return boolean
      */
     private boolean isHoneycombOrHigher() {
index 7ca1cfb..1ef0377 100644 (file)
@@ -26,6 +26,7 @@ import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.graphics.Bitmap;
 import android.graphics.Point;
+import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.support.v4.app.FragmentStatePagerAdapter;
@@ -40,8 +41,10 @@ import android.widget.ImageView;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
+import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.datamodel.ThumbnailsCacheManager;
 import com.owncloud.android.files.FileMenuFilter;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
@@ -68,17 +71,20 @@ public class PreviewImageFragment extends FileFragment {
 
     private static final String ARG_FILE = "FILE";
     private static final String ARG_IGNORE_FIRST = "IGNORE_FIRST";
+    private static final String ARG_SHOW_RESIZED_IMAGE = "SHOW_RESIZED_IMAGE";
 
     private TouchImageViewCustom mImageView;
     private TextView mMessageView;
     private ProgressBar mProgressWheel;
 
+    private Boolean mShowResizedImage = false;
+
     public Bitmap mBitmap = null;
-    
+
     private static final String TAG = PreviewImageFragment.class.getSimpleName();
 
     private boolean mIgnoreFirstSavedState;
-    
+
     private LoadBitmapTask mLoadBitmapTask = null;
 
 
@@ -96,16 +102,19 @@ public class PreviewImageFragment extends FileFragment {
      *                                  {@link FragmentStatePagerAdapter}
      *                                  ; TODO better solution
      */
-    public static PreviewImageFragment newInstance(OCFile imageFile, boolean ignoreFirstSavedState){
+    public static PreviewImageFragment newInstance(OCFile imageFile, boolean ignoreFirstSavedState,
+            boolean showResizedImage){
         PreviewImageFragment frag = new PreviewImageFragment();
+        frag.mShowResizedImage = showResizedImage;
         Bundle args = new Bundle();
         args.putParcelable(ARG_FILE, imageFile);
         args.putBoolean(ARG_IGNORE_FIRST, ignoreFirstSavedState);
+        args.putBoolean(ARG_SHOW_RESIZED_IMAGE, showResizedImage);
         frag.setArguments(args);
         return frag;
     }
 
-    
+
     
     /**
      *  Creates an empty fragment for image previews.
@@ -119,8 +128,8 @@ public class PreviewImageFragment extends FileFragment {
     public PreviewImageFragment() {
         mIgnoreFirstSavedState = false;
     }
-    
-    
+
+
     /**
      * {@inheritDoc}
      */
@@ -133,16 +142,17 @@ public class PreviewImageFragment extends FileFragment {
             // not right now
 
         mIgnoreFirstSavedState = args.getBoolean(ARG_IGNORE_FIRST);
+        mShowResizedImage = args.getBoolean(ARG_SHOW_RESIZED_IMAGE);
         setHasOptionsMenu(true);
     }
-    
+
 
     /**
      * {@inheritDoc}
      */
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
+                             Bundle savedInstanceState) {
         super.onCreateView(inflater, container, savedInstanceState);
         View view = inflater.inflate(R.layout.preview_image_fragment, container, false);
         mImageView = (TouchImageViewCustom) view.findViewById(R.id.image);
@@ -178,11 +188,8 @@ public class PreviewImageFragment extends FileFragment {
         if (getFile() == null) {
             throw new IllegalStateException("Instanced with a NULL OCFile");
         }
-        if (!getFile().isDown()) {
-            throw new IllegalStateException("There is no local file to preview");
-        }
     }
-        
+
 
     /**
      * {@inheritDoc}
@@ -192,19 +199,66 @@ public class PreviewImageFragment extends FileFragment {
         super.onSaveInstanceState(outState);
         outState.putParcelable(PreviewImageFragment.EXTRA_FILE, getFile());
     }
-    
+
 
     @Override
     public void onStart() {
         super.onStart();
         if (getFile() != null) {
-            mLoadBitmapTask = new LoadBitmapTask(mImageView, mMessageView, mProgressWheel);
-            //mLoadBitmapTask.execute(new String[]{getFile().getStoragePath()});
-            mLoadBitmapTask.execute(getFile().getStoragePath());
+            mImageView.setTag(getFile().getFileId());
+
+            if (mShowResizedImage){
+                Bitmap resizedImage = ThumbnailsCacheManager.getBitmapFromDiskCache(
+                        String.valueOf("r" + getFile().getRemoteId()));
+
+                if (resizedImage != null && !getFile().needsUpdateThumbnail()){
+                    mProgressWheel.setVisibility(View.GONE);
+                    mImageView.setImageBitmap(resizedImage);
+                    mImageView.setVisibility(View.VISIBLE);
+                    mBitmap  = resizedImage;
+                } else {
+                    // show thumbnail while loading resized image
+                    Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(
+                            String.valueOf("t" + getFile().getRemoteId()));
+
+                    if (thumbnail != null){
+                        mImageView.setImageBitmap(thumbnail);
+                        mProgressWheel.setVisibility(View.VISIBLE);
+                        mImageView.setVisibility(View.VISIBLE);
+                        mBitmap = thumbnail;
+                    } else {
+                        thumbnail = ThumbnailsCacheManager.mDefaultImg;
+                    }
+
+                    // generate new resized image
+                    if (ThumbnailsCacheManager.cancelPotentialWork(getFile(), mImageView) &&
+                        mContainerActivity.getStorageManager() != null) {
+                        final ThumbnailsCacheManager.ThumbnailGenerationTask task =
+                                new ThumbnailsCacheManager.ThumbnailGenerationTask(
+                                        mImageView, mContainerActivity.getStorageManager(),
+                                        mContainerActivity.getStorageManager().getAccount(),
+                                        mProgressWheel);
+                        if (resizedImage == null) {
+                            resizedImage = thumbnail;
+                        }
+                        final ThumbnailsCacheManager.AsyncDrawable asyncDrawable =
+                                new ThumbnailsCacheManager.AsyncDrawable(
+                                        MainApp.getAppContext().getResources(),
+                                        resizedImage,
+                                        task
+                                );
+                        mImageView.setImageDrawable(asyncDrawable);
+                        task.execute(getFile(), false);
+                    }
+            }
+            } else {
+                mLoadBitmapTask = new LoadBitmapTask(mImageView, mMessageView, mProgressWheel);
+                mLoadBitmapTask.execute(getFile());
+            }
         }
     }
-    
-    
+
+
     @Override
     public void onStop() {
         Log_OC.d(TAG, "onStop starts");
@@ -214,7 +268,7 @@ public class PreviewImageFragment extends FileFragment {
         }
         super.onStop();
     }
-    
+
     /**
      * {@inheritDoc}
      */
@@ -222,6 +276,9 @@ public class PreviewImageFragment extends FileFragment {
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         super.onCreateOptionsMenu(menu, inflater);
         inflater.inflate(R.menu.file_actions_menu, menu);
+
+//        MenuItem item = menu.findItem(R.id.action_set_as_wallpaper);
+//        item.setVisible(getFile().isDown());
     }
 
     /**
@@ -230,11 +287,11 @@ public class PreviewImageFragment extends FileFragment {
     @Override
     public void onPrepareOptionsMenu(Menu menu) {
         super.onPrepareOptionsMenu(menu);
-        
+
         if (mContainerActivity.getStorageManager() != null) {
             // Update the file
             setFile(mContainerActivity.getStorageManager().getFileById(getFile().getFileId()));
-            
+
             FileMenuFilter mf = new FileMenuFilter(
                 getFile(),
                 mContainerActivity.getStorageManager().getAccount(),
@@ -243,7 +300,7 @@ public class PreviewImageFragment extends FileFragment {
             );
             mf.filter(menu);
         }
-        
+
         // additional restriction for this fragment 
         // TODO allow renaming in PreviewImageFragment
         MenuItem item = menu.findItem(R.id.action_rename_file);
@@ -251,7 +308,7 @@ public class PreviewImageFragment extends FileFragment {
             item.setVisible(false);
             item.setEnabled(false);
         }
-        
+
         // additional restriction for this fragment 
         // TODO allow refresh file in PreviewImageFragment
         item = menu.findItem(R.id.action_sync_file);
@@ -266,11 +323,17 @@ public class PreviewImageFragment extends FileFragment {
             item.setVisible(false);
             item.setEnabled(false);
         }
-        
+
+        // additional restriction for this fragment
+        item = menu.findItem(R.id.action_copy);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
+
     }
 
-    
-    
+
     /**
      * {@inheritDoc}
      */
@@ -278,11 +341,7 @@ public class PreviewImageFragment extends FileFragment {
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
             case R.id.action_share_file: {
-                mContainerActivity.getFileOperationsHelper().shareFileWithLink(getFile());
-                return true;
-            }
-            case R.id.action_unshare_file: {
-                mContainerActivity.getFileOperationsHelper().unshareFileWithLink(getFile());
+                mContainerActivity.getFileOperationsHelper().showShareFile(getFile());
                 return true;
             }
             case R.id.action_open_file_with: {
@@ -299,9 +358,15 @@ public class PreviewImageFragment extends FileFragment {
                 return true;
             }
             case R.id.action_send_file: {
-                mContainerActivity.getFileOperationsHelper().sendDownloadedFile(getFile());
-                return true;
+                if (getFile().isImage() && !getFile().isDown()){
+                    mContainerActivity.getFileOperationsHelper().sendCachedImage(getFile());
+                    return true;
+                } else {
+                    mContainerActivity.getFileOperationsHelper().sendDownloadedFile(getFile());
+                    return true;
+                }
             }
+            case R.id.action_download_file:
             case R.id.action_sync_file: {
                 mContainerActivity.getFileOperationsHelper().syncFile(getFile());
                 return true;
@@ -314,17 +379,20 @@ public class PreviewImageFragment extends FileFragment {
                 mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), false);
                 return true;
             }
+            case R.id.action_set_as_wallpaper:{
+                mContainerActivity.getFileOperationsHelper().setPictureAs(getFile());
+                return true;
+            }
             default:
                 return false;
         }
     }
-    
+
 
     private void seeDetails() {
-        mContainerActivity.showDetails(getFile());        
+        mContainerActivity.showDetails(getFile());
     }
 
-
     @Override
     public void onResume() {
         super.onResume();
@@ -348,7 +416,7 @@ public class PreviewImageFragment extends FileFragment {
         super.onDestroy();
     }
 
-    
+
     /**
      * Opens the previewed image with an external application.
      */
@@ -356,9 +424,9 @@ public class PreviewImageFragment extends FileFragment {
         mContainerActivity.getFileOperationsHelper().openFile(getFile());
         finish();
     }
+
     
-    
-    private class LoadBitmapTask extends AsyncTask<String, Void, Bitmap> {
+    private class LoadBitmapTask extends AsyncTask<OCFile, Void, LoadImage> {
 
         /**
          * Weak reference to the target {@link ImageView} where the bitmap will be loaded into.
@@ -376,7 +444,7 @@ public class PreviewImageFragment extends FileFragment {
          */
         private final WeakReference<TextView> mMessageViewRef;
 
-        
+
         /**
          * Weak reference to the target {@link ProgressBar} shown while the load is in progress.
          * 
@@ -385,17 +453,17 @@ public class PreviewImageFragment extends FileFragment {
          */
         private final WeakReference<ProgressBar> mProgressWheelRef;
 
-        
+
         /**
-         * Error message to show when a load fails 
+         * Error message to show when a load fails
          */
         private int mErrorMessageId;
-        
-        
+
+
         /**
          * Constructor.
-         * 
-         * @param imageView     Target {@link ImageView} where the bitmap will be loaded into.
+         *
+         * @param imageView Target {@link ImageView} where the bitmap will be loaded into.
          */
         public LoadBitmapTask(ImageViewCustom imageView, TextView messageView,
                               ProgressBar progressWheel) {
@@ -403,13 +471,13 @@ public class PreviewImageFragment extends FileFragment {
             mMessageViewRef = new WeakReference<TextView>(messageView);
             mProgressWheelRef = new WeakReference<ProgressBar>(progressWheel);
         }
-        
-        
+
         @Override
-        protected Bitmap doInBackground(String... params) {
+        protected LoadImage doInBackground(OCFile... params) {
             Bitmap result = null;
             if (params.length != 1) return null;
-            String storagePath = params[0];
+            OCFile ocFile = params[0];
+            String storagePath = ocFile.getStoragePath();
             try {
 
                 int maxDownScale = 3;   // could be a parameter passed to doInBackground(...)
@@ -422,7 +490,7 @@ public class PreviewImageFragment extends FileFragment {
                         result = BitmapUtils.decodeSampledBitmapFromFile(storagePath, minWidth,
                                 minHeight);
 
-                        if (isCancelled()) return result;
+                        if (isCancelled()) return new LoadImage(result, ocFile);
 
                         if (result == null) {
                             mErrorMessageId = R.string.preview_image_error_unknown_format;
@@ -454,48 +522,61 @@ public class PreviewImageFragment extends FileFragment {
 
             } catch (NoSuchFieldError e) {
                 mErrorMessageId = R.string.common_error_unknown;
-                Log_OC.e(TAG, "Error from access to unexisting field despite protection; file " 
-                                + storagePath, e);
-                    
+                Log_OC.e(TAG, "Error from access to unexisting field despite protection; file "
+                        + storagePath, e);
+
             } catch (Throwable t) {
                 mErrorMessageId = R.string.common_error_unknown;
                 Log_OC.e(TAG, "Unexpected error loading " + getFile().getStoragePath(), t);
-                
+
             }
-            
-            return result;
+
+            return new LoadImage(result, ocFile);
         }
-        
+
         @Override
-        protected void onCancelled(Bitmap result) {
-            if (result != null) {
-                result.recycle();
+        protected void onCancelled(LoadImage result) {
+            if (result != null && result.bitmap != null) {
+                result.bitmap.recycle();
             }
         }
 
         @Override
-        protected void onPostExecute(Bitmap result) {
+        protected void onPostExecute(LoadImage result) {
             hideProgressWheel();
-            if (result != null) {
+            if (result.bitmap != null) {
                 showLoadedImage(result);
-            } else {
+            }
+            else {
                 showErrorMessage();
             }
-            if (result != null && mBitmap != result)  {
+            if (result.bitmap != null && mBitmap != result.bitmap)  {
                 // unused bitmap, release it! (just in case)
-                result.recycle();
+                result.bitmap.recycle();
             }
         }
-        
+
         @SuppressLint("InlinedApi")
-        private void showLoadedImage(Bitmap result) {
+        private void showLoadedImage(LoadImage result) {
             final ImageViewCustom imageView = mImageViewRef.get();
+            Bitmap bitmap = result.bitmap;
             if (imageView != null) {
-                Log_OC.d(TAG, "Showing image with resolution " + result.getWidth() + "x" +
-                        result.getHeight());
-                imageView.setImageBitmap(result);
+                Log_OC.d(TAG, "Showing image with resolution " + bitmap.getWidth() + "x" +
+                        bitmap.getHeight());
+
+                if (result.ocFile.getMimetype().equalsIgnoreCase("image/png")){
+                    Drawable backrepeat = getResources().getDrawable(R.drawable.backrepeat);
+                    imageView.setBackground(backrepeat);
+                }
+
+                if (result.ocFile.getMimetype().equalsIgnoreCase("image/gif")){
+                    imageView.setGifImage(result.ocFile);
+                } else {
+                    imageView.setImageBitmap(bitmap);
+                }
+
                 imageView.setVisibility(View.VISIBLE);
-                mBitmap  = result;  // needs to be kept for recycling when not useful
+                mBitmap  = bitmap;  // needs to be kept for recycling when not useful
             }
 
             final TextView messageView = mMessageViewRef.get();
@@ -503,7 +584,7 @@ public class PreviewImageFragment extends FileFragment {
                 messageView.setVisibility(View.GONE);
             } // else , silently finish, the fragment was destroyed
         }
-        
+
         private void showErrorMessage() {
             final ImageView imageView = mImageViewRef.get();
             if (imageView != null) {
@@ -517,14 +598,14 @@ public class PreviewImageFragment extends FileFragment {
                 messageView.setVisibility(View.VISIBLE);
             } // else , silently finish, the fragment was destroyed
         }
-        
+
         private void hideProgressWheel() {
             final ProgressBar progressWheel = mProgressWheelRef.get();
             if (progressWheel != null) {
                 progressWheel.setVisibility(View.GONE);
             }
         }
-        
+
     }
 
     /**
@@ -538,7 +619,7 @@ public class PreviewImageFragment extends FileFragment {
         return (file != null && file.isImage());
     }
 
-    
+
     /**
      * Finishes the preview
      */
@@ -546,9 +627,20 @@ public class PreviewImageFragment extends FileFragment {
         Activity container = getActivity();
         container.finish();
     }
-    
+
     public TouchImageViewCustom getImageView() {
         return mImageView;
     }
 
+    private class LoadImage {
+        private Bitmap bitmap;
+        private OCFile ocFile;
+
+        public LoadImage(Bitmap bitmap, OCFile ocFile){
+            this.bitmap = bitmap;
+            this.ocFile = ocFile;
+        }
+
+    }
+
 }
index dda7dda..5ca2e98 100644 (file)
@@ -27,6 +27,7 @@ import java.util.Set;
 import java.util.Vector;
 
 import android.accounts.Account;
+import android.graphics.Bitmap;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentStatePagerAdapter;
@@ -34,6 +35,8 @@ import android.view.ViewGroup;
 
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.datamodel.ThumbnailsCacheManager;
+import com.owncloud.android.ui.adapter.FileListListAdapter;
 import com.owncloud.android.ui.fragment.FileFragment;
 import com.owncloud.android.utils.FileStorageUtils;
 
@@ -61,8 +64,8 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter {
      * @param storageManager    Bridge to database.
      */
     public PreviewImagePagerAdapter(FragmentManager fragmentManager, OCFile parentFolder,
-                                    Account account, FileDataStorageManager storageManager /*,
-                                    boolean onlyOnDevice*/) {
+                                    Account account, FileDataStorageManager storageManager,
+                                    boolean onlyOnDevice) {
         super(fragmentManager);
         
         if (fragmentManager == null) {
@@ -77,10 +80,9 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter {
 
         mAccount = account;
         mStorageManager = storageManager;
-        // TODO Enable when "On Device" is recovered ?
-        mImageFiles = mStorageManager.getFolderImages(parentFolder/*, false*/);
+        mImageFiles = mStorageManager.getFolderImages(parentFolder, onlyOnDevice);
         
-        mImageFiles = FileStorageUtils.sortFolder(mImageFiles);
+        mImageFiles = FileStorageUtils.sortOcFolder(mImageFiles);
         
         mObsoleteFragments = new HashSet<Object>();
         mObsoletePositions = new HashSet<Integer>();
@@ -104,17 +106,15 @@ public class PreviewImagePagerAdapter extends FragmentStatePagerAdapter {
         Fragment fragment = null;
         if (file.isDown()) {
             fragment = PreviewImageFragment.newInstance(file,
-                    mObsoletePositions.contains(Integer.valueOf(i)));
+                    mObsoletePositions.contains(Integer.valueOf(i)), false);
             
         } else if (mDownloadErrors.contains(Integer.valueOf(i))) {
             fragment = FileDownloadFragment.newInstance(file, mAccount, true);
             ((FileDownloadFragment)fragment).setError(true);
             mDownloadErrors.remove(Integer.valueOf(i));
-            
         } else {
-            fragment = FileDownloadFragment.newInstance(
-                    file, mAccount, mObsoletePositions.contains(Integer.valueOf(i))
-            );
+            fragment = PreviewImageFragment.newInstance(file,
+                    mObsoletePositions.contains(Integer.valueOf(i)), true);
         }
         mObsoletePositions.remove(Integer.valueOf(i));
         return fragment;
index d87b82c..b6ee12b 100644 (file)
 package com.owncloud.android.ui.preview;
 
 import android.accounts.Account;
+import android.accounts.AuthenticatorException;
+import android.accounts.OperationCanceledException;
 import android.app.Activity;
-import android.app.AlertDialog;
+import android.content.ActivityNotFoundException;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.media.MediaMetadataRetriever;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.support.v7.app.AlertDialog;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
@@ -33,8 +41,6 @@ import android.media.MediaPlayer;
 import android.media.MediaPlayer.OnCompletionListener;
 import android.media.MediaPlayer.OnErrorListener;
 import android.media.MediaPlayer.OnPreparedListener;
-import android.net.Uri;
-import android.os.Build;
 import android.os.Bundle;
 import android.os.IBinder;
 import android.view.LayoutInflater;
@@ -49,9 +55,16 @@ import android.widget.ImageView;
 import android.widget.Toast;
 import android.widget.VideoView;
 
+import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.datamodel.ThumbnailsCacheManager;
 import com.owncloud.android.files.FileMenuFilter;
+import com.owncloud.android.lib.common.OwnCloudAccount;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
+import com.owncloud.android.lib.common.OwnCloudCredentials;
+import com.owncloud.android.lib.common.accounts.AccountUtils;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.media.MediaControlView;
 import com.owncloud.android.media.MediaService;
@@ -61,10 +74,13 @@ import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
 import com.owncloud.android.ui.fragment.FileFragment;
 
+import java.io.IOException;
+import java.util.concurrent.ExecutionException;
+
 
 /**
  * This fragment shows a preview of a downloaded media file (audio or video).
- * 
+ *
  * Trying to get an instance with NULL {@link OCFile} or ownCloud {@link Account} values will
  * produce an {@link IllegalStateException}.
  * 
@@ -84,46 +100,47 @@ public class PreviewMediaFragment extends FileFragment implements
     private ImageView mImagePreview;
     private VideoView mVideoPreview;
     private int mSavedPlaybackPosition;
-    
+    private String mUri;
+
     private MediaServiceBinder mMediaServiceBinder = null;
     private MediaControlView mMediaController = null;
     private MediaServiceConnection mMediaServiceConnection = null;
     private VideoHelper mVideoHelper;
     private boolean mAutoplay;
     public boolean mPrepared;
-    
+
     private static final String TAG = PreviewMediaFragment.class.getSimpleName();
 
-    
+
     /**
      * Creates a fragment to preview a file.
-     * 
+     * <p/>
      * When 'fileToDetail' or 'ocAccount' are null
-     * 
-     * @param fileToDetail      An {@link OCFile} to preview in the fragment
-     * @param ocAccount         An ownCloud account; needed to start downloads
+     *
+     * @param fileToDetail An {@link OCFile} to preview in the fragment
+     * @param ocAccount    An ownCloud account; needed to start downloads
      */
     public PreviewMediaFragment(
-            OCFile fileToDetail, 
-            Account ocAccount, 
-            int startPlaybackPosition, 
+            OCFile fileToDetail,
+            Account ocAccount,
+            int startPlaybackPosition,
             boolean autoplay) {
-        
+
         super(fileToDetail);
         mAccount = ocAccount;
         mSavedPlaybackPosition = startPlaybackPosition;
         mAutoplay = autoplay;
     }
-    
-    
+
+
     /**
-     *  Creates an empty fragment for previews.
-     * 
-     *  MUST BE KEPT: the system uses it when tries to reinstantiate a fragment automatically 
-     *  (for instance, when the device is turned a aside).
-     * 
-     *  DO NOT CALL IT: an {@link OCFile} and {@link Account} must be provided for a successful 
-     *  construction 
+     * Creates an empty fragment for previews.
+     * <p/>
+     * MUST BE KEPT: the system uses it when tries to reinstantiate a fragment automatically
+     * (for instance, when the device is turned a aside).
+     * <p/>
+     * DO NOT CALL IT: an {@link OCFile} and {@link Account} must be provided for a successful
+     * construction
      */
     public PreviewMediaFragment() {
         super();
@@ -131,8 +148,8 @@ public class PreviewMediaFragment extends FileFragment implements
         mSavedPlaybackPosition = 0;
         mAutoplay = true;
     }
-    
-    
+
+
     /**
      * {@inheritDoc}
      */
@@ -141,29 +158,29 @@ public class PreviewMediaFragment extends FileFragment implements
         super.onCreate(savedInstanceState);
         setHasOptionsMenu(true);
     }
-    
+
 
     /**
      * {@inheritDoc}
      */
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
+                             Bundle savedInstanceState) {
         super.onCreateView(inflater, container, savedInstanceState);
-        Log_OC.e(TAG, "onCreateView");
+        Log_OC.v(TAG, "onCreateView");
+
 
-        
         mView = inflater.inflate(R.layout.file_preview, container, false);
-        
-        mImagePreview = (ImageView)mView.findViewById(R.id.image_preview);
-        mVideoPreview = (VideoView)mView.findViewById(R.id.video_preview);
+
+        mImagePreview = (ImageView) mView.findViewById(R.id.image_preview);
+        mVideoPreview = (VideoView) mView.findViewById(R.id.video_preview);
         mVideoPreview.setOnTouchListener(this);
-        
-        mMediaController = (MediaControlView)mView.findViewById(R.id.media_controller);
-        
+
+        mMediaController = (MediaControlView) mView.findViewById(R.id.media_controller);
+
         return mView;
     }
-    
+
 
     /**
      * {@inheritDoc}
@@ -171,7 +188,7 @@ public class PreviewMediaFragment extends FileFragment implements
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
-        Log_OC.e(TAG, "onActivityCreated");
+        Log_OC.v(TAG, "onActivityCreated");
 
         OCFile file = getFile();
         if (savedInstanceState == null) {
@@ -181,33 +198,55 @@ public class PreviewMediaFragment extends FileFragment implements
             if (mAccount == null) {
                 throw new IllegalStateException("Instanced with a NULL ownCloud Account");
             }
-            if (!file.isDown()) {
-                throw new IllegalStateException("There is no local file to preview");
-            }
-            
-        } else {
-            file = (OCFile)savedInstanceState.getParcelable(PreviewMediaFragment.EXTRA_FILE);
+        }
+        else {
+            file = (OCFile) savedInstanceState.getParcelable(PreviewMediaFragment.EXTRA_FILE);
             setFile(file);
             mAccount = savedInstanceState.getParcelable(PreviewMediaFragment.EXTRA_ACCOUNT);
-            mSavedPlaybackPosition = 
+            mSavedPlaybackPosition =
                     savedInstanceState.getInt(PreviewMediaFragment.EXTRA_PLAY_POSITION);
             mAutoplay = savedInstanceState.getBoolean(PreviewMediaFragment.EXTRA_PLAYING);
-            
+
         }
-        if (file != null && file.isDown()) {
+        if (file != null) {
             if (file.isVideo()) {
                 mVideoPreview.setVisibility(View.VISIBLE);
                 mImagePreview.setVisibility(View.GONE);
                 prepareVideo();
-            
-            } else {
+
+            }
+            else {
                 mVideoPreview.setVisibility(View.GONE);
                 mImagePreview.setVisibility(View.VISIBLE);
+                extractAndSetCoverArt(file);
             }
         }
-        
+
     }
-        
+
+    /**
+     * tries to read the cover art from the audio file and sets it as cover art.
+     *
+     * @param file audio file with potential cover art
+     */
+    private void extractAndSetCoverArt(OCFile file) {
+        if (file.isAudio()) {
+            try {
+                MediaMetadataRetriever mmr = new MediaMetadataRetriever();
+                mmr.setDataSource(file.getStoragePath());
+                byte[] data = mmr.getEmbeddedPicture();
+                if (data != null) {
+                    Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
+                    mImagePreview.setImageBitmap(bitmap); //associated cover art in bitmap
+                } else {
+                    mImagePreview.setImageResource(R.drawable.logo);
+                }
+            } catch (Throwable t) {
+                mImagePreview.setImageResource(R.drawable.logo);
+            }
+        }
+    }
+
 
     /**
      * {@inheritDoc}
@@ -215,44 +254,48 @@ public class PreviewMediaFragment extends FileFragment implements
     @Override
     public void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
-        Log_OC.e(TAG, "onSaveInstanceState");
-        
+        Log_OC.v(TAG, "onSaveInstanceState");
+
         outState.putParcelable(PreviewMediaFragment.EXTRA_FILE, getFile());
         outState.putParcelable(PreviewMediaFragment.EXTRA_ACCOUNT, mAccount);
-        
+
         if (getFile().isVideo()) {
             mSavedPlaybackPosition = mVideoPreview.getCurrentPosition();
             mAutoplay = mVideoPreview.isPlaying();
-            outState.putInt(PreviewMediaFragment.EXTRA_PLAY_POSITION , mSavedPlaybackPosition);
-            outState.putBoolean(PreviewMediaFragment.EXTRA_PLAYING , mAutoplay);
-        } else {
+            outState.putInt(PreviewMediaFragment.EXTRA_PLAY_POSITION, mSavedPlaybackPosition);
+            outState.putBoolean(PreviewMediaFragment.EXTRA_PLAYING, mAutoplay);
+        }
+        else {
             outState.putInt(
-                    PreviewMediaFragment.EXTRA_PLAY_POSITION , 
+                    PreviewMediaFragment.EXTRA_PLAY_POSITION,
                     mMediaServiceBinder.getCurrentPosition());
             outState.putBoolean(
-                    PreviewMediaFragment.EXTRA_PLAYING , mMediaServiceBinder.isPlaying());
+                    PreviewMediaFragment.EXTRA_PLAYING, mMediaServiceBinder.isPlaying());
         }
     }
-    
+
 
     @Override
     public void onStart() {
         super.onStart();
-        Log_OC.e(TAG, "onStart");
+        Log_OC.v(TAG, "onStart");
 
         OCFile file = getFile();
-        if (file != null && file.isDown()) {
-           if (file.isAudio()) {
-               bindMediaService();
-               
-           } else if (file.isVideo()) {
-               stopAudio();
-               playVideo(); 
-           }
+        if (file != null) {
+            if (file.isAudio()) {
+                bindMediaService();
+
+            }
+            else {
+                if (file.isVideo()) {
+                    stopAudio();
+                    playVideo();
+                }
+            }
         }
     }
-    
-    
+
+
     private void stopAudio() {
         Intent i = new Intent(getActivity(), MediaService.class);
         i.setAction(MediaService.ACTION_STOP_ALL);
@@ -276,7 +319,7 @@ public class PreviewMediaFragment extends FileFragment implements
     @Override
     public void onPrepareOptionsMenu(Menu menu) {
         super.onPrepareOptionsMenu(menu);
-        
+
         if (mContainerActivity.getStorageManager() != null) {
             FileMenuFilter mf = new FileMenuFilter(
                 getFile(),
@@ -301,9 +344,16 @@ public class PreviewMediaFragment extends FileFragment implements
             item.setVisible(false);
             item.setEnabled(false);
         }
+
+        // additional restriction for this fragment
+        item = menu.findItem(R.id.action_copy);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
     }
-    
-    
+
+
     /**
      * {@inheritDoc}
      */
@@ -311,13 +361,7 @@ public class PreviewMediaFragment extends FileFragment implements
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
             case R.id.action_share_file: {
-                stopPreview(false);
-                mContainerActivity.getFileOperationsHelper().shareFileWithLink(getFile());
-                return true;
-            }
-            case R.id.action_unshare_file: {
-                stopPreview(false);
-                mContainerActivity.getFileOperationsHelper().unshareFileWithLink(getFile());
+                seeShareFile();
                 return true;
             }
             case R.id.action_open_file_with: {
@@ -353,28 +397,32 @@ public class PreviewMediaFragment extends FileFragment implements
                 return false;
         }
     }
-    
 
 
     /**
      * Update the file of the fragment with file value
-     * @param file
+     *
+     * @param file      Replaces the held file with a new one
      */
-    public void updateFile(OCFile file){
+    public void updateFile(OCFile file) {
         setFile(file);
     }
-    
+
     private void sendFile() {
         stopPreview(false);
         mContainerActivity.getFileOperationsHelper().sendDownloadedFile(getFile());
-        
+
     }
 
     private void seeDetails() {
         stopPreview(false);
-        mContainerActivity.showDetails(getFile());        
+        mContainerActivity.showDetails(getFile());
     }
 
+    private void seeShareFile() {
+        stopPreview(false);
+        mContainerActivity.getFileOperationsHelper().showShareFile(getFile());
+    }
 
     private void prepareVideo() {
         // create helper to get more control on the playback
@@ -383,122 +431,150 @@ public class PreviewMediaFragment extends FileFragment implements
         mVideoPreview.setOnCompletionListener(mVideoHelper);
         mVideoPreview.setOnErrorListener(mVideoHelper);
     }
-    
+
     @SuppressWarnings("static-access")
     private void playVideo() {
         // create and prepare control panel for the user
         mMediaController.setMediaPlayer(mVideoPreview);
-        
+
         // load the video file in the video player ; 
         // when done, VideoHelper#onPrepared() will be called
-        Uri uri = Uri.parse(getFile().getStoragePath());
-        mVideoPreview.setVideoPath(uri.encode(getFile().getStoragePath()));
+        if (getFile().isDown()) {
+            mUri = getFile().getStoragePath();
+        } else {
+            Context context = MainApp.getAppContext();
+            Account account = mContainerActivity.getStorageManager().getAccount();
+
+            mUri = generateUrlWithCredentials(account, context, getFile());
+        }
+
+        mVideoPreview.setVideoURI(getFile().getStorageUri());
     }
-    
+
+    public static String generateUrlWithCredentials(Account account, Context context, OCFile file){
+        OwnCloudAccount ocAccount = null;
+        try {
+            ocAccount = new OwnCloudAccount(account, context);
+
+            final ClientGenerationTask task = new ClientGenerationTask();
+            task.execute(ocAccount);
+
+            OwnCloudClient mClient = task.get();
+            String url = AccountUtils.constructFullURLForAccount(context, account) + Uri.encode(file.getRemotePath(), "/");
+            OwnCloudCredentials credentials = mClient.getCredentials();
+
+            return url.replace("//", "//" + credentials.getUsername() + ":" + credentials.getAuthToken() + "@");
+
+        } catch (AccountUtils.AccountNotFoundException e) {
+            e.printStackTrace();
+
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        } catch (ExecutionException e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+    public static class ClientGenerationTask extends AsyncTask<Object, Void, OwnCloudClient> {
+        @Override
+        protected OwnCloudClient doInBackground(Object... params) {
+            Object account = params[0];
+            if (account instanceof OwnCloudAccount){
+                try {
+                    OwnCloudAccount ocAccount = (OwnCloudAccount) account;
+                    return OwnCloudClientManagerFactory.getDefaultSingleton().
+                            getClientFor(ocAccount, MainApp.getAppContext());
+                } catch (AccountUtils.AccountNotFoundException e) {
+                    e.printStackTrace();
+                } catch (OperationCanceledException e) {
+                    e.printStackTrace();
+                } catch (AuthenticatorException e) {
+                    e.printStackTrace();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+
+            return null;
+        }
+    }
+
 
     private class VideoHelper implements OnCompletionListener, OnPreparedListener, OnErrorListener {
-        
-        /** 
+
+        /**
          * Called when the file is ready to be played.
-         * 
+         * <p/>
          * Just starts the playback.
-         * 
+         *
          * @param   vp    {@link MediaPlayer} instance performing the playback.
          */
         @Override
         public void onPrepared(MediaPlayer vp) {
-            Log_OC.e(TAG, "onPrepared");
+            Log_OC.v(TAG, "onPrepared");
             mVideoPreview.seekTo(mSavedPlaybackPosition);
-            if (mAutoplay) { 
+            if (mAutoplay) {
                 mVideoPreview.start();
             }
             mMediaController.setEnabled(true);
             mMediaController.updatePausePlay();
             mPrepared = true;
         }
-        
-        
+
+
         /**
          * Called when the file is finished playing.
-         *  
+         * <p/>
          * Finishes the activity.
-         * 
-         * @param   mp    {@link MediaPlayer} instance performing the playback.
+         *
+         * @param mp {@link MediaPlayer} instance performing the playback.
          */
         @Override
-        public void onCompletion(MediaPlayer  mp) {
-            Log_OC.e(TAG, "completed");
+        public void onCompletion(MediaPlayer mp) {
+            Log_OC.v(TAG, "completed");
             if (mp != null) {
                 mVideoPreview.seekTo(0);
-                // next lines are necessary to work around undesired video loops
-                if (Build.VERSION.SDK_INT == Build.VERSION_CODES.GINGERBREAD) {
-                    mVideoPreview.pause();   
-                    
-                } else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.GINGERBREAD_MR1) {
-                    // mVideePreview.pause() is not enough
-                    
-                    mMediaController.setEnabled(false);
-                    mVideoPreview.stopPlayback();
-                    mAutoplay = false;
-                    mSavedPlaybackPosition = 0;
-                    mVideoPreview.setVideoPath(getFile().getStoragePath());
-                }
             } // else : called from onError()
             mMediaController.updatePausePlay();
         }
-        
-        
+
+
         /**
          * Called when an error in playback occurs.
-         * 
-         * @param   mp      {@link MediaPlayer} instance performing the playback.
-         * @param   what    Type of error
-         * @param   extra   Extra code specific to the error
+         *
+         * @param mp    {@link MediaPlayer} instance performing the playback.
+         * @param what  Type of error
+         * @param extra Extra code specific to the error
          */
         @Override
         public boolean onError(MediaPlayer mp, int what, int extra) {
-            if (mVideoPreview.getWindowToken() != null) {
-                String message = MediaService.getMessageForMediaError(
-                        getActivity(), what, extra);
-                new AlertDialog.Builder(getActivity())
-                        .setMessage(message)
-                        .setPositiveButton(android.R.string.VideoView_error_button,
-                                new DialogInterface.OnClickListener() {
-                                    public void onClick(DialogInterface dialog, int whichButton) {
-                                        dialog.dismiss();
-                                        VideoHelper.this.onCompletion(null);
-                                    }
-                                })
-                        .setCancelable(false)
-                        .show();
-            }
+            MediaService.streamWithExternalApp(mUri, getActivity()).show();
             return true;
         }
-        
     }
 
-    
     @Override
     public void onPause() {
-        Log_OC.e(TAG, "onPause");
+        Log_OC.v(TAG, "onPause");
         super.onPause();
     }
-    
+
     @Override
     public void onResume() {
         super.onResume();
-        Log_OC.e(TAG, "onResume");
+        Log_OC.v(TAG, "onResume");
     }
-    
+
     @Override
     public void onDestroy() {
-        Log_OC.e(TAG, "onDestroy");
+        Log_OC.v(TAG, "onDestroy");
         super.onDestroy();
     }
-    
+
     @Override
     public void onStop() {
-        Log_OC.e(TAG, "onStop");
+        Log_OC.v(TAG, "onStop");
 
         mPrepared = false;
         if (mMediaServiceConnection != null) {
@@ -510,10 +586,10 @@ public class PreviewMediaFragment extends FileFragment implements
             mMediaServiceConnection = null;
             mMediaServiceBinder = null;
         }
-        
+
         super.onStop();
     }
-    
+
     @Override
     public boolean onTouch(View v, MotionEvent event) {
         if (event.getAction() == MotionEvent.ACTION_DOWN && v == mVideoPreview) {
@@ -526,7 +602,7 @@ public class PreviewMediaFragment extends FileFragment implements
         return false;
     }
 
-    
+
     private void startFullScreenVideo() {
         Intent i = new Intent(getActivity(), PreviewVideoActivity.class);
         i.putExtra(FileActivity.EXTRA_ACCOUNT, mAccount);
@@ -538,29 +614,30 @@ public class PreviewMediaFragment extends FileFragment implements
     }
 
     @Override
-    public void onConfigurationChanged (Configuration newConfig) {
-        Log_OC.e(TAG, "onConfigurationChanged " + this);
+    public void onConfigurationChanged(Configuration newConfig) {
+        Log_OC.v(TAG, "onConfigurationChanged " + this);
     }
-    
+
     @Override
-    public void onActivityResult (int requestCode, int resultCode, Intent data) {
-        Log_OC.e(TAG, "onActivityResult " + this);
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        Log_OC.v(TAG, "onActivityResult " + this);
         super.onActivityResult(requestCode, resultCode, data);
         if (resultCode == Activity.RESULT_OK) {
             mSavedPlaybackPosition = data.getExtras().getInt(
                     PreviewVideoActivity.EXTRA_START_POSITION);
-            mAutoplay = data.getExtras().getBoolean(PreviewVideoActivity.EXTRA_AUTOPLAY); 
+            mAutoplay = data.getExtras().getBoolean(PreviewVideoActivity.EXTRA_AUTOPLAY);
         }
     }
-    
+
 
     private void playAudio() {
         OCFile file = getFile();
         if (!mMediaServiceBinder.isPlaying(file)) {
             Log_OC.d(TAG, "starting playback of " + file.getStoragePath());
             mMediaServiceBinder.start(mAccount, file, mAutoplay, mSavedPlaybackPosition);
-            
-        } else {
+
+        }
+        else {
             if (!mMediaServiceBinder.isPlaying() && mAutoplay) {
                 mMediaServiceBinder.start();
                 mMediaController.updatePausePlay();
@@ -597,7 +674,8 @@ public class PreviewMediaFragment extends FileFragment implements
 
                         Log_OC.d(TAG, "Successfully bound to MediaService, MediaController ready");
 
-                    } else {
+                    }
+                    else {
                         Log_OC.e(TAG, "Unexpected response from MediaService while binding");
                     }
                 }
@@ -616,10 +694,11 @@ public class PreviewMediaFragment extends FileFragment implements
         @Override
         public void onServiceDisconnected(ComponentName component) {
             if (component.equals(new ComponentName(getActivity(), MediaService.class))) {
-                Log_OC.e(TAG, "Media service suddenly disconnected");
+                Log_OC.w(TAG, "Media service suddenly disconnected");
                 if (mMediaController != null) {
                     mMediaController.setMediaPlayer(null);
-                } else {
+                }
+                else {
                     Toast.makeText(
                             getActivity(),
                             "No media controller to release when disconnected from media service", 
@@ -629,9 +708,8 @@ public class PreviewMediaFragment extends FileFragment implements
                 mMediaServiceConnection = null;
             }
         }
-    }    
+    }
 
-    
 
     /**
      * Opens the previewed file with an external application.
@@ -641,31 +719,33 @@ public class PreviewMediaFragment extends FileFragment implements
         mContainerActivity.getFileOperationsHelper().openFile(getFile());
         finish();
     }
-    
+
     /**
      * Helper method to test if an {@link OCFile} can be passed to a {@link PreviewMediaFragment}
-     *  to be previewed.
-     * 
-     * @param file      File to test if can be previewed.
-     * @return          'True' if the file can be handled by the fragment.
+     * to be previewed.
+     *
+     * @param file File to test if can be previewed.
+     * @return 'True' if the file can be handled by the fragment.
      */
     public static boolean canBePreviewed(OCFile file) {
         return (file != null && (file.isAudio() || file.isVideo()));
     }
-    
+
 
     public void stopPreview(boolean stopAudio) {
         OCFile file = getFile();
         if (file.isAudio() && stopAudio) {
             mMediaServiceBinder.pause();
-            
-        } else if (file.isVideo()) {
-            mVideoPreview.stopPlayback();
+
+        }
+        else {
+            if (file.isVideo()) {
+                mVideoPreview.stopPlayback();
+            }
         }
     }
 
 
-
     /**
      * Finishes the preview
      */
@@ -678,15 +758,15 @@ public class PreviewMediaFragment extends FileFragment implements
         if (mPrepared) {
             mSavedPlaybackPosition = mVideoPreview.getCurrentPosition();
         }
-        Log_OC.e(TAG, "getting position: " + mSavedPlaybackPosition);
+        Log_OC.v(TAG, "getting position: " + mSavedPlaybackPosition);
         return mSavedPlaybackPosition;
     }
-    
+
     public boolean isPlaying() {
         if (mPrepared) {
             mAutoplay = mVideoPreview.isPlaying();
         }
         return mAutoplay;
     }
-    
+
 }
diff --git a/src/com/owncloud/android/ui/preview/PreviewTextFragment.java b/src/com/owncloud/android/ui/preview/PreviewTextFragment.java
new file mode 100644 (file)
index 0000000..f071469
--- /dev/null
@@ -0,0 +1,427 @@
+package com.owncloud.android.ui.preview;
+
+import android.accounts.Account;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentTransaction;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.files.FileMenuFilter;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.ui.activity.FileDisplayActivity;
+import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
+import com.owncloud.android.ui.dialog.LoadingDialog;
+import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
+import com.owncloud.android.ui.fragment.FileFragment;
+
+import java.io.BufferedWriter;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.lang.ref.WeakReference;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Scanner;
+
+public class PreviewTextFragment extends FileFragment {
+    private static final String EXTRA_FILE = "FILE";
+    private static final String EXTRA_ACCOUNT = "ACCOUNT";
+    private static final String TAG = PreviewTextFragment.class.getSimpleName();
+
+    private Account mAccount;
+    private TextView mTextPreview;
+    private TextLoadAsyncTask mTextLoadTask;
+
+    /**
+     * Creates an empty fragment for previews.
+     * <p/>
+     * MUST BE KEPT: the system uses it when tries to reinstantiate a fragment automatically
+     * (for instance, when the device is turned a aside).
+     * <p/>
+     * DO NOT CALL IT: an {@link OCFile} and {@link Account} must be provided for a successful
+     * construction
+     */
+    public PreviewTextFragment() {
+        super();
+        mAccount = null;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+        super.onCreateView(inflater, container, savedInstanceState);
+        Log_OC.e(TAG, "onCreateView");
+
+
+        View ret = inflater.inflate(R.layout.text_file_preview, container, false);
+
+        mTextPreview = (TextView) ret.findViewById(R.id.text_preview);
+
+        return ret;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        OCFile file = getFile();
+
+        Bundle args = getArguments();
+
+        if (file == null) {
+            file = args.getParcelable(FileDisplayActivity.EXTRA_FILE);
+        }
+
+        if (mAccount == null) {
+            mAccount = args.getParcelable(FileDisplayActivity.EXTRA_ACCOUNT);
+        }
+
+        if (savedInstanceState == null) {
+            if (file == null) {
+                throw new IllegalStateException("Instanced with a NULL OCFile");
+            }
+            if (mAccount == null) {
+                throw new IllegalStateException("Instanced with a NULL ownCloud Account");
+            }
+        } else {
+            file = savedInstanceState.getParcelable(EXTRA_FILE);
+            mAccount = savedInstanceState.getParcelable(EXTRA_ACCOUNT);
+        }
+        setFile(file);
+        setHasOptionsMenu(true);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putParcelable(PreviewTextFragment.EXTRA_FILE, getFile());
+        outState.putParcelable(PreviewTextFragment.EXTRA_ACCOUNT, mAccount);
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        Log_OC.e(TAG, "onStart");
+
+        loadAndShowTextPreview();
+    }
+
+    private void loadAndShowTextPreview() {
+        mTextLoadTask = new TextLoadAsyncTask(new WeakReference<TextView>(mTextPreview));
+        mTextLoadTask.execute(getFile().getStoragePath());
+    }
+
+
+    /**
+     * Reads the file to preview and shows its contents. Too critical to be anonymous.
+     */
+    private class TextLoadAsyncTask extends AsyncTask<Object, Void, StringWriter> {
+        private final String DIALOG_WAIT_TAG = "DIALOG_WAIT";
+        private final WeakReference<TextView> mTextViewReference;
+
+        private TextLoadAsyncTask(WeakReference<TextView> textView) {
+            mTextViewReference = textView;
+        }
+
+
+        @Override
+        protected void onPreExecute() {
+            showLoadingDialog();
+        }
+
+        @Override
+        protected StringWriter doInBackground(java.lang.Object... params) {
+            if (params.length != 1) {
+                throw new IllegalArgumentException("The parameter to " + TextLoadAsyncTask.class.getName() + " must be (1) the file location");
+            }
+            final String location = (String) params[0];
+
+            FileInputStream inputStream = null;
+            Scanner sc = null;
+            StringWriter source = new StringWriter();
+            BufferedWriter bufferedWriter = new BufferedWriter(source);
+            try {
+                inputStream = new FileInputStream(location);
+                sc = new Scanner(inputStream);
+                while (sc.hasNextLine()) {
+                    bufferedWriter.append(sc.nextLine());
+                    if (sc.hasNextLine()) bufferedWriter.append("\n");
+                }
+                bufferedWriter.close();
+                IOException exc = sc.ioException();
+                if (exc != null) throw exc;
+            } catch (IOException e) {
+                Log_OC.e(TAG, e.getMessage(), e);
+                finish();
+            } finally {
+                if (inputStream != null) {
+                    try {
+                        inputStream.close();
+                    } catch (IOException e) {
+                        Log_OC.e(TAG, e.getMessage(), e);
+                        finish();
+                    }
+                }
+                if (sc != null) {
+                    sc.close();
+                }
+            }
+            return source;
+        }
+
+        @Override
+        protected void onPostExecute(final StringWriter stringWriter) {
+            final TextView textView = mTextViewReference.get();
+
+            if (textView != null) {
+                textView.setText(new String(stringWriter.getBuffer()));
+                textView.setVisibility(View.VISIBLE);
+            }
+
+            dismissLoadingDialog();
+        }
+
+        /**
+         * Show loading dialog
+         */
+        public void showLoadingDialog() {
+            // only once
+            Fragment frag = getActivity().getSupportFragmentManager().findFragmentByTag(DIALOG_WAIT_TAG);
+            LoadingDialog loading = null;
+            if (frag == null) {
+                // Construct dialog
+                loading = new LoadingDialog(getResources().getString(R.string.wait_a_moment));
+                FragmentManager fm = getActivity().getSupportFragmentManager();
+                FragmentTransaction ft = fm.beginTransaction();
+                loading.show(ft, DIALOG_WAIT_TAG);
+            } else {
+                loading = (LoadingDialog) frag;
+                loading.setShowsDialog(true);
+            }
+
+        }
+
+        /**
+         * Dismiss loading dialog
+         */
+        public void dismissLoadingDialog() {
+            final Fragment frag = getActivity().getSupportFragmentManager().findFragmentByTag(DIALOG_WAIT_TAG);
+            if (frag != null) {
+                LoadingDialog loading = (LoadingDialog) frag;
+                loading.dismiss();
+            }
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        super.onCreateOptionsMenu(menu, inflater);
+        inflater.inflate(R.menu.file_actions_menu, menu);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onPrepareOptionsMenu(Menu menu) {
+        super.onPrepareOptionsMenu(menu);
+
+        if (mContainerActivity.getStorageManager() != null) {
+            FileMenuFilter mf = new FileMenuFilter(
+                    getFile(),
+                    mContainerActivity.getStorageManager().getAccount(),
+                    mContainerActivity,
+                    getActivity()
+            );
+            mf.filter(menu);
+        }
+
+        // additional restriction for this fragment
+        MenuItem item = menu.findItem(R.id.action_rename_file);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
+
+        // additional restriction for this fragment
+        item = menu.findItem(R.id.action_move);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
+
+        // this one doesn't make sense since the file has to be down in order to be previewed
+        item = menu.findItem(R.id.action_download_file);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
+
+        item = menu.findItem(R.id.action_sync_file);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
+
+        item = menu.findItem(R.id.action_sync_account);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
+
+        item = menu.findItem(R.id.action_switch_view);
+        if (item != null){
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
+
+        item = menu.findItem(R.id.action_sort);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case R.id.action_share_file: {
+                mContainerActivity.getFileOperationsHelper().showShareFile(getFile());
+                return true;
+            }
+            case R.id.action_open_file_with: {
+                openFile();
+                return true;
+            }
+            case R.id.action_remove_file: {
+                RemoveFileDialogFragment dialog = RemoveFileDialogFragment.newInstance(getFile());
+                dialog.show(getFragmentManager(), ConfirmationDialogFragment.FTAG_CONFIRMATION);
+                return true;
+            }
+            case R.id.action_see_details: {
+                seeDetails();
+                return true;
+            }
+            case R.id.action_send_file: {
+                sendFile();
+                return true;
+            }
+            case R.id.action_sync_file: {
+                mContainerActivity.getFileOperationsHelper().syncFile(getFile());
+                return true;
+            }
+
+            default:
+                return false;
+        }
+    }
+
+    /**
+     * Update the file of the fragment with file value
+     *
+     * @param file The new file to set
+     */
+    public void updateFile(OCFile file) {
+        setFile(file);
+    }
+
+    private void sendFile() {
+        mContainerActivity.getFileOperationsHelper().sendDownloadedFile(getFile());
+    }
+
+    private void seeDetails() {
+        mContainerActivity.showDetails(getFile());
+    }
+
+    @Override
+    public void onPause() {
+        Log_OC.e(TAG, "onPause");
+        super.onPause();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        Log_OC.e(TAG, "onResume");
+    }
+
+    @Override
+    public void onDestroy() {
+        Log_OC.e(TAG, "onDestroy");
+        super.onDestroy();
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        Log_OC.e(TAG, "onStop");
+        if (mTextLoadTask != null)
+            mTextLoadTask.cancel(Boolean.TRUE);
+    }
+
+    /**
+     * Opens the previewed file with an external application.
+     */
+    private void openFile() {
+        mContainerActivity.getFileOperationsHelper().openFile(getFile());
+        finish();
+    }
+
+    /**
+     * Helper method to test if an {@link OCFile} can be passed to a {@link PreviewTextFragment} to be previewed.
+     *
+     * @param file File to test if can be previewed.
+     * @return 'True' if the file can be handled by the fragment.
+     */
+    public static boolean canBePreviewed(OCFile file) {
+        final List<String> unsupportedTypes = new LinkedList<String>();
+        unsupportedTypes.add("text/richtext");
+        unsupportedTypes.add("text/rtf");
+        unsupportedTypes.add("text/vnd.abc");
+        unsupportedTypes.add("text/vnd.fmi.flexstor");
+        unsupportedTypes.add("text/vnd.rn-realtext");
+        unsupportedTypes.add("text/vnd.wap.wml");
+        unsupportedTypes.add("text/vnd.wap.wmlscript");
+        return (file != null && file.isDown() && file.isText() &&
+                !unsupportedTypes.contains(file.getMimetype()) &&
+                !unsupportedTypes.contains(file.getMimeTypeFromName())
+        );
+    }
+
+    /**
+     * Finishes the preview
+     */
+    private void finish() {
+        getActivity().runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                getActivity().onBackPressed();
+            }
+        });
+    }
+}
index 938d52d..c1b4125 100644 (file)
@@ -26,7 +26,7 @@ import com.owncloud.android.media.MediaService;
 import com.owncloud.android.ui.activity.FileActivity;
 
 import android.accounts.Account;
-import android.app.AlertDialog;
+import android.support.v7.app.AlertDialog;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.media.MediaPlayer;
@@ -78,7 +78,7 @@ public class PreviewVideoActivity extends FileActivity implements OnCompletionLi
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        Log_OC.e(TAG, "ACTIVITY\t\tonCreate");
+        Log_OC.v(TAG, "onCreate");
         
         setContentView(R.layout.video_layout);
     
@@ -110,7 +110,6 @@ public class PreviewVideoActivity extends FileActivity implements OnCompletionLi
     @Override
     public void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
-        Log_OC.e(TAG, "ACTIVITY\t\tonSaveInstanceState");
         outState.putInt(PreviewVideoActivity.EXTRA_START_POSITION, mVideoPlayer.getCurrentPosition());
         outState.putBoolean(PreviewVideoActivity.EXTRA_AUTOPLAY , mVideoPlayer.isPlaying());
     }
@@ -118,7 +117,7 @@ public class PreviewVideoActivity extends FileActivity implements OnCompletionLi
     
     @Override
     public void onBackPressed() {
-        Log_OC.e(TAG, "ACTIVTIY\t\tonBackPressed");
+        Log_OC.v(TAG, "onBackPressed");
         Intent i = new Intent();
         i.putExtra(EXTRA_AUTOPLAY, mVideoPlayer.isPlaying());
         i.putExtra(EXTRA_START_POSITION, mVideoPlayer.getCurrentPosition());
@@ -136,7 +135,7 @@ public class PreviewVideoActivity extends FileActivity implements OnCompletionLi
      */
     @Override
     public void onPrepared(MediaPlayer mp) {
-        Log_OC.e(TAG, "ACTIVITY\t\tonPrepare");
+        Log_OC.v(TAG, "onPrepare");
         mVideoPlayer.seekTo(mSavedPlaybackPosition);
         if (mAutoplay) { 
             mVideoPlayer.start();
@@ -204,25 +203,20 @@ public class PreviewVideoActivity extends FileActivity implements OnCompletionLi
             file = getStorageManager().getFileById(file.getFileId()); 
             if (file != null) {
                 if (file.isDown()) {
-                    mVideoPlayer.setVideoPath(file.getStoragePath());
-                    
+                    mVideoPlayer.setVideoURI(file.getStorageUri());
+
                 } else {
-                    // not working yet
                     String url;
-                    try {
-                        url = AccountUtils.constructFullURLForAccount(this, getAccount()) + file.getRemotePath();
-                        mVideoPlayer.setVideoURI(Uri.parse(url));
-                    } catch (AccountNotFoundException e) {
-                        onError(null, MediaService.OC_MEDIA_ERROR, R.string.media_err_no_account);
-                    }
+                    url = PreviewMediaFragment.generateUrlWithCredentials(getAccount(), getApplicationContext(), getFile());
+                    mVideoPlayer.setVideoURI(Uri.parse(url));
                 }
-                
+
                 // create and prepare control panel for the user
                 mMediaController = new MediaController(this);
                 mMediaController.setMediaPlayer(mVideoPlayer);
                 mMediaController.setAnchorView(mVideoPlayer);
                 mVideoPlayer.setMediaController(mMediaController);
-                
+
             } else {
                 finish();
             }
diff --git a/src/com/owncloud/android/utils/DialogMenuItem.java b/src/com/owncloud/android/utils/DialogMenuItem.java
new file mode 100644 (file)
index 0000000..630085b
--- /dev/null
@@ -0,0 +1,247 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author Andy Scherzinger
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.utils;
+
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.view.ActionProvider;
+import android.view.ContextMenu;
+import android.view.MenuItem;
+import android.view.SubMenu;
+import android.view.View;
+
+/**
+ * Created by scherzia on 17.08.2015.
+ */
+public class DialogMenuItem implements MenuItem {
+    int mItemId;
+    CharSequence mTitle;
+
+    public DialogMenuItem(int itemId) {
+        this.mItemId = itemId;
+    }
+
+    @Override
+    public int getItemId() {
+        return mItemId;
+    }
+
+    @Override
+    public int getGroupId() {
+        return 0;
+    }
+
+    @Override
+    public int getOrder() {
+        return 0;
+    }
+
+    @Override
+    public MenuItem setTitle(CharSequence title) {
+        this.mTitle = title;
+        return this;
+    }
+
+    @Override
+    public MenuItem setTitle(int title) {
+        return this;
+    }
+
+    @Override
+    public CharSequence getTitle() {
+        return this.mTitle;
+    }
+
+    @Override
+    public MenuItem setTitleCondensed(CharSequence title) {
+        return null;
+    }
+
+    @Override
+    public CharSequence getTitleCondensed() {
+        return null;
+    }
+
+    @Override
+    public MenuItem setIcon(Drawable icon) {
+        return null;
+    }
+
+    @Override
+    public MenuItem setIcon(int iconRes) {
+        return null;
+    }
+
+    @Override
+    public Drawable getIcon() {
+        return null;
+    }
+
+    @Override
+    public MenuItem setIntent(Intent intent) {
+        return null;
+    }
+
+    @Override
+    public Intent getIntent() {
+        return null;
+    }
+
+    @Override
+    public MenuItem setShortcut(char numericChar, char alphaChar) {
+        return null;
+    }
+
+    @Override
+    public MenuItem setNumericShortcut(char numericChar) {
+        return null;
+    }
+
+    @Override
+    public char getNumericShortcut() {
+        return 0;
+    }
+
+    @Override
+    public MenuItem setAlphabeticShortcut(char alphaChar) {
+        return null;
+    }
+
+    @Override
+    public char getAlphabeticShortcut() {
+        return 0;
+    }
+
+    @Override
+    public MenuItem setCheckable(boolean checkable) {
+        return null;
+    }
+
+    @Override
+    public boolean isCheckable() {
+        return false;
+    }
+
+    @Override
+    public MenuItem setChecked(boolean checked) {
+        return null;
+    }
+
+    @Override
+    public boolean isChecked() {
+        return false;
+    }
+
+    @Override
+    public MenuItem setVisible(boolean visible) {
+        return null;
+    }
+
+    @Override
+    public boolean isVisible() {
+        return false;
+    }
+
+    @Override
+    public MenuItem setEnabled(boolean enabled) {
+        return null;
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return false;
+    }
+
+    @Override
+    public boolean hasSubMenu() {
+        return false;
+    }
+
+    @Override
+    public SubMenu getSubMenu() {
+        return null;
+    }
+
+    @Override
+    public MenuItem setOnMenuItemClickListener(OnMenuItemClickListener menuItemClickListener) {
+        return null;
+    }
+
+    @Override
+    public ContextMenu.ContextMenuInfo getMenuInfo() {
+        return null;
+    }
+
+    @Override
+    public void setShowAsAction(int actionEnum) {
+
+    }
+
+    @Override
+    public MenuItem setShowAsActionFlags(int actionEnum) {
+        return null;
+    }
+
+    @Override
+    public MenuItem setActionView(View view) {
+        return null;
+    }
+
+    @Override
+    public MenuItem setActionView(int resId) {
+        return null;
+    }
+
+    @Override
+    public View getActionView() {
+        return null;
+    }
+
+    @Override
+    public MenuItem setActionProvider(ActionProvider actionProvider) {
+        return null;
+    }
+
+    @Override
+    public ActionProvider getActionProvider() {
+        return null;
+    }
+
+    @Override
+    public boolean expandActionView() {
+        return false;
+    }
+
+    @Override
+    public boolean collapseActionView() {
+        return false;
+    }
+
+    @Override
+    public boolean isActionViewExpanded() {
+        return false;
+    }
+
+    @Override
+    public MenuItem setOnActionExpandListener(OnActionExpandListener listener) {
+        return null;
+    }
+}
index 7030c87..e3c94f2 100644 (file)
@@ -22,6 +22,7 @@
 \r
 package com.owncloud.android.utils;\r
 \r
+import java.io.File;\r
 import java.net.IDN;\r
 import java.text.DateFormat;\r
 import java.util.Arrays;\r
@@ -35,98 +36,75 @@ import java.util.Vector;
 import android.annotation.TargetApi;\r
 import android.app.Activity;\r
 import android.content.Context;\r
+import android.content.SharedPreferences;\r
 import android.graphics.Point;\r
+import android.graphics.PorterDuff;\r
 import android.os.Build;\r
 import android.text.format.DateUtils;\r
 import android.view.Display;\r
-import android.webkit.MimeTypeMap;\r
+import android.widget.ProgressBar;\r
+import android.widget.SeekBar;\r
 \r
 import com.owncloud.android.MainApp;\r
 import com.owncloud.android.R;\r
+import com.owncloud.android.datamodel.FileDataStorageManager;\r
 import com.owncloud.android.datamodel.OCFile;\r
 \r
+import java.math.BigDecimal;\r
+import java.net.IDN;\r
+import java.text.DateFormat;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
 /**\r
  * A helper class for some string operations.\r
  */\r
 public class DisplayUtils {\r
     \r
     private static final String OWNCLOUD_APP_NAME = "ownCloud";\r
-\r
-    //private static String TAG = DisplayUtils.class.getSimpleName(); \r
     \r
     private static final String[] sizeSuffixes = { "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" };\r
+    private static final int[] sizeScales = { 0, 0, 0, 1, 1, 2, 2, 2, 2 };\r
+\r
+    private static Map<String, String> mimeType2HumanReadable;\r
 \r
-    private static HashMap<String, String> mimeType2HUmanReadable;\r
     static {\r
-        mimeType2HUmanReadable = new HashMap<String, String>();\r
+        mimeType2HumanReadable = new HashMap<String, String>();\r
         // images\r
-        mimeType2HUmanReadable.put("image/jpeg", "JPEG image");\r
-        mimeType2HUmanReadable.put("image/jpg", "JPEG image");\r
-        mimeType2HUmanReadable.put("image/png", "PNG image");\r
-        mimeType2HUmanReadable.put("image/bmp", "Bitmap image");\r
-        mimeType2HUmanReadable.put("image/gif", "GIF image");\r
-        mimeType2HUmanReadable.put("image/svg+xml", "JPEG image");\r
-        mimeType2HUmanReadable.put("image/tiff", "TIFF image");\r
+        mimeType2HumanReadable.put("image/jpeg", "JPEG image");\r
+        mimeType2HumanReadable.put("image/jpg", "JPEG image");\r
+        mimeType2HumanReadable.put("image/png", "PNG image");\r
+        mimeType2HumanReadable.put("image/bmp", "Bitmap image");\r
+        mimeType2HumanReadable.put("image/gif", "GIF image");\r
+        mimeType2HumanReadable.put("image/svg+xml", "JPEG image");\r
+        mimeType2HumanReadable.put("image/tiff", "TIFF image");\r
         // music\r
-        mimeType2HUmanReadable.put("audio/mpeg", "MP3 music file");\r
-        mimeType2HUmanReadable.put("application/ogg", "OGG music file");\r
-\r
+        mimeType2HumanReadable.put("audio/mpeg", "MP3 music file");\r
+        mimeType2HumanReadable.put("application/ogg", "OGG music file");\r
     }\r
 \r
-    private static final String TYPE_APPLICATION = "application";\r
-    private static final String TYPE_AUDIO = "audio";\r
-    private static final String TYPE_IMAGE = "image";\r
-    private static final String TYPE_TXT = "text";\r
-    private static final String TYPE_VIDEO = "video";\r
-    \r
-    private static final String SUBTYPE_PDF = "pdf";\r
-    private static final String SUBTYPE_XML = "xml";\r
-    private static final String[] SUBTYPES_DOCUMENT = { \r
-        "msword",\r
-        "vnd.openxmlformats-officedocument.wordprocessingml.document",\r
-        "vnd.oasis.opendocument.text",\r
-        "rtf",\r
-        "javascript"\r
-    };\r
-    private static Set<String> SUBTYPES_DOCUMENT_SET = new HashSet<String>(Arrays.asList(SUBTYPES_DOCUMENT));\r
-    private static final String[] SUBTYPES_SPREADSHEET = {\r
-        "msexcel",\r
-        "vnd.ms-excel",\r
-        "vnd.openxmlformats-officedocument.spreadsheetml.sheet",\r
-        "vnd.oasis.opendocument.spreadsheet"\r
-    };\r
-    private static Set<String> SUBTYPES_SPREADSHEET_SET = new HashSet<String>(Arrays.asList(SUBTYPES_SPREADSHEET));\r
-    private static final String[] SUBTYPES_PRESENTATION = { \r
-        "mspowerpoint",\r
-        "vnd.ms-powerpoint",\r
-        "vnd.openxmlformats-officedocument.presentationml.presentation",\r
-        "vnd.oasis.opendocument.presentation"\r
-    };\r
-    private static Set<String> SUBTYPES_PRESENTATION_SET = new HashSet<String>(Arrays.asList(SUBTYPES_PRESENTATION));\r
-    private static final String[] SUBTYPES_COMPRESSED = {"x-tar", "x-gzip", "zip"};\r
-    private static final Set<String> SUBTYPES_COMPRESSED_SET = new HashSet<String>(Arrays.asList(SUBTYPES_COMPRESSED));\r
-    private static final String SUBTYPE_OCTET_STREAM = "octet-stream";\r
-    private static final String EXTENSION_RAR = "rar";\r
-    private static final String EXTENSION_RTF = "rtf";\r
-    private static final String EXTENSION_3GP = "3gp";\r
-    private static final String EXTENSION_PY = "py";\r
-    private static final String EXTENSION_JS = "js";\r
-    \r
     /**\r
      * Converts the file size in bytes to human readable output.\r
-     * \r
+     * <ul>\r
+     *     <li>appends a size suffix, e.g. B, KB, MB etc.</li>\r
+     *     <li>rounds the size based on the suffix to 0,1 or 2 decimals</li>\r
+     * </ul>\r
+     *\r
      * @param bytes Input file size\r
      * @return Like something readable like "12 MB"\r
      */\r
     public static String bytesToHumanReadable(long bytes) {\r
         double result = bytes;\r
-        int attachedsuff = 0;\r
-        while (result > 1024 && attachedsuff < sizeSuffixes.length) {\r
+        int attachedSuff = 0;\r
+        while (result > 1024 && attachedSuff < sizeSuffixes.length) {\r
             result /= 1024.;\r
-            attachedsuff++;\r
+            attachedSuff++;\r
         }\r
-        result = ((int) (result * 100)) / 100.;\r
-        return result + " " + sizeSuffixes[attachedsuff];\r
+\r
+        return new BigDecimal(result).setScale(\r
+                sizeScales[attachedSuff], BigDecimal.ROUND_HALF_UP) + " " + sizeSuffixes[attachedSuff];\r
     }\r
 \r
     /**\r
@@ -137,100 +115,14 @@ public class DisplayUtils {
      * @return A human friendly version of the MIME type\r
      */\r
     public static String convertMIMEtoPrettyPrint(String mimetype) {\r
-        if (mimeType2HUmanReadable.containsKey(mimetype)) {\r
-            return mimeType2HUmanReadable.get(mimetype);\r
+        if (mimeType2HumanReadable.containsKey(mimetype)) {\r
+            return mimeType2HumanReadable.get(mimetype);\r
         }\r
         if (mimetype.split("/").length >= 2)\r
             return mimetype.split("/")[1].toUpperCase() + " file";\r
         return "Unknown type";\r
     }\r
-    \r
-    \r
-    /**\r
-     * Returns the resource identifier of an image to use as icon associated to a known MIME type.\r
-     * \r
-     * @param mimetype      MIME type string; if NULL, the method tries to guess it from the extension in filename\r
-     * @param filename      Name, with extension.\r
-     * @return              Identifier of an image resource.\r
-     */\r
-    public static int getFileTypeIconId(String mimetype, String filename) {\r
-\r
-        if (mimetype == null) {\r
-            String fileExtension = getExtension(filename);\r
-            mimetype = MimeTypeMap.getSingleton().getMimeTypeFromExtension(fileExtension);\r
-            if (mimetype == null) {\r
-                mimetype = TYPE_APPLICATION + "/" + SUBTYPE_OCTET_STREAM;\r
-            }\r
-        } \r
-            \r
-        if ("DIR".equals(mimetype)) {\r
-            return R.drawable.ic_menu_archive;\r
-\r
-        } else {\r
-            String [] parts = mimetype.split("/");\r
-            String type = parts[0];\r
-            String subtype = (parts.length > 1) ? parts[1] : "";\r
-            \r
-            if(TYPE_TXT.equals(type)) {\r
-                return R.drawable.file_doc;\r
-    \r
-            } else if(TYPE_IMAGE.equals(type)) {\r
-                return R.drawable.file_image;\r
-                \r
-            } else if(TYPE_VIDEO.equals(type)) {\r
-                return R.drawable.file_movie;\r
-                \r
-            } else if(TYPE_AUDIO.equals(type)) {  \r
-                return R.drawable.file_sound;\r
-                \r
-            } else if(TYPE_APPLICATION.equals(type)) {\r
-                \r
-                if (SUBTYPE_PDF.equals(subtype)) {\r
-                    return R.drawable.file_pdf;\r
-                    \r
-                } else if (SUBTYPE_XML.equals(subtype)) {\r
-                    return R.drawable.file_doc;\r
-\r
-                } else if (SUBTYPES_DOCUMENT_SET.contains(subtype)) {\r
-                    return R.drawable.file_doc;\r
-\r
-                } else if (SUBTYPES_SPREADSHEET_SET.contains(subtype)) {\r
-                    return R.drawable.file_xls;\r
-\r
-                } else if (SUBTYPES_PRESENTATION_SET.contains(subtype)) {\r
-                    return R.drawable.file_ppt;\r
-\r
-                } else if (SUBTYPES_COMPRESSED_SET.contains(subtype)) {\r
-                    return R.drawable.file_zip;\r
-\r
-                } else if (SUBTYPE_OCTET_STREAM.equals(subtype) ) {\r
-                    if (getExtension(filename).equalsIgnoreCase(EXTENSION_RAR)) {\r
-                        return R.drawable.file_zip;\r
-                        \r
-                    } else if (getExtension(filename).equalsIgnoreCase(EXTENSION_RTF)) {\r
-                        return R.drawable.file_doc;\r
-                        \r
-                    } else if (getExtension(filename).equalsIgnoreCase(EXTENSION_3GP)) {\r
-                        return R.drawable.file_movie;\r
-                     \r
-                    } else if ( getExtension(filename).equalsIgnoreCase(EXTENSION_PY) ||\r
-                                getExtension(filename).equalsIgnoreCase(EXTENSION_JS)) {\r
-                        return R.drawable.file_doc;\r
-                    } \r
-                } \r
-            }\r
-        }\r
-\r
-        // default icon\r
-        return R.drawable.file;\r
-    }\r
 \r
-    \r
-    private static String getExtension(String filename) {\r
-        String extension = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase();\r
-        return extension;\r
-    }\r
-    \r
     /**\r
      * Converts Unix time to human readable format\r
      * @param milliseconds that have passed since 01/01/1970\r
@@ -242,7 +134,6 @@ public class DisplayUtils {
         return df.format(date);\r
     }\r
     \r
-    \r
     public static int getSeasonalIconId() {\r
         if (Calendar.getInstance().get(Calendar.DAY_OF_YEAR) >= 354 &&\r
                 MainApp.getAppContext().getString(R.string.app_name).equals(OWNCLOUD_APP_NAME)) {\r
@@ -307,8 +198,13 @@ public class DisplayUtils {
         return fileExtension;\r
     }\r
 \r
+    public static CharSequence getRelativeTimestamp(Context context, OCFile file) {\r
+        return getRelativeDateTimeString(context, file.getModificationTimestamp(),\r
+                DateUtils.SECOND_IN_MILLIS, DateUtils.WEEK_IN_MILLIS, 0);\r
+    }\r
+\r
     @SuppressWarnings("deprecation")\r
-    public static CharSequence getRelativeDateTimeString (\r
+    private static CharSequence getRelativeDateTimeString (\r
             Context c, long time, long minResolution, long transitionResolution, int flags\r
             ){\r
         \r
@@ -322,22 +218,19 @@ public class DisplayUtils {
         else if ((System.currentTimeMillis() - time) < 60 * 1000) {\r
             return c.getString(R.string.file_list_seconds_ago);\r
         } else {\r
-            // Workaround 2.x bug (see https://github.com/owncloud/android/issues/716)\r
-            if (    Build.VERSION.SDK_INT <= Build.VERSION_CODES.HONEYCOMB && \r
-                    (System.currentTimeMillis() - time) > 24 * 60 * 60 * 1000   ) {\r
-                Date date = new Date(time);\r
-                date.setHours(0);\r
-                date.setMinutes(0);\r
-                date.setSeconds(0);\r
-                dateString = DateUtils.getRelativeDateTimeString(\r
-                        c, date.getTime(), minResolution, transitionResolution, flags\r
-                );\r
-            } else {\r
-                dateString = DateUtils.getRelativeDateTimeString(c, time, minResolution, transitionResolution, flags);\r
+            dateString = DateUtils.getRelativeDateTimeString(c, time, minResolution, transitionResolution, flags);\r
+        }\r
+\r
+        String[] parts = dateString.toString().split(",");\r
+        if (parts.length == 2) {\r
+            if (parts[1].contains(":") && !parts[0].contains(":")) {\r
+                return parts[0];\r
+            } else if (parts[0].contains(":") && !parts[1].contains(":")) {\r
+                return parts[1];\r
             }\r
         }\r
-        \r
-        return dateString.toString().split(",")[0];\r
+        //dateString contains unexpected format. fallback: use relative date time string from android api as is.\r
+        return dateString.toString();\r
     }\r
 \r
     /**\r
@@ -373,4 +266,94 @@ public class DisplayUtils {
         return size;\r
     }\r
 \r
+    /**\r
+     * Determines if user set folder to grid or list view. If folder is not set itself,\r
+     * it finds a parent that is set (at least root is set).\r
+     * @param file\r
+     * @param storageManager\r
+     * @return\r
+     */\r
+    public static boolean isGridView(OCFile file, FileDataStorageManager storageManager){\r
+        if (file != null) {\r
+            OCFile fileToTest = file;\r
+            OCFile parentDir = null;\r
+            String parentPath = null;\r
+\r
+            SharedPreferences setting = MainApp.getAppContext().getSharedPreferences(\r
+                    "viewMode", Context.MODE_PRIVATE);\r
+\r
+            if (setting.contains(fileToTest.getRemoteId())) {\r
+                return setting.getBoolean(fileToTest.getRemoteId(), false);\r
+            } else {\r
+                do {\r
+                    if (fileToTest.getParentId() != FileDataStorageManager.ROOT_PARENT_ID) {\r
+                        parentPath = new File(fileToTest.getRemotePath()).getParent();\r
+                        parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath :\r
+                                parentPath + OCFile.PATH_SEPARATOR;\r
+                        parentDir = storageManager.getFileByPath(parentPath);\r
+                    } else {\r
+                        parentDir = storageManager.getFileByPath(OCFile.ROOT_PATH);\r
+                    }\r
+\r
+                    while (parentDir == null) {\r
+                        parentPath = new File(parentPath).getParent();\r
+                        parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath :\r
+                                parentPath + OCFile.PATH_SEPARATOR;\r
+                        parentDir = storageManager.getFileByPath(parentPath);\r
+                    }\r
+                    fileToTest = parentDir;\r
+                } while (endWhile(parentDir, setting));\r
+                return setting.getBoolean(fileToTest.getRemoteId(), false);\r
+            }\r
+        } else {\r
+            return false;\r
+        }\r
+    }\r
+\r
+    private static boolean endWhile(OCFile parentDir, SharedPreferences setting) {\r
+        if (parentDir.getRemotePath().compareToIgnoreCase(OCFile.ROOT_PATH) == 0) {\r
+            return false;\r
+        } else {\r
+            return !setting.contains(parentDir.getRemoteId());\r
+        }\r
+    }\r
+\r
+    public static void setViewMode(OCFile file, boolean setGrid){\r
+        SharedPreferences setting = MainApp.getAppContext().getSharedPreferences(\r
+                "viewMode", Context.MODE_PRIVATE);\r
+\r
+        SharedPreferences.Editor editor = setting.edit();\r
+        editor.putBoolean(file.getRemoteId(), setGrid);\r
+        editor.commit();\r
+    }\r
+\r
+    /**\r
+     * sets the coloring of the given progress bar to color_accent.\r
+     *\r
+     * @param progressBar the progress bar to be colored\r
+     */\r
+    public static void colorPreLollipopHorizontalProgressBar(ProgressBar progressBar) {\r
+        if (progressBar != null && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {\r
+            int color = progressBar.getResources().getColor(R.color.color_accent);\r
+            progressBar.getIndeterminateDrawable().setColorFilter(color, PorterDuff.Mode.SRC_IN);\r
+            progressBar.getProgressDrawable().setColorFilter(color, PorterDuff.Mode.SRC_IN);\r
+        }\r
+    }\r
+\r
+    /**\r
+     * sets the coloring of the given seek bar to color_accent.\r
+     *\r
+     * @param seekBar the seek bar to be colored\r
+     */\r
+    public static void colorPreLollipopHorizontalSeekBar(SeekBar seekBar) {\r
+        if (seekBar != null && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {\r
+            colorPreLollipopHorizontalProgressBar(seekBar);\r
+\r
+            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {\r
+                int color = seekBar.getResources().getColor(R.color.color_accent);\r
+                seekBar.getThumb().setColorFilter(color, PorterDuff.Mode.SRC_IN);\r
+                seekBar.getThumb().setColorFilter(color, PorterDuff.Mode.SRC_IN);\r
+            }\r
+        }\r
+    }\r
 }\r
index 75736e5..be74386 100644 (file)
 
 package com.owncloud.android.utils;
 
-import java.io.File;
-import java.net.SocketTimeoutException;
-
-import org.apache.commons.httpclient.ConnectTimeoutException;
-
 import android.content.res.Resources;
 
 import com.owncloud.android.R;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
+import com.owncloud.android.lib.resources.shares.UpdateRemoteShareOperation;
+import com.owncloud.android.operations.CopyFileOperation;
 import com.owncloud.android.operations.CreateFolderOperation;
-import com.owncloud.android.operations.CreateShareOperation;
+import com.owncloud.android.operations.CreateShareViaLinkOperation;
+import com.owncloud.android.operations.CreateShareWithShareeOperation;
 import com.owncloud.android.operations.DownloadFileOperation;
 import com.owncloud.android.operations.MoveFileOperation;
 import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
 import com.owncloud.android.operations.SynchronizeFolderOperation;
-import com.owncloud.android.operations.UnshareLinkOperation;
+import com.owncloud.android.operations.UnshareOperation;
+import com.owncloud.android.operations.UpdateShareViaLinkOperation;
 import com.owncloud.android.operations.UploadFileOperation;
 
+import org.apache.commons.httpclient.ConnectTimeoutException;
+
+import java.io.File;
+import java.net.SocketTimeoutException;
+
 /**
  * Class to choose proper error messages to show to the user depending on the results of operations,
  * always following the same policy
@@ -51,16 +55,19 @@ import com.owncloud.android.operations.UploadFileOperation;
 public class ErrorMessageAdapter {
 
     public ErrorMessageAdapter() {
-        
+
     }
 
     public static String getErrorCauseMessage(RemoteOperationResult result,
                                               RemoteOperation operation, Resources res) {
         
         String message = null;
-        
-        if (operation instanceof UploadFileOperation) {
-            
+
+        if (!result.isSuccess() && isNetworkError(result.getCode())) {
+            message = getErrorMessage(result, res);
+
+        } else if (operation instanceof UploadFileOperation) {
+
             if (result.isSuccess()) {
                 message = String.format(
                         res.getString(R.string.uploader_upload_succeeded_content_single),
@@ -76,7 +83,7 @@ public class ErrorMessageAdapter {
                 } else if (result.getCode() == ResultCode.QUOTA_EXCEEDED) {
                     message = res.getString(R.string.failed_upload_quota_exceeded_text);
                     */
-                    
+
                 } else if (result.getCode() == ResultCode.FORBIDDEN) {
                     message = String.format(res.getString(R.string.forbidden_permissions),
                             res.getString(R.string.uploader_upload_forbidden_permissions));
@@ -90,14 +97,14 @@ public class ErrorMessageAdapter {
                             ((UploadFileOperation) operation).getFileName());
                 }
             }
-            
+
         } else if (operation instanceof DownloadFileOperation) {
-            
+
             if (result.isSuccess()) {
                 message = String.format(
                         res.getString(R.string.downloader_download_succeeded_content),
                         new File(((DownloadFileOperation) operation).getSavePath()).getName());
-                
+
             } else {
                 if (result.getCode() == ResultCode.FILE_NOT_FOUND) {
                     message = res.getString(R.string.downloader_download_file_not_found);
@@ -108,19 +115,16 @@ public class ErrorMessageAdapter {
                             ((DownloadFileOperation) operation).getSavePath()).getName());
                 }
             }
-            
+
         } else if (operation instanceof RemoveFileOperation) {
             if (result.isSuccess()) {
                 message = res.getString(R.string.remove_success_msg);
-                
+
             } else {
                 if (result.getCode().equals(ResultCode.FORBIDDEN)) {
                     // Error --> No permissions
                     message = String.format(res.getString(R.string.forbidden_permissions),
                             res.getString(R.string.forbidden_permissions_delete));
-                } else if (isNetworkError(result.getCode())) {
-                    message = getErrorMessage(result, res);
-                    
                 } else {
                     message = res.getString(R.string.remove_fail_msg);
                 }
@@ -138,21 +142,18 @@ public class ErrorMessageAdapter {
             } else if (result.getCode().equals(ResultCode.INVALID_CHARACTER_IN_NAME)) {
                 message = res.getString(R.string.filename_forbidden_characters);
 
-            } else if (isNetworkError(result.getCode())) {
-                message = getErrorMessage(result, res);
-                
             } else if (result.getCode() == ResultCode.INVALID_CHARACTER_DETECT_IN_SERVER) {
                 message = res.getString(R.string.filename_forbidden_charaters_from_server);
 
             } else {
-                message = res.getString(R.string.rename_server_fail_msg); 
+                message = res.getString(R.string.rename_server_fail_msg);
             }
-            
+
         } else if (operation instanceof SynchronizeFileOperation) {
             if (!((SynchronizeFileOperation) operation).transferWasRequested()) {
                 message = res.getString(R.string.sync_file_nothing_to_do_msg);
             }
-            
+
         } else if (operation instanceof CreateFolderOperation) {
             if (result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME) {
                 message = res.getString(R.string.filename_forbidden_characters);
@@ -161,54 +162,71 @@ public class ErrorMessageAdapter {
                 message = String.format(res.getString(R.string.forbidden_permissions),
                         res.getString(R.string.forbidden_permissions_create));
 
-            } else if (isNetworkError(result.getCode())) {
-                message = getErrorMessage(result, res);
-                
             } else if (result.getCode() == ResultCode.INVALID_CHARACTER_DETECT_IN_SERVER) {
                 message = res.getString(R.string.filename_forbidden_charaters_from_server);
             } else {
                 message = res.getString(R.string.create_dir_fail_msg);
             }
-        } else if (operation instanceof CreateShareOperation) {        
-            if (result.getCode() == ResultCode.SHARE_NOT_FOUND)  {      // Error --> SHARE_NOT_FOUND
+        } else if (operation instanceof CreateShareViaLinkOperation ||
+                    operation instanceof CreateShareWithShareeOperation) {
+
+            if (result.getData() != null && result.getData().size() > 0) {
+                message = (String) result.getData().get(0);     // share API sends its own error messages
+
+            } else if (result.getCode() == ResultCode.SHARE_NOT_FOUND)  {
                 message = res.getString(R.string.share_link_file_no_exist);
-                
+
             } else if (result.getCode() == ResultCode.SHARE_FORBIDDEN) {
                 // Error --> No permissions
                 message = String.format(res.getString(R.string.forbidden_permissions),
                         res.getString(R.string.share_link_forbidden_permissions));
 
-            } else if (isNetworkError(result.getCode())) {
-                message = getErrorMessage(result, res);
-                
             } else {    // Generic error
                 // Show a Message, operation finished without success
                 message = res.getString(R.string.share_link_file_error);
             }
-            
-        } else if (operation instanceof UnshareLinkOperation) {
-        
-            if (result.getCode() == ResultCode.SHARE_NOT_FOUND)  {      // Error --> SHARE_NOT_FOUND
+
+        } else if (operation instanceof UnshareOperation) {
+
+            if (result.getData() != null && result.getData().size() > 0) {
+                message = (String) result.getData().get(0);     // share API sends its own error messages
+
+            } else if (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
                 message = res.getString(R.string.unshare_link_file_no_exist);
-                
+
             } else if (result.getCode() == ResultCode.SHARE_FORBIDDEN) {
                 // Error --> No permissions
                 message = String.format(res.getString(R.string.forbidden_permissions),
                         res.getString(R.string.unshare_link_forbidden_permissions));
 
-            } else if (isNetworkError(result.getCode())) {
-                message = getErrorMessage(result, res);
-                
             } else {    // Generic error
                 // Show a Message, operation finished without success
                 message = res.getString(R.string.unshare_link_file_error);
             }
+
+        } else if (operation instanceof UpdateShareViaLinkOperation) {
+
+            if (result.getData() != null && result.getData().size() > 0) {
+                message = (String) result.getData().get(0);     // share API sends its own error messages
+
+            } else if (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
+                message = res.getString(R.string.update_link_file_no_exist);
+
+            } else if (result.getCode() == ResultCode.SHARE_FORBIDDEN) {
+                // Error --> No permissions
+                message = String.format(res.getString(R.string.forbidden_permissions),
+                        res.getString(R.string.update_link_forbidden_permissions));
+
+            } else {    // Generic error
+                // Show a Message, operation finished without success
+                message = res.getString(R.string.update_link_file_error);
+            }
+
         } else if (operation instanceof MoveFileOperation) {
 
             if (result.getCode() == ResultCode.FILE_NOT_FOUND) {
                 message = res.getString(R.string.move_file_not_found);
-                
-            } else if (result.getCode() == ResultCode.INVALID_MOVE_INTO_DESCENDANT)  {
+            } else if (result.getCode() == ResultCode.INVALID_MOVE_INTO_DESCENDANT) {
                 message = res.getString(R.string.move_file_invalid_into_descendent);
 
             } else if (result.getCode() == ResultCode.INVALID_OVERWRITE) {
@@ -236,48 +254,64 @@ public class ErrorMessageAdapter {
 
                 } else {    // Generic error
                     // Show a Message, operation finished without success
-                    message = String.format(res.getString(R.string.download_folder_failed_content),
+                    message = String.format(res.getString(R.string.sync_folder_failed_content),
                             folderPathName);
                 }
             }
+        } else if (operation instanceof CopyFileOperation) {
+            if (result.getCode() == ResultCode.FILE_NOT_FOUND) {
+                message = res.getString(R.string.copy_file_not_found);
+            } else if (result.getCode() == ResultCode.INVALID_COPY_INTO_DESCENDANT) {
+                message = res.getString(R.string.copy_file_invalid_into_descendent);
+
+            } else if (result.getCode() == ResultCode.INVALID_OVERWRITE) {
+                message = res.getString(R.string.copy_file_invalid_overwrite);
+
+            } else if (result.getCode() == ResultCode.FORBIDDEN) {
+                message = String.format(res.getString(R.string.forbidden_permissions),
+                        res.getString(R.string.forbidden_permissions_copy));
+
+            } else {    // Generic error
+                // Show a Message, operation finished without success
+                message = res.getString(R.string.copy_file_error);
+            }
         }
-        
+
         return message;
     }
-    
-    private static String getErrorMessage(RemoteOperationResult result , Resources res) {
-        
+
+    private static String getErrorMessage(RemoteOperationResult result, Resources res) {
+
         String message = null;
-        
+
         if (!result.isSuccess()) {
-            
+
             if (result.getCode() == ResultCode.WRONG_CONNECTION) {
                 message = res.getString(R.string.network_error_socket_exception);
-                
+
             } else if (result.getCode() == ResultCode.TIMEOUT) {
                 message = res.getString(R.string.network_error_socket_exception);
-                
+
                 if (result.getException() instanceof SocketTimeoutException) {
                     message = res.getString(R.string.network_error_socket_timeout_exception);
-                } else if(result.getException() instanceof ConnectTimeoutException) {
+                } else if (result.getException() instanceof ConnectTimeoutException) {
                     message = res.getString(R.string.network_error_connect_timeout_exception);
-                } 
-                
+                }
+
             } else if (result.getCode() == ResultCode.HOST_NOT_AVAILABLE) {
                 message = res.getString(R.string.network_host_not_available);
             }
         }
-        
+
         return message;
     }
-    
+
     private static boolean isNetworkError(RemoteOperationResult.ResultCode code) {
-        if (code == ResultCode.WRONG_CONNECTION || 
-                code == ResultCode.TIMEOUT || 
+        if (code == ResultCode.WRONG_CONNECTION ||
+                code == ResultCode.TIMEOUT ||
                 code == ResultCode.HOST_NOT_AVAILABLE) {
             return true;
-        }
-        else
+        } else
             return false;
     }
 }
diff --git a/src/com/owncloud/android/utils/ExceptionHandler.java b/src/com/owncloud/android/utils/ExceptionHandler.java
new file mode 100644 (file)
index 0000000..b06ec70
--- /dev/null
@@ -0,0 +1,102 @@
+package com.owncloud.android.utils;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+import android.os.Handler;
+import android.os.Looper;
+
+import com.owncloud.android.MainApp;
+import com.owncloud.android.ui.activity.ErrorReportActivity;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+// from https://stackoverflow.com/questions/23486627/catching-error-and-user-information#answer-23486834
+public class ExceptionHandler implements Thread.UncaughtExceptionHandler {
+
+    Context context;
+    private final String LINE_SEPARATOR = "\n";
+
+    public ExceptionHandler() {
+        // TODO Auto-generated constructor stub
+        context = MainApp.getAppContext();
+    }
+
+    @Override
+    public void uncaughtException(Thread arg0, Throwable arg1) {
+        // TODO Auto-generated method stub
+
+        StringWriter stackTrace = new StringWriter();
+        arg1.printStackTrace(new PrintWriter(stackTrace));
+        final StringBuilder errorReport = new StringBuilder();
+        errorReport.append("************ CAUSE OF ERROR ************\n\n");
+        errorReport.append(stackTrace.toString());
+
+        errorReport.append("\n************ DEVICE INFORMATION ***********\n");
+        errorReport.append("Brand: ");
+        errorReport.append(Build.BRAND);
+        errorReport.append(LINE_SEPARATOR);
+        errorReport.append("Device: ");
+        errorReport.append(Build.DEVICE);
+        errorReport.append(LINE_SEPARATOR);
+        errorReport.append("Model: ");
+        errorReport.append(Build.MODEL);
+        errorReport.append(LINE_SEPARATOR);
+        errorReport.append("Id: ");
+        errorReport.append(Build.ID);
+        errorReport.append(LINE_SEPARATOR);
+        errorReport.append("Product: ");
+        errorReport.append(Build.PRODUCT);
+        errorReport.append(LINE_SEPARATOR);
+        errorReport.append("\n************ FIRMWARE ************\n");
+        errorReport.append("SDK: ");
+        errorReport.append(Build.VERSION.SDK);
+        errorReport.append(LINE_SEPARATOR);
+        errorReport.append("Release: ");
+        errorReport.append(Build.VERSION.RELEASE);
+        errorReport.append(LINE_SEPARATOR);
+        errorReport.append("Incremental: ");
+        errorReport.append(Build.VERSION.INCREMENTAL);
+        errorReport.append(LINE_SEPARATOR);
+
+
+        //after this you can do whatever you want , like i start an activity and show error log there
+
+        if (isUIThread()) {
+            invokeLogActivity(errorReport);
+        } else {  //handle non UI thread throw uncaught exception
+
+            new Handler(Looper.getMainLooper()).post(new Runnable() {
+                @Override
+                public void run() {
+                    invokeLogActivity(errorReport);
+                }
+            });
+        }
+    }
+    private void invokeLogActivity(StringBuilder errorReport){
+//        Intent sendIntent = new Intent();
+//        sendIntent.setAction(Intent.ACTION_SEND);
+//        sendIntent.putExtra(Intent.EXTRA_TEXT, errorReport.toString());
+//        sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+//        sendIntent.setType("text/plain");
+//        context.startActivity(sendIntent);
+
+        Intent sendIntent = new Intent(context, ErrorReportActivity.class);
+        sendIntent.putExtra(Intent.EXTRA_TEXT, errorReport.toString());
+        sendIntent.setAction(Intent.ACTION_SEND);
+        sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        sendIntent.setType("text/plain");
+        context.startActivity(sendIntent);
+
+
+        System.exit(1);
+//        android.os.Process.killProcess(android.os.Process.myPid());
+
+        }
+
+    private boolean isUIThread(){
+        return Looper.getMainLooper().getThread() == Thread.currentThread();
+    }
+}
\ No newline at end of file
index e70302f..e300a5e 100644 (file)
 package com.owncloud.android.utils;
 
 import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.List;
 import java.util.Vector;
 
 import third_parties.daveKoeller.AlphanumComparator;
@@ -32,12 +40,12 @@ import com.owncloud.android.R;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.resources.files.RemoteFile;
 
+import android.accounts.Account;
 import android.annotation.SuppressLint;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.preference.PreferenceManager;
 import android.net.Uri;
-import android.os.Environment;
 import android.os.StatFs;
 import android.webkit.MimeTypeMap;
 
@@ -46,18 +54,17 @@ import android.webkit.MimeTypeMap;
  * Static methods to help in access to local file system.
  */
 public class FileStorageUtils {
-    public static Integer mSortOrder;
-    public static Boolean mSortAscending;
     public static final Integer SORT_NAME = 0;
     public static final Integer SORT_DATE = 1;
     public static final Integer SORT_SIZE = 2;
-  
-    
-    //private static final String LOG_TAG = "FileStorageUtils";
+    public static Integer mSortOrder = SORT_NAME;
+    public static Boolean mSortAscending = true;
 
+    
     public static final String getSavePath(String accountName) {
-        File sdCard = Environment.getExternalStorageDirectory();
-        return sdCard.getAbsolutePath() + "/" + MainApp.getDataFolder() + "/" + Uri.encode(accountName, "@");
+//        File sdCard = Environment.getExternalStorageDirectory();
+
+        return MainApp.getStoragePath() + File.separator + MainApp.getDataFolder() + File.separator + Uri.encode(accountName, "@");
         // URL encoding is an 'easy fix' to overcome that NTFS and FAT32 don't allow ":" in file names, that can be in the accountName since 0.1.190B
     }
 
@@ -66,14 +73,13 @@ public class FileStorageUtils {
     }
 
     public static final String getTemporalPath(String accountName) {
-        File sdCard = Environment.getExternalStorageDirectory();
-        return sdCard.getAbsolutePath() + "/" + MainApp.getDataFolder() + "/tmp/" + Uri.encode(accountName, "@");
+        return MainApp.getStoragePath() + File.separator + MainApp.getDataFolder() + File.separator + "tmp" + File.separator + Uri.encode(accountName, "@");
             // URL encoding is an 'easy fix' to overcome that NTFS and FAT32 don't allow ":" in file names, that can be in the accountName since 0.1.190B
     }
 
     @SuppressLint("NewApi")
     public static final long getUsableSpace(String accountName) {
-        File savePath = Environment.getExternalStorageDirectory();
+        File savePath = new File(MainApp.getStoragePath());
         if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
             return savePath.getUsableSpace();
 
@@ -85,7 +91,7 @@ public class FileStorageUtils {
     }
     
     public static final String getLogPath()  {
-        return Environment.getExternalStorageDirectory() + File.separator + MainApp.getDataFolder() + File.separator + "log";
+        return MainApp.getStoragePath() + File.separator + MainApp.getDataFolder() + File.separator + "log";
     }
 
     public static String getInstantUploadFilePath(Context context, String fileName) {
@@ -120,7 +126,7 @@ public class FileStorageUtils {
      * Creates and populates a new {@link OCFile} object with the data read from the server.
      * 
      * @param remote    remote file read from the server (remote file or folder).
-     * @return          New OCFile instance representing the remote resource described by we.
+     * @return          New OCFile instance representing the remote resource described by remote.
      */
     public static OCFile fillOCFile(RemoteFile remote) {
         OCFile file = new OCFile(remote.getRemotePath());
@@ -155,13 +161,13 @@ public class FileStorageUtils {
     /**
      * Sorts all filenames, regarding last user decision 
      */
-    public static Vector<OCFile> sortFolder(Vector<OCFile> files){
+    public static Vector<OCFile> sortOcFolder(Vector<OCFile> files){
         switch (mSortOrder){
         case 0:
-            files = FileStorageUtils.sortByName(files);
+            files = FileStorageUtils.sortOCFilesByName(files);
             break;
         case 1:
-            files = FileStorageUtils.sortByDate(files);
+            files = FileStorageUtils.sortOCFilesByDate(files);
             break;
         case 2: 
            // mFiles = FileStorageUtils.sortBySize(mSortAscending);
@@ -170,12 +176,31 @@ public class FileStorageUtils {
        
         return files;
     }
+
+    /**
+     * Sorts all filenames, regarding last user decision
+     */
+    public static File[] sortLocalFolder(File[] files){
+        switch (mSortOrder){
+            case 0:
+                files = FileStorageUtils.sortLocalFilesByName(files);
+                break;
+            case 1:
+                files = FileStorageUtils.sortLocalFilesByDate(files);
+                break;
+            case 2:
+                // mFiles = FileStorageUtils.sortBySize(mSortAscending);
+                break;
+        }
+
+        return files;
+    }
     
     /**
      * Sorts list by Date
      * @param files
      */
-    public static Vector<OCFile> sortByDate(Vector<OCFile> files){
+    public static Vector<OCFile> sortOCFilesByDate(Vector<OCFile> files){
         final Integer val;
         if (mSortAscending){
             val = 1;
@@ -205,6 +230,43 @@ public class FileStorageUtils {
         return files;
     }
 
+    /**
+     * Sorts list by Date
+     * @param filesArray
+     */
+    public static File[] sortLocalFilesByDate(File[] filesArray){
+        final Integer val;
+        if (mSortAscending){
+            val = 1;
+        } else {
+            val = -1;
+        }
+
+        List<File> files = new ArrayList<File>(Arrays.asList(filesArray));
+
+        Collections.sort(files, new Comparator<File>() {
+            public int compare(File o1, File o2) {
+                if (o1.isDirectory() && o2.isDirectory()) {
+                    Long obj1 = o1.lastModified();
+                    return val * obj1.compareTo(o2.lastModified());
+                }
+                else if (o1.isDirectory()) {
+                    return -1;
+                } else if (o2.isDirectory()) {
+                    return 1;
+                } else if (o1.lastModified() == 0 || o2.lastModified() == 0){
+                    return 0;
+                } else {
+                    Long obj1 = o1.lastModified();
+                    return val * obj1.compareTo(o2.lastModified());
+                }
+            }
+        });
+
+        File[] returnArray = new File[1];
+        return files.toArray(returnArray);
+    }
+
 //    /**
 //     * Sorts list by Size
 //     * @param sortAscending true: ascending, false: descending
@@ -243,7 +305,7 @@ public class FileStorageUtils {
      * Sorts list by Name
      * @param files     files to sort
      */
-    public static Vector<OCFile> sortByName(Vector<OCFile> files){
+    public static Vector<OCFile> sortOCFilesByName(Vector<OCFile> files){
         final Integer val;
         if (mSortAscending){
             val = 1;
@@ -254,7 +316,7 @@ public class FileStorageUtils {
         Collections.sort(files, new Comparator<OCFile>() {
             public int compare(OCFile o1, OCFile o2) {
                 if (o1.isFolder() && o2.isFolder()) {
-                    return val * o1.getRemotePath().toLowerCase().compareTo(o2.getRemotePath().toLowerCase());
+                    return val * new AlphanumComparator().compare(o1, o2);
                 } else if (o1.isFolder()) {
                     return -1;
                 } else if (o2.isFolder()) {
@@ -266,6 +328,38 @@ public class FileStorageUtils {
         
         return files;
     }
+
+    /**
+     * Sorts list by Name
+     * @param filesArray    files to sort
+     */
+    public static File[] sortLocalFilesByName(File[] filesArray){
+        final Integer val;
+        if (mSortAscending){
+            val = 1;
+        } else {
+            val = -1;
+        }
+
+        List<File> files = new ArrayList<File>(Arrays.asList(filesArray));
+
+        Collections.sort(files, new Comparator<File>() {
+            public int compare(File o1, File o2) {
+                if (o1.isDirectory() && o2.isDirectory()) {
+                    return val * o1.getPath().toLowerCase().compareTo(o2.getPath().toLowerCase());
+                } else if (o1.isDirectory()) {
+                    return -1;
+                } else if (o2.isDirectory()) {
+                    return 1;
+                }
+                return val * new AlphanumComparator().compare(o1.getPath().toLowerCase(),
+                                                              o2.getPath().toLowerCase());
+            }
+        });
+
+        File[] returnArray = new File[1];
+        return files.toArray(returnArray);
+    }
     
     /**
      * Local Folder size
@@ -275,13 +369,11 @@ public class FileStorageUtils {
     public static long getFolderSize(File dir) {
         if (dir.exists()) {
             long result = 0;
-            File[] fileList = dir.listFiles();
-            for(int i = 0; i < fileList.length; i++) {
-                if(fileList[i].isDirectory()) {
-                    result += getFolderSize(fileList[i]);
-                } else {
-                    result += fileList[i].length();
-                }
+            for (File f : dir.listFiles()) {
+                if (f.isDirectory())
+                    result += getFolderSize(f);
+                else
+                    result += f.length();
             }
             return result;
         }
@@ -302,5 +394,65 @@ public class FileStorageUtils {
         String result = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.toLowerCase());
         return (result != null) ? result : "";
     }
-  
+
+    /**
+     * Scans the default location for saving local copies of files searching for
+     * a 'lost' file with the same full name as the {@link OCFile} received as
+     * parameter.
+     *
+     * This method helps to keep linked local copies of the files when the app is uninstalled, and then
+     * reinstalled in the device. OR after the cache of the app was deleted in system settings.
+     *
+     * The method is assuming that all the local changes in the file where synchronized in the past. This is dangerous,
+     * but assuming the contrary could lead to massive unnecessary synchronizations of downloaded file after deleting
+     * the app cache.
+     *
+     * This should be changed in the near future to avoid any chance of data loss, but we need to add some options
+     * to limit hard automatic synchronizations to wifi, unless the user wants otherwise.
+     *
+     * @param file      File to associate a possible 'lost' local file.
+     * @param account   Account holding file.
+     */
+    public static void searchForLocalFileInDefaultPath(OCFile file, Account account) {
+        if (file.getStoragePath() == null && !file.isFolder()) {
+            File f = new File(FileStorageUtils.getDefaultSavePathFor(account.name, file));
+            if (f.exists()) {
+                file.setStoragePath(f.getAbsolutePath());
+                file.setLastSyncDateForData(f.lastModified());
+            }
+        }
+    }
+
+    public static boolean copyFile(File src, File target) {
+        boolean ret = true;
+
+        InputStream in = null;
+        OutputStream out = null;
+
+        try {
+            in = new FileInputStream(src);
+            out = new FileOutputStream(target);
+            byte[] buf = new byte[1024];
+            int len;
+            while ((len = in.read(buf)) > 0) {
+                out.write(buf, 0, len);
+            }
+        } catch (IOException ex) {
+            ret = false;
+        } finally {
+            if (in != null) try {
+                in.close();
+            } catch (IOException e) {
+                e.printStackTrace(System.err);
+            }
+            if (out != null) try {
+                out.close();
+            } catch (IOException e) {
+                e.printStackTrace(System.err);
+            }
+        }
+
+        return ret;
+    }
+
 }
diff --git a/src/com/owncloud/android/utils/GetShareWithUsersAsyncTask.java b/src/com/owncloud/android/utils/GetShareWithUsersAsyncTask.java
new file mode 100644 (file)
index 0000000..a5f696e
--- /dev/null
@@ -0,0 +1,97 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author masensio
+ *   Copyright (C) 2015 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.utils;
+
+import android.accounts.Account;
+import android.os.AsyncTask;
+import android.util.Pair;
+
+import com.owncloud.android.MainApp;
+import com.owncloud.android.datamodel.FileDataStorageManager;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.OwnCloudAccount;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
+import com.owncloud.android.lib.common.operations.OnRemoteOperationListener;
+import com.owncloud.android.lib.common.operations.RemoteOperation;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.operations.GetSharesForFileOperation;
+
+import java.lang.ref.WeakReference;
+
+/**
+ * Async Task to get the users and groups which a file is shared with
+ */
+public class GetShareWithUsersAsyncTask extends AsyncTask<Object, Void, Pair<RemoteOperation, RemoteOperationResult>> {
+
+    private final String TAG = GetShareWithUsersAsyncTask.class.getSimpleName();
+    private final WeakReference<OnRemoteOperationListener> mListener;
+
+    public GetShareWithUsersAsyncTask(OnRemoteOperationListener listener) {
+        mListener = new WeakReference<OnRemoteOperationListener>(listener);
+    }
+
+    @Override
+    protected Pair<RemoteOperation, RemoteOperationResult> doInBackground(Object... params) {
+
+        GetSharesForFileOperation operation = null;
+        RemoteOperationResult result = null;
+
+        if (params != null && params.length == 3) {
+            OCFile file = (OCFile) params[0];
+            Account account = (Account) params[1];
+            FileDataStorageManager fileDataStorageManager = (FileDataStorageManager) params[2];
+
+            try {
+                // Get shares request
+                operation = new GetSharesForFileOperation(file.getRemotePath(), false, false);
+                OwnCloudAccount ocAccount = new OwnCloudAccount(account,
+                        MainApp.getAppContext());
+                OwnCloudClient client = OwnCloudClientManagerFactory.getDefaultSingleton().
+                        getClientFor(ocAccount, MainApp.getAppContext());
+                result = operation.execute(client, fileDataStorageManager);
+
+            } catch (Exception e) {
+                result = new RemoteOperationResult(e);
+                Log_OC.e(TAG, "Exception while getting shares", e);
+            }
+        } else {
+            result = new RemoteOperationResult(RemoteOperationResult.ResultCode.UNKNOWN_ERROR);
+        }
+
+        return new Pair(operation, result);
+    }
+
+    @Override
+    protected void onPostExecute(Pair<RemoteOperation, RemoteOperationResult> result) {
+
+        if (result!= null)
+        {
+            OnRemoteOperationListener listener = mListener.get();
+            if (listener!= null)
+            {
+                listener.onRemoteOperationFinish(result.first, result.second);
+            }
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/src/com/owncloud/android/utils/MimetypeIconUtil.java b/src/com/owncloud/android/utils/MimetypeIconUtil.java
new file mode 100644 (file)
index 0000000..5fc4c8c
--- /dev/null
@@ -0,0 +1,428 @@
+package com.owncloud.android.utils;
+
+import android.webkit.MimeTypeMap;
+
+import com.owncloud.android.R;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>Helper class for detecting the right icon for a file or folder,
+ * based on its mime type and file extension.</p>
+ *
+ * This class maintains all the necessary mappings fot these detections.<br/>
+ * In order to add further mappings, there are up to three look up maps that need further values:
+ * <ol>
+ *     <li>
+ *         {@link MimetypeIconUtil#FILE_EXTENSION_TO_MIMETYPE_MAPPING}<br/>
+ *         to add a new file extension to mime type mapping
+ *     </li>
+ *     <li>
+ *         {@link MimetypeIconUtil#MIMETYPE_TO_ICON_MAPPING}<br/>
+ *         to add a new mapping of a mime type to an icon mapping
+ *     </li>
+ *     <li>
+ *         {@link MimetypeIconUtil#MAINMIMETYPE_TO_ICON_MAPPING}<br/>
+ *         to add a new mapping for the main part of a mime type.
+ *         This is a list of fallback mappings in case there is no mapping for the complete mime type
+ *     </li>
+ * </ol>
+ */
+public class MimetypeIconUtil {
+    /** Mapping: icon for mime type */
+    private static final Map<String, Integer> MIMETYPE_TO_ICON_MAPPING = new HashMap<String, Integer>();
+    /** Mapping: icon for main mime type (first part of a mime type declaration). */
+    private static final Map<String, Integer> MAINMIMETYPE_TO_ICON_MAPPING = new HashMap<String, Integer>();
+    /** Mapping: mime type for file extension. */
+    private static final Map<String, List<String>> FILE_EXTENSION_TO_MIMETYPE_MAPPING =
+            new HashMap<String, List<String>>();
+
+    static {
+        populateFileExtensionMimeTypeMapping();
+        populateMimeTypeIconMapping();
+        populateMainMimeTypeMapping();
+    }
+
+    /**
+     * Returns the resource identifier of an image to use as icon associated to a known MIME type.
+     *
+     * @param mimetype MIME type string; if NULL, the method tries to guess it from the extension in filename
+     * @param filename Name, with extension.
+     * @return Identifier of an image resource.
+     */
+    public static int getFileTypeIconId(String mimetype, String filename) {
+        List<String> possibleMimeTypes;
+        if (mimetype == null) {
+            possibleMimeTypes = determineMimeTypesByFilename(filename);
+        } else {
+            possibleMimeTypes = Collections.singletonList(mimetype);
+        }
+
+        return determineIconIdByMimeTypeList(possibleMimeTypes);
+    }
+
+    /**
+     * Returns the resource identifier of an image to use as icon associated to a type of folder.
+     *
+     * @param isSharedViaUsers flag if the folder is shared via the users system
+     * @param isSharedViaLink flag if the folder is publicly shared via link
+     * @return Identifier of an image resource.
+     */
+    public static int getFolderTypeIconId(boolean isSharedViaUsers, boolean isSharedViaLink) {
+        if (isSharedViaLink) {
+            return R.drawable.folder_public;
+        } else if (isSharedViaUsers) {
+            return R.drawable.shared_with_me_folder;
+        }
+
+        return R.drawable.ic_menu_archive;
+    }
+
+    /**
+     * determines the icon based on the mime type.
+     *
+     * @param mimetypes the mimetypes
+     * @return the icon id, R.drawable.file if the mime type could not be matched at all or was {@code null}
+     */
+    private static int determineIconIdByMimeTypeList(List<String> mimetypes) {
+        // no mime type leads to file
+        if (mimetypes == null || mimetypes.size() < 1) {
+            return R.drawable.file;
+        } else {
+
+            // search for full mime type mapping
+            for (String mimetype : mimetypes) {
+                Integer iconId = MIMETYPE_TO_ICON_MAPPING.get(mimetype);
+
+                if (iconId != null) {
+                    return iconId;
+                }
+            }
+
+            // fallback to main mime type part mapping
+            for (String mimetype : mimetypes) {
+                String mainMimetypePart = mimetype.split("/")[0];
+
+                Integer iconId = MAINMIMETYPE_TO_ICON_MAPPING.get(mainMimetypePart);
+                if (iconId != null) {
+                    return iconId;
+                }
+            }
+        }
+
+        // no match found at all, falling back to file
+        return R.drawable.file;
+    }
+
+    /**
+     * determines the list of possible mime types for the given file, based on its extension.
+     *
+     * @param filename the file name
+     * @return list of possible mime types (ordered), empty list in case no mime types found
+     */
+    private static List<String> determineMimeTypesByFilename(String filename) {
+        String fileExtension = getExtension(filename);
+
+        // try detecting the mimetype based on the web app logic equivalent
+        List<String> mimeTypeList = FILE_EXTENSION_TO_MIMETYPE_MAPPING.get(fileExtension);
+        if (mimeTypeList != null && mimeTypeList.size() > 0) {
+            return mimeTypeList;
+        } else {
+            // try detecting the mime type via android itself
+            String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(fileExtension);
+            if (mimeType != null) {
+                return Collections.singletonList(mimeType);
+            } else {
+                return new ArrayList<String>();
+            }
+        }
+    }
+
+    /**
+     * provides the file extension of a given filename.
+     *
+     * @param filename the filename
+     * @return the file extension
+     */
+    private static String getExtension(String filename) {
+        String extension = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase();
+        return extension;
+    }
+
+    /**
+     * populates the mapping list:  full mime type --> icon.
+     */
+    private static void populateMimeTypeIconMapping() {
+        MIMETYPE_TO_ICON_MAPPING.put("application/coreldraw", R.drawable.file_image);
+        MIMETYPE_TO_ICON_MAPPING.put("application/epub+zip", R.drawable.file_text);
+        MIMETYPE_TO_ICON_MAPPING.put("application/font-sfnt", R.drawable.file_image);
+        MIMETYPE_TO_ICON_MAPPING.put("application/font-woff", R.drawable.file_image);
+        MIMETYPE_TO_ICON_MAPPING.put("application/illustrator", R.drawable.file_image);
+        MIMETYPE_TO_ICON_MAPPING.put("application/javascript", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("application/json", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("application/msaccess", R.drawable.file);
+        MIMETYPE_TO_ICON_MAPPING.put("application/msexcel", R.drawable.file_xls);
+        MIMETYPE_TO_ICON_MAPPING.put("application/mspowerpoint", R.drawable.file_ppt);
+        MIMETYPE_TO_ICON_MAPPING.put("application/msword", R.drawable.file_doc);
+        MIMETYPE_TO_ICON_MAPPING.put("application/octet-stream", R.drawable.file);
+        MIMETYPE_TO_ICON_MAPPING.put("application/postscript", R.drawable.file_image);
+        MIMETYPE_TO_ICON_MAPPING.put("application/pdf", R.drawable.file_pdf);
+        MIMETYPE_TO_ICON_MAPPING.put("application/rss+xml", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("application/rtf", R.drawable.file);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.android.package-archive", R.drawable.file_zip);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-excel", R.drawable.file_xls);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-excel.addin.macroEnabled.12", R.drawable.file_xls);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-excel.sheet.binary.macroEnabled.12", R.drawable.file_xls);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-excel.sheet.macroEnabled.12", R.drawable.file_xls);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-excel.template.macroEnabled.12", R.drawable.file_xls);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-fontobject", R.drawable.file_image);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-powerpoint", R.drawable.file_ppt);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-powerpoint.addin.macroEnabled.12", R.drawable.file_ppt);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-powerpoint.presentation.macroEnabled.12", R.drawable.file_ppt);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-powerpoint.slideshow.macroEnabled.12", R.drawable.file_ppt);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-powerpoint.template.macroEnabled.12", R.drawable.file_ppt);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-word.document.macroEnabled.12", R.drawable.file_doc);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.ms-word.template.macroEnabled.12", R.drawable.file_doc);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.oasis.opendocument.presentation", R.drawable.file_ppt);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.oasis.opendocument.presentation-template", R.drawable.file_ppt);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.oasis.opendocument.spreadsheet", R.drawable.file_xls);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.oasis.opendocument.spreadsheet-template", R.drawable.file_xls);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.oasis.opendocument.text", R.drawable.file_doc);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.oasis.opendocument.text-master", R.drawable.file_doc);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.oasis.opendocument.text-template", R.drawable.file_doc);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.oasis.opendocument.text-web", R.drawable.file_doc);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.openxmlformats-officedocument.presentationml.presentation", R.drawable.file_ppt);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.openxmlformats-officedocument.presentationml.slideshow", R.drawable.file_ppt);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.openxmlformats-officedocument.presentationml.template", R.drawable.file_ppt);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", R.drawable.file_xls);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.openxmlformats-officedocument.spreadsheetml.template", R.drawable.file_xls);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.openxmlformats-officedocument.wordprocessingml.document", R.drawable.file_doc);
+        MIMETYPE_TO_ICON_MAPPING.put("application/vnd.openxmlformats-officedocument.wordprocessingml.template", R.drawable.file_doc);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-7z-compressed", R.drawable.file_zip);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-bin", R.drawable.file_application);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-cbr", R.drawable.file_text);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-compressed", R.drawable.file_zip);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-dcraw", R.drawable.file_image);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-deb", R.drawable.file_zip);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-font", R.drawable.file_image);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-gimp", R.drawable.file_image);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-gzip", R.drawable.file_zip);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-ms-dos-executable", R.drawable.file_application);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-msi", R.drawable.file_application);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-iwork-numbers-sffnumbers", R.drawable.file_xls);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-iwork-keynote-sffkey", R.drawable.file_ppt);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-iwork-pages-sffpages", R.drawable.file_doc);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-perl", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-photoshop", R.drawable.file_image);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-php", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-rar-compressed", R.drawable.file_zip);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-shockwave-flash", R.drawable.file_application);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-tar", R.drawable.file_zip);
+        MIMETYPE_TO_ICON_MAPPING.put("application/x-tex", R.drawable.file_text);
+        MIMETYPE_TO_ICON_MAPPING.put("application/xml", R.drawable.file_text);
+        MIMETYPE_TO_ICON_MAPPING.put("application/yaml", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("application/zip", R.drawable.file_zip);
+        MIMETYPE_TO_ICON_MAPPING.put("database", R.drawable.file);
+        MIMETYPE_TO_ICON_MAPPING.put("httpd/unix-directory", R.drawable.ic_menu_archive);
+        MIMETYPE_TO_ICON_MAPPING.put("image/svg+xml", R.drawable.file_image);
+        MIMETYPE_TO_ICON_MAPPING.put("image/vector", R.drawable.file_image);
+        MIMETYPE_TO_ICON_MAPPING.put("text/calendar", R.drawable.file_calendar);
+        MIMETYPE_TO_ICON_MAPPING.put("text/css", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("text/csv", R.drawable.file_xls);
+        MIMETYPE_TO_ICON_MAPPING.put("text/html", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("text/vcard", R.drawable.file_vcard);
+        MIMETYPE_TO_ICON_MAPPING.put("text/x-c", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("text/x-c++src", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("text/x-h", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("text/x-python", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("text/x-shellscript", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("web", R.drawable.file_code);
+        MIMETYPE_TO_ICON_MAPPING.put("DIR", R.drawable.ic_menu_archive);
+    }
+
+    /**
+     * populates the mapping list: main mime type --> icon.
+     */
+    private static void populateMainMimeTypeMapping() {
+        MAINMIMETYPE_TO_ICON_MAPPING.put("audio", R.drawable.file_sound);
+        MAINMIMETYPE_TO_ICON_MAPPING.put("database", R.drawable.file);
+        MAINMIMETYPE_TO_ICON_MAPPING.put("httpd", R.drawable.file_zip);
+        MAINMIMETYPE_TO_ICON_MAPPING.put("image", R.drawable.file_image);
+        MAINMIMETYPE_TO_ICON_MAPPING.put("text", R.drawable.file_text);
+        MAINMIMETYPE_TO_ICON_MAPPING.put("video", R.drawable.file_movie);
+        MAINMIMETYPE_TO_ICON_MAPPING.put("web", R.drawable.file_code);
+    }
+
+    /**
+     * populates the mapping list: file extension --> mime type.
+     */
+    private static void populateFileExtensionMimeTypeMapping() {
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("3gp", Collections.singletonList("video/3gpp"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("7z", Collections.singletonList("application/x-7z-compressed"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("accdb", Collections.singletonList("application/msaccess"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ai", Collections.singletonList("application/illustrator"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("apk", Collections.singletonList("application/vnd.android.package-archive"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("arw", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("avi", Collections.singletonList("video/x-msvideo"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("bash", Collections.singletonList("text/x-shellscript"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("blend", Collections.singletonList("application/x-blender"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("bin", Collections.singletonList("application/x-bin"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("bmp", Collections.singletonList("image/bmp"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("bpg", Collections.singletonList("image/bpg"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("cb7", Collections.singletonList("application/x-cbr"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("cba", Collections.singletonList("application/x-cbr"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("cbr", Collections.singletonList("application/x-cbr"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("cbt", Collections.singletonList("application/x-cbr"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("cbtc", Collections.singletonList("application/x-cbr"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("cbz", Collections.singletonList("application/x-cbr"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("cc", Collections.singletonList("text/x-c"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("cdr", Collections.singletonList("application/coreldraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("cnf", Collections.singletonList("text/plain"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("conf", Collections.singletonList("text/plain"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("cpp", Collections.singletonList("text/x-c++src"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("cr2", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("css", Collections.singletonList("text/css"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("csv", Collections.singletonList("text/csv"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("cvbdl", Collections.singletonList("application/x-cbr"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("c", Collections.singletonList("text/x-c"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("c++", Collections.singletonList("text/x-c++src"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("dcr", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("deb", Collections.singletonList("application/x-deb"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("dng", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("doc", Collections.singletonList("application/msword"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("docm", Collections.singletonList("application/vnd.ms-word.document.macroEnabled.12"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("docx", Collections.singletonList("application/vnd.openxmlformats-officedocument.wordprocessingml.document"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("dot", Collections.singletonList("application/msword"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("dotx", Collections.singletonList("application/vnd.openxmlformats-officedocument.wordprocessingml.template"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("dv", Collections.singletonList("video/dv"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("eot", Collections.singletonList("application/vnd.ms-fontobject"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("epub", Collections.singletonList("application/epub+zip"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("eps", Collections.singletonList("application/postscript"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("erf", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("exe", Collections.singletonList("application/x-ms-dos-executable"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("flac", Collections.singletonList("audio/flac"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("flv", Collections.singletonList("video/x-flv"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("gif", Collections.singletonList("image/gif"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("gz", Collections.singletonList("application/x-gzip"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("gzip", Collections.singletonList("application/x-gzip"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("h", Collections.singletonList("text/x-h"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("hh", Collections.singletonList("text/x-h"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("html", Arrays.asList("text/html", "text/plain"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("htm", Arrays.asList("text/html", "text/plain"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ical", Collections.singletonList("text/calendar"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ics", Collections.singletonList("text/calendar"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("iiq", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("impress", Collections.singletonList("text/impress"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("jpeg", Collections.singletonList("image/jpeg"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("jpg", Collections.singletonList("image/jpeg"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("jps", Collections.singletonList("image/jpeg"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("js", Arrays.asList("application/javascript", "text/plain"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("json", Arrays.asList("application/json", "text/plain"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("k25", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("kdc", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("key", Collections.singletonList("application/x-iwork-keynote-sffkey"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("keynote", Collections.singletonList("application/x-iwork-keynote-sffkey"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("kra", Collections.singletonList("application/x-krita"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("m2t", Collections.singletonList("video/mp2t"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("m4v", Collections.singletonList("video/mp4"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("markdown", Collections.singletonList("text/markdown"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mdown", Collections.singletonList("text/markdown"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("md", Collections.singletonList("text/markdown"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mdb", Collections.singletonList("application/msaccess"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mdwn", Collections.singletonList("text/markdown"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mkd", Collections.singletonList("text/markdown"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mef", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mkv", Collections.singletonList("video/x-matroska"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mobi", Collections.singletonList("application/x-mobipocket-ebook"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mov", Collections.singletonList("video/quicktime"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mp3", Collections.singletonList("audio/mpeg"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mp4", Collections.singletonList("video/mp4"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mpeg", Collections.singletonList("video/mpeg"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mpg", Collections.singletonList("video/mpeg"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mpo", Collections.singletonList("image/jpeg"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("msi", Collections.singletonList("application/x-msi"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mts", Collections.singletonList("video/MP2T"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("mt2s", Collections.singletonList("video/MP2T"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("nef", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("numbers", Collections.singletonList("application/x-iwork-numbers-sffnumbers"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("odf", Collections.singletonList("application/vnd.oasis.opendocument.formula"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("odg", Collections.singletonList("application/vnd.oasis.opendocument.graphics"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("odp", Collections.singletonList("application/vnd.oasis.opendocument.presentation"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ods", Collections.singletonList("application/vnd.oasis.opendocument.spreadsheet"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("odt", Collections.singletonList("application/vnd.oasis.opendocument.text"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("oga", Collections.singletonList("audio/ogg"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ogg", Collections.singletonList("audio/ogg"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ogv", Collections.singletonList("video/ogg"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("opus", Collections.singletonList("audio/ogg"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("orf", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("otf", Collections.singletonList("application/font-sfnt"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("pages", Collections.singletonList("application/x-iwork-pages-sffpages"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("pdf", Collections.singletonList("application/pdf"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("pfb", Collections.singletonList("application/x-font"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("pef", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("php", Collections.singletonList("application/x-php"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("pl", Collections.singletonList("application/x-perl"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("png", Collections.singletonList("image/png"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("pot", Collections.singletonList("application/vnd.ms-powerpoint"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("potm", Collections.singletonList("application/vnd.ms-powerpoint.template.macroEnabled.12"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("potx", Collections.singletonList("application/vnd.openxmlformats-officedocument.presentationml.template"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ppa", Collections.singletonList("application/vnd.ms-powerpoint"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ppam", Collections.singletonList("application/vnd.ms-powerpoint.addin.macroEnabled.12"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("pps", Collections.singletonList("application/vnd.ms-powerpoint"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ppsm", Collections.singletonList("application/vnd.ms-powerpoint.slideshow.macroEnabled.12"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ppsx", Collections.singletonList("application/vnd.openxmlformats-officedocument.presentationml.slideshow"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ppt", Collections.singletonList("application/vnd.ms-powerpoint"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("pptm", Collections.singletonList("application/vnd.ms-powerpoint.presentation.macroEnabled.12"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("pptx", Collections.singletonList("application/vnd.openxmlformats-officedocument.presentationml.presentation"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ps", Collections.singletonList("application/postscript"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("psd", Collections.singletonList("application/x-photoshop"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("py", Collections.singletonList("text/x-python"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("raf", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("rar", Collections.singletonList("application/x-rar-compressed"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("reveal", Collections.singletonList("text/reveal"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("rtf", Collections.singletonList("application/rtf"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("rw2", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("sgf", Collections.singletonList("application/sgf"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("sh-lib", Collections.singletonList("text/x-shellscript"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("sh", Collections.singletonList("text/x-shellscript"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("srf", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("sr2", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("svg", Arrays.asList("image/svg+xml", "text/plain"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("swf", Arrays.asList("application/x-shockwave-flash", "application/octet-stream"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("tar", Collections.singletonList("application/x-tar"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("gz", Collections.singletonList("application/x-compressed"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("tex", Collections.singletonList("application/x-tex"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("tgz", Collections.singletonList("application/x-compressed"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("tiff", Collections.singletonList("image/tiff"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("tif", Collections.singletonList("image/tiff"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("ttf", Collections.singletonList("application/font-sfnt"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("txt", Collections.singletonList("text/plain"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("vcard", Collections.singletonList("text/vcard"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("vcf", Collections.singletonList("text/vcard"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("vob", Collections.singletonList("video/dvd"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("wav", Collections.singletonList("audio/wav"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("webm", Collections.singletonList("video/webm"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("woff", Collections.singletonList("application/font-woff"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("wmv", Collections.singletonList("video/x-ms-wmv"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("xcf", Collections.singletonList("application/x-gimp"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("xla", Collections.singletonList("application/vnd.ms-excel"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("xlam", Collections.singletonList("application/vnd.ms-excel.addin.macroEnabled.12"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("xls", Collections.singletonList("application/vnd.ms-excel"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("xlsb", Collections.singletonList("application/vnd.ms-excel.sheet.binary.macroEnabled.12"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("xlsm", Collections.singletonList("application/vnd.ms-excel.sheet.macroEnabled.12"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("xlsx", Collections.singletonList("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("xlt", Collections.singletonList("application/vnd.ms-excel"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("xltm", Collections.singletonList("application/vnd.ms-excel.template.macroEnabled.12"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("xltx", Collections.singletonList("application/vnd.openxmlformats-officedocument.spreadsheetml.template"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("xml", Arrays.asList("application/xml", "text/plain"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("xrf", Collections.singletonList("image/x-dcraw"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("yaml", Arrays.asList("application/yaml", "text/plain"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("yml", Arrays.asList("application/yaml", "text/plain"));
+        FILE_EXTENSION_TO_MIMETYPE_MAPPING.put("zip", Collections.singletonList("application/zip"));
+    }
+}
index e6bd6f3..0324493 100644 (file)
@@ -23,6 +23,8 @@
  */\r
 \r
 package third_parties.daveKoeller;\r
+import java.text.Collator;\r
+import java.io.File;\r
 import java.util.Comparator;\r
 \r
 import com.owncloud.android.datamodel.OCFile;\r
@@ -48,14 +50,12 @@ public class AlphanumComparator implements Comparator<OCFile>
     }\r
 \r
     /** Length of string is passed in for improved efficiency (only need to calculate it once) **/\r
-    private final String getChunk(String s, int slength, int marker)\r
-    {\r
+    private final String getChunk(String s, int slength, int marker){\r
         StringBuilder chunk = new StringBuilder();\r
         char c = s.charAt(marker);\r
         chunk.append(c);\r
         marker++;\r
-        if (isDigit(c))\r
-        {\r
+        if (isDigit(c)){\r
             while (marker < slength)\r
             {\r
                 c = s.charAt(marker);\r
@@ -64,8 +64,7 @@ public class AlphanumComparator implements Comparator<OCFile>
                 chunk.append(c);\r
                 marker++;\r
             }\r
-        } else\r
-        {\r
+        } else {\r
             while (marker < slength)\r
             {\r
                 c = s.charAt(marker);\r
@@ -78,18 +77,27 @@ public class AlphanumComparator implements Comparator<OCFile>
         return chunk.toString();\r
     }\r
 \r
-    public int compare(OCFile o1, OCFile o2)\r
-    {\r
-        String s1 = (String)o1.getRemotePath().toLowerCase();\r
-        String s2 = (String)o2.getRemotePath().toLowerCase();\r
+    public int compare(OCFile o1, OCFile o2){\r
+        String s1 = o1.getRemotePath().toLowerCase();\r
+        String s2 = o2.getRemotePath().toLowerCase();\r
+\r
+        return compare(s1, s2);\r
+    }\r
+\r
+    public int compare(File f1, File f2){\r
+        String s1 = f1.getPath().toLowerCase();\r
+        String s2 = f2.getPath().toLowerCase();\r
 \r
+        return compare(s1, s2);\r
+    }\r
+\r
+    public int compare(String s1, String s2) {\r
         int thisMarker = 0;\r
         int thatMarker = 0;\r
         int s1Length = s1.length();\r
         int s2Length = s2.length();\r
 \r
-        while (thisMarker < s1Length && thatMarker < s2Length)\r
-        {\r
+        while (thisMarker < s1Length && thatMarker < s2Length) {\r
             String thisChunk = getChunk(s1, s1Length, thisMarker);\r
             thisMarker += thisChunk.length();\r
 \r
@@ -98,26 +106,23 @@ public class AlphanumComparator implements Comparator<OCFile>
 \r
             // If both chunks contain numeric characters, sort them numerically\r
             int result = 0;\r
-            if (isDigit(thisChunk.charAt(0)) && isDigit(thatChunk.charAt(0)))\r
-            {\r
+            if (isDigit(thisChunk.charAt(0)) && isDigit(thatChunk.charAt(0))) {\r
                 // Simple chunk comparison by length.\r
                 int thisChunkLength = thisChunk.length();\r
                 result = thisChunkLength - thatChunk.length();\r
                 // If equal, the first different number counts\r
-                if (result == 0)\r
-                {\r
-                    for (int i = 0; i < thisChunkLength; i++)\r
-                    {\r
+                if (result == 0) {\r
+                    for (int i = 0; i < thisChunkLength; i++) {\r
                         result = thisChunk.charAt(i) - thatChunk.charAt(i);\r
-                        if (result != 0)\r
-                        {\r
+                        if (result != 0) {\r
                             return result;\r
                         }\r
                     }\r
                 }\r
-            } else\r
-            {\r
-                result = thisChunk.compareTo(thatChunk);\r
+            } else {\r
+                Collator collator = Collator.getInstance();\r
+                collator.setStrength(Collator.PRIMARY);\r
+                result = collator.compare(thisChunk, thatChunk);\r
             }\r
 \r
             if (result != 0)\r
index 508380a..be48763 100644 (file)
@@ -99,6 +99,7 @@ public class GridViewWithHeaderAndFooter extends GridView {
         ListAdapter adapter = getAdapter();
         if (adapter != null && adapter instanceof HeaderViewGridAdapter) {
             ((HeaderViewGridAdapter) adapter).setNumColumns(getNumColumnsCompatible());
+            invalidateRowHeight();
             ((HeaderViewGridAdapter) adapter).setRowHeight(getRowHeight());
         }
     }
index 4ab1256..916037e 100644 (file)
@@ -11,4 +11,4 @@
 #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
 
 # Project target.
-target=android-19
+target=android-23
index de2b2d5..9661234 100644 (file)
@@ -22,13 +22,13 @@ Dolphin. The first time you log in to a new ownCloud account you'll see a screen
 with a download link to the ownCloud app in the `Google Play store
 <https://play.google.com/store/apps/details?id=com.owncloud.android>`_.
 
-.. figure:: images/android-first-screen.jpg
+.. figure:: images/android-1.png
+   :scale: 75% 
+   :alt: Android app new account welcome screen.
 
-You will also find these links on your Personal page in the Web interface,
+You will also find these links on your Personal page in the ownCloud Web interface.
 
-You can also get it from the `Amazon App store 
-<http://www.amazon.com/ownCloud-Inc/dp/B00944PQMK/>`_, and get source code and 
-more information from the `ownCloud download page 
+Find source code and more information from the `ownCloud download page 
 <http://owncloud.org/install/#mobile>`_.
 
 Connecting to Your ownCloud Server
@@ -39,77 +39,100 @@ screen. Enter your server URL, login name, password, and click the Connect
 button. (Click the eyeball to the right of your password to expose your 
 password.)
 
-.. figure:: images/android-new-account.png
+.. figure:: images/android-2.png
+   :scale: 75% 
+   :alt: New account creation screen.
 
 For best security your ownCloud server should be SSL-enabled, so that you can 
 connect via ``https``. The ownCloud app will test your connection as soon as 
 you enter it and tell you if you entered it correctly. If your server has a 
-self-signed SSL certificate you'll get a scary warning how it is not to be 
+self-signed SSL certificate you'll get a warning that it is not to be 
 trusted. Click the OK button to accept the certificate and complete your account 
 setup.
 
-.. figure:: images/android-ssl-cert.png
+.. figure:: images/android-3.png 
+   :alt: SSL certificate warning.
 
 Managing Files
 --------------
 
-Now you should see the Files page of your ownCloud account. Click the overflow 
-button at the top right (that's the one with three vertical dots, and that is 
-really what it is called) to open a user menu. ``Refresh account`` refreshes the 
-page view. ``Settings`` take you to your settings menu. ``Sort`` gives you the 
-option to sort your files by date, or alphabetically.
+Now you should see the Files page of your ownCloud account. 
 
-.. figure:: images/android-files-page.png
+.. figure:: images/android-4.png
+   :scale: 75% 
+   :alt: Your ownCloud Files page.
 
-The little file folder icon to the left of the overflow button opens a dialog to 
-create a new folder. The arrow button opens a file upload dialog, and you can 
-either upload content from other Android apps such as Google Drive, the Gallery, 
-your music player, or from your Android filesystem. When you add a new file 
-you will see a confirmation on the top left when it has uploaded successfully, 
-and it is immediately synchronized with the server.
-
-.. figure:: images/android-upload.png
-
-All files (that you have permission to access) on your ownCloud server are 
-displayed in your Android app, but are not downloaded until you download them. 
-Downloaded files are marked with a green arrow.
-
-.. figure:: images/android-file-list.png
-
-Download and preview a file with a short press on the filename.  When the file 
-is in preview mode, a short press on the overflow button opens a menu with 
-options for sharing, opening with an app, removing, sending, and displaying file 
-details. 
+The ownCloud menu at the top left shows the name of the logged-in user, has a 
+shortcut to your files, and contains the Settings button.
 
-.. figure:: images/android-file.png
+.. figure:: images/android-5.png
+   :alt: Top-left menu.
 
+Click the overflow button at the top right (that's the one with three vertical 
+dots, and that is really what it is called) to open a user menu. ``Refresh 
+account`` syncs your files, and ``Sort`` gives you the option to sort your files 
+by date, or alphabetically.
 
-A long press on the filename does not download it, but opens a dialog with 
-options for sharing, downloading, renaming, moving, removing, sending, and 
-viewing file details. 
+.. figure:: images/android-6.png
+   :alt: Top-right menu.
 
+The little file folder icon to the left of the overflow button opens a dialog to 
+create a new folder. The arrow button opens a file upload dialog, and you can 
+either upload content from other Android apps such as Google Drive, the Gallery, 
+your music player, or from your Android filesystem.
 
-.. figure:: images/android-file-options.png
+.. figure:: images/android-7.png
+   :scale: 75%
+   :alt: File upload dialogue.
 
+All files (that you have permission to access) on your ownCloud server are 
+displayed in your Android app, but are not downloaded until you click on them to 
+download them. Downloaded files are marked with a green arrow.
+
+.. figure:: images/android-8.png
+   :scale: 75%
+   :alt: Downloaded files are marked with green arrows.
+
+Download and preview a file with a short press on the filename.  Then a short 
+press on the overflow button opens a menu with 
+options for managing your file.
+
+.. figure:: images/android-9.png
+   :scale: 75%
+   :alt: File management options. Betsy Ross says "Don't believe everything you 
+   read on the Internet."
+   
+When you are on your mail Files page, a long press on any folder displays a 
+list of options: Share Link, Download, Rename, Move, Copy, and Remove.
+
+.. figure:: images/android-11.png
+   :scale: 75%
+   :alt: Folder and file management options.
+   
+When you enter a folder, a long press on any file or folder has these 
+additional options: Open With, Refresh File, Send, Favorite, and Details. The 
+Download option appears on files that have not been downloaded to your Android 
+device.  
 
 Settings
 --------
 
-The Settings screen offers a number of useful options. In the Accounts 
-section you can configure multiple ownCloud accounts.
+Use the Settings screen to control your ownCloud app functions.
+
+.. figure:: images/android-10.png
+   :scale: 75%
+   :alt: Setting screen.
+
+In the Accounts section you can set up and manage multiple accounts.
 
 The Security section sets up strong two-factor authentication by allowing you 
 to add a PIN (personal identification number) to access your account.  
 
-The Instant Uploads section creates a directory, :file:`/InstantUpload`, and 
-any photos or videos created with your Android device's camera are instantly 
+The Instant Uploads section creates a directory, :file:`/InstantUpload`, and any 
+photos or videos created with your Android device's camera are instantly 
 uploaded to this directory. You also have the option to choose any other 
-existing directory. Another nice option is Upload Pictures/Video via WiFi Only, 
-to conserve your Internet data usage.
-
-.. figure:: images/android-settings.png
+existing directory, or to create a new one. Another nice option is Upload 
+Pictures/Video via WiFi Only, to conserve your mobile data usage.
 
 The bottom section of the Settings screen has links to help and the 
 app's version number.
-
-.. figure:: images/android-help.png
diff --git a/user_manual/images/android-1.png b/user_manual/images/android-1.png
new file mode 100644 (file)
index 0000000..ed45645
Binary files /dev/null and b/user_manual/images/android-1.png differ
diff --git a/user_manual/images/android-10.png b/user_manual/images/android-10.png
new file mode 100644 (file)
index 0000000..187a753
Binary files /dev/null and b/user_manual/images/android-10.png differ
diff --git a/user_manual/images/android-11.png b/user_manual/images/android-11.png
new file mode 100644 (file)
index 0000000..c84166e
Binary files /dev/null and b/user_manual/images/android-11.png differ
diff --git a/user_manual/images/android-2.png b/user_manual/images/android-2.png
new file mode 100644 (file)
index 0000000..ddee8e4
Binary files /dev/null and b/user_manual/images/android-2.png differ
diff --git a/user_manual/images/android-3.png b/user_manual/images/android-3.png
new file mode 100644 (file)
index 0000000..14afed9
Binary files /dev/null and b/user_manual/images/android-3.png differ
diff --git a/user_manual/images/android-4.png b/user_manual/images/android-4.png
new file mode 100644 (file)
index 0000000..ee9cf66
Binary files /dev/null and b/user_manual/images/android-4.png differ
diff --git a/user_manual/images/android-5.png b/user_manual/images/android-5.png
new file mode 100644 (file)
index 0000000..d089cc1
Binary files /dev/null and b/user_manual/images/android-5.png differ
diff --git a/user_manual/images/android-6.png b/user_manual/images/android-6.png
new file mode 100644 (file)
index 0000000..20f6fbb
Binary files /dev/null and b/user_manual/images/android-6.png differ
diff --git a/user_manual/images/android-7.png b/user_manual/images/android-7.png
new file mode 100644 (file)
index 0000000..aaa33bf
Binary files /dev/null and b/user_manual/images/android-7.png differ
diff --git a/user_manual/images/android-8.png b/user_manual/images/android-8.png
new file mode 100644 (file)
index 0000000..b1ecc62
Binary files /dev/null and b/user_manual/images/android-8.png differ
diff --git a/user_manual/images/android-9.png b/user_manual/images/android-9.png
new file mode 100644 (file)
index 0000000..631f6b1
Binary files /dev/null and b/user_manual/images/android-9.png differ
diff --git a/user_manual/images/android-downloads.png b/user_manual/images/android-downloads.png
deleted file mode 100644 (file)
index e0bb545..0000000
Binary files a/user_manual/images/android-downloads.png and /dev/null differ
diff --git a/user_manual/images/android-file-list.png b/user_manual/images/android-file-list.png
deleted file mode 100644 (file)
index e479b9f..0000000
Binary files a/user_manual/images/android-file-list.png and /dev/null differ
diff --git a/user_manual/images/android-file-options.png b/user_manual/images/android-file-options.png
deleted file mode 100644 (file)
index 12867a3..0000000
Binary files a/user_manual/images/android-file-options.png and /dev/null differ
diff --git a/user_manual/images/android-file.png b/user_manual/images/android-file.png
deleted file mode 100644 (file)
index 89ffd28..0000000
Binary files a/user_manual/images/android-file.png and /dev/null differ
diff --git a/user_manual/images/android-files-page.png b/user_manual/images/android-files-page.png
deleted file mode 100644 (file)
index 1c7fc4d..0000000
Binary files a/user_manual/images/android-files-page.png and /dev/null differ
diff --git a/user_manual/images/android-first-screen.jpg b/user_manual/images/android-first-screen.jpg
deleted file mode 100644 (file)
index f4c5132..0000000
Binary files a/user_manual/images/android-first-screen.jpg and /dev/null differ
diff --git a/user_manual/images/android-help.png b/user_manual/images/android-help.png
deleted file mode 100644 (file)
index 56a7464..0000000
Binary files a/user_manual/images/android-help.png and /dev/null differ
diff --git a/user_manual/images/android-new-account.png b/user_manual/images/android-new-account.png
deleted file mode 100644 (file)
index ffbe12e..0000000
Binary files a/user_manual/images/android-new-account.png and /dev/null differ
diff --git a/user_manual/images/android-settings.png b/user_manual/images/android-settings.png
deleted file mode 100644 (file)
index 7a16084..0000000
Binary files a/user_manual/images/android-settings.png and /dev/null differ
diff --git a/user_manual/images/android-ssl-cert.png b/user_manual/images/android-ssl-cert.png
deleted file mode 100644 (file)
index 9286fe6..0000000
Binary files a/user_manual/images/android-ssl-cert.png and /dev/null differ
diff --git a/user_manual/images/android-upload.png b/user_manual/images/android-upload.png
deleted file mode 100644 (file)
index 6ee1b95..0000000
Binary files a/user_manual/images/android-upload.png and /dev/null differ