Merge "Guard all apps pull up work behind the flag" into ub-launcher3-calgary
diff --git a/res/layout/qsb_container.xml b/res/layout/qsb_container.xml
index 3de2876..55c7390 100644
--- a/res/layout/qsb_container.xml
+++ b/res/layout/qsb_container.xml
@@ -20,4 +20,11 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/qsb_container"
- android:padding="0dp" />
\ No newline at end of file
+ android:padding="0dp" >
+
+ <fragment
+ android:name="com.android.launcher3.QsbContainerView$QsbFragment"
+ android:layout_width="match_parent"
+ android:tag="qsb_view"
+ android:layout_height="match_parent"/>
+</com.android.launcher3.QsbContainerView>
\ No newline at end of file
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 23882b1..89e0eab 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -59,7 +59,7 @@
<string name="migration_cling_description" msgid="2752413805582227644">"Import icons and folders from your old Home screens?"</string>
<string name="migration_cling_copy_apps" msgid="946331230090919440">"COPY ICONS"</string>
<string name="migration_cling_use_default" msgid="2626475813981258626">"START AFRESH"</string>
- <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Wallpapers, widgets, & settings"</string>
+ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Wallpapers, widgets & settings"</string>
<string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Tap & hold background to customise"</string>
<string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"GOT IT"</string>
<string name="folder_opened" msgid="94695026776264709">"Folder opened, <xliff:g id="WIDTH">%1$d</xliff:g> by <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 23882b1..89e0eab 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -59,7 +59,7 @@
<string name="migration_cling_description" msgid="2752413805582227644">"Import icons and folders from your old Home screens?"</string>
<string name="migration_cling_copy_apps" msgid="946331230090919440">"COPY ICONS"</string>
<string name="migration_cling_use_default" msgid="2626475813981258626">"START AFRESH"</string>
- <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Wallpapers, widgets, & settings"</string>
+ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Wallpapers, widgets & settings"</string>
<string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Tap & hold background to customise"</string>
<string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"GOT IT"</string>
<string name="folder_opened" msgid="94695026776264709">"Folder opened, <xliff:g id="WIDTH">%1$d</xliff:g> by <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 23882b1..89e0eab 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -59,7 +59,7 @@
<string name="migration_cling_description" msgid="2752413805582227644">"Import icons and folders from your old Home screens?"</string>
<string name="migration_cling_copy_apps" msgid="946331230090919440">"COPY ICONS"</string>
<string name="migration_cling_use_default" msgid="2626475813981258626">"START AFRESH"</string>
- <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Wallpapers, widgets, & settings"</string>
+ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Wallpapers, widgets & settings"</string>
<string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Tap & hold background to customise"</string>
<string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"GOT IT"</string>
<string name="folder_opened" msgid="94695026776264709">"Folder opened, <xliff:g id="WIDTH">%1$d</xliff:g> by <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 1169f44..8fa7586 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -76,10 +76,10 @@
<string name="allow_rotation_desc" msgid="7635719920854330492">"Al girar el dispositivo"</string>
<string name="allow_rotation_blocked_desc" msgid="3212602545192996253">"La configuración de pantalla actual no permite girar la pantalla"</string>
<string name="package_state_unknown" msgid="7592128424511031410">"Desconocido"</string>
- <string name="abandoned_clean_this" msgid="7610119707847920412">"Eliminar"</string>
+ <string name="abandoned_clean_this" msgid="7610119707847920412">"Quitar"</string>
<string name="abandoned_search" msgid="891119232568284442">"Buscar"</string>
<string name="abandoned_promises_title" msgid="7096178467971716750">"Esta aplicación no está instalada"</string>
- <string name="abandoned_promise_explanation" msgid="3990027586878167529">"La aplicación de este icono no está instalada. Puedes eliminar el icono o buscar la aplicación e instalarla manualmente."</string>
+ <string name="abandoned_promise_explanation" msgid="3990027586878167529">"La aplicación de este icono no está instalada. Puedes quitar el icono o buscar la aplicación e instalarla manualmente."</string>
<string name="app_downloading_title" msgid="8336702962104482644">"Descargando <xliff:g id="NAME">%1$s</xliff:g> (<xliff:g id="PROGRESS">%2$s</xliff:g> completado)"</string>
<string name="app_waiting_download_title" msgid="7053938513995617849">"Esperando para instalar <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="action_add_to_workspace" msgid="8902165848117513641">"Añadir a la pantalla de inicio"</string>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index 682cc12..3cc1885 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -59,7 +59,7 @@
<string name="migration_cling_description" msgid="2752413805582227644">"გსურთ, ძველი მთავარი ეკრანიდან ხატულების და საქაღ. იმპორტი?"</string>
<string name="migration_cling_copy_apps" msgid="946331230090919440">"ხატულების კოპირება"</string>
<string name="migration_cling_use_default" msgid="2626475813981258626">"სტანდარტული განლაგება"</string>
- <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ფონები, ვიჯეტები, & პარამეტრები"</string>
+ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"ფონები, ვიჯეტები & პარამეტრები"</string>
<string name="workspace_cling_longpress_description" msgid="6569028007301925917">"მოსარგებად, ხანგრძლივად შეეხეთ ფონს."</string>
<string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"გასაგებია"</string>
<string name="folder_opened" msgid="94695026776264709">"საქაღალდე გახსნილია, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index b9ca0ea..a1acc03 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -35,7 +35,7 @@
<string name="all_apps_search_market_message" msgid="5470761048755751471">"<xliff:g id="QUERY">%1$s</xliff:g>ကို သွားပါ"</string>
<string name="out_of_space" msgid="4691004494942118364">"ဤပင်မမျက်နှာစာတွင် နေရာလွတ် မကျန်တော့ပါ"</string>
<string name="hotseat_out_of_space" msgid="7448809638125333693">"အနှစ်သက်ဆုံးများ ထားရာတွင် နေရာလွတ် မကျန်တော့ပါ"</string>
- <string name="all_apps_button_label" msgid="9110807029020582876">"အပ်ပလီကေးရှင်းများ"</string>
+ <string name="all_apps_button_label" msgid="9110807029020582876">"အက်ပ်များ"</string>
<string name="all_apps_home_button_label" msgid="252062713717058851">"ပင်မစာမျက်နှာ"</string>
<string name="remove_drop_target_label" msgid="7812859488053230776">"ဖယ်ရှားမည်"</string>
<string name="uninstall_drop_target_label" msgid="4722034217958379417">"ဖယ်ထုတ်မည်"</string>
@@ -59,18 +59,18 @@
<string name="migration_cling_description" msgid="2752413805582227644">"ပင်မစာမျက်နှာအဟောင်းမှ ပုံညွှန်းများ နှင့် အကန့်များကို ယူလာပါမလား"</string>
<string name="migration_cling_copy_apps" msgid="946331230090919440">"COPY ICONS"</string>
<string name="migration_cling_use_default" msgid="2626475813981258626">"START FRESH"</string>
- <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"နောက်ခံများ၊ ဝီဂျက်များ& ဆက်တင်များ"</string>
+ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"နောက်ခံများ၊ ဝိဂျက်များ& ဆက်တင်များ"</string>
<string name="workspace_cling_longpress_description" msgid="6569028007301925917">"စိတ်တိုင်းကျပြုပြင်ရန် နောက်ခံတို့၍ & ဖိထားပါ"</string>
- <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ရပြီ"</string>
+ <string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"ရပါပြီ"</string>
<string name="folder_opened" msgid="94695026776264709">"ဖွင့်ထားသောအကန့်, <xliff:g id="WIDTH">%1$d</xliff:g> နှင့် <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
<string name="folder_tap_to_close" msgid="4625795376335528256">"ဖိုင်တွဲကို ပိတ်ရန် တို့ပါ"</string>
<string name="folder_tap_to_rename" msgid="4017685068016979677">"အမည်ပြောင်းခြင်းကို သိမ်းဆည်းရန် တို့ပါ"</string>
<string name="folder_closed" msgid="4100806530910930934">"ပိတ်ထားသောအကန့်"</string>
<string name="folder_renamed" msgid="1794088362165669656">"ပြောင်းလဲလိုက်သော အကန့်အမည် <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="folder_name_format" msgid="6629239338071103179">"အကန့်အမည်: <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="widget_button_text" msgid="2880537293434387943">"ဝဒ်ဂျက်များ"</string>
+ <string name="widget_button_text" msgid="2880537293434387943">"ဝိဂျက်များ"</string>
<string name="wallpaper_button_text" msgid="8404103075899945851">"နောက်ခံများ"</string>
- <string name="settings_button_text" msgid="8119458837558863227">"အပြင်အဆင်များ"</string>
+ <string name="settings_button_text" msgid="8119458837558863227">"ဆက်တင်များ"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"သင့်စီမံခန့်ခွဲသူက ပိတ်လိုက်ပါသည်"</string>
<string name="allow_rotation_title" msgid="3132336367556833843">"ပင်မစာမျက်နှာကို လှည့်ခွင့်ပြုပါ"</string>
<string name="allow_rotation_desc" msgid="7635719920854330492">"စက်ပစ္စည်းကို လှည့်ထားသည့်အခါ"</string>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 169f3de..acebc33 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -59,7 +59,7 @@
<string name="migration_cling_description" msgid="2752413805582227644">"आफ्नो पुरानो गृह स्क्रीनबाट अाईकन र फोल्डरहरू आयात गर्नुहोस्?"</string>
<string name="migration_cling_copy_apps" msgid="946331230090919440">"ICONS प्रतिलिप गर्नुहोस्"</string>
<string name="migration_cling_use_default" msgid="2626475813981258626">"START FRESH"</string>
- <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"वालपेपरहरू, विजेट; सेटिङहरू"</string>
+ <string name="workspace_cling_longpress_title" msgid="9173998993909018310">"वालपेपर, विजेट तथा सेटिङहरू"</string>
<string name="workspace_cling_longpress_description" msgid="6569028007301925917">"अनुकूलन गर्नका लागि पृष्ठभूमिलाई ट्याप गरी थिचिरहनुहोस्"</string>
<string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"बुँझें"</string>
<string name="folder_opened" msgid="94695026776264709">"फोल्डर खुल्यो <xliff:g id="WIDTH">%1$d</xliff:g> बाट <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index 47bb556..8e8e6ea 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -30,7 +30,7 @@
<string name="long_accessible_way_to_add" msgid="4289502106628154155">"ਡਬਲ-ਟੈਪ & ਇੱਕ ਵਿਜੇਟ ਚੁਣਨ ਲਈ ਹੋਲਡ ਕਰੋ ਅਤੇ ਕਸਟਮ ਕਿਰਿਆਵਾਂ ਵਰਤੋ।"</string>
<string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
<string name="all_apps_search_bar_hint" msgid="6705987535534678581">"ਐਪਾਂ ਖੋਜੋ…"</string>
- <string name="all_apps_loading_message" msgid="7557140873644765180">"ਐਪਸ ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ..."</string>
+ <string name="all_apps_loading_message" msgid="7557140873644765180">"ਐਪਾਂ ਨੂੰ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."</string>
<string name="all_apps_no_search_results" msgid="6332185285860416787">"\"<xliff:g id="QUERY">%1$s</xliff:g>\" ਨਾਲ ਮਿਲਦੀਆਂ ਕੋਈ ਵੀ ਐਪਾਂ ਨਹੀਂ ਮਿਲੀਆਂ"</string>
<string name="all_apps_search_market_message" msgid="5470761048755751471">"<xliff:g id="QUERY">%1$s</xliff:g> ਤੇ ਜਾਓ"</string>
<string name="out_of_space" msgid="4691004494942118364">"ਇਸ ਹੋਮ ਸਕ੍ਰੀਨ ਲਈ ਹੋਰ ਖਾਲੀ ਸਥਾਨ ਨਹੀਂ ਹੈ।"</string>
@@ -40,12 +40,12 @@
<string name="remove_drop_target_label" msgid="7812859488053230776">"ਹਟਾਓ"</string>
<string name="uninstall_drop_target_label" msgid="4722034217958379417">"ਸਥਾਪਨਾ ਰੱਦ ਕਰੋ"</string>
<string name="app_info_drop_target_label" msgid="692894985365717661">"ਐਪ ਜਾਣਕਾਰੀ"</string>
- <string name="permlab_install_shortcut" msgid="5632423390354674437">"ਸ਼ੌਰਟਕਟ ਇੰਸਟੌਲ ਕਰੋ"</string>
- <string name="permdesc_install_shortcut" msgid="923466509822011139">"ਇੱਕ ਐਪ ਨੂੰ ਉਪਭੋਗਤਾ ਦੇ ਦਖ਼ਲ ਤੋਂ ਬਿਨਾਂ ਸ਼ੌਰਟਕਟ ਜੋੜਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string>
- <string name="permlab_read_settings" msgid="1941457408239617576">"ਹੋਮ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ੌਰਟਕਟ ਪੜ੍ਹੋ"</string>
- <string name="permdesc_read_settings" msgid="5833423719057558387">"ਐਪ ਨੂੰ ਹੋਮ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ੌਰਟਕਟ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string>
- <string name="permlab_write_settings" msgid="3574213698004620587">"ਹੋਮ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ੌਰਟਕਟ ਲਿਖੋ"</string>
- <string name="permdesc_write_settings" msgid="5440712911516509985">"ਐਪ ਨੂੰ ਹੋਮ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ੌਰਟਕਟ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string>
+ <string name="permlab_install_shortcut" msgid="5632423390354674437">"ਸ਼ਾਰਟਕੱਟ ਇੰਸਟੌਲ ਕਰੋ"</string>
+ <string name="permdesc_install_shortcut" msgid="923466509822011139">"ਇੱਕ ਐਪ ਨੂੰ ਉਪਭੋਗਤਾ ਦੇ ਦਖ਼ਲ ਤੋਂ ਬਿਨਾਂ ਸ਼ਾਰਟਕੱਟ ਜੋੜਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string>
+ <string name="permlab_read_settings" msgid="1941457408239617576">"ਹੋਮ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ਾਰਟਕੱਟ ਪੜ੍ਹੋ"</string>
+ <string name="permdesc_read_settings" msgid="5833423719057558387">"ਐਪ ਨੂੰ ਹੋਮ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ਾਰਟਕੱਟ ਪੜ੍ਹਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string>
+ <string name="permlab_write_settings" msgid="3574213698004620587">"ਹੋਮ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ਾਰਟਕੱਟ ਲਿਖੋ"</string>
+ <string name="permdesc_write_settings" msgid="5440712911516509985">"ਐਪ ਨੂੰ ਹੋਮ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ਾਰਟਕੱਟ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string>
<string name="msg_no_phone_permission" msgid="9208659281529857371">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਨੂੰ ਫੋਨ ਕਾਲਾਂ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ"</string>
<string name="gadget_error_text" msgid="6081085226050792095">"ਵਿਜੇਟ ਲੋਡ ਕਰਨ ਵਿੱਚ ਸਮੱਸਿਆ"</string>
<string name="gadget_setup_text" msgid="8274003207686040488">"ਸਥਾਪਤ ਕਰੋ"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 4f92d1e..134f464 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -29,10 +29,10 @@
<string name="long_press_widget_to_add" msgid="5154837155685183344">"Miniaplikáciu pridáte klepnutím a podržaním."</string>
<string name="long_accessible_way_to_add" msgid="4289502106628154155">"Miniaplikáciu pridáte dvojitým klepnutím a pridržaním alebo pomocou vlastných akcií."</string>
<string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
- <string name="all_apps_search_bar_hint" msgid="6705987535534678581">"Vyhľadávanie v aplikáciách…"</string>
+ <string name="all_apps_search_bar_hint" msgid="6705987535534678581">"Hľadať aplikácie…"</string>
<string name="all_apps_loading_message" msgid="7557140873644765180">"Načítavajú sa aplikácie..."</string>
<string name="all_apps_no_search_results" msgid="6332185285860416787">"Nenašli sa žiadne aplikácie zodpovedajúce dopytu <xliff:g id="QUERY">%1$s</xliff:g>"</string>
- <string name="all_apps_search_market_message" msgid="5470761048755751471">"Prejsť na dopyt <xliff:g id="QUERY">%1$s</xliff:g>"</string>
+ <string name="all_apps_search_market_message" msgid="5470761048755751471">"Prejsť na <xliff:g id="QUERY">%1$s</xliff:g>"</string>
<string name="out_of_space" msgid="4691004494942118364">"Na tejto ploche už nie je miesto"</string>
<string name="hotseat_out_of_space" msgid="7448809638125333693">"Na paneli Obľúbené položky už nie je miesto"</string>
<string name="all_apps_button_label" msgid="9110807029020582876">"Aplikácie"</string>
@@ -60,7 +60,7 @@
<string name="migration_cling_copy_apps" msgid="946331230090919440">"SKOPÍROVAŤ IKONY"</string>
<string name="migration_cling_use_default" msgid="2626475813981258626">"ZAČAŤ ODZNOVA"</string>
<string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Tapety, miniaplikácie a nastavenia"</string>
- <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Pozadie prispôsobíte klepnutím a podržaním"</string>
+ <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Pozadie môžete prispôsobiť jeho pridržaním"</string>
<string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"DOBRE"</string>
<string name="folder_opened" msgid="94695026776264709">"Otvorený priečinok, <xliff:g id="WIDTH">%1$d</xliff:g> x <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
<string name="folder_tap_to_close" msgid="4625795376335528256">"Priečinok zavriete klepnutím"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 5b2eb27..19f7a77 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -62,7 +62,7 @@
<string name="migration_cling_copy_apps" msgid="946331230090919440">"NAKILI IKONI"</string>
<string name="migration_cling_use_default" msgid="2626475813981258626">"ANZA UPYA"</string>
<string name="workspace_cling_longpress_title" msgid="9173998993909018310">"Mandhari, wijeti na mipangilio"</string>
- <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Gusa na ushikilie mandhari ili uweke mapendeleo"</string>
+ <string name="workspace_cling_longpress_description" msgid="6569028007301925917">"Gusa na ushikilie mandhari ili ubadilishe upendavyo"</string>
<string name="workspace_cling_longpress_dismiss" msgid="368660286867640874">"NIMEELEWA"</string>
<string name="folder_opened" msgid="94695026776264709">"Folda imefunguliwa, <xliff:g id="WIDTH">%1$d</xliff:g> kwa <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
<string name="folder_tap_to_close" msgid="4625795376335528256">"Gonga ili ufunge folda"</string>
diff --git a/src/com/android/launcher3/QsbContainerView.java b/src/com/android/launcher3/QsbContainerView.java
index 0a112d2..f931aba 100644
--- a/src/com/android/launcher3/QsbContainerView.java
+++ b/src/com/android/launcher3/QsbContainerView.java
@@ -18,7 +18,6 @@
import android.app.Activity;
import android.app.Fragment;
-import android.app.FragmentManager;
import android.app.SearchManager;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProviderInfo;
@@ -44,8 +43,6 @@
*/
public class QsbContainerView extends FrameLayout {
- private boolean mBound;
-
public QsbContainerView(Context context) {
super(context);
}
@@ -59,17 +56,6 @@
}
@Override
- protected void onAttachedToWindow() {
- super.onAttachedToWindow();
-
- if (!mBound) {
- FragmentManager fm = ((Launcher) getContext()).getFragmentManager();
- fm.beginTransaction().add(R.id.qsb_container, new QsbFragment()).commit();
- mBound = true;
- }
- }
-
- @Override
public void setPadding(int left, int top, int right, int bottom) {
super.setPadding(0, 0, 0, 0);
}
@@ -103,6 +89,8 @@
getContext().registerReceiver(mRebindReceiver, filter);
}
+ private FrameLayout mWrapper;
+
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -110,7 +98,12 @@
if (savedInstanceState != null) {
sSavedWidgetId = savedInstanceState.getInt(QSB_WIDGET_ID, -1);
}
+ mWrapper = new FrameLayout(getContext());
+ mWrapper.addView(createQsb(inflater, mWrapper));
+ return mWrapper;
+ }
+ private View createQsb(LayoutInflater inflater, ViewGroup container) {
Launcher launcher = (Launcher) getActivity();
mWidgetInfo = getSearchWidgetProvider(launcher);
if (mWidgetInfo == null) {
@@ -222,10 +215,9 @@
}
private void rebindFragment() {
- if (getActivity() != null) {
- // Recreate the fragment. This will cause the qsb to be inflated again.
- getActivity().getFragmentManager().beginTransaction()
- .replace(R.id.qsb_container, new QsbFragment()).commit();
+ if (mWrapper != null && getActivity() != null) {
+ mWrapper.removeAllViews();
+ mWrapper.addView(createQsb(getActivity().getLayoutInflater(), mWrapper));
}
}
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 6f81f59..da262ca 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -73,6 +73,7 @@
import com.android.launcher3.folder.Folder;
import com.android.launcher3.folder.FolderIcon;
import com.android.launcher3.logging.UserEventDispatcher;
+import com.android.launcher3.pageindicators.PageIndicatorLine;
import com.android.launcher3.userevent.nano.LauncherLogProto;
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
import com.android.launcher3.util.LongArrayMap;
@@ -803,6 +804,8 @@
if (stripEmptyScreens) {
stripEmptyScreens();
}
+ // Update the page indicator to reflect the removed page.
+ showPageIndicatorAtCurrentScroll();
}
}
};
@@ -1642,8 +1645,6 @@
if (listener != null) {
getPageIndicator().setOnClickListener(listener);
}
-
- showPageIndicatorAtCurrentScroll();
}
// Update wallpaper dimensions if they were changed since last onResume
@@ -2048,6 +2049,14 @@
@Override
public void onLauncherTransitionStart(Launcher l, boolean animated, boolean toWorkspace) {
+ if (mPageIndicator instanceof PageIndicatorLine) {
+ boolean isNewStateSpringLoaded = mState == State.SPRING_LOADED;
+ ((PageIndicatorLine) mPageIndicator).setShouldAutoHide(!isNewStateSpringLoaded);
+ if (isNewStateSpringLoaded) {
+ // Show the page indicator at the same time as the rest of the transition.
+ showPageIndicatorAtCurrentScroll();
+ }
+ }
}
@Override
@@ -2061,7 +2070,7 @@
updateChildrenLayersEnabled(false);
showCustomContentIfNecessary();
mForceDrawAdjacentPages = false;
- if (mState == State.NORMAL || mState == State.SPRING_LOADED) {
+ if (mState == State.SPRING_LOADED) {
showPageIndicatorAtCurrentScroll();
}
}
diff --git a/src/com/android/launcher3/pageindicators/PageIndicatorLine.java b/src/com/android/launcher3/pageindicators/PageIndicatorLine.java
index a358e7b..aec708c 100644
--- a/src/com/android/launcher3/pageindicators/PageIndicatorLine.java
+++ b/src/com/android/launcher3/pageindicators/PageIndicatorLine.java
@@ -14,7 +14,6 @@
import android.util.AttributeSet;
import android.util.Log;
import android.util.Property;
-import android.view.View;
import android.view.ViewConfiguration;
import com.android.launcher3.Utilities;
@@ -28,16 +27,29 @@
public class PageIndicatorLine extends PageIndicator {
private static final String TAG = "PageIndicatorLine";
- private static final int LINE_FADE_DURATION = ViewConfiguration.getScrollBarFadeDuration();
+ private static final int LINE_ANIMATE_DURATION = ViewConfiguration.getScrollBarFadeDuration();
private static final int LINE_FADE_DELAY = ViewConfiguration.getScrollDefaultDelay();
public static final int WHITE_ALPHA = (int) (0.70f * 255);
public static final int BLACK_ALPHA = (int) (0.65f * 255);
- private final Handler mHandler = new Handler(Looper.getMainLooper());
+ private static final int LINE_ALPHA_ANIMATOR_INDEX = 0;
+ private static final int NUM_PAGES_ANIMATOR_INDEX = 1;
+ private static final int TOTAL_SCROLL_ANIMATOR_INDEX = 2;
- private ValueAnimator mLineAlphaAnimator;
- private int mAlpha = 0;
- private float mProgress = 0f;
+ private ValueAnimator[] mAnimators = new ValueAnimator[3];
+
+ private final Handler mDelayedLineFadeHandler = new Handler(Looper.getMainLooper());
+
+ private boolean mShouldAutoHide = true;
+
+ // The alpha of the line when it is showing.
+ private int mActiveAlpha = 0;
+ // The alpha that the line is being animated to or already at (either 0 or mActiveAlpha).
+ private int mToAlpha;
+ // A float value representing the number of pages, to allow for an animation when it changes.
+ private float mNumPagesFloat;
+ private int mCurrentScroll;
+ private int mTotalScroll;
private Paint mLinePaint;
private static final Property<PageIndicatorLine, Integer> PAINT_ALPHA
@@ -54,6 +66,34 @@
}
};
+ private static final Property<PageIndicatorLine, Float> NUM_PAGES
+ = new Property<PageIndicatorLine, Float>(Float.class, "num_pages") {
+ @Override
+ public Float get(PageIndicatorLine obj) {
+ return obj.mNumPagesFloat;
+ }
+
+ @Override
+ public void set(PageIndicatorLine obj, Float numPages) {
+ obj.mNumPagesFloat = numPages;
+ obj.invalidate();
+ }
+ };
+
+ private static final Property<PageIndicatorLine, Integer> TOTAL_SCROLL
+ = new Property<PageIndicatorLine, Integer>(Integer.class, "total_scroll") {
+ @Override
+ public Integer get(PageIndicatorLine obj) {
+ return obj.mTotalScroll;
+ }
+
+ @Override
+ public void set(PageIndicatorLine obj, Integer totalScroll) {
+ obj.mTotalScroll = totalScroll;
+ obj.invalidate();
+ }
+ };
+
private Runnable mHideLineRunnable = new Runnable() {
@Override
public void run() {
@@ -77,13 +117,15 @@
@Override
protected void onDraw(Canvas canvas) {
- if (mNumPages == 0) {
+ if (mTotalScroll == 0 || mNumPagesFloat == 0) {
return;
}
+ // Compute and draw line rect.
+ float progress = Utilities.boundToRange(((float) mCurrentScroll) / mTotalScroll, 0f, 1f);
int availableWidth = canvas.getWidth();
- int lineWidth = availableWidth / mNumPages;
- int lineLeft = (int) (mProgress * (availableWidth - lineWidth));
+ int lineWidth = (int) (availableWidth / mNumPagesFloat);
+ int lineLeft = (int) (progress * (availableWidth - lineWidth));
int lineRight = lineLeft + lineWidth;
canvas.drawRect(lineLeft, 0, lineRight, canvas.getHeight(), mLinePaint);
}
@@ -93,13 +135,25 @@
if (getAlpha() == 0) {
return;
}
- animateLineToAlpha(mAlpha);
- mProgress = Utilities.boundToRange(((float) currentScroll) / totalScroll, 0f, 1f);;
- invalidate();
+ animateLineToAlpha(mActiveAlpha);
- // Hide after a brief period.
- mHandler.removeCallbacksAndMessages(null);
- mHandler.postDelayed(mHideLineRunnable, LINE_FADE_DELAY);
+ mCurrentScroll = currentScroll;
+ if (mTotalScroll == 0) {
+ mTotalScroll = totalScroll;
+ } else if (mTotalScroll != totalScroll) {
+ animateToTotalScroll(totalScroll);
+ } else {
+ invalidate();
+ }
+
+ if (mShouldAutoHide) {
+ hideAfterDelay();
+ }
+ }
+
+ private void hideAfterDelay() {
+ mDelayedLineFadeHandler.removeCallbacksAndMessages(null);
+ mDelayedLineFadeHandler.postDelayed(mHideLineRunnable, LINE_FADE_DELAY);
}
@Override
@@ -108,7 +162,18 @@
@Override
protected void onPageCountChanged() {
- invalidate();
+ if (Float.compare(mNumPages, mNumPagesFloat) != 0) {
+ animateToNumPages(mNumPages);
+ }
+ }
+
+ public void setShouldAutoHide(boolean shouldAutoHide) {
+ mShouldAutoHide = shouldAutoHide;
+ if (shouldAutoHide && mLinePaint.getAlpha() > 0) {
+ hideAfterDelay();
+ } else if (!shouldAutoHide) {
+ mDelayedLineFadeHandler.removeCallbacksAndMessages(null);
+ }
}
/**
@@ -122,9 +187,9 @@
if (color != Color.TRANSPARENT) {
color = ColorUtils.setAlphaComponent(color, 255);
if (color == Color.BLACK) {
- mAlpha = BLACK_ALPHA;
+ mActiveAlpha = BLACK_ALPHA;
} else if (color == Color.WHITE) {
- mAlpha = WHITE_ALPHA;
+ mActiveAlpha = WHITE_ALPHA;
} else {
Log.e(TAG, "Setting workspace page indicators to an unsupported color: #"
+ Integer.toHexString(color));
@@ -135,22 +200,44 @@
}
private void animateLineToAlpha(int alpha) {
- if (mLineAlphaAnimator != null) {
- // An animation is already running, so ignore the new animation request unless we are
- // trying to hide the line, in which case we always allow the animation.
- if (alpha != 0) {
- return;
- }
- mLineAlphaAnimator.cancel();
+ if (alpha == mToAlpha) {
+ // Ignore the new animation if it is going to the same alpha as the current animation.
+ return;
}
- mLineAlphaAnimator = ObjectAnimator.ofInt(this, PAINT_ALPHA, alpha);
- mLineAlphaAnimator.addListener(new AnimatorListenerAdapter() {
+ mToAlpha = alpha;
+ setupAndRunAnimation(ObjectAnimator.ofInt(this, PAINT_ALPHA, alpha),
+ LINE_ALPHA_ANIMATOR_INDEX);
+ }
+
+ private void animateToNumPages(int numPages) {
+ setupAndRunAnimation(ObjectAnimator.ofFloat(this, NUM_PAGES, numPages),
+ NUM_PAGES_ANIMATOR_INDEX);
+ }
+
+ private void animateToTotalScroll(int totalScroll) {
+ setupAndRunAnimation(ObjectAnimator.ofInt(this, TOTAL_SCROLL, totalScroll),
+ TOTAL_SCROLL_ANIMATOR_INDEX);
+ }
+
+ /**
+ * Starts the given animator and stores it in the provided index in {@link #mAnimators} until
+ * the animation ends.
+ *
+ * If an animator is already at the index (i.e. it is already playing), it is canceled and
+ * replaced with the new animator.
+ */
+ private void setupAndRunAnimation(ValueAnimator animator, final int animatorIndex) {
+ if (mAnimators[animatorIndex] != null) {
+ mAnimators[animatorIndex].cancel();
+ }
+ mAnimators[animatorIndex] = animator;
+ mAnimators[animatorIndex].addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
- mLineAlphaAnimator = null;
+ mAnimators[animatorIndex] = null;
}
});
- mLineAlphaAnimator.setDuration(LINE_FADE_DURATION);
- mLineAlphaAnimator.start();
+ mAnimators[animatorIndex].setDuration(LINE_ANIMATE_DURATION);
+ mAnimators[animatorIndex].start();
}
}