Merge "Fade in LauncherRootView in finishFirstPageBind." into ub-launcher3-edmonton
diff --git a/quickstep/libs/sysui_shared.jar b/quickstep/libs/sysui_shared.jar
index 13f41ee..70e545f 100644
--- a/quickstep/libs/sysui_shared.jar
+++ b/quickstep/libs/sysui_shared.jar
Binary files differ
diff --git a/quickstep/res/layout/overview_clear_all_button.xml b/quickstep/res/layout/overview_clear_all_button.xml
index 1ada914..0dc5d7c 100644
--- a/quickstep/res/layout/overview_clear_all_button.xml
+++ b/quickstep/res/layout/overview_clear_all_button.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<TextView
+<com.android.quickstep.views.ClearAllButton
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/clear_all_button"
style="@android:style/Widget.DeviceDefault.Button.Borderless"
@@ -10,5 +10,6 @@
android:fontFamily="sans-serif-medium"
android:text="@string/recents_clear_all"
android:textColor="?attr/workspaceTextColor"
+ android:visibility="invisible"
android:textSize="14sp"
/>
\ No newline at end of file
diff --git a/quickstep/res/values-az/strings.xml b/quickstep/res/values-az/strings.xml
index 19d0f6b..0546f46 100644
--- a/quickstep/res/values-az/strings.xml
+++ b/quickstep/res/values-az/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Bölünmüş ekran"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Sancın"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Tətbiqləri dəyişmək üçün aşağıdan yuxarı doğru sürüşdürün"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"İcmal"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Son elementlər yoxdur"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Bağlayın"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Hamısını silin"</string>
</resources>
diff --git a/quickstep/res/values-be/strings.xml b/quickstep/res/values-be/strings.xml
index fab5d03..1e60dd3 100644
--- a/quickstep/res/values-be/strings.xml
+++ b/quickstep/res/values-be/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Падзяліць экран"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Замацаваць"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Для пераключэння праграм правядзіце па экране пальцам знізу ўверх"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Агляд"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Няма новых элементаў"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Закрыць"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Ачысціць усё"</string>
</resources>
diff --git a/quickstep/res/values-bn/strings.xml b/quickstep/res/values-bn/strings.xml
index 4856e90..a0605d8 100644
--- a/quickstep/res/values-bn/strings.xml
+++ b/quickstep/res/values-bn/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"স্ক্রিন স্প্লিট করুন"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"পিন করুন"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"অ্যাপগুলির মধ্যে সুইচ করতে উপর থেকে নিচের দিকে সোয়াইপ করুন"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"এক নজরে"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"কোনো সাম্প্রতিক আইটেম নেই"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"বন্ধ করুন"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"সবকিছু খালি করুন"</string>
</resources>
diff --git a/quickstep/res/values-bs/strings.xml b/quickstep/res/values-bs/strings.xml
index fa07794..9ffa848 100644
--- a/quickstep/res/values-bs/strings.xml
+++ b/quickstep/res/values-bs/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Način rada podijeljenog ekrana"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Zakači"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Prevucite od dolje prema gore za promjenu aplikacije"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Pregled"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Nema nedavnih stavki"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Zatvaranje"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Obriši sve"</string>
</resources>
diff --git a/quickstep/res/values-et/strings.xml b/quickstep/res/values-et/strings.xml
index 1b30a01..efa68f9 100644
--- a/quickstep/res/values-et/strings.xml
+++ b/quickstep/res/values-et/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Jagatud ekraan"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Kinnita"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Rakenduste vahetamiseks pühkige alaosast üles"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Ülevaade"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Hiljutisi üksusi pole"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Sule"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Sule kõik"</string>
</resources>
diff --git a/quickstep/res/values-eu/strings.xml b/quickstep/res/values-eu/strings.xml
index e7fc915..d22242e 100644
--- a/quickstep/res/values-eu/strings.xml
+++ b/quickstep/res/values-eu/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Zatitu pantaila"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Ainguratu"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Aplikazioak aldatzeko, pasatu hatza pantailako behealdetik gora"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Ikuspegi orokorra"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Ez dago azkenaldi honetako ezer"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Itxi"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Garbitu guztiak"</string>
</resources>
diff --git a/quickstep/res/values-gl/strings.xml b/quickstep/res/values-gl/strings.xml
index 20de491..8efc773 100644
--- a/quickstep/res/values-gl/strings.xml
+++ b/quickstep/res/values-gl/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Pantalla dividida"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Fixar"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Pasa o dedo cara arriba desde a parte inferior para cambiar de aplicacións"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Visión xeral"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Non hai elementos recentes"</string>
- <string name="accessibility_close_task" msgid="5354563209433803643">"Pechar"</string>
+ <string name="accessibility_close_task" msgid="5354563209433803643">"Pecha a aplicación"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Borrar todo"</string>
</resources>
diff --git a/quickstep/res/values-gu/strings.xml b/quickstep/res/values-gu/strings.xml
index 9337909..cdae86f 100644
--- a/quickstep/res/values-gu/strings.xml
+++ b/quickstep/res/values-gu/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"સ્ક્રીનને વિભાજિત કરો"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"પિન કરો"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"ઍપને સ્વિચ કરવા માટે નીચેથી ઉપર સ્વાઇપ કરો"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"ઝલક"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"તાજેતરની કોઈ આઇટમ નથી"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"બંધ કરો"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"બધું સાફ કરો"</string>
</resources>
diff --git a/quickstep/res/values-hy/strings.xml b/quickstep/res/values-hy/strings.xml
index 94178da..4afae7d 100644
--- a/quickstep/res/values-hy/strings.xml
+++ b/quickstep/res/values-hy/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Տրոհել էկրանը"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Ամրացնել"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Սահեցրեք ներքևից վերև՝ մյուս հավելվածին անցնելու համար"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Ընդհանուր տեղեկություններ"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Վերջին տարրեր չկան"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Փակել"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Փակել բոլորը"</string>
</resources>
diff --git a/quickstep/res/values-is/strings.xml b/quickstep/res/values-is/strings.xml
index 3f89411..88a92ed 100644
--- a/quickstep/res/values-is/strings.xml
+++ b/quickstep/res/values-is/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Skipta skjá"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Festa"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Strjúktu upp til að skipta um forrit"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Yfirlit"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Engin nýleg atriði"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Loka"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Hreinsa allt"</string>
</resources>
diff --git a/quickstep/res/values-ka/strings.xml b/quickstep/res/values-ka/strings.xml
index 729175a..6de8ed9 100644
--- a/quickstep/res/values-ka/strings.xml
+++ b/quickstep/res/values-ka/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"ეკრანის გაყოფა"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"ჩამაგრება"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"აპების გადასართავად გადაფურცლეთ ქვედა კიდედან ზემოთ"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"მიმოხილვა"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"ბოლოს გამოყენებული ერთეულები არ არის"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"დახურვა"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"ყველას გასუფთავება"</string>
</resources>
diff --git a/quickstep/res/values-kk/strings.xml b/quickstep/res/values-kk/strings.xml
index 9894ed3..ddd4a77 100644
--- a/quickstep/res/values-kk/strings.xml
+++ b/quickstep/res/values-kk/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Экранды бөлу"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Бекіту"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Қолданбалар арасында ауысу үшін төменнен жоғары қарай саусақпен сырғытыңыз"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Шолу"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Соңғы элементтер жоқ"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Жабу"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Барлығын өшіру"</string>
</resources>
diff --git a/quickstep/res/values-km/strings.xml b/quickstep/res/values-km/strings.xml
index 71cdbe0..65c1dcc 100644
--- a/quickstep/res/values-km/strings.xml
+++ b/quickstep/res/values-km/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"មុខងារបំបែកអេក្រង់"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"ដៅ"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"អូសពីក្រោមឡើងលើ ដើម្បីប្ដូរកម្មវិធី"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"ទិដ្ឋភាពរួម"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"មិនមានធាតុថ្មីៗទេ"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"បិទ"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"សម្អាតទាំងអស់"</string>
</resources>
diff --git a/quickstep/res/values-kn/strings.xml b/quickstep/res/values-kn/strings.xml
index ab75069..55ccbb0 100644
--- a/quickstep/res/values-kn/strings.xml
+++ b/quickstep/res/values-kn/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"ಪರದೆಯನ್ನು ಬೇರ್ಪಡಿಸಿ"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"ಪಿನ್ ಮಾಡಿ"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಬದಲಿಸಲು ಕೆಳಗಿನಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"ಅವಲೋಕನ"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"ಯಾವುದೇ ಇತ್ತೀಚಿನ ಐಟಂಗಳಿಲ್ಲ"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"ಮುಚ್ಚಿ"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"ಎಲ್ಲವನ್ನೂ ತೆರವುಗೊಳಿಸಿ"</string>
</resources>
diff --git a/quickstep/res/values-ky/strings.xml b/quickstep/res/values-ky/strings.xml
index 44b7abb..b788693 100644
--- a/quickstep/res/values-ky/strings.xml
+++ b/quickstep/res/values-ky/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Экранды бөлүү"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Кадап коюу"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Колдонмолорду которуштуруу үчүн экранды төмөндөн жогору карай сүрүңүз"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Сереп салуу"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Акыркы колдонмолор жок"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Жабуу"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Баарын тазалоо"</string>
</resources>
diff --git a/quickstep/res/values-lo/strings.xml b/quickstep/res/values-lo/strings.xml
index 847dcea..a83743a 100644
--- a/quickstep/res/values-lo/strings.xml
+++ b/quickstep/res/values-lo/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"ແບ່ງໜ້າຈໍ"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"ປັກໝຸດ"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"ປັດຂຶ້ນຈາກລຸ່ມສຸດເພື່ອສະຫຼັບແອັບ"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"ພາບຮວມ"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"ບໍ່ມີລາຍການຫຼ້າສຸດ"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"ປິດ"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"ລຶບລ້າງທັງໝົດ"</string>
</resources>
diff --git a/quickstep/res/values-mk/strings.xml b/quickstep/res/values-mk/strings.xml
index 74dc5aa..e428b4e 100644
--- a/quickstep/res/values-mk/strings.xml
+++ b/quickstep/res/values-mk/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Поделен екран"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Прикачување"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Повлечете нагоре од дното за да ги смените апликациите"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Преглед"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Нема неодамнешни ставки"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Затвори"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Исчисти ги сите"</string>
</resources>
diff --git a/quickstep/res/values-ml/strings.xml b/quickstep/res/values-ml/strings.xml
index b8a4d6e..4cca447 100644
--- a/quickstep/res/values-ml/strings.xml
+++ b/quickstep/res/values-ml/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"സ്ക്രീൻ വിഭജിക്കുക"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"പിൻ ചെയ്യുക"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"ആപ്പുകൾ മാറാൻ താഴെ നിന്ന് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"അവലോകനം"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"സമീപകാല ഇനങ്ങൾ ഒന്നുമില്ല"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"അവസാനിപ്പിക്കുക"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"എല്ലാം മായ്ക്കുക"</string>
</resources>
diff --git a/quickstep/res/values-mn/strings.xml b/quickstep/res/values-mn/strings.xml
index 114c050..f40f69e 100644
--- a/quickstep/res/values-mn/strings.xml
+++ b/quickstep/res/values-mn/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Дэлгэцийг хуваах"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Тогтоох"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Аппыг сэлгэхийн тулд доороос дээш шударна уу"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Тойм"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Сүүлийн үеийн зүйл алга"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Хаах"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Бүгдийг устгах"</string>
</resources>
diff --git a/quickstep/res/values-mr/strings.xml b/quickstep/res/values-mr/strings.xml
index fa80874..938363d 100644
--- a/quickstep/res/values-mr/strings.xml
+++ b/quickstep/res/values-mr/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"विभाजित स्क्रीन"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"पिन करा"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"अॅप्स स्विच करण्यासाठी तळापासून वर स्वाइप करा"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"अवलोकन"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"कोणतेही अलीकडील आयटम नाहीत"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"बंद"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"सर्व साफ करा"</string>
</resources>
diff --git a/quickstep/res/values-ms/strings.xml b/quickstep/res/values-ms/strings.xml
index 0e4fa3f..236fab2 100644
--- a/quickstep/res/values-ms/strings.xml
+++ b/quickstep/res/values-ms/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Skrin pisah"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Semat"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Leret ke atas dari bawah untuk menukar apl"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Ikhtisar"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Tiada item terbaharu"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Tutup"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Kosongkan semua"</string>
</resources>
diff --git a/quickstep/res/values-my/strings.xml b/quickstep/res/values-my/strings.xml
index e10cd4f..e44b904 100644
--- a/quickstep/res/values-my/strings.xml
+++ b/quickstep/res/values-my/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"မျက်နှာပြင် ခွဲ၍ပြသခြင်း"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"ပင်ထိုးခြင်း"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"အက်ပ်များပြောင်းရန် အောက်ခြေမှ အပေါ်သို့ပွတ်ဆွဲပါ"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"အနှစ်ချုပ်"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"မကြာမီကဖွင့်ထားသည်များ မရှိပါ"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"ပိတ်ရန်"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"အားလုံးကို ရှင်းရန်"</string>
</resources>
diff --git a/quickstep/res/values-ne/strings.xml b/quickstep/res/values-ne/strings.xml
index 99f90bb..bf52604 100644
--- a/quickstep/res/values-ne/strings.xml
+++ b/quickstep/res/values-ne/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"स्क्रिन विभाजन गर्नुहोस्"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"पिन गर्नुहोस्"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"अनुप्रयोगहरू बदल्न तलबाट माथितिर स्वाइप गर्नुहोस्"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"परिदृश्य"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"हालसालैको कुनै पनि वस्तु छैन"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"बन्द गर्नुहोस्"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"सबै खाली गर्नुहोस्"</string>
</resources>
diff --git a/quickstep/res/values-pa/strings.xml b/quickstep/res/values-pa/strings.xml
index 6e0c5a2..bc044c8 100644
--- a/quickstep/res/values-pa/strings.xml
+++ b/quickstep/res/values-pa/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"ਪਿੰਨ ਕਰੋ"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"ਐਪਾਂ ਵਿੱਚ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"ਰੂਪ-ਰੇਖਾ"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"ਕੋਈ ਹਾਲੀਆ ਆਈਟਮਾਂ ਨਹੀਂ"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"ਬੰਦ ਕਰੋ"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"ਸਭ ਕਲੀਅਰ ਕਰੋ"</string>
</resources>
diff --git a/quickstep/res/values-si/strings.xml b/quickstep/res/values-si/strings.xml
index d81344f..61bb8ba 100644
--- a/quickstep/res/values-si/strings.xml
+++ b/quickstep/res/values-si/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"බෙදුම් තිරය"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"අමුණන්න"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"යෙදුම් මාරු කිරීම සඳහා පහළ සිට ස්වයිප් කරන්න"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"දළ විශ්ලේෂණය"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"මෑත අයිතම නැත"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"වසන්න"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"සියල්ල හිස් කරන්න"</string>
</resources>
diff --git a/quickstep/res/values-sq/strings.xml b/quickstep/res/values-sq/strings.xml
index 62dbf01..a0c3d78 100644
--- a/quickstep/res/values-sq/strings.xml
+++ b/quickstep/res/values-sq/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Ekrani i ndarë"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Gozhdo"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Rrëshqit larg nga poshtë për të ndryshuar aplikacionet"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Përmbledhja"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Nuk ka asnjë artikull të fundit"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Mbyll"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Pastroji të gjitha"</string>
</resources>
diff --git a/quickstep/res/values-ta/strings.xml b/quickstep/res/values-ta/strings.xml
index 95d233d..0c800ca 100644
--- a/quickstep/res/values-ta/strings.xml
+++ b/quickstep/res/values-ta/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"திரைப் பிரிப்பு"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"பின் செய்தல்"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"ஆப்ஸிற்கு இடையே மாற்றுவதற்கு, கீழிருந்து மேல்நோக்கி ஸ்வைப் செய்க"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"மேலோட்டப் பார்வை"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"சமீபத்தியவை எதுவுமில்லை"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"மூடும்"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"எல்லாம் அழி"</string>
</resources>
diff --git a/quickstep/res/values-te/strings.xml b/quickstep/res/values-te/strings.xml
index 7cd88c8..416fbb8 100644
--- a/quickstep/res/values-te/strings.xml
+++ b/quickstep/res/values-te/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"స్క్రీన్ని విభజించు"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"పిన్ చేయి"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"యాప్లను మార్చడానికి దిగువ నుండి పైకి స్వైప్ చేయండి"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"అవలోకనం"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"ఇటీవలి అంశాలు ఏవీ లేవు"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"మూసివేయండి"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"అన్నీ తీసివేయండి"</string>
</resources>
diff --git a/quickstep/res/values-ur/strings.xml b/quickstep/res/values-ur/strings.xml
index 7285b26..0a546fd 100644
--- a/quickstep/res/values-ur/strings.xml
+++ b/quickstep/res/values-ur/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"اسپلٹ اسکرین وضع"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"پن کریں"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"ایپس کو سوئچ کرنے کیلئے نیچے سے اوپر سوائپ کریں"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"مجموعی جائزہ"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"کوئی حالیہ آئٹم نہیں"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"بند کریں"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"سبھی کو صاف کریں"</string>
</resources>
diff --git a/quickstep/res/values-uz/strings.xml b/quickstep/res/values-uz/strings.xml
index 260798f..efea341 100644
--- a/quickstep/res/values-uz/strings.xml
+++ b/quickstep/res/values-uz/strings.xml
@@ -21,8 +21,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="recent_task_option_split_screen" msgid="5353188922202653570">"Ekranni ikkiga ajratish"</string>
<string name="recent_task_option_pin" msgid="7929860679018978258">"Mahkamlash"</string>
- <string name="recents_swipe_up_onboarding" msgid="1025535041275136564">"Ilovalarni almashtirish uchun pastdan yuqoriga suring"</string>
<string name="accessibility_desc_recent_apps" msgid="1444379410873162882">"Nazar"</string>
<string name="recents_empty_message" msgid="7040467240571714191">"Yaqinda ishlatilgan ilovalar yo‘q"</string>
<string name="accessibility_close_task" msgid="5354563209433803643">"Yopish"</string>
+ <string name="recents_clear_all" msgid="5328176793634888831">"Hammasini tozalash"</string>
</resources>
diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml
index 0199cd9..9e4d60c 100644
--- a/quickstep/res/values/dimens.xml
+++ b/quickstep/res/values/dimens.xml
@@ -48,4 +48,7 @@
<!-- Width of the space behind the last task in Overview. In the center of it, there is "Clear all" button. -->
<dimen name="clear_all_container_width">168dp</dimen>
+
+ <dimen name="shelf_surface_radius">16dp</dimen>
+ <dimen name="shelf_surface_top_padding">4dp</dimen>
</resources>
diff --git a/quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java b/quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java
index bd1cdc6..85ccf29 100644
--- a/quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java
+++ b/quickstep/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java
@@ -64,6 +64,7 @@
import com.android.launcher3.dragndrop.DragLayer;
import com.android.launcher3.graphics.DrawableFactory;
import com.android.launcher3.shortcuts.DeepShortcutView;
+import com.android.quickstep.util.ClipAnimationHelper;
import com.android.quickstep.util.MultiValueUpdateListener;
import com.android.quickstep.util.RemoteAnimationProvider;
import com.android.quickstep.views.RecentsView;
@@ -233,12 +234,16 @@
return false;
}
+ ClipAnimationHelper helper = new ClipAnimationHelper();
+ target.play(getRecentsWindowAnimator(taskView, skipLauncherChanges, targets, helper)
+ .setDuration(RECENTS_LAUNCH_DURATION));
+
Animator childStateAnimation = null;
// Found a visible recents task that matches the opening app, lets launch the app from there
Animator launcherAnim;
final AnimatorListenerAdapter windowAnimEndListener;
if (launcherClosing) {
- launcherAnim = recentsView.createAdjacentPageAnimForTaskLaunch(taskView);
+ launcherAnim = recentsView.createAdjacentPageAnimForTaskLaunch(taskView, helper);
launcherAnim.setInterpolator(Interpolators.TOUCH_RESPONSE_INTERPOLATOR);
launcherAnim.setDuration(RECENTS_LAUNCH_DURATION);
@@ -258,9 +263,6 @@
}
};
}
-
- target.play(getRecentsWindowAnimator(taskView, skipLauncherChanges, targets)
- .setDuration(RECENTS_LAUNCH_DURATION));
target.play(launcherAnim);
// Set the current animation first, before adding windowAnimEndListener. Setting current
diff --git a/quickstep/src/com/android/launcher3/uioverrides/AllAppsScrim.java b/quickstep/src/com/android/launcher3/uioverrides/AllAppsScrim.java
new file mode 100644
index 0000000..3c741b3
--- /dev/null
+++ b/quickstep/src/com/android/launcher3/uioverrides/AllAppsScrim.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.launcher3.uioverrides;
+
+import static com.android.launcher3.anim.Interpolators.ACCEL_2;
+import static com.android.launcher3.anim.Interpolators.DEACCEL_2;
+
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.support.v4.graphics.ColorUtils;
+
+import com.android.launcher3.DeviceProfile;
+import com.android.launcher3.Launcher;
+import com.android.launcher3.R;
+import com.android.launcher3.Utilities;
+import com.android.launcher3.allapps.AllAppsContainerView;
+import com.android.launcher3.graphics.ViewScrim;
+import com.android.launcher3.util.Themes;
+
+/**
+ * Scrim used for all-apps and shelf in Overview
+ * In transposed layout, it behaves as a simple color scrim.
+ * In portrait layout, it draws a rounded rect such that
+ * From normal state to overview state, the shelf just fades in and does not move
+ * From overview state to all-apps state the self moves up and fades in to cover the screen
+ */
+public class AllAppsScrim extends ViewScrim<AllAppsContainerView> {
+
+ private static final int THRESHOLD_ALPHA_DARK = 102;
+ private static final int THRESHOLD_ALPHA_LIGHT = 46;
+
+ private final Launcher mLauncher;
+ private final int mEndColor;
+
+ private int mProgressColor;
+
+ // In transposed layout, we simply draw a flat color.
+ private boolean mDrawingFlatColor;
+
+ private final Paint mVerticalPaint;
+ private float mVerticalProgress;
+
+ private final int mEndAlpha;
+ private final int mThresholdAlpha;
+ private final float mRadius;
+ private final float mTopPadding;
+
+ // Max vertical progress after which the scrim stops moving.
+ private float mMoveThreshold;
+ // Minimum visible size of the scrim.
+ private int mMinSize;
+ private float mDrawFactor = 0;
+
+ public AllAppsScrim(AllAppsContainerView view) {
+ super(view);
+ mLauncher = Launcher.getLauncher(view.getContext());
+ mEndColor = Themes.getAttrColor(mLauncher, R.attr.allAppsScrimColor);
+ mProgressColor = mEndColor;
+
+ mEndAlpha = Color.alpha(mEndColor);
+ mThresholdAlpha = Themes.getAttrBoolean(mLauncher, R.attr.isMainColorDark)
+ ? THRESHOLD_ALPHA_DARK : THRESHOLD_ALPHA_LIGHT;
+ mRadius = mLauncher.getResources().getDimension(R.dimen.shelf_surface_radius);
+ mTopPadding = mLauncher.getResources().getDimension(R.dimen.shelf_surface_top_padding);
+
+ mVerticalPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ mVerticalPaint.setColor(ColorUtils.setAlphaComponent(mEndColor, 255));
+
+ // Just assume the easiest UI for now, until we have the proper layout information.
+ mDrawingFlatColor = true;
+ }
+
+ @Override
+ protected void onProgressChanged() {
+ mProgressColor = ColorUtils.setAlphaComponent(mEndColor,
+ Math.round(DEACCEL_2.getInterpolation(mProgress) * Color.alpha(mEndColor)));
+ }
+
+ @Override
+ public void draw(Canvas canvas, int width, int height) {
+ if (mDrawingFlatColor) {
+ if (mProgress > 0) {
+ canvas.drawColor(mProgressColor);
+ }
+ return;
+ }
+
+ if (mVerticalPaint.getAlpha() == 0) {
+ return;
+ } else if (mDrawFactor <= 0) {
+ canvas.drawPaint(mVerticalPaint);
+ } else {
+ float top = (height - mMinSize) * mDrawFactor - mTopPadding;
+ canvas.drawRoundRect(0, top - mRadius, width, height + mRadius,
+ mRadius, mRadius, mVerticalPaint);
+ }
+ }
+
+ public void reInitUi() {
+ DeviceProfile dp = mLauncher.getDeviceProfile();
+ mDrawingFlatColor = dp.isVerticalBarLayout();
+
+ if (!mDrawingFlatColor) {
+ float swipeLength = OverviewState.getDefaultSwipeHeight(mLauncher);
+ mMoveThreshold = 1 - swipeLength / mLauncher.getAllAppsController().getShiftRange();
+ mMinSize = dp.hotseatBarSizePx + dp.getInsets().bottom;
+ onVerticalProgress(mVerticalProgress);
+ }
+ invalidate();
+ }
+
+ public void onVerticalProgress(float progress) {
+ mVerticalProgress = progress;
+ if (mDrawingFlatColor) {
+ return;
+ }
+
+ float drawFactor;
+ int alpha;
+ if (mVerticalProgress >= mMoveThreshold) {
+ drawFactor = 1;
+ alpha = mVerticalProgress >= 1 ? 0 : Math.round(mThresholdAlpha
+ * ACCEL_2.getInterpolation((1 - mVerticalProgress) / (1 - mMoveThreshold)));
+ } else if (mVerticalProgress <= 0) {
+ drawFactor = 0;
+ alpha = mEndAlpha;
+ } else {
+ drawFactor = mVerticalProgress / mMoveThreshold;
+ alpha = mEndAlpha - Math.round((mEndAlpha - mThresholdAlpha) * drawFactor);
+ }
+ alpha = Utilities.boundToRange(alpha, 0, 255);
+ if (alpha != mVerticalPaint.getAlpha() || drawFactor != mDrawFactor) {
+ mVerticalPaint.setAlpha(alpha);
+ mDrawFactor = drawFactor;
+ invalidate();
+ }
+ }
+
+}
diff --git a/quickstep/src/com/android/quickstep/RecentsActivity.java b/quickstep/src/com/android/quickstep/RecentsActivity.java
index b780a3e..1359b3a 100644
--- a/quickstep/src/com/android/quickstep/RecentsActivity.java
+++ b/quickstep/src/com/android/quickstep/RecentsActivity.java
@@ -51,6 +51,7 @@
import com.android.launcher3.views.BaseDragLayer;
import com.android.quickstep.fallback.FallbackRecentsView;
import com.android.quickstep.fallback.RecentsRootView;
+import com.android.quickstep.util.ClipAnimationHelper;
import com.android.quickstep.views.RecentsViewContainer;
import com.android.quickstep.views.TaskView;
import com.android.systemui.shared.system.ActivityOptionsCompat;
@@ -193,13 +194,14 @@
RemoteAnimationTargetCompat[] targets) {
AnimatorSet target = new AnimatorSet();
boolean activityClosing = taskIsATargetWithMode(targets, getTaskId(), MODE_CLOSING);
- target.play(getRecentsWindowAnimator(taskView, !activityClosing, targets)
+ ClipAnimationHelper helper = new ClipAnimationHelper();
+ target.play(getRecentsWindowAnimator(taskView, !activityClosing, targets, helper)
.setDuration(RECENTS_LAUNCH_DURATION));
// Found a visible recents task that matches the opening app, lets launch the app from there
if (activityClosing) {
Animator adjacentAnimation = mFallbackRecentsView
- .createAdjacentPageAnimForTaskLaunch(taskView);
+ .createAdjacentPageAnimForTaskLaunch(taskView, helper);
adjacentAnimation.setInterpolator(Interpolators.TOUCH_RESPONSE_INTERPOLATOR);
adjacentAnimation.setDuration(RECENTS_LAUNCH_DURATION);
adjacentAnimation.addListener(new AnimatorListenerAdapter() {
diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationInterpolator.java b/quickstep/src/com/android/quickstep/RecentsAnimationInterpolator.java
deleted file mode 100644
index fdeb0c1..0000000
--- a/quickstep/src/com/android/quickstep/RecentsAnimationInterpolator.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.quickstep;
-
-import android.graphics.Rect;
-
-import com.android.launcher3.Utilities;
-
-/**
- * Helper class to interpolate the animation between a task view representation and an actual
- * window.
- */
-public class RecentsAnimationInterpolator {
-
- public static class TaskWindowBounds {
- public float taskScale = 1f;
- public float taskX = 0f;
- public float taskY = 0f;
-
- public float winScale = 1f;
- public float winX = 0f;
- public float winY = 0f;
- public Rect winCrop = new Rect();
-
- @Override
- public String toString() {
- return "taskScale=" + taskScale + " taskX=" + taskX + " taskY=" + taskY
- + " winScale=" + winScale + " winX=" + winX + " winY=" + winY
- + " winCrop=" + winCrop;
- }
- }
-
- private TaskWindowBounds mTmpTaskWindowBounds = new TaskWindowBounds();
- private Rect mTmpInsets = new Rect();
-
- private Rect mWindow;
- private Rect mInsetWindow;
- private Rect mInsets;
- private Rect mTask;
- private Rect mTaskInsets;
- private Rect mThumbnail;
-
- private float mInitialTaskScale;
- private float mInitialTaskTranslationX;
- private float mFinalTaskScale;
- private Rect mScaledTask;
- private Rect mTargetTask;
- private Rect mSrcWindow;
-
- public RecentsAnimationInterpolator(Rect window, Rect insets, Rect task, Rect taskInsets,
- float taskScale, float taskTranslationX) {
- mWindow = window;
- mInsets = insets;
- mTask = task;
- mTaskInsets = taskInsets;
- mInsetWindow = new Rect(window);
- Utilities.insetRect(mInsetWindow, insets);
-
- mThumbnail = new Rect(task);
- Utilities.insetRect(mThumbnail, taskInsets);
- mInitialTaskScale = taskScale;
- mInitialTaskTranslationX = taskTranslationX;
- mFinalTaskScale = (float) mInsetWindow.width() / mThumbnail.width();
- mScaledTask = new Rect(task);
- Utilities.scaleRectAboutCenter(mScaledTask, mFinalTaskScale);
- Rect finalScaledTaskInsets = new Rect(taskInsets);
- Utilities.scaleRect(finalScaledTaskInsets, mFinalTaskScale);
- mTargetTask = new Rect(mInsetWindow);
- mTargetTask.offsetTo(window.left + insets.left - finalScaledTaskInsets.left,
- window.top + insets.top - finalScaledTaskInsets.top);
-
- float initialWinScale = 1f / mFinalTaskScale;
- Rect scaledWindow = new Rect(mInsetWindow);
- Utilities.scaleRectAboutCenter(scaledWindow, initialWinScale);
- Rect scaledInsets = new Rect(insets);
- Utilities.scaleRect(scaledInsets, initialWinScale);
- mSrcWindow = new Rect(scaledWindow);
- mSrcWindow.offsetTo(mThumbnail.left - scaledInsets.left,
- mThumbnail.top - scaledInsets.top);
- }
-
- public TaskWindowBounds interpolate(float t) {
- mTmpTaskWindowBounds.taskScale = Utilities.mapRange(t,
- mInitialTaskScale, mFinalTaskScale);
- mTmpTaskWindowBounds.taskX = Utilities.mapRange(t,
- mInitialTaskTranslationX, mTargetTask.left - mScaledTask.left);
- mTmpTaskWindowBounds.taskY = Utilities.mapRange(t,
- 0, mTargetTask.top - mScaledTask.top);
-
- float taskScale = Utilities.mapRange(t, 1, mFinalTaskScale);
- mTmpTaskWindowBounds.winScale = taskScale / mFinalTaskScale;
- mTmpTaskWindowBounds.winX = Utilities.mapRange(t,
- mSrcWindow.left, 0);
- mTmpTaskWindowBounds.winY = Utilities.mapRange(t,
- mSrcWindow.top, 0);
-
- mTmpInsets.set(mInsets);
- Utilities.scaleRect(mTmpInsets, (1f - t));
- mTmpTaskWindowBounds.winCrop.set(mWindow);
- Utilities.insetRect(mTmpTaskWindowBounds.winCrop, mTmpInsets);
-
- return mTmpTaskWindowBounds;
- }
-}
diff --git a/quickstep/src/com/android/quickstep/TaskSystemShortcut.java b/quickstep/src/com/android/quickstep/TaskSystemShortcut.java
index 7c69a8d..228af8e 100644
--- a/quickstep/src/com/android/quickstep/TaskSystemShortcut.java
+++ b/quickstep/src/com/android/quickstep/TaskSystemShortcut.java
@@ -27,7 +27,6 @@
import android.os.UserHandle;
import android.util.Log;
import android.view.View;
-import android.view.ViewTreeObserver.OnPreDrawListener;
import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.BaseDraggingActivity;
@@ -153,8 +152,13 @@
AbstractFloatingView.closeOpenViews(activity, true,
AbstractFloatingView.TYPE_ALL & ~AbstractFloatingView.TYPE_REBIND_SAFE);
+ final int navBarPosition = WindowManagerWrapper.getInstance().getNavBarPosition();
+ if (navBarPosition == WindowManagerWrapper.NAV_BAR_POS_INVALID) {
+ return;
+ }
+ boolean dockTopOrLeft = navBarPosition != WindowManagerWrapper.NAV_BAR_POS_LEFT;
if (ActivityManagerWrapper.getInstance().startActivityFromRecents(taskId,
- ActivityOptionsCompat.makeSplitScreenOptions(true))) {
+ ActivityOptionsCompat.makeSplitScreenOptions(dockTopOrLeft))) {
ISystemUiProxy sysUiProxy = RecentsModel.getInstance(activity).getSystemUiProxy();
try {
sysUiProxy.onSplitScreenInvoked();
@@ -234,7 +238,7 @@
Log.w(TAG, "Failed to start screen pinning: ", e);
}
} else {
- Log.w(TAG, taskView.getLaunchTaskFailedMsg());
+ taskView.notifyTaskLaunchFailed(TAG);
}
};
taskView.launchTask(true, resultCallback, mHandler);
diff --git a/quickstep/src/com/android/quickstep/TaskUtils.java b/quickstep/src/com/android/quickstep/TaskUtils.java
index 559236d..f9628d7 100644
--- a/quickstep/src/com/android/quickstep/TaskUtils.java
+++ b/quickstep/src/com/android/quickstep/TaskUtils.java
@@ -27,8 +27,7 @@
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
-import android.graphics.Matrix;
-import android.graphics.Rect;
+import android.graphics.RectF;
import android.os.UserHandle;
import android.util.Log;
import android.view.Surface;
@@ -36,17 +35,17 @@
import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.ItemInfo;
+import com.android.launcher3.Utilities;
import com.android.launcher3.compat.LauncherAppsCompat;
import com.android.launcher3.compat.UserManagerCompat;
import com.android.launcher3.util.ComponentKey;
-import com.android.quickstep.RecentsAnimationInterpolator.TaskWindowBounds;
+import com.android.quickstep.util.ClipAnimationHelper;
import com.android.quickstep.util.MultiValueUpdateListener;
-import com.android.quickstep.util.RemoteAnimationProvider;
+import com.android.quickstep.util.RemoteAnimationTargetSet;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.TaskView;
import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.system.RemoteAnimationTargetCompat;
-import com.android.systemui.shared.system.TransactionCompat;
/**
* Contains helpful methods for retrieving data from {@link Task}s.
@@ -136,74 +135,64 @@
return taskView;
}
-
/**
* @return Animator that controls the window of the opening targets for the recents launch
* animation.
*/
public static ValueAnimator getRecentsWindowAnimator(TaskView v, boolean skipViewChanges,
- RemoteAnimationTargetCompat[] targets) {
- final RecentsAnimationInterpolator recentsInterpolator = v.getRecentsInterpolator();
-
- Rect crop = new Rect();
- Matrix matrix = new Matrix();
-
- ValueAnimator appAnimator = ValueAnimator.ofFloat(0, 1);
+ RemoteAnimationTargetCompat[] targets, final ClipAnimationHelper inOutHelper) {
+ final ValueAnimator appAnimator = ValueAnimator.ofFloat(0, 1);
appAnimator.setInterpolator(TOUCH_RESPONSE_INTERPOLATOR);
appAnimator.addUpdateListener(new MultiValueUpdateListener() {
// Defer fading out the view until after the app window gets faded in
- FloatProp mViewAlpha = new FloatProp(1f, 0f, 75, 75, LINEAR);
- FloatProp mTaskAlpha = new FloatProp(0f, 1f, 0, 75, LINEAR);
+ final FloatProp mViewAlpha = new FloatProp(1f, 0f, 75, 75, LINEAR);
+ final FloatProp mTaskAlpha = new FloatProp(0f, 1f, 0, 75, LINEAR);
- boolean isFirstFrame = true;
+ final RemoteAnimationTargetSet mTargetSet;
+
+ final RectF mThumbnailRect;
+ private Surface mSurface;
+ private long mFrameNumber;
+
+ {
+ mTargetSet = new RemoteAnimationTargetSet(targets, MODE_OPENING);
+ inOutHelper.setTaskTransformCallback((t, app) -> {
+ t.setAlpha(app.leash, mTaskAlpha.value);
+
+ if (!skipViewChanges) {
+ t.deferTransactionUntil(app.leash, mSurface, mFrameNumber);
+ }
+ });
+
+ inOutHelper.prepareAnimation(true /* isOpening */);
+ inOutHelper.fromTaskThumbnailView(v.getThumbnail(), (RecentsView) v.getParent(),
+ mTargetSet.apps.length == 0 ? null : mTargetSet.apps[0]);
+
+ mThumbnailRect = new RectF(inOutHelper.getTargetRect());
+ mThumbnailRect.offset(-v.getTranslationX(), -v.getTranslationY());
+ Utilities.scaleRectFAboutCenter(mThumbnailRect, 1 / v.getScaleX());
+ }
@Override
public void onUpdate(float percent) {
- final Surface surface = getSurface(v);
- final long frameNumber = surface != null ? getNextFrameNumber(surface) : -1;
- if (frameNumber == -1) {
+ mSurface = getSurface(v);
+ mFrameNumber = mSurface != null ? getNextFrameNumber(mSurface) : -1;
+ if (mFrameNumber == -1) {
// Booo, not cool! Our surface got destroyed, so no reason to animate anything.
Log.w(TAG, "Failed to animate, surface got destroyed.");
return;
}
- TaskWindowBounds tw = recentsInterpolator.interpolate(percent);
+ RectF taskBounds = inOutHelper.applyTransform(mTargetSet, 1 - percent);
if (!skipViewChanges) {
- v.setScaleX(tw.taskScale);
- v.setScaleY(tw.taskScale);
- v.setTranslationX(tw.taskX);
- v.setTranslationY(tw.taskY);
+ float scale = taskBounds.width() / mThumbnailRect.width();
+ v.setScaleX(scale);
+ v.setScaleY(scale);
+ v.setTranslationX(taskBounds.centerX() - mThumbnailRect.centerX());
+ v.setTranslationY(taskBounds.centerY() - mThumbnailRect.centerY());
v.setAlpha(mViewAlpha.value);
}
-
- matrix.setScale(tw.winScale, tw.winScale);
- matrix.postTranslate(tw.winX, tw.winY);
- crop.set(tw.winCrop);
-
- TransactionCompat t = new TransactionCompat();
- if (isFirstFrame) {
- RemoteAnimationProvider.prepareTargetsForFirstFrame(targets, t, MODE_OPENING);
- isFirstFrame = false;
- }
- for (RemoteAnimationTargetCompat target : targets) {
- if (target.mode == RemoteAnimationTargetCompat.MODE_OPENING) {
- t.setAlpha(target.leash, mTaskAlpha.value);
-
- // TODO: This isn't correct at the beginning of the animation, but better
- // than nothing.
- matrix.postTranslate(target.position.x, target.position.y);
- t.setMatrix(target.leash, matrix);
- t.setWindowCrop(target.leash, crop);
-
- if (!skipViewChanges) {
- t.deferTransactionUntil(target.leash, surface, frameNumber);
- }
- }
- }
- t.apply();
-
- matrix.reset();
}
});
return appAnimator;
diff --git a/quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java b/quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java
index 8b9903d..5e21467 100644
--- a/quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java
+++ b/quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java
@@ -20,13 +20,16 @@
import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.MODE_CLOSING;
import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.MODE_OPENING;
+import android.annotation.TargetApi;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Matrix.ScaleToFit;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
+import android.os.Build;
import android.os.RemoteException;
+import android.support.annotation.Nullable;
import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.DeviceProfile;
@@ -42,9 +45,12 @@
import com.android.systemui.shared.system.TransactionCompat;
import com.android.systemui.shared.system.WindowManagerWrapper;
+import java.util.function.BiConsumer;
+
/**
* Utility class to handle window clip animation
*/
+@TargetApi(Build.VERSION_CODES.P)
public class ClipAnimationHelper {
// The bounds of the source app in device coordinates
@@ -78,13 +84,21 @@
// Wether or not applyTransform has been called yet since prepareAnimation()
private boolean mIsFirstFrame = true;
- public void updateSource(Rect homeStackBounds, RemoteAnimationTargetCompat target) {
- mHomeStackBounds.set(homeStackBounds);
+ private BiConsumer<TransactionCompat, RemoteAnimationTargetCompat> mTaskTransformCallback =
+ (t, a) -> { };
+
+ private void updateSourceStack(RemoteAnimationTargetCompat target) {
mSourceInsets.set(target.contentInsets);
mSourceStackBounds.set(target.sourceContainerBounds);
// TODO: Should sourceContainerBounds already have this offset?
mSourceStackBounds.offsetTo(target.position.x, target.position.y);
+
+ }
+
+ public void updateSource(Rect homeStackBounds, RemoteAnimationTargetCompat target) {
+ mHomeStackBounds.set(homeStackBounds);
+ updateSourceStack(target);
}
public void updateTargetRect(Rect targetRect) {
@@ -116,7 +130,7 @@
mBoostModeTargetLayers = isOpening ? MODE_OPENING : MODE_CLOSING;
}
- public void applyTransform(RemoteAnimationTargetSet targetSet, float progress) {
+ public RectF applyTransform(RemoteAnimationTargetSet targetSet, float progress) {
RectF currentRect;
mTmpRectF.set(mTargetRect);
Utilities.scaleRectFAboutCenter(mTmpRectF, mTargetScale);
@@ -153,8 +167,16 @@
|| app.activityType == RemoteAnimationTargetCompat.ACTIVITY_TYPE_HOME) {
transaction.setAlpha(app.leash, 1 - progress);
}
+
+ mTaskTransformCallback.accept(transaction, app);
}
transaction.apply();
+ return currentRect;
+ }
+
+ public void setTaskTransformCallback
+ (BiConsumer<TransactionCompat, RemoteAnimationTargetCompat> callback) {
+ mTaskTransformCallback = callback;
}
public void offsetTarget(float scale, float offsetX, float offsetY) {
@@ -165,6 +187,11 @@
}
public void fromTaskThumbnailView(TaskThumbnailView ttv, RecentsView rv) {
+ fromTaskThumbnailView(ttv, rv, null);
+ }
+
+ public void fromTaskThumbnailView(TaskThumbnailView ttv, RecentsView rv,
+ @Nullable RemoteAnimationTargetCompat target) {
BaseDraggingActivity activity = BaseDraggingActivity.fromContext(ttv.getContext());
BaseDragLayer dl = activity.getDragLayer();
@@ -173,7 +200,9 @@
mHomeStackBounds.set(0, 0, dl.getWidth(), dl.getHeight());
mHomeStackBounds.offset(pos[0], pos[1]);
- if (rv.shouldUseMultiWindowTaskSizeStrategy()) {
+ if (target != null) {
+ updateSourceStack(target);
+ } else if (rv.shouldUseMultiWindowTaskSizeStrategy()) {
updateStackBoundsToMultiWindowTaskSize(activity);
} else {
mSourceStackBounds.set(mHomeStackBounds);
@@ -226,7 +255,6 @@
insets.top + fullDp.availableHeightPx - taskHeight);
}
-
public void drawForProgress(TaskThumbnailView ttv, Canvas canvas, float progress) {
RectF currentRect = mRectFEvaluator.evaluate(progress, mSourceRect, mTargetRect);
canvas.translate(mSourceStackBounds.left - mHomeStackBounds.left,
@@ -244,4 +272,12 @@
ttv.getMeasuredHeight() + mSourceWindowClipInsets.bottom * insetProgress,
ttv.getCornerRadius() * progress);
}
+
+ public RectF getTargetRect() {
+ return mTargetRect;
+ }
+
+ public RectF getSourceRect() {
+ return mSourceRect;
+ }
}
diff --git a/quickstep/src/com/android/quickstep/util/LayoutUtils.java b/quickstep/src/com/android/quickstep/util/LayoutUtils.java
index aeaebea..b1fa5e2 100644
--- a/quickstep/src/com/android/quickstep/util/LayoutUtils.java
+++ b/quickstep/src/com/android/quickstep/util/LayoutUtils.java
@@ -38,7 +38,14 @@
private @interface MultiWindowStrategy {}
public static void calculateLauncherTaskSize(Context context, DeviceProfile dp, Rect outRect) {
- float extraSpace = dp.isVerticalBarLayout() ? 0 : dp.hotseatBarSizePx;
+ float extraSpace;
+ if (dp.isVerticalBarLayout()) {
+ extraSpace = 0;
+ } else {
+ Resources res = context.getResources();
+ extraSpace = dp.hotseatBarSizePx + res.getDimension(R.dimen.shelf_surface_top_padding)
+ + res.getDimension(R.dimen.shelf_surface_radius);
+ }
calculateTaskSize(context, dp, extraSpace, MULTI_WINDOW_STRATEGY_HALF_SCREEN, outRect);
}
diff --git a/quickstep/src/com/android/quickstep/util/TaskViewDrawable.java b/quickstep/src/com/android/quickstep/util/TaskViewDrawable.java
index e1910a6..8549df3 100644
--- a/quickstep/src/com/android/quickstep/util/TaskViewDrawable.java
+++ b/quickstep/src/com/android/quickstep/util/TaskViewDrawable.java
@@ -87,6 +87,10 @@
canvas.restore();
}
+ public ClipAnimationHelper getClipAnimationHelper() {
+ return mClipAnimationHelper;
+ }
+
@Override
public void setAlpha(int i) { }
diff --git a/quickstep/src/com/android/quickstep/views/ClearAllButton.java b/quickstep/src/com/android/quickstep/views/ClearAllButton.java
new file mode 100644
index 0000000..14867ab
--- /dev/null
+++ b/quickstep/src/com/android/quickstep/views/ClearAllButton.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.quickstep.views;
+
+import static android.view.accessibility.AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.util.AttributeSet;
+import android.view.accessibility.AccessibilityNodeInfo;
+import android.widget.TextView;
+
+public class ClearAllButton extends TextView {
+ RecentsView mRecentsView;
+
+ public ClearAllButton(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public void setRecentsView(RecentsView recentsView) {
+ mRecentsView = recentsView;
+ }
+
+ @Override
+ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
+ super.onInitializeAccessibilityNodeInfo(info);
+ // Should be visible to accessibility even when completely covered by the task.
+ // Otherwise, we won't be able to scroll to it.
+ info.setVisibleToUser(true);
+ }
+
+ @Override
+ public boolean performAccessibilityAction(int action, Bundle arguments) {
+ final boolean res = super.performAccessibilityAction(action, arguments);
+ if (action == ACTION_ACCESSIBILITY_FOCUS) {
+ mRecentsView.revealClearAllButton();
+ }
+ return res;
+ }
+}
diff --git a/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java b/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java
index 90749eb..e237500 100644
--- a/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java
@@ -36,6 +36,7 @@
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherState;
import com.android.quickstep.OverviewInteractionState;
+import com.android.quickstep.util.ClipAnimationHelper;
import com.android.quickstep.util.LayoutUtils;
/**
@@ -116,8 +117,9 @@
* Animates adjacent tasks and translate hotseat off screen as well.
*/
@Override
- public AnimatorSet createAdjacentPageAnimForTaskLaunch(TaskView tv) {
- AnimatorSet anim = super.createAdjacentPageAnimForTaskLaunch(tv);
+ public AnimatorSet createAdjacentPageAnimForTaskLaunch(TaskView tv,
+ ClipAnimationHelper helper) {
+ AnimatorSet anim = super.createAdjacentPageAnimForTaskLaunch(tv, helper);
if (!OverviewInteractionState.getInstance(mActivity).isSwipeUpGestureEnabled()) {
// Hotseat doesn't move when opening recents with the button,
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 51b787b..6e70a55 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -65,9 +65,9 @@
import com.android.launcher3.util.Themes;
import com.android.quickstep.OverviewCallbacks;
import com.android.quickstep.QuickScrubController;
-import com.android.quickstep.RecentsAnimationInterpolator.TaskWindowBounds;
import com.android.quickstep.RecentsModel;
import com.android.quickstep.TaskUtils;
+import com.android.quickstep.util.ClipAnimationHelper;
import com.android.quickstep.util.TaskViewDrawable;
import com.android.systemui.shared.recents.model.RecentsTaskLoadPlan;
import com.android.systemui.shared.recents.model.RecentsTaskLoader;
@@ -144,6 +144,14 @@
// TODO: Re-enable layout transitions for addition of the unpinned task
reloadIfNeeded();
}
+
+ @Override
+ public void onTaskRemoved(int taskId) {
+ TaskView taskView = getTaskView(taskId);
+ if (taskView != null) {
+ dismissTask(taskView, true /* animate */, false /* removeTask */);
+ }
+ }
};
private int mLoadPlanId = -1;
@@ -264,6 +272,7 @@
loader.unloadTaskData(task);
loader.getHighResThumbnailLoader().onTaskInvisible(task);
}
+ onChildViewsChanged();
}
public boolean isTaskViewVisible(TaskView tv) {
@@ -304,7 +313,7 @@
private float calculateClearAllButtonAlpha() {
final int childCount = getChildCount();
- if (mClearAllButton.getVisibility() != View.VISIBLE || childCount == 0) return 0;
+ if (mShowEmptyMessage || childCount == 0) return 0;
// Current visible coordinate of the end of the oldest task.
final View lastChild = getChildAt(childCount - 1);
@@ -356,7 +365,8 @@
private void updateClearAllButtonAlpha() {
if (mClearAllButton != null) {
- mClearAllButton.setAlpha(calculateClearAllButtonAlpha() * mContentAlpha);
+ final float alpha = calculateClearAllButtonAlpha();
+ mClearAllButton.setAlpha(alpha * mContentAlpha);
}
}
@@ -369,7 +379,7 @@
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN && mTouchState == TOUCH_STATE_REST
- && mScroller.isFinished() && mClearAllButton.getVisibility() == View.VISIBLE) {
+ && mScroller.isFinished() && mClearAllButton.getAlpha() > 0) {
mClearAllButton.getHitRect(mTempRect);
mTempRect.offset(-getLeft(), -getTop());
if (mTempRect.contains((int) ev.getX(), (int) ev.getY())) {
@@ -1009,6 +1019,7 @@
super.onViewAdded(child);
child.setAlpha(mContentAlpha);
setAdjacentScale(mAdjacentScale);
+ onChildViewsChanged();
}
@Override
@@ -1027,9 +1038,6 @@
mShowEmptyMessage = isEmpty;
updateEmptyStateUi(hasSizeChanged);
invalidate();
- if (mClearAllButton != null) {
- updateClearAllButtonVisibility();
- }
}
@Override
@@ -1044,7 +1052,7 @@
mEmptyTextLayout = null;
mLastMeasureSize.set(getWidth(), getHeight());
}
- updateClearAllButtonVisibility();
+ updateClearAllButtonAlpha();
if (!mShowEmptyMessage) return;
@@ -1096,17 +1104,18 @@
* If launching one of the adjacent tasks, parallax the center task and other adjacent task
* to the right.
*/
- public AnimatorSet createAdjacentPageAnimForTaskLaunch(TaskView tv) {
+ public AnimatorSet createAdjacentPageAnimForTaskLaunch(
+ TaskView tv, ClipAnimationHelper clipAnimationHelper) {
AnimatorSet anim = new AnimatorSet();
int taskIndex = indexOfChild(tv);
int centerTaskIndex = getCurrentPage();
boolean launchingCenterTask = taskIndex == centerTaskIndex;
- TaskWindowBounds endInterpolation = tv.getRecentsInterpolator().interpolate(1);
- float toScale = endInterpolation.taskScale;
- float toTranslationY = endInterpolation.taskY;
-
+ float toScale = clipAnimationHelper.getSourceRect().width()
+ / clipAnimationHelper.getTargetRect().width();
+ float toTranslationY = clipAnimationHelper.getSourceRect().centerY()
+ - clipAnimationHelper.getTargetRect().centerY();
if (launchingCenterTask) {
TaskView centerTask = getPageAt(centerTaskIndex);
if (taskIndex - 1 >= 0) {
@@ -1153,11 +1162,10 @@
if (FeatureFlags.IS_DOGFOOD_BUILD && mPendingAnimation != null) {
throw new IllegalStateException("Another pending animation is still running");
}
- AnimatorSet anim = createAdjacentPageAnimForTaskLaunch(tv);
int count = getChildCount();
if (count == 0) {
- return new PendingAnimation(anim);
+ return new PendingAnimation(new AnimatorSet());
}
tv.setVisibility(INVISIBLE);
@@ -1168,6 +1176,8 @@
ObjectAnimator.ofFloat(drawable, TaskViewDrawable.PROGRESS, 1, 0);
drawableAnim.setInterpolator(LINEAR);
+ AnimatorSet anim = createAdjacentPageAnimForTaskLaunch(tv,
+ drawable.getClipAnimationHelper());
anim.play(drawableAnim);
anim.setDuration(duration);
@@ -1176,7 +1186,7 @@
tv.setVisibility(VISIBLE);
getOverlay().remove(drawable);
if (!result) {
- Log.w(TAG, tv.getLaunchTaskFailedMsg());
+ tv.notifyTaskLaunchFailed(TAG);
}
};
@@ -1238,14 +1248,19 @@
return mIsRtl ? additionalScrollForClearAllButton() : 0;
}
- private void updateClearAllButtonVisibility() {
- if (mClearAllButton == null) return;
- mClearAllButton.setVisibility(mShowEmptyMessage ? GONE : VISIBLE);
+ public void setClearAllButton(View clearAllButton) {
+ mClearAllButton = clearAllButton;
updateClearAllButtonAlpha();
}
- public void setClearAllButton(View clearAllButton) {
- mClearAllButton = clearAllButton;
- updateClearAllButtonVisibility();
+ private void onChildViewsChanged() {
+ final int childCount = getChildCount();
+ mClearAllButton.setAccessibilityTraversalAfter(
+ childCount == 0 ? NO_ID : getChildAt(childCount - 1).getId());
+ mClearAllButton.setVisibility(childCount == 0 ? INVISIBLE : VISIBLE);
+ }
+
+ public void revealClearAllButton() {
+ scrollTo(mIsRtl ? 0 : computeMaxScrollX(), 0);
}
}
diff --git a/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java b/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java
index 15925b5..a951de9 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsViewContainer.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package com.android.quickstep.views;
import static com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch.TAP;
@@ -9,7 +25,6 @@
import android.util.FloatProperty;
import android.view.Gravity;
import android.view.MotionEvent;
-import android.view.View;
import com.android.launcher3.InsettableFrameLayout;
import com.android.launcher3.R;
@@ -31,7 +46,7 @@
private final Rect mTempRect = new Rect();
private RecentsView mRecentsView;
- private View mClearAllButton;
+ private ClearAllButton mClearAllButton;
public RecentsViewContainer(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -48,13 +63,15 @@
mRecentsView.dismissAllTasks();
});
- mRecentsView = (RecentsView) findViewById(R.id.overview_panel);
+ mRecentsView = findViewById(R.id.overview_panel);
final InsettableFrameLayout.LayoutParams params =
(InsettableFrameLayout.LayoutParams) mClearAllButton.getLayoutParams();
params.gravity = Gravity.TOP | (RecentsView.FLIP_RECENTS ? Gravity.START : Gravity.END);
mClearAllButton.setLayoutParams(params);
mClearAllButton.forceHasOverlappingRendering(false);
+
mRecentsView.setClearAllButton(mClearAllButton);
+ mClearAllButton.setRecentsView(mRecentsView);
}
@Override
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index a9b24e5..a7527a6 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -16,6 +16,7 @@
package com.android.quickstep.views;
+import static android.widget.Toast.LENGTH_SHORT;
import static com.android.quickstep.views.TaskThumbnailView.DIM_ALPHA;
import android.animation.Animator;
@@ -26,7 +27,6 @@
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Outline;
-import android.graphics.Rect;
import android.os.Bundle;
import android.os.Handler;
import android.util.AttributeSet;
@@ -37,13 +37,12 @@
import android.widget.FrameLayout;
import android.widget.ImageView;
+import android.widget.Toast;
import com.android.launcher3.BaseActivity;
import com.android.launcher3.BaseDraggingActivity;
-import com.android.launcher3.DeviceProfile;
import com.android.launcher3.R;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Direction;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch;
-import com.android.quickstep.RecentsAnimationInterpolator;
import com.android.quickstep.TaskSystemShortcut;
import com.android.quickstep.TaskUtils;
import com.android.quickstep.views.RecentsView.PageCallbacks;
@@ -141,7 +140,7 @@
public void launchTask(boolean animate) {
launchTask(animate, (result) -> {
if (!result) {
- Log.w(TAG, getLaunchTaskFailedMsg());
+ notifyTaskLaunchFailed(TAG);
}
}, getHandler());
}
@@ -231,6 +230,13 @@
setScaleY(mCurveScale);
}
+ @Override
+ protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+ super.onLayout(changed, left, top, right, bottom);
+ setPivotX((right - left) * 0.5f);
+ setPivotY(mSnapshotView.getTop() + mSnapshotView.getHeight() * 0.5f);
+ }
+
public float getCurveScaleForInterpolation(float linearInterpolation) {
float curveInterpolation = CURVE_INTERPOLATOR.getInterpolation(linearInterpolation);
return getCurveScaleForCurveInterpolation(curveInterpolation);
@@ -250,23 +256,6 @@
return false;
}
- public RecentsAnimationInterpolator getRecentsInterpolator() {
- Rect taskViewBounds = new Rect();
- BaseDraggingActivity activity = BaseDraggingActivity.fromContext(getContext());
- DeviceProfile dp = activity.getDeviceProfile();
- activity.getDragLayer().getDescendantRectRelativeToSelf(this, taskViewBounds);
-
- // TODO: Use the actual target insets instead of the current thumbnail insets in case the
- // device state has changed
- return new RecentsAnimationInterpolator(
- new Rect(0, 0, dp.widthPx, dp.heightPx),
- getThumbnail().getInsets(),
- taskViewBounds,
- new Rect(0, getThumbnail().getTop(), 0, 0),
- getScaleX(),
- getTranslationX());
- }
-
private static final class TaskOutlineProvider extends ViewOutlineProvider {
private final int mMarginTop;
@@ -325,11 +314,12 @@
return super.performAccessibilityAction(action, arguments);
}
- public String getLaunchTaskFailedMsg() {
+ public void notifyTaskLaunchFailed(String tag) {
String msg = "Failed to launch task";
if (mTask != null) {
msg += " (task=" + mTask.key.baseIntent + " userId=" + mTask.key.userId + ")";
}
- return msg;
+ Log.w(tag, msg);
+ Toast.makeText(getContext(), R.string.activity_not_available, LENGTH_SHORT).show();
}
}
diff --git a/res/layout/search_container_all_apps.xml b/res/layout/search_container_all_apps.xml
index 14d7b53..fd9cb60 100644
--- a/res/layout/search_container_all_apps.xml
+++ b/res/layout/search_container_all_apps.xml
@@ -20,7 +20,6 @@
android:layout_height="@dimen/all_apps_search_bar_field_height"
android:layout_centerHorizontal="true"
android:layout_gravity="top|center_horizontal"
- android:layout_marginTop="8dp"
android:background="@drawable/bg_all_apps_searchbox"
android:elevation="1dp"
android:focusableInTouchMode="true"
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index a0a1f57..ed86f91 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"Divar kağızları"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Home ayarları"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Admininiz tərəfindən deaktiv edilib"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Əsas ekranın firlanmağına icazə verin"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Telefon çevrilən zaman"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Bildiriş nişanı"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Aktiv"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Deaktiv"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index a1f1d89..399ae76 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -83,6 +83,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"Шпалеры"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Налады галоўнага экрана"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Адключаная адміністратарам"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Дазволіць паварот галоўнага экрана"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Пры павароце тэлефона"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Значкі апавяшчэнняў"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Уключана"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Выключана"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index a0e4812..ffeeed7 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -77,10 +77,12 @@
<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="8873672322605444408">"হোম এর সেটিংস"</string>
+ <string name="settings_button_text" msgid="8873672322605444408">"হোম সেটিংস"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"আপনার প্রশাসক দ্বারা অক্ষম করা হয়েছে"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"হোমস্ক্রীন ঘোরানোর অনুমতি দিন"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"যখন ফোনটি ঘোরানো হয়"</string>
<string name="icon_badging_title" msgid="874121399231955394">"বিজ্ঞপ্তি ডট"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"চালু হয়েছে"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"বন্ধ আছে"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 7eeb652..40c8866 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -80,8 +80,10 @@
<string name="folder_name_format" msgid="6629239338071103179">"Folder: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="widget_button_text" msgid="2880537293434387943">"Dodaci"</string>
<string name="wallpaper_button_text" msgid="8404103075899945851">"Pozadinske slike"</string>
- <string name="settings_button_text" msgid="8873672322605444408">"Postavke za Home"</string>
+ <string name="settings_button_text" msgid="8873672322605444408">"Postavke početnog ekrana"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Onemogućio vaš administrator"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Dozvoli rotiranje početnog ekrana"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Kada se telefon zarotira"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Tačke za obavještenja"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Uključeno"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Isključeno"</string>
@@ -101,7 +103,7 @@
<string name="icon_shape_override_progress" msgid="3461735694970239908">"Primjenjivanje promjena oblika ikona"</string>
<string name="package_state_unknown" msgid="7592128424511031410">"Nepoznato"</string>
<string name="abandoned_clean_this" msgid="7610119707847920412">"Ukloni"</string>
- <string name="abandoned_search" msgid="891119232568284442">"Traži"</string>
+ <string name="abandoned_search" msgid="891119232568284442">"Pretraži"</string>
<string name="abandoned_promises_title" msgid="7096178467971716750">"Ova aplikacija nije instalirana"</string>
<string name="abandoned_promise_explanation" msgid="3990027586878167529">"Aplikacija za ovu ikonu nije instalirana. Možete je ukloniti ili potražiti aplikaciju i ručno je instalirati."</string>
<string name="app_downloading_title" msgid="8336702962104482644">"<xliff:g id="NAME">%1$s</xliff:g> se preuzima, završeno <xliff:g id="PROGRESS">%2$s</xliff:g>"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 2946076..1bde8aa 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -79,8 +79,10 @@
<string name="folder_name_format" msgid="6629239338071103179">"Kaust: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="widget_button_text" msgid="2880537293434387943">"Vidinad"</string>
<string name="wallpaper_button_text" msgid="8404103075899945851">"Taustapildid"</string>
- <string name="settings_button_text" msgid="8873672322605444408">"Avalehe seaded"</string>
+ <string name="settings_button_text" msgid="8873672322605444408">"Avaekraani seaded"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Keelas administraator"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Luba avaekraani pööramine"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Kui telefoni pööratakse"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Märguandetäpid"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Sees"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Väljas"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index c3099bd..128c6f4 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -81,13 +81,15 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"Horma-paperak"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Hasierako pantailaren ezarpenak"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Administratzaileak desgaitu du"</string>
- <string name="icon_badging_title" msgid="874121399231955394">"Jakinarazteko biribiltxoak"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Baimendu hasierako pantaila biratzea"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Telefonoa biratzen denean"</string>
+ <string name="icon_badging_title" msgid="874121399231955394">"Jakinarazpen-biribiltxoak"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Aktibatuta"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Desaktibatuta"</string>
<string name="title_missing_notification_access" msgid="7503287056163941064">"Jakinarazpenetarako sarbidea behar da"</string>
- <string name="msg_missing_notification_access" msgid="281113995110910548">"Jakinarazteko biribiltxoak ikusteko, aktibatu <xliff:g id="NAME">%1$s</xliff:g> aplikazioaren jakinarazpenak"</string>
+ <string name="msg_missing_notification_access" msgid="281113995110910548">"Jakinarazpen-biribiltxoak ikusteko, aktibatu <xliff:g id="NAME">%1$s</xliff:g> aplikazioaren jakinarazpenak"</string>
<string name="title_change_settings" msgid="1376365968844349552">"Aldatu ezarpenak"</string>
- <string name="icon_badging_service_title" msgid="2309733118428242174">"Erakutsi jakinarazteko biribiltxoak"</string>
+ <string name="icon_badging_service_title" msgid="2309733118428242174">"Erakutsi jakinarazpen-biribiltxoak"</string>
<string name="auto_add_shortcuts_label" msgid="8222286205987725611">"Gehitu ikonoa hasierako pantailan"</string>
<string name="auto_add_shortcuts_description" msgid="7117251166066978730">"Aplikazio berrietan"</string>
<string name="icon_shape_override_label" msgid="2977264953998281004">"Aldatu ikonoaren forma"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 3817f07..1efa5ce 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"Fondos de pantalla"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Configuración da pantalla de Inicio"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Función desactivada polo administrador"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Permitir xirar a pantalla de inicio"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Ao xirar o teléfono"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Puntos de notificacións"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Activado"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Desactivado"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index efc953c..234fada 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"વૉલપેપર્સ"</string>
<string name="settings_button_text" msgid="8873672322605444408">"હોમ સેટિંગ્સ"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"તમારા વ્યવસ્થાપક દ્વારા અક્ષમ કરેલ"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"હોમ સ્ક્રીનને ફેરવવાની મંજૂરી આપો"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"જ્યારે ફોન ફેરવવામાં આવે ત્યારે"</string>
<string name="icon_badging_title" msgid="874121399231955394">"સૂચના બિંદુઓ"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"ચાલુ"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"બંધ"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 8c3ae25..6844a27 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"Պաստառներ"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Գլխավոր էջի կարգավորումներ"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Անջատվել է ձեր ադմինիստրատորի կողմից"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Թույլ տալ հիմնական էկրանի պտտումը"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Հեռախոսը պտտելու դեպքում"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Ծանուցումների կետիկներ"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Միացված է"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Անջատված է"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 3dc2d22..3b5daba 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"Veggfóður"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Heimastillingar"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Gert óvirkt af kerfisstjóra"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Leyfa snúning fyrir heimaskjá"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Þegar símanum er snúið"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Tilkynningapunktar"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Kveikt"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Slökkt"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 02ca862..521ec80 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"ფონები"</string>
<string name="settings_button_text" msgid="8873672322605444408">"მთავარი გვერდის პარამეტრები"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"გათიშულია თქვენი ადმინისტრატორის მიერ"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"მთავარი ეკრანის შეტრიალების დაშვება"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"ტელეფონის შეტრიალებისას"</string>
<string name="icon_badging_title" msgid="874121399231955394">"შეტყობინების ნიშნულები"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"ჩართული"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"გამორთული"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index b66fe69..7ab73d9 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"Тұсқағаздар"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Негізгі экран параметрлері"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Әкімші өшірді"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Негізгі экранның бұрылуына рұқсат ету"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Телефон бұрылғанда"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Хабарландыру белгілері"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Қосулы"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Өшірулі"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 6b56372..582bb33 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"ផ្ទាំងរូបភាព"</string>
<string name="settings_button_text" msgid="8873672322605444408">"ការកំណត់ទំព័រដើម"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"បានបិទដំណើរការដោយអ្នកគ្រប់គ្រងរបស់អ្នក"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"អនុញ្ញាតការបងិ្វលអេក្រង់ដើម"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"នៅពេលដែលបង្វិលទូរស័ព្ទរបស់អ្នក"</string>
<string name="icon_badging_title" msgid="874121399231955394">"ស្លាកជូនដំណឹង"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"បើក"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"បិទ"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index d4813b5..56ebe0a 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"ವಾಲ್ಪೇಪರ್ಗಳು"</string>
<string name="settings_button_text" msgid="8873672322605444408">"ಮುಖಪುಟ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"ಮುಖಪುಟ ತಿರುಗುವಿಕೆಯನ್ನು ಅನುಮತಿಸಿ"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"ಫೋನ್ ತಿರುಗಿಸಿದಾಗ"</string>
<string name="icon_badging_title" msgid="874121399231955394">"ಅಧಿಸೂಚನೆ ಡಾಟ್ಗಳು"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"ಆನ್"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"ಆಫ್"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index e0e7403..502a08a 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -39,7 +39,7 @@
<string name="all_apps_loading_message" msgid="5813968043155271636">"Колдонмолор жүктөлүүдө…"</string>
<string name="all_apps_no_search_results" msgid="3200346862396363786">"\"<xliff:g id="QUERY">%1$s</xliff:g>\" сурамына дал келген колдонмолор табылган жок"</string>
<string name="all_apps_search_market_message" msgid="1366263386197059176">"Көбүрөөк колдонмолорду издөө"</string>
- <string name="notifications_header" msgid="1404149926117359025">"Эскертмелер"</string>
+ <string name="notifications_header" msgid="1404149926117359025">"Билдирмелер"</string>
<string name="long_press_shortcut_to_add" msgid="4524750017792716791">"Кыска жолду тандоо үчүн басып туруңуз."</string>
<string name="long_accessible_way_to_add_shortcut" msgid="3327314059613154633">"Кыска жолду тандоо үчүн эки жолу таптап, кармап туруңуз же ыңгайлаштырылган аракеттерди колдонуңуз."</string>
<string name="out_of_space" msgid="4691004494942118364">"Бул Үй экранында бош орун жок."</string>
@@ -81,7 +81,9 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"Тушкагаздар"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Башкы беттин жөндөөлөрү"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Администраторуңуз өчүрүп койгон"</string>
- <string name="icon_badging_title" msgid="874121399231955394">"Эскертме белгилери"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Башкы экранды айлантууга уруксат берүү"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Телефон айланганда"</string>
+ <string name="icon_badging_title" msgid="874121399231955394">"Билдирмелер белгилери"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Күйүк"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Өчүк"</string>
<string name="title_missing_notification_access" msgid="7503287056163941064">"Эскертмелерге уруксат берилиши керек"</string>
@@ -92,7 +94,7 @@
<string name="auto_add_shortcuts_description" msgid="7117251166066978730">"Жаңы колдонмолор үчүн"</string>
<string name="icon_shape_override_label" msgid="2977264953998281004">"Сүрөтчөнүн формасын өзгөртүү"</string>
<string name="icon_shape_override_label_location" msgid="3841607380657692863">"Башкы экранда"</string>
- <string name="icon_shape_system_default" msgid="1709762974822753030">"Тутум сушунтаган демейкисин колдонуу"</string>
+ <string name="icon_shape_system_default" msgid="1709762974822753030">"Демейки тутум жөндөөлөрү колдонулат"</string>
<string name="icon_shape_square" msgid="633575066111622774">"Чарчы"</string>
<string name="icon_shape_squircle" msgid="5658049910802669495">"Бурчтары жумуру төрт бурчтук"</string>
<string name="icon_shape_circle" msgid="6550072265930144217">"Тегерек"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 2b73628..cd2c933 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"ພາບພື້ນຫຼັງ"</string>
<string name="settings_button_text" msgid="8873672322605444408">"ການຕັ້ງຄ່າ Home"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"ຖືກປິດການນຳໃຊ້ໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"ອະນຸຍາດໃຫ້ໝຸນໜ້າຈໍທຳອິດໄດ້"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"ເມື່ອໝຸນໂທລະສັບ"</string>
<string name="icon_badging_title" msgid="874121399231955394">"ຈຸດການແຈ້ງເຕືອນ"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"ເປີດ"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"ປິດ"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 29e837b..54d9c80 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"Тапети"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Поставки за Home"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Оневозможено од администраторот"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Дозволете ротација на Почетниот екран"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Кога телефонот се ротира"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Точки за известување"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Вклучено"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Исклучено"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 5ccac13..a060933 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"വാൾപേപ്പർ"</string>
<string name="settings_button_text" msgid="8873672322605444408">"ഹോം ക്രമീകരണം"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"അഡ്മിൻ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"ഹോം സ്ക്രീൻ തിരിക്കൽ അനുവദിക്കുക"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"ഫോൺ തിരിച്ച നിലയിലായിരിക്കുമ്പോൾ"</string>
<string name="icon_badging_title" msgid="874121399231955394">"അറിയിപ്പ് ഡോട്ടുകൾ"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"ഓൺ"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"ഓഫ്"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 7c0b00e..a3507c5 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"Ханын зураг"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Нүүр хуудасны тохиргоо"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Таны админ идэвхгүй болгосон"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Нүүр дэлгэцийг эргүүлэхийг зөвшөөрөх"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Утсыг эргүүлсэн үед"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Мэдэгдлийн цэг"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Асаалттай"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Унтраалттай"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 0e2f9c8..bf1e188 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -28,9 +28,9 @@
<string name="safemode_widget_error" msgid="4863470563535682004">"विजेट सुरक्षित मोडमध्ये अक्षम झाले"</string>
<string name="shortcut_not_available" msgid="2536503539825726397">"शॉर्टकट उपलब्ध नाही"</string>
<string name="home_screen" msgid="806512411299847073">"होम स्क्रीन"</string>
- <string name="custom_actions" msgid="3747508247759093328">"सानुकूल क्रिया"</string>
+ <string name="custom_actions" msgid="3747508247759093328">"कस्टम क्रिया"</string>
<string name="long_press_widget_to_add" msgid="7699152356777458215">"विजेट निवडण्यासाठी स्पर्श करा आणि धरून ठेवा."</string>
- <string name="long_accessible_way_to_add" msgid="4289502106628154155">"एक विजेट निवडण्यासाठी दोनदा टॅप करा आणि धरून ठेवा किंवा सानुकूल क्रिया वापरा."</string>
+ <string name="long_accessible_way_to_add" msgid="4289502106628154155">"एक विजेट निवडण्यासाठी दोनदा टॅप करा आणि धरून ठेवा किंवा कस्टम क्रिया वापरा."</string>
<string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
<string name="widget_accessible_dims_format" msgid="3640149169885301790">"%1$d रूंद बाय %2$d उंच"</string>
<string name="add_item_request_drag_hint" msgid="5899764264480397019">"स्वतः ठेवण्यासाठी स्पर्श करा आणि धरून ठेवा"</string>
@@ -73,7 +73,7 @@
<string name="workspace_new_page" msgid="257366611030256142">"नवीन मुख्य स्क्रीन पृष्ठ"</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_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>
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"वॉलपेपर"</string>
<string name="settings_button_text" msgid="8873672322605444408">"होम सेटिंग्ज"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"आपल्या प्रशासकाने अक्षम केले"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"मुख्यस्क्रीन फिरविण्यास अनुमती द्या"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"फोन फिरविला जातो तेव्हा"</string>
<string name="icon_badging_title" msgid="874121399231955394">"सूचना बिंदू"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"चालू"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"बंद"</string>
@@ -102,7 +104,7 @@
<string name="abandoned_clean_this" msgid="7610119707847920412">"काढा"</string>
<string name="abandoned_search" msgid="891119232568284442">"शोधा"</string>
<string name="abandoned_promises_title" msgid="7096178467971716750">"हा अॅप इंस्टॉल केलेला नाही"</string>
- <string name="abandoned_promise_explanation" msgid="3990027586878167529">"या चिन्हासाठी अॅप इंस्टॉल केलेला नाही. आपण ते काढू शकता किंवा अॅपचा शोध घेऊ शकता आणि त्यास व्यक्तिचलितपणे इंस्टॉल करू शकता."</string>
+ <string name="abandoned_promise_explanation" msgid="3990027586878167529">"या चिन्हासाठी अॅप इंस्टॉल केलेला नाही. तुम्ही ते काढू शकता किंवा अॅपचा शोध घेऊ शकता आणि त्यास व्यक्तिचलितपणे इंस्टॉल करू शकता."</string>
<string name="app_downloading_title" msgid="8336702962104482644">"<xliff:g id="NAME">%1$s</xliff:g> डाउनलोड होत आहे , <xliff:g id="PROGRESS">%2$s</xliff:g> पूर्ण झाले"</string>
<string name="app_waiting_download_title" msgid="7053938513995617849">"<xliff:g id="NAME">%1$s</xliff:g> इंस्टॉल करण्याची प्रतिक्षा करत आहे"</string>
<string name="widgets_bottom_sheet_title" msgid="2904559530954183366">"<xliff:g id="NAME">%1$s</xliff:g> विजेट"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 130e008..3c223b6 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"Kertas dinding"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Tetapan laman utama"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Dilumpuhkan oleh pentadbir anda"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Benarkan putaran Skrin Utama"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Apabila telefon diputar"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Titik pemberitahuan"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Hidup"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Mati"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 778402a..59ac4ca 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"နောက်ခံများ"</string>
<string name="settings_button_text" msgid="8873672322605444408">"ပင်မဆက်တင်များ"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"သင့်စီမံခန့်ခွဲသူက ပိတ်လိုက်ပါသည်"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"ပင်မစာမျက်နှာလှည့်ခြင်းကို ခွင့်ပြုပါ"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"ဖုန်းကိုလှည့်ထားစဉ်"</string>
<string name="icon_badging_title" msgid="874121399231955394">"အကြောင်းကြားချက်အမှတ်အသားများ"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"ဖွင့်ထားသည်"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"ပိတ်ထားသည်"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index fa2f9cf..a8a64f1 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"वालपेपरहरु"</string>
<string name="settings_button_text" msgid="8873672322605444408">"गृहपृष्ठका सेटिङहरू"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"तपाईँको प्रशासकद्वारा असक्षम गरिएको"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"गृह स्क्रिनलाई घुम्ने अनुमति दिनुहोस्"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"फोनलाई घुमाइँदा"</string>
<string name="icon_badging_title" msgid="874121399231955394">"सूचनाको प्रतीक जनाउने थोप्लोहरू"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"सक्रिय छ"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"निष्क्रिय छ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 0242403..c077869 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"ਵਾਲਪੇਪਰ"</string>
<string name="settings_button_text" msgid="8873672322605444408">"ਹੋਮ ਸੈਟਿੰਗਾਂ"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਦੁਆਰਾ ਅਯੋਗ ਬਣਾਈ ਗਈ"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"ਹੋਮ ਸਕ੍ਰੀਨ ਨੂੰ ਘੁੰਮਾਉਣ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"ਜਦੋਂ ਫ਼ੋਨ ਘੁੰਮਾਇਆ ਜਾਂਦਾ ਹੈ"</string>
<string name="icon_badging_title" msgid="874121399231955394">"ਸੂਚਨਾ ਬਿੰਦੂ"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"ਚਾਲੂ"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"ਬੰਦ"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 7a4771e..10835dc 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"වෝල්පේපර"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Home සැකසීම්"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"ඔබගේ පරිපාලක විසින් අබල කරන ලදී"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"මුල් පිටු තිරය කරකැවීමට ඉඩ දෙන්න"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"දුරකථනය කරකවන විට"</string>
<string name="icon_badging_title" msgid="874121399231955394">"දැනුම්දීම් තිත්"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"ක්රියාත්මකයි"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"ක්රියාවිරහිතයි"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index a4ad7a0..82cc42a 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"Imazhet e sfondit"</string>
<string name="settings_button_text" msgid="8873672322605444408">"Cilësimet e Home"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Çaktivizuar nga administratori"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Lejo rrotullimin e ekranit kryesor"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Kur telefoni rrotullohet"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Pikat e njoftimeve"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Aktiv"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"Joaktiv"</string>
@@ -92,7 +94,7 @@
<string name="auto_add_shortcuts_description" msgid="7117251166066978730">"Për aplikacionet e reja"</string>
<string name="icon_shape_override_label" msgid="2977264953998281004">"Ndrysho formën e ikonës"</string>
<string name="icon_shape_override_label_location" msgid="3841607380657692863">"në ekranin bazë"</string>
- <string name="icon_shape_system_default" msgid="1709762974822753030">"Përdor parazgjedhjen e sisteit"</string>
+ <string name="icon_shape_system_default" msgid="1709762974822753030">"Përdor parazgjedhjen e sistemit"</string>
<string name="icon_shape_square" msgid="633575066111622774">"Katror"</string>
<string name="icon_shape_squircle" msgid="5658049910802669495">"Katror me kënde të rrumbullakëta"</string>
<string name="icon_shape_circle" msgid="6550072265930144217">"Rreth"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 717c80f..a51247c 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -50,7 +50,7 @@
<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>
- <string name="app_info_drop_target_label" msgid="692894985365717661">"ஆப்ஸ் தகவல்"</string>
+ <string name="app_info_drop_target_label" msgid="692894985365717661">"பயன்பாட்டுத் தகவல்"</string>
<string name="install_drop_target_label" msgid="2539096853673231757">"நிறுவு"</string>
<string name="permlab_install_shortcut" msgid="5632423390354674437">"குறுக்குவழிகளை நிறுவுதல்"</string>
<string name="permdesc_install_shortcut" msgid="923466509822011139">"பயனரின் அனுமதி இல்லாமல் குறுக்குவழிகளைச் சேர்க்கப் பயன்பாட்டை அனுமதிக்கிறது."</string>
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"வால்பேப்பர்கள்"</string>
<string name="settings_button_text" msgid="8873672322605444408">"முகப்பு அமைப்புகள்"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"உங்கள் நிர்வாகி முடக்கியுள்ளார்"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"முகப்புத் திரை சுழற்சியை அனுமதி"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"மொபைலைச் சுழற்றும் போது"</string>
<string name="icon_badging_title" msgid="874121399231955394">"அறிவிப்புப் புள்ளிகள்"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"ஆன்"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"முடக்கப்பட்டுள்ளது"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 3f1762d..bffb1a8 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"వాల్పేపర్లు"</string>
<string name="settings_button_text" msgid="8873672322605444408">"హోమ్ సెట్టింగ్లు"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"మీ నిర్వాహకులు నిలిపివేసారు"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"హోమ్ స్క్రీన్ భ్రమణాన్ని అనుమతించండి"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"ఫోన్ను తిప్పినప్పుడు"</string>
<string name="icon_badging_title" msgid="874121399231955394">"నోటిఫికేషన్ డాట్లు"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"ఆన్"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"ఆఫ్"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 2558076..77aa0a1 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -81,6 +81,8 @@
<string name="wallpaper_button_text" msgid="8404103075899945851">"وال پیپرز"</string>
<string name="settings_button_text" msgid="8873672322605444408">"ہوم ترتیبات"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"آپ کے منتظم کی طرف سے غیر فعال کر دیا گیا"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"ہوم اسکرین گھمانے کی اجازت دیں"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"جب فون گھمایا جاتا ہے"</string>
<string name="icon_badging_title" msgid="874121399231955394">"اطلاعاتی ڈاٹس"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"آن"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"آف"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index e9f36a8..0360a71 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -79,8 +79,10 @@
<string name="folder_name_format" msgid="6629239338071103179">"Jild: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="widget_button_text" msgid="2880537293434387943">"Vidjetlar"</string>
<string name="wallpaper_button_text" msgid="8404103075899945851">"Fon rasmlari"</string>
- <string name="settings_button_text" msgid="8873672322605444408">"Home sozlamalari"</string>
+ <string name="settings_button_text" msgid="8873672322605444408">"Bosh ekran sozlamalari"</string>
<string name="msg_disabled_by_admin" msgid="6898038085516271325">"Administrator tomonidan o‘chirilgan"</string>
+ <string name="allow_rotation_title" msgid="7728578836261442095">"Asosiy ekranni aylantirishga ruxsat berish"</string>
+ <string name="allow_rotation_desc" msgid="8662546029078692509">"Telefon burilganda"</string>
<string name="icon_badging_title" msgid="874121399231955394">"Bildirishnoma belgilari"</string>
<string name="icon_badging_desc_on" msgid="2627952638544674079">"Yoniq"</string>
<string name="icon_badging_desc_off" msgid="5503319969924580241">"O‘chiq"</string>
@@ -88,7 +90,7 @@
<string name="msg_missing_notification_access" msgid="281113995110910548">"Bildirishnoma belgilarini ko‘rsatish uchun <xliff:g id="NAME">%1$s</xliff:g> ilovasida bildirishnomalarni yoqing"</string>
<string name="title_change_settings" msgid="1376365968844349552">"Sozlamalarni o‘zgartirish"</string>
<string name="icon_badging_service_title" msgid="2309733118428242174">"Bildirishnoma belgilarini ko‘rsatish"</string>
- <string name="auto_add_shortcuts_label" msgid="8222286205987725611">"Bosh ekranga ikonka qo‘shish"</string>
+ <string name="auto_add_shortcuts_label" msgid="8222286205987725611">"Bosh ekranga ikonka chiqarish"</string>
<string name="auto_add_shortcuts_description" msgid="7117251166066978730">"Yangi o‘rnatilgan ilovalar ikonkasini bosh ekranga chiqarish"</string>
<string name="icon_shape_override_label" msgid="2977264953998281004">"Ikonka shaklini o‘zgartirish"</string>
<string name="icon_shape_override_label_location" msgid="3841607380657692863">"Bosh ekranda"</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 38b5dae..8526d7c 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -28,7 +28,7 @@
</style>
<style name="BaseLauncherThemeWithCustomAttrs" parent="@style/BaseLauncherTheme">
- <item name="allAppsScrimColor">#CCFFFFFF</item>
+ <item name="allAppsScrimColor">#EAFFFFFF</item>
<item name="allAppsNavBarScrimColor">#66FFFFFF</item>
<item name="popupColorPrimary">#FFF</item>
<item name="popupColorSecondary">#F5F5F5</item> <!-- Gray 100 -->
@@ -61,7 +61,7 @@
<item name="android:textColorHint">#A0FFFFFF</item>
<item name="android:colorControlHighlight">#A0FFFFFF</item>
<item name="android:colorPrimary">#FF333333</item>
- <item name="allAppsScrimColor">#7A212121</item>
+ <item name="allAppsScrimColor">#EA212121</item>
<item name="allAppsNavBarScrimColor">#80000000</item>
<item name="popupColorPrimary">?android:attr/colorPrimary</item>
<item name="popupColorSecondary">#424242</item> <!-- Gray 800 -->
diff --git a/src/com/android/launcher3/ButtonDropTarget.java b/src/com/android/launcher3/ButtonDropTarget.java
index c866880..c35ab97 100644
--- a/src/com/android/launcher3/ButtonDropTarget.java
+++ b/src/com/android/launcher3/ButtonDropTarget.java
@@ -192,8 +192,10 @@
mCurrentFilter = new ColorMatrix();
}
- Themes.setColorScaleOnMatrix(getTextColor(), mSrcFilter);
- Themes.setColorScaleOnMatrix(targetColor, mDstFilter);
+ int defaultTextColor = mOriginalTextColor.getDefaultColor();
+ Themes.setColorChangeOnMatrix(defaultTextColor, getTextColor(), mSrcFilter);
+ Themes.setColorChangeOnMatrix(defaultTextColor, targetColor, mDstFilter);
+
ValueAnimator anim1 = ValueAnimator.ofObject(
new FloatArrayEvaluator(mCurrentFilter.getArray()),
mSrcFilter.getArray(), mDstFilter.getArray());
diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java
index ae41794..37405db 100644
--- a/src/com/android/launcher3/allapps/AllAppsContainerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java
@@ -15,8 +15,6 @@
*/
package com.android.launcher3.allapps;
-import static com.android.launcher3.anim.Interpolators.DEACCEL_2;
-
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
@@ -48,7 +46,7 @@
import com.android.launcher3.Launcher;
import com.android.launcher3.R;
import com.android.launcher3.config.FeatureFlags;
-import com.android.launcher3.graphics.ColorScrim;
+import com.android.launcher3.uioverrides.AllAppsScrim;
import com.android.launcher3.keyboard.FocusedItemDecorator;
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
import com.android.launcher3.util.ItemInfoMatcher;
@@ -112,8 +110,7 @@
mAllAppsStore.addUpdateListener(this::onAppsUpdated);
// Attach a scrim to be drawn behind all-apps and hotseat
- new ColorScrim(this, Themes.getAttrColor(context, R.attr.allAppsScrimColor), DEACCEL_2)
- .attach();
+ new AllAppsScrim(this).attach();
addSpringView(R.id.all_apps_header);
addSpringView(R.id.apps_list_view);
diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
index ed9873e..6a0e1cc 100644
--- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java
+++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
@@ -26,6 +26,8 @@
import com.android.launcher3.anim.AnimationSuccessListener;
import com.android.launcher3.anim.AnimatorSetBuilder;
import com.android.launcher3.anim.PropertySetter;
+import com.android.launcher3.uioverrides.AllAppsScrim;
+import com.android.launcher3.graphics.ViewScrim;
import com.android.launcher3.util.Themes;
/**
@@ -55,6 +57,7 @@
};
private AllAppsContainerView mAppsView;
+ private AllAppsScrim mAllAppsScrim;
private final Launcher mLauncher;
private final boolean mIsDarkTheme;
@@ -114,6 +117,7 @@
*/
public void setProgress(float progress) {
mProgress = progress;
+ mAllAppsScrim.onVerticalProgress(progress);
float shiftCurrent = progress * mShiftRange;
mAppsView.setTranslationY(shiftCurrent);
@@ -205,6 +209,8 @@
public void setupViews(AllAppsContainerView appsView) {
mAppsView = appsView;
+ mAllAppsScrim = (AllAppsScrim) ViewScrim.get(mAppsView);
+ mAllAppsScrim.reInitUi();
}
/**
@@ -213,6 +219,10 @@
public void setScrollRangeDelta(float delta) {
mScrollRangeDelta = delta;
mShiftRange = mLauncher.getDeviceProfile().heightPx - mScrollRangeDelta;
+
+ if (mAllAppsScrim != null) {
+ mAllAppsScrim.reInitUi();
+ }
}
/**
diff --git a/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java b/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java
index ad61c55..ab6635e 100644
--- a/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java
+++ b/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java
@@ -62,6 +62,10 @@
private AlphabeticalAppsList mApps;
private AllAppsContainerView mAppsView;
+ // This value was used to position the QSB. We store it here for translationY animations.
+ private final float mFixedTranslationY;
+ private final float mMarginTopAdjusting;
+
public AppsSearchContainerLayout(Context context) {
this(context, null);
}
@@ -79,6 +83,9 @@
mSearchQueryBuilder = new SpannableStringBuilder();
Selection.setSelection(mSearchQueryBuilder, 0);
+ mFixedTranslationY = getTranslationY();
+ mMarginTopAdjusting = mFixedTranslationY - getPaddingTop();
+
// Update the hint to contain the icon.
// Prefix the original hint with two spaces. The first space gets replaced by the icon
// using span. The second space is used for a singe space character between the hint
@@ -195,14 +202,16 @@
@Override
public void setInsets(Rect insets) {
+ MarginLayoutParams mlp = (MarginLayoutParams) getLayoutParams();
+ mlp.topMargin = Math.round(Math.max(-mFixedTranslationY, insets.top - mMarginTopAdjusting));
+ requestLayout();
+
DeviceProfile dp = mLauncher.getDeviceProfile();
if (dp.isVerticalBarLayout()) {
mLauncher.getAllAppsController().setScrollRangeDelta(0);
} else {
- MarginLayoutParams mlp = ((MarginLayoutParams) getLayoutParams());
- int myBot = mlp.topMargin + (int) getTranslationY() + mlp.height;
mLauncher.getAllAppsController().setScrollRangeDelta(
- dp.hotseatBarBottomPaddingPx + myBot);
+ insets.bottom + mlp.topMargin + mFixedTranslationY);
}
}
}
diff --git a/src/com/android/launcher3/util/Themes.java b/src/com/android/launcher3/util/Themes.java
index 89597b9..d225093 100644
--- a/src/com/android/launcher3/util/Themes.java
+++ b/src/com/android/launcher3/util/Themes.java
@@ -78,4 +78,23 @@
target.setScale(Color.red(color) / 255f, Color.green(color) / 255f,
Color.blue(color) / 255f, Color.alpha(color) / 255f);
}
+
+ /**
+ * Changes a color matrix such that, when applied to srcColor, it produces dstColor.
+ *
+ * Note that values on the last column of target ColorMatrix can be negative, and may result in
+ * negative values when applied on a color. Such negative values will be automatically shifted
+ * up to 0 by the framework.
+ *
+ * @param srcColor The color to start from
+ * @param dstColor The color to create by applying target on srcColor
+ * @param target The ColorMatrix to transform the color
+ */
+ public static void setColorChangeOnMatrix(int srcColor, int dstColor, ColorMatrix target) {
+ target.reset();
+ target.getArray()[4] = Color.red(dstColor) - Color.red(srcColor);
+ target.getArray()[9] = Color.green(dstColor) - Color.green(srcColor);
+ target.getArray()[14] = Color.blue(dstColor) - Color.blue(srcColor);
+ target.getArray()[19] = Color.alpha(dstColor) - Color.alpha(srcColor);
+ }
}
diff --git a/src_ui_overrides/com/android/launcher3/uioverrides/AllAppsScrim.java b/src_ui_overrides/com/android/launcher3/uioverrides/AllAppsScrim.java
new file mode 100644
index 0000000..e970c5b
--- /dev/null
+++ b/src_ui_overrides/com/android/launcher3/uioverrides/AllAppsScrim.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.launcher3.uioverrides;
+
+import static com.android.launcher3.anim.Interpolators.ACCEL_1_5;
+
+import com.android.launcher3.R;
+import com.android.launcher3.allapps.AllAppsContainerView;
+import com.android.launcher3.graphics.ColorScrim;
+import com.android.launcher3.util.Themes;
+
+public class AllAppsScrim extends ColorScrim {
+
+ public AllAppsScrim(AllAppsContainerView view) {
+ super(view, Themes.getAttrColor(view.getContext(), R.attr.allAppsScrimColor), ACCEL_1_5);
+ }
+
+ public void reInitUi() {
+ // No op
+ }
+
+ public void onVerticalProgress(float progress) {
+ // No op
+ }
+}