diff options
Diffstat (limited to 'quickstep')
136 files changed, 973 insertions, 765 deletions
diff --git a/quickstep/AndroidManifest-launcher.xml b/quickstep/AndroidManifest-launcher.xml index 80d8154ba1..d6aa886d8c 100644 --- a/quickstep/AndroidManifest-launcher.xml +++ b/quickstep/AndroidManifest-launcher.xml @@ -57,6 +57,7 @@ <intent-filter> <action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.SHOW_WORK_APPS" /> + <action android:name="android.intent.action.ALL_APPS" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.MONKEY"/> diff --git a/quickstep/res/drawable/ic_save_app_pair_left_right.xml b/quickstep/res/drawable/ic_save_app_pair_left_right.xml index b104f44b76..509bc98f65 100644 --- a/quickstep/res/drawable/ic_save_app_pair_left_right.xml +++ b/quickstep/res/drawable/ic_save_app_pair_left_right.xml @@ -1,28 +1,25 @@ -<?xml version="1.0" encoding="utf-8"?> - <!-- - Copyright (C) 2024 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. ---> - + ~ Copyright (C) 2025 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. + --> <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path - android:pathData="M8.5,4.5H3.5C2.4,4.5 1.5,5.4 1.5,6.5V18.5C1.5,19.6 2.4,20.5 3.5,20.5H8.5C9.6,20.5 10.5,19.6 10.5,18.5V6.5C10.5,5.4 9.6,4.5 8.5,4.5ZM8.5,18.5H3.5V6.5H8.5V18.5ZM14.5,6.5H19.5V13.5H21.5V6.5C21.5,5.4 20.6,4.5 19.5,4.5H14.5C13.4,4.5 12.5,5.4 12.5,6.5V18.5C12.5,19.6 13.4,20.5 14.5,20.5H15.5V18.5H14.5V6.5ZM20.5,14.5V16.5H22.5V18.5H20.5V20.5H18.5V18.5H16.5V16.5H18.5V14.5H20.5Z" - android:fillColor="#48473A" - android:fillType="evenOdd"/> + android:width="20dp" + android:height="20dp" + android:tint="?attr/colorControlNormal" + android:viewportHeight="960" + android:viewportWidth="960"> + <path + android:fillColor="@android:color/white" + android:pathData="M744,816L720,816Q704.7,816 694.35,805.71Q684,795.42 684,780.21Q684,765 694.35,754.5Q704.7,744 720,744L744,744L744,720Q744,704.7 754.29,694.35Q764.58,684 779.79,684Q795,684 805.5,694.35Q816,704.7 816,720L816,744L840,744Q855.3,744 865.65,754.29Q876,764.58 876,779.79Q876,795 865.65,805.5Q855.3,816 840,816L816,816L816,840Q816,855.3 805.71,865.65Q795.42,876 780.21,876Q765,876 754.5,865.65Q744,855.3 744,840L744,816ZM215.74,816Q186,816 165,794.85Q144,773.7 144,744L144,216Q144,186.3 165.18,165.15Q186.35,144 216.09,144L360.26,144Q390,144 411,165.15Q432,186.3 432,216L432,744Q432,773.7 410.82,794.85Q389.65,816 359.91,816L215.74,816ZM616,816Q581,816 554.5,796Q528,776 528,743.95L528,216Q528,186.3 549.18,165.15Q570.35,144 600.09,144L744.26,144Q774,144 795,165.15Q816,186.3 816,216L816,616Q807,614 798,613Q789,612 780,612Q709.79,612 660.9,661Q612,710 612,780Q612,789 613,798Q614,807 616,816Z" /> </vector> diff --git a/quickstep/res/drawable/ic_save_app_pair_up_down.xml b/quickstep/res/drawable/ic_save_app_pair_up_down.xml index 86f110ce5e..282751c84c 100644 --- a/quickstep/res/drawable/ic_save_app_pair_up_down.xml +++ b/quickstep/res/drawable/ic_save_app_pair_up_down.xml @@ -1,28 +1,25 @@ -<?xml version="1.0" encoding="utf-8"?> - <!-- - Copyright (C) 2024 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. ---> - + ~ Copyright (C) 2025 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. + --> <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path - android:pathData="M18,2L6,2C4.9,2 4,2.9 4,4L4,9C4,10.1 4.9,11 6,11L18,11C19.1,11 20,10.1 20,9L20,4C20,2.9 19.1,2 18,2ZM18,9L6,9L6,4L18,4L18,9ZM18,13L6,13C4.9,13 4,13.9 4,15L4,20C4,21.1 4.9,22 6,22L13,22L13,20L6,20L6,15L18,15L18,16L20,16L20,15C20,13.9 19.1,13 18,13ZM16,17L18,17L18,19L20,19L20,21L18,21L18,23L16,23L16,21L14,21L14,19L16,19L16,17Z" - android:fillColor="#48473A" - android:fillType="evenOdd"/> -</vector> + android:width="20dp" + android:height="20dp" + android:tint="?attr/colorControlNormal" + android:viewportHeight="960" + android:viewportWidth="960"> + <path + android:fillColor="@android:color/white" + android:pathData="M744,816L720,816Q704.7,816 694.35,805.71Q684,795.42 684,780.21Q684,765 694.35,754.5Q704.7,744 720,744L744,744L744,720Q744,704.7 754.29,694.35Q764.58,684 779.79,684Q795,684 805.5,694.35Q816,704.7 816,720L816,744L840,744Q855.3,744 865.65,754.29Q876,764.58 876,779.79Q876,795 865.65,805.5Q855.3,816 840,816L816,816L816,840Q816,855.3 805.71,865.65Q795.42,876 780.21,876Q765,876 754.5,865.65Q744,855.3 744,840L744,816ZM216,432Q183,432 163.5,412.5Q144,393 144,360L144,216Q144,183 163.5,163.5Q183,144 216,144L744,144Q777,144 796.5,163.5Q816,183 816,216L816,360Q816,393 796.5,412.5Q777,432 744,432L216,432ZM215.62,816Q183,816 163.5,796.5Q144,777 144,744L144,600Q144,567 163.5,547.5Q183,528 216,528L744,528Q777,528 796.5,547.5Q816,567 816,600L816,616Q808,614 798.06,613Q788.13,612 780,612Q709.44,612 660.72,661.5Q612,711 612,780Q612,789.94 612.5,798.97Q613,808 615,816L215.62,816Z" /> +</vector>
\ No newline at end of file diff --git a/quickstep/res/values-af/strings.xml b/quickstep/res/values-af/strings.xml index c2f572b1b4..025a7d07c4 100644 --- a/quickstep/res/values-af/strings.xml +++ b/quickstep/res/values-af/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Skuif na links bo"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Skuif na regs onder"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Maak app as ’n borrel oop"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Onlangse apps"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Onlangse applys"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{meer app}other{meer apps}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Werkskerm"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> en <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, item <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> van <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-am/strings.xml b/quickstep/res/values-am/strings.xml index e335423776..fc4c4c46d3 100644 --- a/quickstep/res/values-am/strings.xml +++ b/quickstep/res/values-am/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"ወደ ላይ/ግራ ይውሰዱ"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"ወደ ታች/ቀኝ ይውሰዱ"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"መተግበሪያን እንደ ዓረፋ ይክፈቱ"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"የቅርብ ጊዜ መተግበሪያዎች"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"የቅርብ ጊዜ መተግበሪያ ዝርዝር"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{ተጨማሪ መተግበሪያ}one{ተጨማሪ መተግበሪያ}other{ተጨማሪ መተግበሪያዎች}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"ዴስክቶፕ"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> እና <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>፣ ንጥል <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> ከ<xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-ar/strings.xml b/quickstep/res/values-ar/strings.xml index 8fbc23b95f..17bcbee55b 100644 --- a/quickstep/res/values-ar/strings.xml +++ b/quickstep/res/values-ar/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"الانتقال إلى يمين الشاشة أو أعلاها"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"الانتقال إلى يسار الشاشة أو أسفلها"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"فتح التطبيق كفقاعة"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"التطبيقات المستخدَمة مؤخرًا"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"قائمة التطبيقات المستخدَمة مؤخرًا"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{تطبيق واحد آخر}zero{تطبيق آخر}two{تطبيقان آخران}few{تطبيقات أخرى}many{تطبيقًا آخر}other{تطبيق آخر}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"وضع الكمبيوتر المكتبي"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"\"<xliff:g id="APP_NAME_1">%1$s</xliff:g>\" و\"<xliff:g id="APP_NAME_2">%2$s</xliff:g>\""</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>، العنصر رقم <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> من إجمالي <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-as/strings.xml b/quickstep/res/values-as/strings.xml index 8c1ccda9cf..0f8126beb4 100644 --- a/quickstep/res/values-as/strings.xml +++ b/quickstep/res/values-as/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"ওপৰৰ বাঁওফাললৈ নিয়ক"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"তলৰ সোঁফাললৈ নিয়ক"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"বাবল হিচাপে এপ্টো খোলক"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"শেহতীয়া এপ্সমূহ"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"শেহতীয়া এপৰ সূচী"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{অধিক এপ্}one{অধিক এপ্}other{অধিক এপ্}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"ডেস্কটপ"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> আৰু <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>টাৰ ভিতৰত <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>তম বস্তু"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-az/strings.xml b/quickstep/res/values-az/strings.xml index 53de211216..f88a48c54e 100644 --- a/quickstep/res/values-az/strings.xml +++ b/quickstep/res/values-az/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Yuxarı/sola köçürün"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Aşağı/sağa köçürün"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Tətbiqi yumrucuq kimi açın"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Son tətbiqlər"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Son tətbiq siyahısı"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{əlavə tətbiq}other{əlavə tətbiq}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Masaüstü"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> və <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, element <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>/<xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-b+sr+Latn/strings.xml b/quickstep/res/values-b+sr+Latn/strings.xml index 1db58bed6a..8b60c14da3 100644 --- a/quickstep/res/values-b+sr+Latn/strings.xml +++ b/quickstep/res/values-b+sr+Latn/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Premesti gore levo"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Premesti dole desno"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Otvori aplikaciju kao oblačić"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Nedavne aplikacije"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Lista nedavnih aplikacija"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{dodatna aplikacija}one{dodatna aplikacija}few{dodatne aplikacije}other{dodatnih aplikacija}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Računar"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> i <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, stavka <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> od <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-be/strings.xml b/quickstep/res/values-be/strings.xml index 20c914d9d3..f0d4ee4a0d 100644 --- a/quickstep/res/values-be/strings.xml +++ b/quickstep/res/values-be/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Перамясціць уверх/улева"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Перамясціць уніз/управа"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Адкрыць праграму ва ўсплывальным акне"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Нядаўнія праграмы"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Спіс нядаўніх праграм"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{даступная праграма}one{даступная праграма}few{даступныя праграмы}many{даступных праграм}other{даступнай праграмы}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Працоўны стол"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> і <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, элемент <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> з <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-bg/strings.xml b/quickstep/res/values-bg/strings.xml index 414219ad52..10401866a1 100644 --- a/quickstep/res/values-bg/strings.xml +++ b/quickstep/res/values-bg/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Преместване горе/вляво"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Преместване долу/вдясно"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Отваряне на приложението като балонче"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Скорошни приложения"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Списък със скорошни приложения"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{допълнително приложение}other{допълнителни приложения}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Режим за настолни компютри"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> и <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, елемент <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> от <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-bn/strings.xml b/quickstep/res/values-bn/strings.xml index 001c008be6..2c700670d5 100644 --- a/quickstep/res/values-bn/strings.xml +++ b/quickstep/res/values-bn/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"উপরে/বাঁদিকে সরান"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"নিচে/ডানদিকে সরান"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"বাবল হিসেবে অ্যাপ খুলুন"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"সম্প্রতি ব্যবহৃত অ্যাপ"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"সাম্প্রতিক অ্যাপের তালিকা"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{আরও অ্যাপ}one{আরও অ্যাপ}other{আরও অ্যাপ}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"ডেস্কটপ"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> ও <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>টি টাস্কের মধ্যে <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> নম্বর আইটেম"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-bs/strings.xml b/quickstep/res/values-bs/strings.xml index 1eb88aa1d5..45bde4ca18 100644 --- a/quickstep/res/values-bs/strings.xml +++ b/quickstep/res/values-bs/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Premjesti gore lijevo"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Premjesti dolje desno"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Otvori aplikaciju kao oblačić"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Nedavne aplikacije"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Liste nedavnih aplikacija"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{dodatna aplikacija}one{dodatna aplikacija}few{dodatne aplikacije}other{dodatnih aplikacija}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Računar"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> i <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>. stavka od <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-ca/strings.xml b/quickstep/res/values-ca/strings.xml index 6397b1438f..07a7349406 100644 --- a/quickstep/res/values-ca/strings.xml +++ b/quickstep/res/values-ca/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Mou a la part superior o a l\'esquerra"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Mou a la part inferior o a la dreta"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Obre l\'aplicació com a bombolla"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Aplicacions recents"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Llista d\'aplicacions recents"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{aplicació més}other{aplicacions més}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Escriptori"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> i <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, element <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> de <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-cs/strings.xml b/quickstep/res/values-cs/strings.xml index 3b000efc79..98ed9346df 100644 --- a/quickstep/res/values-cs/strings.xml +++ b/quickstep/res/values-cs/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Přesunout doleva nahoru"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Přesunout doprava dolů"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Otevřít aplikaci jako bublinu"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Poslední aplikace"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Seznam posledních aplikací"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{další aplikace}few{další aplikace}many{další aplikace}other{dalších aplikací}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Počítač"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> a <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, položka <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> z <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-da/strings.xml b/quickstep/res/values-da/strings.xml index cf45967422..d4ec1e681c 100644 --- a/quickstep/res/values-da/strings.xml +++ b/quickstep/res/values-da/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Flyt til toppen eller venstre side"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Flyt til bunden eller højre side"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Åbn appen som en boble"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Seneste apps"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Liste over seneste apps"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{yderligere app}one{yderligere app}other{yderligere apps}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Computertilstand"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> og <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, element <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> af <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-de/strings.xml b/quickstep/res/values-de/strings.xml index f15838e094..e3ab11cd95 100644 --- a/quickstep/res/values-de/strings.xml +++ b/quickstep/res/values-de/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Nach oben / Nach links verschieben"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Nach unten / Nach rechts verschieben"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"App als Bubble öffnen"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Zuletzt aktive Apps"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Liste der zuletzt aktiven Apps"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{weitere App}other{weitere Apps}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Desktopmodus"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> und <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, Element <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> von <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-el/strings.xml b/quickstep/res/values-el/strings.xml index a94a2f226d..eae51d1535 100644 --- a/quickstep/res/values-el/strings.xml +++ b/quickstep/res/values-el/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Μετακίνηση επάνω/αριστερά"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Μετακίνηση κάτω/δεξιά"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Άνοιγμα εφαρμογής σε συννεφάκι"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Πρόσφατες εφαρμογές"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Λίστα πρόσφατων εφαρμογών"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{ακόμη εφαρμογή}other{ακόμη εφαρμογές}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Υπολογιστής"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> και <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, στοιχείο <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> από <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-en-rAU/strings.xml b/quickstep/res/values-en-rAU/strings.xml index 9082df4293..6397fa5e8c 100644 --- a/quickstep/res/values-en-rAU/strings.xml +++ b/quickstep/res/values-en-rAU/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Move to top/left"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Move to bottom/right"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Open app as a bubble"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Recent apps"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Recent app list"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{more app}other{more apps}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Desktop"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> and <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, item <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> of <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-en-rCA/strings.xml b/quickstep/res/values-en-rCA/strings.xml index 0d9e57254d..fcd7c66490 100644 --- a/quickstep/res/values-en-rCA/strings.xml +++ b/quickstep/res/values-en-rCA/strings.xml @@ -146,10 +146,8 @@ <string name="quick_switch_desktop" msgid="8393802056024499749">"Desktop"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> and <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, item <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> of <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> - <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> - <skip /> - <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> - <skip /> + <string name="quick_switch_scroll_arrow_left" msgid="6527033155534184309">"Scroll left"</string> + <string name="quick_switch_scroll_arrow_right" msgid="7319779291086916348">"Scroll right"</string> <string name="bubble_bar_bubble_fallback_description" msgid="7811684548953452009">"Bubble"</string> <string name="bubble_bar_overflow_description" msgid="8617628132733151708">"Overflow"</string> <string name="bubble_bar_bubble_description" msgid="1882466152448446446">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> from <xliff:g id="APP_NAME">%2$s</xliff:g>"</string> diff --git a/quickstep/res/values-en-rGB/strings.xml b/quickstep/res/values-en-rGB/strings.xml index 9082df4293..6397fa5e8c 100644 --- a/quickstep/res/values-en-rGB/strings.xml +++ b/quickstep/res/values-en-rGB/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Move to top/left"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Move to bottom/right"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Open app as a bubble"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Recent apps"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Recent app list"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{more app}other{more apps}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Desktop"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> and <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, item <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> of <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-en-rIN/strings.xml b/quickstep/res/values-en-rIN/strings.xml index 9082df4293..6397fa5e8c 100644 --- a/quickstep/res/values-en-rIN/strings.xml +++ b/quickstep/res/values-en-rIN/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Move to top/left"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Move to bottom/right"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Open app as a bubble"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Recent apps"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Recent app list"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{more app}other{more apps}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Desktop"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> and <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, item <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> of <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-es-rUS/strings.xml b/quickstep/res/values-es-rUS/strings.xml index 78bb88a0bc..703c434b77 100644 --- a/quickstep/res/values-es-rUS/strings.xml +++ b/quickstep/res/values-es-rUS/strings.xml @@ -96,7 +96,7 @@ <string name="action_share" msgid="2648470652637092375">"Compartir"</string> <string name="action_screenshot" msgid="8171125848358142917">"Captura de pantalla"</string> <string name="action_split" msgid="2098009717623550676">"Pantalla dividida"</string> - <string name="action_save_app_pair" msgid="5974823919237645229">"Guardar vinculación"</string> + <string name="action_save_app_pair" msgid="5974823919237645229">"Guardar grupo de apps"</string> <string name="toast_split_select_app" msgid="8464310533320556058">"Presiona otra app para usar la pantalla dividida"</string> <string name="toast_contextual_split_select_app" msgid="433510957123687090">"Elige otra app para usar la pantalla dividida"</string> <string name="toast_split_select_app_cancel" msgid="1939025102486630426">"Cancelar"</string> @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Mover a la parte superior o izquierda"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Mover a la parte inferior o derecha"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Abrir app como burbuja"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Apps recientes"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Lista de apps recientes"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{app más}other{apps más}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Escritorio"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> y <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, elemento <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> de <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-es/strings.xml b/quickstep/res/values-es/strings.xml index 542e8aacf3..56489dac40 100644 --- a/quickstep/res/values-es/strings.xml +++ b/quickstep/res/values-es/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Mover arriba/a la izquierda"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Mover abajo/a la derecha"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Abrir aplicación como burbuja"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Aplicaciones recientes"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Lista de aplicaciones recientes"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{app más}other{apps más}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Ordenador"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> y <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, elemento <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> de <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-et/strings.xml b/quickstep/res/values-et/strings.xml index 66d0b9f7f9..c37268221d 100644 --- a/quickstep/res/values-et/strings.xml +++ b/quickstep/res/values-et/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Teisalda üles/vasakule"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Teisalda alla/paremale"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Rakenduse avamine mullina"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Hiljutised rakendused"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Hiljutiste rakenduste loend"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{rakendus veel}other{rakendust veel}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Lauaarvuti"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> ja <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, üksus <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>/<xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-eu/strings.xml b/quickstep/res/values-eu/strings.xml index 618992c608..77b6b6decd 100644 --- a/quickstep/res/values-eu/strings.xml +++ b/quickstep/res/values-eu/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Eraman gora, ezkerretara"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Eraman behera, eskuinetara"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Ireki aplikazioa burbuila gisa"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Azkenaldiko aplikazioak"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Azkenaldiko aplikazioen zerrenda"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{aplikazio gehiago}other{aplikazio gehiago}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Ordenagailua"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> eta <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> elementutatik <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>garrena"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-fa/strings.xml b/quickstep/res/values-fa/strings.xml index 9745b58542..7b9b719c10 100644 --- a/quickstep/res/values-fa/strings.xml +++ b/quickstep/res/values-fa/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"انتقال به بالا/ چپ"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"انتقال به پایین/ راست"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"باز کردن برنامه بهصورت حبابک"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"برنامههای اخیر"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"فهرست برنامههای اخیر"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{برنامه دیگر}one{برنامه دیگر}other{برنامه دیگر}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"رایانه"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> و <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>، مورد <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> از <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-fi/strings.xml b/quickstep/res/values-fi/strings.xml index af132e7f61..03736047d0 100644 --- a/quickstep/res/values-fi/strings.xml +++ b/quickstep/res/values-fi/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Siirrä ylös tai vasemmalle"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Siirrä alas tai oikealle"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Avaa sovellus kuplana"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Viimeaikaiset sovellukset"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Viimeaikaisten sovellusten lista"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{muu sovellus}other{muuta sovellusta}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Tietokone"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> ja <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, kohde <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>/<xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-fr-rCA/strings.xml b/quickstep/res/values-fr-rCA/strings.xml index 6c4fcc4d72..fcf03bedf3 100644 --- a/quickstep/res/values-fr-rCA/strings.xml +++ b/quickstep/res/values-fr-rCA/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Déplacer vers le coin supérieur gauche de l\'écran"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Déplacer vers le coin inférieur droit de l\'écran"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Ouvrir l\'appli sous forme de bulle"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Applis récentes"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Liste des applis récentes"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{autre appli}one{autre appli}other{autres applis}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Bureau"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> et <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, élément <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> de <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-fr/strings.xml b/quickstep/res/values-fr/strings.xml index 09079d83d8..9a14df83c9 100644 --- a/quickstep/res/values-fr/strings.xml +++ b/quickstep/res/values-fr/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Déplacer en haut ou à gauche"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Déplacer en bas ou à droite"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Ouvrir l\'appli sous forme de bulle"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Applis récentes"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Liste des applis récentes"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{autre application}one{autre application}other{autres applications}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Mode ordinateur"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> et <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"Élément <xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g> sur <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> : <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-gl/strings.xml b/quickstep/res/values-gl/strings.xml index 3840b5edc6..9a3cfa01c5 100644 --- a/quickstep/res/values-gl/strings.xml +++ b/quickstep/res/values-gl/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Mover á parte superior ou á esquerda"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Mover á parte inferior ou á dereita"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Abrir aplicación como unha burbulla"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Aplicacións recentes"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Lista de aplicacións recentes"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{aplicación máis}other{aplicacións máis}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Escritorio"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> e <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, artigo <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> de <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-gu/strings.xml b/quickstep/res/values-gu/strings.xml index c39fe204f4..736ce925da 100644 --- a/quickstep/res/values-gu/strings.xml +++ b/quickstep/res/values-gu/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"સૌથી ઉપર ડાબી બાજુએ ખસેડો"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"સૌથી નીચે જમણી બાજુએ ખસેડો"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"બબલ તરીકે ઍપ ખોલો"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"તાજેતરની ઍપ"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"તાજેતરની ઍપની સૂચિ"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{વધુ ઍપ}one{વધુ ઍપ}other{વધુ ઍપ}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"ડેસ્કટૉપ"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> અને <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>માંથી આઇટમ <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-hi/strings.xml b/quickstep/res/values-hi/strings.xml index af248117cb..8c8d7ae029 100644 --- a/quickstep/res/values-hi/strings.xml +++ b/quickstep/res/values-hi/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"ऊपर/बाईं तरफ़ ले जाएं"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"नीचे/दाईं तरफ़ ले जाएं"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"ऐप्लिकेशन को बबल के तौर पर खोलें"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"हाल ही में इस्तेमाल किए गए ऐप्लिकेशन"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"हाल ही में इस्तेमाल किए गए ऐप्लिकेशन की सूची"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{ज़्यादा ऐप्लिकेशन}one{ज़्यादा ऐप्लिकेशन}other{ज़्यादा ऐप्लिकेशन}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"डेस्कटॉप"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> और <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> में से <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> आइटम"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-hr/strings.xml b/quickstep/res/values-hr/strings.xml index fca73aaa0f..2fb667909c 100644 --- a/quickstep/res/values-hr/strings.xml +++ b/quickstep/res/values-hr/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Premjesti gore/lijevo"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Premjesti dolje/desno"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Otvori aplikaciju kao oblačić"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Nedavne aplikacije"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Popis nedavnih aplikacija"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{dodatna aplikacija}one{dodatna aplikacija}few{dodatne aplikacije}other{dodatnih aplikacija}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Računalo"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> i <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, stavka <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> od <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-hy/strings.xml b/quickstep/res/values-hy/strings.xml index 184e281587..e418e8ee5b 100644 --- a/quickstep/res/values-hy/strings.xml +++ b/quickstep/res/values-hy/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Տեղափոխել վերևի ձախ անկյուն"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Տեղափոխել ներքևի աջ անկյուն"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Բացել հավելվածը պղպջակի ձևով"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Վերջերս բացված հավելվածներ"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Վերջերս բացված հավելվածների ցանկ"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{լրացուցիչ հավելված}one{լրացուցիչ հավելված}other{լրացուցիչ հավելված}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Համակարգիչ"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> և <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, տարր <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>՝ <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>-ից"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-in/strings.xml b/quickstep/res/values-in/strings.xml index 19ce0ad8bf..0fda663a0e 100644 --- a/quickstep/res/values-in/strings.xml +++ b/quickstep/res/values-in/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Pindahkan ke atas/kiri"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Pindahkan ke bawah/kanan"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Buka aplikasi sebagai balon"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Aplikasi yang baru dibuka"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Daftar aplikasi yang baru dibuka"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{aplikasi lainnya}other{aplikasi lainnya}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Desktop"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> dan <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, item <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> dari <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-is/strings.xml b/quickstep/res/values-is/strings.xml index 77e2fd0fb8..abfc7cf22a 100644 --- a/quickstep/res/values-is/strings.xml +++ b/quickstep/res/values-is/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Færa efst/til vinstri"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Færa neðst/til hægri"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Opna forrit sem blöðru"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Nýleg forrit"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Listi yfir nýleg forrit"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{forrit til viðbótar}one{forrit til viðbótar}other{forrit til viðbótar}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Skjáborð"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> og <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, atriði <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> af <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-it/strings.xml b/quickstep/res/values-it/strings.xml index 2069ecef15..00529b744a 100644 --- a/quickstep/res/values-it/strings.xml +++ b/quickstep/res/values-it/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Sposta in alto/a sinistra"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Sposta in basso/a destra"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Apri l\'app come fumetto"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"App recenti"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Elenco app recenti"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{altra app}other{altre app}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Desktop"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> e <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, elemento <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> di <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-iw/strings.xml b/quickstep/res/values-iw/strings.xml index 2b2302b7f3..32783628fd 100644 --- a/quickstep/res/values-iw/strings.xml +++ b/quickstep/res/values-iw/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"העברה לפינה השמאלית/העליונה"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"העברה לפינה הימנית/התחתונה"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"פתיחת האפליקציה בבועה"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"אפליקציות אחרונות"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"רשימת האפליקציות האחרונות"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{אפליקציה נוספת}one{אפליקציות נוספות}two{אפליקציות נוספות}other{אפליקציות נוספות}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"מחשב"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> ו-<xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, פריט <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> מתוך <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-ka/strings.xml b/quickstep/res/values-ka/strings.xml index c590ade480..ac46836c49 100644 --- a/quickstep/res/values-ka/strings.xml +++ b/quickstep/res/values-ka/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"ზემოთ/მარცხნივ გადატანა"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"ქვემოთ/მარჯვნივ გადატანა"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"აპის გახსნა ბუშტის სახით"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"ბოლოდროინდელი აპები"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"ბოლოდროინდელი აპების სია"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{სხვა აპი}other{სხვა აპი}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"დესკტოპი"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> და <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>-ე ერთეული <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>-დან"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-kk/strings.xml b/quickstep/res/values-kk/strings.xml index b9785a4eaf..c2861d6c00 100644 --- a/quickstep/res/values-kk/strings.xml +++ b/quickstep/res/values-kk/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Жоғары/солға жылжыту"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Төмен/оңға жылжыту"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Қолданбаны қалқыма терезе түрінде ашу"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Соңғы қолданбалар"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Соңғы қолданбалар тізімі"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{қосымша қолданба}other{қосымша қолданба}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Компьютер"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> және <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>/<xliff:g id="TOTAL_TASKS">%3$d</xliff:g> элемент"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-km/strings.xml b/quickstep/res/values-km/strings.xml index a139ca39de..799bcda688 100644 --- a/quickstep/res/values-km/strings.xml +++ b/quickstep/res/values-km/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"ផ្លាស់ទីទៅខាងលើ/ឆ្វេង"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"ផ្លាស់ទីទៅខាងក្រោម/ស្ដាំ"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"បើកកម្មវិធីជាផ្ទាំងសារ"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"កម្មវិធីថ្មីៗ"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"បញ្ជីកម្មវិធីថ្មីៗ"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{កម្មវិធីច្រើនទៀត}other{កម្មវិធីច្រើនទៀត}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"អេក្រង់ដើម"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> និង <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g> ធាតុទី <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> នៃ <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-kn/strings.xml b/quickstep/res/values-kn/strings.xml index a1907d50a9..c88aed2e19 100644 --- a/quickstep/res/values-kn/strings.xml +++ b/quickstep/res/values-kn/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"ಮೇಲಿನ/ಎಡಭಾಗಕ್ಕೆ ಸರಿಸಿ"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"ಕೆಳಗಿನ/ಬಲಭಾಗಕ್ಕೆ ಸರಿಸಿ"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"ಆ್ಯಪ್ ಅನ್ನು ಬಬಲ್ ಆಗಿ ತೆರೆಯಿರಿ"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"ಇತ್ತೀಚಿನ ಆ್ಯಪ್ಗಳು"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"ಇತ್ತೀಚಿನ ಆ್ಯಪ್ ಪಟ್ಟಿ"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{ಹೆಚ್ಚಿನ ಆ್ಯಪ್}one{ಹೆಚ್ಚಿನ ಆ್ಯಪ್ಗಳು}other{ಹೆಚ್ಚಿನ ಆ್ಯಪ್ಗಳು}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"ಡೆಸ್ಕ್ಟಾಪ್"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> ಮತ್ತು <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> ರಲ್ಲಿ <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> ಐಟಂ"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-ko/strings.xml b/quickstep/res/values-ko/strings.xml index 1e7e850291..5df9fdd548 100644 --- a/quickstep/res/values-ko/strings.xml +++ b/quickstep/res/values-ko/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"상단/왼쪽으로 이동"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"하단/오른쪽으로 이동"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"앱을 대화창으로 열기"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"최근 앱"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"최근 앱 목록"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{추가 앱}other{추가 앱}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"데스크톱"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> 및 <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>개 중 <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>번째 항목"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-ky/strings.xml b/quickstep/res/values-ky/strings.xml index 3190dee37c..049da10fae 100644 --- a/quickstep/res/values-ky/strings.xml +++ b/quickstep/res/values-ky/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Жогорку/сол бурчка жылдыруу"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Төмөнкү/оң бурчка жылдыруу"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Колдонмону көбүкчө катары ачуу"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Акыркы колдонмолор"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Акыркы колдонмолордун тизмеси"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{колдонмо бар}other{колдонмо бар}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Компьютер"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> жана <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> ичинен <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> нерсе"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-lo/strings.xml b/quickstep/res/values-lo/strings.xml index 42b487eaad..9eb169adf7 100644 --- a/quickstep/res/values-lo/strings.xml +++ b/quickstep/res/values-lo/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"ຍ້າຍໄປຊ້າຍ/ເທິງ"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"ຍ້າຍໄປຂວາ/ລຸ່ມ"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"ເປີດແອັບເປັນຟອງ"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"ແອັບຫຼ້າສຸດ"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"ລາຍຊື່ແອັບຫຼ້າສຸດ"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{ແອັບເພີ່ມເຕີມ}other{ແອັບເພີ່ມເຕີມ}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"ເດັສທັອບ"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> ແລະ <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, ລາຍການທີ <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> ຈາກທັງໝົດ <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-lt/strings.xml b/quickstep/res/values-lt/strings.xml index 20fcc803cf..2cbdc8e4f4 100644 --- a/quickstep/res/values-lt/strings.xml +++ b/quickstep/res/values-lt/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Perkelti aukštyn, kairėn"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Perkelti žemyn, dešinėn"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Atidaryti programą kaip burbulą"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Naujausios programos"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Naujausių programų sąrašas"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{papildoma programa}one{papildoma programa}few{papildomos programos}many{papildomos programos}other{papildomų programų}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Stalinis kompiuteris"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"„<xliff:g id="APP_NAME_1">%1$s</xliff:g>“ ir „<xliff:g id="APP_NAME_2">%2$s</xliff:g>“"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> element. iš <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-lv/strings.xml b/quickstep/res/values-lv/strings.xml index 7b256a7f4e..f8cda4a2f2 100644 --- a/quickstep/res/values-lv/strings.xml +++ b/quickstep/res/values-lv/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Pārvietot uz augšējo/kreiso stūri"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Pārvietot uz apakšējo/labo stūri"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Atvērt lietotni kā burbuli"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Pēdējās izmantotās lietotnes"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Pēdējo izmantoto lietotņu saraksts"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{papildu lietotne}zero{papildu lietotņu}one{papildu lietotne}other{papildu lietotnes}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Darbvirsma"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"“<xliff:g id="APP_NAME_1">%1$s</xliff:g>” un “<xliff:g id="APP_NAME_2">%2$s</xliff:g>”"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>; <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>. vienums no <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-mk/strings.xml b/quickstep/res/values-mk/strings.xml index 08dc4591b4..d5fe673309 100644 --- a/quickstep/res/values-mk/strings.xml +++ b/quickstep/res/values-mk/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Премести горе лево"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Премести долу десно"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Отвори апликација како балонче"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Неодамнешни апликации"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Список со неодамнешни апликации"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{дополнителна апликација}one{дополнителна апликација}other{дополнителни апликации}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Режим за компјутер"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> и <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, ставка <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> од <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-ml/strings.xml b/quickstep/res/values-ml/strings.xml index 9b87841c50..099e0003e6 100644 --- a/quickstep/res/values-ml/strings.xml +++ b/quickstep/res/values-ml/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"മുകളിലേക്കോ ഇടത്തേക്കോ നീക്കുക"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"താഴേക്കോ വലത്തേക്കോ നീക്കുക"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"ആപ്പ് ഒരു ബബിളായി തുറക്കുക"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"അടുത്തിടെ തുറന്ന ആപ്പുകൾ"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"അടുത്തിടെ തുറന്ന ആപ്പ് ലിസ്റ്റ്"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{കൂടുതൽ ആപ്പ്}other{കൂടുതൽ ആപ്പുകൾ}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"ഡെസ്ക്ടോപ്പ്"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g>, <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>-ൽ <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>-ാമത്തെ ഇനം"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-mn/strings.xml b/quickstep/res/values-mn/strings.xml index f390e211da..d41faafd82 100644 --- a/quickstep/res/values-mn/strings.xml +++ b/quickstep/res/values-mn/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Зүүн дээд хэсэг рүү зөөх"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Баруун доод хэсэг рүү зөөх"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Аппыг бөмбөлөг байдлаар нээх"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Саяхны апп"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Саяхны аппын жагсаалт"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{бусад апп}other{бусад апп}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Дэлгэц"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> болон <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>-н <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>-р зүйл"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-mr/strings.xml b/quickstep/res/values-mr/strings.xml index 4e6d30951d..5aa9dfcba7 100644 --- a/quickstep/res/values-mr/strings.xml +++ b/quickstep/res/values-mr/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"सर्वात वरती/डावीकडे हलवा"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"तळाशी/उजवीकडे हलवा"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"बबल म्हणून अॅप उघडा"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"अलीकडील ॲप्स"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"अलीकडील ॲपची सूची"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{आणखी अॅप}other{आणखी अॅप्स}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"डेस्कटॉप"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> आणि <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> पैकी <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> आयटम"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-my/strings.xml b/quickstep/res/values-my/strings.xml index 8f90b8b1ce..499269c27f 100644 --- a/quickstep/res/values-my/strings.xml +++ b/quickstep/res/values-my/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"အပေါ်/ဘယ်ဘက်သို့ ရွှေ့ရန်"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"အောက်ခြေ/ညာဘက်သို့ ရွှေ့ရန်"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"အက်ပ်ကို ပူဖောင်းကွက်အဖြစ် ဖွင့်ရန်"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"မကြာသေးမီက အက်ပ်များ"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"မကြာသေးမီက အက်ပ်စာရင်း"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{နောက်ထပ်အက်ပ်}other{နောက်ထပ်အက်ပ်များ}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"ဒက်စ်တော့"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> နှင့် <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>၊ <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> ခုအနက် <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-nb/strings.xml b/quickstep/res/values-nb/strings.xml index a5799c5525..7ec515ce98 100644 --- a/quickstep/res/values-nb/strings.xml +++ b/quickstep/res/values-nb/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Flytt til øverst/venstre"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Flytt til nederst/høyre"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Åpne appen som en boble"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Nylige apper"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Liste over nylige apper"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{app til}other{apper til}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Skrivebord"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> og <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, element <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> av <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-ne/strings.xml b/quickstep/res/values-ne/strings.xml index b1b03e4382..91c6bba275 100644 --- a/quickstep/res/values-ne/strings.xml +++ b/quickstep/res/values-ne/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"सिरान/बायाँतिर सार्नुहोस्"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"फेद/दायाँतिर सार्नुहोस्"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"एपलाई बबलका रूपमा खोल्नुहोस्"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"हालसालै चलाइएका एपहरू"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"हालसालै चलाइएको एपको सूची"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{थप एप}other{थप एपहरू}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"डेस्कटप"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> र <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> मध्ये <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> औँ वस्तु"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-nl/strings.xml b/quickstep/res/values-nl/strings.xml index bd4dfc5806..9e49f13252 100644 --- a/quickstep/res/values-nl/strings.xml +++ b/quickstep/res/values-nl/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Naar boven/links verplaatsen"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Naar beneden/rechts verplaatsen"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"App openen als ballon"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Recente apps"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Lijst met recente apps"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{extra app}other{extra apps}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Desktop"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> en <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, item <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> van <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-or/strings.xml b/quickstep/res/values-or/strings.xml index 7efa0266a9..4721e74cfb 100644 --- a/quickstep/res/values-or/strings.xml +++ b/quickstep/res/values-or/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"ଶୀର୍ଷ/ବାମକୁ ମୁଭ କରନ୍ତୁ"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"ନିମ୍ନ/ଡାହାଣକୁ ମୁଭ କରନ୍ତୁ"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"ଏକ ବବଲ ଭାବେ ଆପ ଖୋଲନ୍ତୁ"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"ବର୍ତ୍ତମାନର ଆପ"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"ବର୍ତ୍ତମାନର ଆପ ତାଲିକା"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{ଅଧିକ ଆପ}other{ଅଧିକ ଆପ୍ସ}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"ଡେସ୍କଟପ"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> ଏବଂ <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>ର <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> ଆଇଟମ"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-pa/strings.xml b/quickstep/res/values-pa/strings.xml index 798619bc66..f081b67b0e 100644 --- a/quickstep/res/values-pa/strings.xml +++ b/quickstep/res/values-pa/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"ਸਿਖਰਲੇ/ਖੱਬੇ ਪਾਸੇ ਲੈ ਕੇ ਜਾਓ"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"ਹੇਠਾਂ/ਸੱਜੇ ਪਾਸੇ ਲੈ ਕੇ ਜਾਓ"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"ਐਪ ਨੂੰ ਬਬਲ ਵਜੋਂ ਖੋਲ੍ਹੋ"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"ਹਾਲੀਆ ਐਪਾਂ"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"ਹਾਲੀਆ ਐਪ ਸੂਚੀ"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{ਹੋਰ ਐਪ}one{ਹੋਰ ਐਪ}other{ਹੋਰ ਐਪਾਂ}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"ਡੈਸਕਟਾਪ"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> ਅਤੇ <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> ਵਿੱਚੋਂ <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> ਆਈਟਮ"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-pl/strings.xml b/quickstep/res/values-pl/strings.xml index 6f6b08b08e..9970dee960 100644 --- a/quickstep/res/values-pl/strings.xml +++ b/quickstep/res/values-pl/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Przesuń w górny lewy róg"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Przesuń w dolny prawy róg"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Otwórz aplikację jako dymek"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Ostatnie aplikacje"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Lista ostatnich aplikacji"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{inna aplikacja}few{inne aplikacje}many{innych aplikacji}other{innej aplikacji}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Pulpit"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> i <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, element <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> z <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-pt/strings.xml b/quickstep/res/values-pt/strings.xml index 892881b28f..92fed63ed5 100644 --- a/quickstep/res/values-pt/strings.xml +++ b/quickstep/res/values-pt/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Mover para cima/para a esquerda"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Mover para baixo/para a direita"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Abrir o app como um balão"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Apps recentes"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Lista de apps recentes"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{outro app}one{outro app}other{outros apps}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Computador"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> e <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, item <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> de <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-ro/strings.xml b/quickstep/res/values-ro/strings.xml index 3be5fccb6d..4b1ee4d8ff 100644 --- a/quickstep/res/values-ro/strings.xml +++ b/quickstep/res/values-ro/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Mută în stânga sus"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Mută în dreapta jos"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Deschide aplicația ca balon"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Aplicații recente"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Lista de aplicații recente"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{aplicație suplimentară}few{mai multe aplicații}other{mai multe aplicații}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Computer"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> și <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, articolul <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> din <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-ru/strings.xml b/quickstep/res/values-ru/strings.xml index 8129585816..f46de34767 100644 --- a/quickstep/res/values-ru/strings.xml +++ b/quickstep/res/values-ru/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Переместить вверх или влево"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Переместить вниз или вправо"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Открыть приложение во всплывающем окне"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Недавние приложения"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Список недавних приложений"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{дополнительное приложение}one{дополнительное приложение}few{дополнительных приложения}many{дополнительных приложений}other{дополнительного приложения}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Режим компьютера"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> и <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, элемент <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> из <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-si/strings.xml b/quickstep/res/values-si/strings.xml index 2d6a3b97a1..d413b0dd70 100644 --- a/quickstep/res/values-si/strings.xml +++ b/quickstep/res/values-si/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"ඉහළ/වම වෙත ගෙන යන්න"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"පහළ/දකුණ වෙත ගෙන යන්න"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"යෙදුම බුබුලක් ලෙස විවෘත කරන්න"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"මෑත යෙදුම්"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"මෑත යෙදුම් ලැයිස්තුව"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{තව යෙදුම}one{තවත් යෙදුම්}other{තවත් යෙදුම්}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"ඩෙස්ක්ටොපය"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> සහ <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, අයිතම <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>න් <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-sk/strings.xml b/quickstep/res/values-sk/strings.xml index e3a86cbe00..8b87d38c27 100644 --- a/quickstep/res/values-sk/strings.xml +++ b/quickstep/res/values-sk/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Presunúť hore alebo doľava"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Presunúť dole alebo doprava"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Otvoriť aplikáciu ako bublinu"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Nedávne aplikácie"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Zoznam nedávnych aplikácií"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{ďalšia aplikácia}few{ďalšie aplikácie}many{ďalšie aplikácie}other{ďalšie aplikácie}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Počítač"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> a <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>. položka z <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-sq/strings.xml b/quickstep/res/values-sq/strings.xml index 0bea11d2ae..5ab85facaf 100644 --- a/quickstep/res/values-sq/strings.xml +++ b/quickstep/res/values-sq/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Lëviz në krye/majtas"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Lëviz në fund/djathtas"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Hap aplikacionin si një flluskë"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Aplikacionet e fundit"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Lista e aplikacioneve të fundit"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{aplikacion tjetër}other{aplikacione të tjera}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Desktop"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> dhe <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, artikulli <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> nga <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-sr/strings.xml b/quickstep/res/values-sr/strings.xml index 06ca295a01..4e32155e4c 100644 --- a/quickstep/res/values-sr/strings.xml +++ b/quickstep/res/values-sr/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Премести горе лево"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Премести доле десно"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Отвори апликацију као облачић"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Недавне апликације"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Листа недавних апликација"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{додатна апликација}one{додатна апликација}few{додатне апликације}other{додатних апликација}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Рачунар"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> и <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, ставка <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> од <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-sv/strings.xml b/quickstep/res/values-sv/strings.xml index 8f57cad05d..0ac4d4615b 100644 --- a/quickstep/res/values-sv/strings.xml +++ b/quickstep/res/values-sv/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Flytta högst upp/till vänster"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Flytta längst ned/till höger"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Öppna appen som en bubbla"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Senaste apparna"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Lista över senaste appar"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{app till}other{appar till}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Skrivbordsläge"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> och <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, objekt <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> av <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-sw/strings.xml b/quickstep/res/values-sw/strings.xml index 7aaf14ea93..b3afda5368 100644 --- a/quickstep/res/values-sw/strings.xml +++ b/quickstep/res/values-sw/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Sogeza juu/kushoto"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Sogeza chini/kulia"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Fungua programu kama kiputo"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Programu ulizofungua hivi majuzi"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Orodha ya programu ulizofungua hivi majuzi"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{programu nyingine}other{programu zingine}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Kompyuta ya Mezani"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> na <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, kipengee cha <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> kati ya <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-ta/strings.xml b/quickstep/res/values-ta/strings.xml index b0b771e647..f6e102124b 100644 --- a/quickstep/res/values-ta/strings.xml +++ b/quickstep/res/values-ta/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"மேலே/இடதுபுறம் நகர்த்தும்"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"கீழே/வலதுபுறம் நகர்த்தும்"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"ஆப்ஸைக் குமிழாகத் திற"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"சமீபத்திய ஆப்ஸ்"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"சமீபத்திய ஆப்ஸ் பட்டியல்"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{கூடுதல் ஆப்ஸ்}other{கூடுதல் ஆப்ஸ்}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"டெஸ்க்டாப்"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> மற்றும் <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> இல் <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> கட்டம்"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-te/strings.xml b/quickstep/res/values-te/strings.xml index 5f0e7a4fde..5ab198e81d 100644 --- a/quickstep/res/values-te/strings.xml +++ b/quickstep/res/values-te/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"ఎగువ/ఎడమ వైపునకు తరలించండి"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"దిగువ/కుడి వైపునకు తరలించండి"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"యాప్ను బబుల్లాగా తెరవండి"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"ఇటీవలి యాప్లు"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"ఇటీవలి యాప్ లిస్ట్"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{మరో యాప్}other{మరిన్ని యాప్లు}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"డెస్క్టాప్"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g>, <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>లో <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>వ ఐటెమ్"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-th/strings.xml b/quickstep/res/values-th/strings.xml index 9a88f92cfb..98380033c2 100644 --- a/quickstep/res/values-th/strings.xml +++ b/quickstep/res/values-th/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"ย้ายไปที่ด้านบนหรือด้านซ้าย"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"ย้ายไปที่ด้านล่างหรือด้านขวา"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"เปิดแอปเป็นบับเบิล"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"แอปล่าสุด"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"รายการแอปล่าสุด"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{แอปเพิ่มเติม}other{แอปเพิ่มเติม}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"เดสก์ท็อป"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> และ <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, รายการที่ <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> จาก <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-tl/strings.xml b/quickstep/res/values-tl/strings.xml index f85cce4d3c..52619b9880 100644 --- a/quickstep/res/values-tl/strings.xml +++ b/quickstep/res/values-tl/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Ilipat sa itaas/kaliwa"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Ilipat sa ibaba/kanan"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Buksan ang app bilang bubble"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Mga kamakailang app"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Kamakailang listahan ng app"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{pang app}one{pang app}other{pang app}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Desktop"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> at <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, item <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> ng <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-tr/strings.xml b/quickstep/res/values-tr/strings.xml index c39a65f35f..f30205a907 100644 --- a/quickstep/res/values-tr/strings.xml +++ b/quickstep/res/values-tr/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Sol üste taşı"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Sağ alta taşı"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Uygulamayı balon olarak aç"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Son uygulamalar"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Son uygulama listesi"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{uygulama daha}other{uygulama daha}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Masaüstü"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> ve <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>/<xliff:g id="TOTAL_TASKS">%3$d</xliff:g> öğe"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-uk/strings.xml b/quickstep/res/values-uk/strings.xml index 433e02017d..4cda8cfc79 100644 --- a/quickstep/res/values-uk/strings.xml +++ b/quickstep/res/values-uk/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Перемістити вгору або вліво"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Перемістити вниз або вправо"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Відкрити додаток у спливаючому вікні"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Нещодавні додатки"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Список нещодавніх додатків"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{інший додаток}one{інший додаток}few{інші додатки}many{інших додатків}other{іншого додатка}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Комп’ютер"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> та <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, об’єкт <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> з <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-ur/strings.xml b/quickstep/res/values-ur/strings.xml index 603760c6a7..a5508d47c5 100644 --- a/quickstep/res/values-ur/strings.xml +++ b/quickstep/res/values-ur/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"اوپر/بائیں طرف منتقل کریں"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"نیچے/دائیں طرف منتقل کریں"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"ایپ کو بطور ببل کھولیں"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"حالیہ ایپس"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"حالیہ ایپ کی فہرست"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{مزید ایپ}other{مزید ایپس}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"ڈیسک ٹاپ"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> اور <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>، آئٹم <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> از <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-uz/strings.xml b/quickstep/res/values-uz/strings.xml index f28957383b..e091d69a33 100644 --- a/quickstep/res/values-uz/strings.xml +++ b/quickstep/res/values-uz/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Yuqoriga yoki chapga oʻtkazish"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Pastga yoki oʻngga oʻtkazish"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Ilovani qalqib chiquvchi oynada ochish"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Oxirgi ilovalar"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Oxirgi ilovalar roʻyxati"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{boshqa ilova}other{boshqa ilovalar}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Kompyuter"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> va <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g>-element, jami: <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> ta"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-vi/strings.xml b/quickstep/res/values-vi/strings.xml index d0f5252f01..44cfb44b93 100644 --- a/quickstep/res/values-vi/strings.xml +++ b/quickstep/res/values-vi/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Chuyển lên trên cùng/sang bên trái"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Chuyển xuống dưới cùng/sang bên phải"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Mở ứng dụng dưới dạng bong bóng"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Các ứng dụng gần đây"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Danh sách ứng dụng gần đây"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{ứng dụng khác}other{ứng dụng khác}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Máy tính"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> và <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, mục <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> trong số <xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-zh-rCN/strings.xml b/quickstep/res/values-zh-rCN/strings.xml index 6548148b35..0494f54035 100644 --- a/quickstep/res/values-zh-rCN/strings.xml +++ b/quickstep/res/values-zh-rCN/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"移到顶部/左侧"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"移到底部/右侧"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"以气泡的形式打开应用"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"最近打开过的应用"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"“最近打开过的应用”列表"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{多个应用}other{多个应用}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"桌面模式"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g>和<xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>,第 <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> 项(共 <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> 项)"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-zh-rHK/strings.xml b/quickstep/res/values-zh-rHK/strings.xml index 0606463f80..d199ee1dec 100644 --- a/quickstep/res/values-zh-rHK/strings.xml +++ b/quickstep/res/values-zh-rHK/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"移至上方/左側"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"移至底部/右側"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"在小視窗開啟應用程式"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"最近開啟的應用程式"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"「最近開啟的應用程式」清單"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{個其他應用程式}other{個其他應用程式}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"桌面"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"「<xliff:g id="APP_NAME_1">%1$s</xliff:g>」和「<xliff:g id="APP_NAME_2">%2$s</xliff:g>」"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>,第 <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> 個項目,總共有 <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> 項"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-zh-rTW/strings.xml b/quickstep/res/values-zh-rTW/strings.xml index 44c6fdfed3..7b9efb7ef5 100644 --- a/quickstep/res/values-zh-rTW/strings.xml +++ b/quickstep/res/values-zh-rTW/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"移到上方/左側"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"移到底部/右側"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"以泡泡形式開啟應用程式"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"最近開啟的應用程式"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"「最近開啟的應用程式」清單"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{個其他應用程式}other{個其他應用程式}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"電腦模式"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"「<xliff:g id="APP_NAME_1">%1$s</xliff:g>」和「<xliff:g id="APP_NAME_2">%2$s</xliff:g>」"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>,第 <xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> 個項目,共 <xliff:g id="TOTAL_TASKS">%3$d</xliff:g> 項"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/res/values-zu/strings.xml b/quickstep/res/values-zu/strings.xml index c666ee7eac..8d344e2f7e 100644 --- a/quickstep/res/values-zu/strings.xml +++ b/quickstep/res/values-zu/strings.xml @@ -140,15 +140,12 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Hamba phezulu/kwesokunxele"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Hamba phansi/kwesokudla"</string> <string name="open_app_as_a_bubble" msgid="6642626287247807473">"Vula i-app njengebhamuza"</string> - <!-- no translation found for quick_switch_pane_title (4677158207760585812) --> - <skip /> - <!-- no translation found for quick_switch_content_description (2851244536728720005) --> - <skip /> + <string name="quick_switch_pane_title" msgid="4677158207760585812">"Ama-app wakamuva"</string> + <string name="quick_switch_content_description" msgid="2851244536728720005">"Uhlu lwe-app lwakamuva"</string> <string name="quick_switch_overflow" msgid="3679780650881041632">"{count,plural, =1{i-app eyengeziwe}one{ama-app engeziwe}other{ama-app engeziwe}}"</string> <string name="quick_switch_desktop" msgid="8393802056024499749">"Ideskithophu"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"I-<xliff:g id="APP_NAME_1">%1$s</xliff:g> ne-<xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> - <!-- no translation found for quick_switch_task_with_position_in_parent (4968670948331508951) --> - <skip /> + <string name="quick_switch_task_with_position_in_parent" msgid="4968670948331508951">"I-<xliff:g id="TASK_DESCRIPTION">%1$s</xliff:g>, into engu-<xliff:g id="INDEX_IN_PARENT">%2$d</xliff:g> kwezingu-<xliff:g id="TOTAL_TASKS">%3$d</xliff:g>"</string> <!-- no translation found for quick_switch_scroll_arrow_left (6527033155534184309) --> <skip /> <!-- no translation found for quick_switch_scroll_arrow_right (7319779291086916348) --> diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index 21af26ea6b..548fbefcae 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -68,6 +68,7 @@ import static com.android.quickstep.util.AnimUtils.completeRunnableListCallback; import static com.android.systemui.shared.Flags.returnAnimationFrameworkLibrary; import static com.android.systemui.shared.system.QuickStepContract.getWindowCornerRadius; import static com.android.systemui.shared.system.QuickStepContract.supportsRoundedCornersOnWindows; +import static com.android.wm.shell.Flags.enableDynamicInsetsForAppLaunch; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; @@ -283,6 +284,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener private final Interpolator mOpeningXInterpolator; private final Interpolator mOpeningInterpolator; + private final SystemUiProxy mSystemUiProxy; + public QuickstepTransitionManager(Context context) { mLauncher = Launcher.cast(Launcher.getLauncher(context)); mDragLayer = mLauncher.getDragLayer(); @@ -297,6 +300,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener mMaxShadowRadius = res.getDimensionPixelSize(R.dimen.max_shadow_radius); mLauncher.addOnDeviceProfileChangeListener(this); + mSystemUiProxy = SystemUiProxy.INSTANCE.get(mLauncher); if (ENABLE_SHELL_STARTING_SURFACE) { mTaskStartParams = new LinkedHashMap<>(MAX_NUM_TASKS) { @@ -306,8 +310,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener } }; - SystemUiProxy.INSTANCE.get(mLauncher).setStartingWindowListener( - mStartingWindowListener); + mSystemUiProxy.setStartingWindowListener(mStartingWindowListener); } mOpeningXInterpolator = AnimationUtils.loadInterpolator(context, R.interpolator.app_open_x); @@ -522,12 +525,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener 4 - rotationChange); } } - if (mDeviceProfile.isTaskbarPresentInApps - && !target.willShowImeOnTarget - && !isTransientTaskbar(mLauncher)) { - // Animate to above the taskbar. - bounds.bottom -= target.contentInsets.bottom; - } return bounds; } @@ -694,6 +691,13 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener }; } + private boolean shouldCropToInset(RemoteAnimationTarget target) { + return enableDynamicInsetsForAppLaunch() + && mDeviceProfile.isTaskbarPresentInApps + && target != null && !target.willShowImeOnTarget + && !isTransientTaskbar(mLauncher); + } + /** * @return Animator that controls the window of the opening targets from app icons. */ @@ -702,8 +706,19 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener RemoteAnimationTarget[] wallpaperTargets, RemoteAnimationTarget[] nonAppTargets, boolean launcherClosing) { + RemoteAnimationTargets openingTargets = new RemoteAnimationTargets(appTargets, + wallpaperTargets, nonAppTargets, MODE_OPENING); int rotationChange = getRotationChange(appTargets); Rect windowTargetBounds = getWindowTargetBounds(appTargets, rotationChange); + final int[] bottomInsetPos = new int[]{ + mSystemUiProxy.getHomeVisibilityState().getNavbarInsetPosition()}; + final RemoteAnimationTarget target = openingTargets.getFirstAppTarget(); + final boolean cropToInset = shouldCropToInset(target); + if (cropToInset) { + // Animate to above the taskbar. + windowTargetBounds.bottom = Math.min(bottomInsetPos[0], + windowTargetBounds.bottom); + } boolean appTargetsAreTranslucent = areAllTargetsTranslucent(appTargets); RectF launcherIconBounds = new RectF(); @@ -716,8 +731,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener Rect crop = new Rect(); Matrix matrix = new Matrix(); - RemoteAnimationTargets openingTargets = new RemoteAnimationTargets(appTargets, - wallpaperTargets, nonAppTargets, MODE_OPENING); SurfaceTransactionApplier surfaceApplier = new SurfaceTransactionApplier(floatingView); openingTargets.addReleaseCheck(surfaceApplier); @@ -823,6 +836,39 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener @Override public void onUpdate(float percent, boolean initOnly) { + if (cropToInset && bottomInsetPos[0] != mSystemUiProxy.getHomeVisibilityState() + .getNavbarInsetPosition()) { + final RemoteAnimationTarget target = openingTargets.getFirstAppTarget(); + bottomInsetPos[0] = mSystemUiProxy.getHomeVisibilityState() + .getNavbarInsetPosition(); + final Rect bounds = target != null + ? target.screenSpaceBounds : windowTargetBounds; + // Animate to above the taskbar. + int bottomLevel = Math.min(bottomInsetPos[0], bounds.bottom); + windowTargetBounds.bottom = bottomLevel; + final int endHeight = bottomLevel - bounds.top; + + AnimOpenProperties prop = new AnimOpenProperties(mLauncher.getResources(), + mDeviceProfile, windowTargetBounds, launcherIconBounds, v, + dragLayerBounds[0], dragLayerBounds[1], hasSplashScreen, + floatingView.isDifferentFromAppIcon()); + mCropRectCenterY = new FloatProp(prop.cropCenterYStart, prop.cropCenterYEnd, + mOpeningInterpolator); + mCropRectHeight = new FloatProp(prop.cropHeightStart, prop.cropHeightEnd, + mOpeningInterpolator); + mDy = new FloatProp(0, prop.dY, mOpeningInterpolator); + mIconScaleToFitScreen = new FloatProp(prop.initialAppIconScale, + prop.finalAppIconScale, mOpeningInterpolator); + float interpolatedPercent = mOpeningInterpolator.getInterpolation(percent); + mCropRectHeight.value = Utilities.mapRange(interpolatedPercent, + prop.cropHeightStart, prop.cropHeightEnd); + mCropRectCenterY.value = Utilities.mapRange(interpolatedPercent, + prop.cropCenterYStart, prop.cropCenterYEnd); + mDy.value = Utilities.mapRange(interpolatedPercent, 0, prop.dY); + mIconScaleToFitScreen.value = Utilities.mapRange(interpolatedPercent, + prop.initialAppIconScale, prop.finalAppIconScale); + } + // Calculate the size of the scaled icon. float iconWidth = launcherIconBounds.width() * mIconScaleToFitScreen.value; float iconHeight = launcherIconBounds.height() * mIconScaleToFitScreen.value; diff --git a/quickstep/src/com/android/launcher3/taskbar/FallbackTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/FallbackTaskbarUIController.java index d6327bc3cd..5b1e8593a1 100644 --- a/quickstep/src/com/android/launcher3/taskbar/FallbackTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/FallbackTaskbarUIController.java @@ -26,11 +26,15 @@ import androidx.annotation.Nullable; import com.android.launcher3.popup.SystemShortcut; import com.android.launcher3.statemanager.StateManager; import com.android.launcher3.statemanager.StatefulContainer; +import com.android.quickstep.FallbackActivityInterface; +import com.android.quickstep.GestureState; +import com.android.quickstep.RecentsAnimationCallbacks; import com.android.quickstep.TopTaskTracker; import com.android.quickstep.fallback.RecentsState; import com.android.quickstep.views.RecentsView; import com.android.quickstep.views.RecentsViewContainer; +import java.io.PrintWriter; import java.util.stream.Stream; /** @@ -92,11 +96,19 @@ public class FallbackTaskbarUIController mRecentsContainer.getStateManager().removeStateListener(mStateListener); } + @Nullable + @Override + public Animator getParallelAnimationToGestureEndTarget(GestureState.GestureEndTarget endTarget, + long duration, RecentsAnimationCallbacks callbacks) { + return createAnimToRecentsState( + FallbackActivityInterface.INSTANCE.stateFromGestureEndTarget(endTarget), duration); + } + /** * Creates an animation to animate the taskbar for the given state (but does not start it). * Currently this animation just force stashes the taskbar in Overview. */ - public Animator createAnimToRecentsState(RecentsState toState, long duration) { + private Animator createAnimToRecentsState(RecentsState toState, long duration) { // Force stash taskbar (disallow unstashing) when: // - in a 3P launcher or overview task. // - not running in a test harness (unstash is needed for tests) @@ -134,7 +146,8 @@ public class FallbackTaskbarUIController private boolean isIn3pHomeOrRecents() { TopTaskTracker.CachedTaskInfo topTask = TopTaskTracker.INSTANCE - .get(mControllers.taskbarActivityContext).getCachedTopTask(true); + .get(mControllers.taskbarActivityContext).getCachedTopTask(true, + mRecentsContainer.asContext().getDisplayId()); return topTask.isHomeTask() || topTask.isRecentsTask(); } @@ -142,4 +155,12 @@ public class FallbackTaskbarUIController protected String getTaskbarUIControllerName() { return "FallbackTaskbarUIController<" + mRecentsContainer.getClass().getSimpleName() + ">"; } + + @Override + protected void dumpLogs(String prefix, PrintWriter pw) { + super.dumpLogs(prefix, pw); + + pw.println(String.format("%s\tRecentsState=%s", prefix, + mRecentsContainer.getStateManager().getState())); + } } diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java index 913035ae21..3d5e214391 100644 --- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java @@ -48,11 +48,16 @@ import com.android.launcher3.uioverrides.QuickstepLauncher; import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.MultiPropertyFactory; import com.android.launcher3.util.OnboardingPrefs; +import com.android.quickstep.GestureState; import com.android.quickstep.HomeVisibilityState; +import com.android.quickstep.LauncherActivityInterface; import com.android.quickstep.RecentsAnimationCallbacks; import com.android.quickstep.SystemUiProxy; +import com.android.quickstep.fallback.window.RecentsDisplayModel; +import com.android.quickstep.fallback.window.RecentsWindowFlags; import com.android.quickstep.util.SplitTask; import com.android.quickstep.views.RecentsView; +import com.android.quickstep.views.RecentsViewContainer; import com.android.systemui.shared.system.QuickStepContract.SystemUiStateFlags; import com.android.wm.shell.shared.bubbles.BubbleBarLocation; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; @@ -100,6 +105,8 @@ public class LauncherTaskbarUIController extends TaskbarUIController { // Initialized in init. private final TaskbarLauncherStateController mTaskbarLauncherStateController = new TaskbarLauncherStateController(); + // When overview-in-a-window is enabled, that window is the container, else it is mLauncher. + private RecentsViewContainer mRecentsViewContainer; public LauncherTaskbarUIController(QuickstepLauncher launcher) { mLauncher = launcher; @@ -112,8 +119,19 @@ public class LauncherTaskbarUIController extends TaskbarUIController { mTaskbarLauncherStateController.init(mControllers, mLauncher, mControllers.getSharedState().sysuiStateFlags); - + final TaskbarActivityContext taskbarContext = mControllers.taskbarActivityContext; + if (RecentsWindowFlags.getEnableOverviewInWindow()) { + mRecentsViewContainer = RecentsDisplayModel.getINSTANCE() + .get(taskbarContext).getRecentsWindowManager(taskbarContext.getDisplayId()); + } + if (mRecentsViewContainer == null) { + mRecentsViewContainer = mLauncher; + } mLauncher.setTaskbarUIController(this); + if (mRecentsViewContainer != mLauncher) { + mRecentsViewContainer.setTaskbarUIController(this); + } + mHomeState.addListener(mVisibilityChangeListener); onLauncherVisibilityChanged( Flags.useActivityOverlay() @@ -142,6 +160,9 @@ public class LauncherTaskbarUIController extends TaskbarUIController { mTaskbarLauncherStateController.onDestroy(); mLauncher.setTaskbarUIController(null); + if (mRecentsViewContainer != mLauncher) { + mRecentsViewContainer.setTaskbarUIController(null); + } mHomeState.removeListener(mVisibilityChangeListener); } @@ -203,13 +224,18 @@ public class LauncherTaskbarUIController extends TaskbarUIController { */ @Override public void onLauncherVisibilityChanged(boolean isVisible) { - if (DesktopModeStatus.enterDesktopByDefaultOnFreeformDisplay(mLauncher)) { + if (DesktopModeStatus.enterDesktopByDefaultOnFreeformDisplay(mLauncher) + && mControllers.taskbarActivityContext.isPrimaryDisplay()) { DisplayController.INSTANCE.get(mLauncher).notifyConfigChange(); } + onLauncherVisibilityChanged(isVisible, false /* fromInit */); } private void onLauncherVisibilityChanged(boolean isVisible, boolean fromInitOrDestroy) { + if (mControllers == null) { + return; + } onLauncherVisibilityChanged( isVisible, fromInitOrDestroy, @@ -223,12 +249,12 @@ public class LauncherTaskbarUIController extends TaskbarUIController { if (!Flags.predictiveBackToHomePolish()) { shouldOverrideToFastAnimation |= mLauncher.getPredictiveBackToHomeInProgress(); } - boolean isPinnedTaskbar = - mControllers.taskbarActivityContext.isPinnedTaskbar(); - if (isVisible || isPinnedTaskbar) { - return getTaskbarToHomeDuration(shouldOverrideToFastAnimation, isPinnedTaskbar); + + boolean isPinned = mControllers.taskbarActivityContext.isPinnedTaskbar(); + if (isVisible || isPinned) { + return getTaskbarToHomeDuration(shouldOverrideToFastAnimation, isPinned); } else { - return mControllers.taskbarActivityContext.isTransientTaskbar() + return (mControllers.taskbarActivityContext.isTransientTaskbar()) ? TRANSIENT_TASKBAR_TRANSITION_DURATION : TASKBAR_TO_APP_DURATION; } } @@ -239,7 +265,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { // Launcher is resumed during the swipe-to-overview gesture under shell-transitions, so // avoid updating taskbar state in that situation (when it's non-interactive -- or // "background") to avoid premature animations. - LauncherState state = mLauncher.getStateManager().getState(); + LauncherState state = mTaskbarLauncherStateController.getLauncherState(); boolean nonInteractiveState = state.hasFlag(FLAG_NON_INTERACTIVE) && !state.isTaskbarAlignedWithHotseat(mLauncher); if (isVisible && (nonInteractiveState || mSkipLauncherVisibilityChange)) { @@ -295,13 +321,16 @@ public class LauncherTaskbarUIController extends TaskbarUIController { /** * Create Taskbar animation when going from an app to Launcher as part of recents transition. - * @param toState If known, the state we will end up in when reaching Launcher. - * @param callbacks callbacks to track the recents animation lifecycle. The state change is - * automatically reset once the recents animation finishes + * {@inheritDoc} */ - public Animator createAnimToLauncher(@NonNull LauncherState toState, - @NonNull RecentsAnimationCallbacks callbacks, long duration) { - return mTaskbarLauncherStateController.createAnimToLauncher(toState, callbacks, duration); + @Override + public Animator getParallelAnimationToGestureEndTarget( + GestureState.GestureEndTarget gestureEndTarget, long duration, + RecentsAnimationCallbacks callbacks) { + return mTaskbarLauncherStateController.createAnimToLauncher( + LauncherActivityInterface.INSTANCE.stateFromGestureEndTarget(gestureEndTarget), + callbacks, + duration); } /** @@ -508,7 +537,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { @Override public RecentsView getRecentsView() { - return mLauncher.getOverviewPanel(); + return mRecentsViewContainer.getOverviewPanel(); } @Override @@ -537,6 +566,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { "WIDGETS_PAGE_PROGRESS_INDEX", "SYSUI_SURFACE_PROGRESS_INDEX", "LAUNCHER_PAUSE_PROGRESS_INDEX"); + pw.println(String.format("%s\tmRecentsWindowContainer=%s", prefix, mRecentsViewContainer)); mTaskbarLauncherStateController.dumpLogs(prefix + "\t", pw); } diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java index 7d2dc71961..f03b7d147b 100644 --- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java @@ -72,6 +72,7 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.PaintDrawable; import android.graphics.drawable.RotateDrawable; import android.inputmethodservice.InputMethodService; +import android.os.Bundle; import android.os.Handler; import android.os.SystemProperties; import android.util.Property; @@ -84,6 +85,7 @@ import android.view.View.OnAttachStateChangeListener; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.WindowManager; +import android.view.accessibility.AccessibilityNodeInfo; import android.view.inputmethod.Flags; import android.widget.FrameLayout; import android.widget.ImageView; @@ -682,12 +684,16 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT /** * Sets the AccessibilityDelegate for the back button. + * + * When setting a back button accessibility delegate, make sure to not dispatch any duplicate + * click events. Click events get injected in the internal accessibility delegate in + * {@link #setupBackButtonAccessibility(View, AccessibilityDelegate)}. */ public void setBackButtonAccessibilityDelegate(AccessibilityDelegate accessibilityDelegate) { if (mBackButton == null) { return; } - mBackButton.setAccessibilityDelegate(accessibilityDelegate); + setupBackButtonAccessibility(mBackButton, accessibilityDelegate); } public void setWallpaperVisible(boolean isVisible) { @@ -879,6 +885,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT navButtonController.getButtonContentDescription(buttonType))); if (predictiveBackThreeButtonNav() && buttonType == BUTTON_BACK) { // set up special touch listener for back button to support predictive back + setupBackButtonAccessibility(buttonView, null); setBackButtonTouchListener(buttonView, navButtonController); // Set this View clickable, so that NearestTouchFrame.java forwards closeby touches to // this View @@ -892,6 +899,28 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT return buttonView; } + private void setupBackButtonAccessibility(View backButton, + AccessibilityDelegate accessibilityDelegate) { + View.AccessibilityDelegate backButtonAccessibilityDelegate = + new View.AccessibilityDelegate() { + @Override + public boolean performAccessibilityAction(View host, int action, Bundle args) { + if (accessibilityDelegate != null) { + accessibilityDelegate.performAccessibilityAction(host, action, args); + } + if (action == AccessibilityNodeInfo.ACTION_CLICK) { + mControllers.navButtonController.sendBackKeyEvent(KeyEvent.ACTION_DOWN, + /*cancelled*/ false); + mControllers.navButtonController.sendBackKeyEvent(KeyEvent.ACTION_UP, + /*cancelled*/ false); + return true; + } + return super.performAccessibilityAction(host, action, args); + } + }; + backButton.setAccessibilityDelegate(backButtonAccessibilityDelegate); + } + private void setBackButtonTouchListener(View buttonView, TaskbarNavButtonController navButtonController) { final RectF rect = new RectF(); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index 66887d0bfc..fc93d4a0ab 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -1593,8 +1593,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { } else if (tag instanceof AppInfo) { // Tapping an item in AllApps AppInfo info = (AppInfo) tag; - if (recents != null - && taskbarUIController.getRecentsView().isSplitSelectionActive()) { + if (recents != null && recents.isSplitSelectionActive()) { // If we are selecting a second app for split, launch the split tasks taskbarUIController.triggerSecondAppForSplit(info, info.intent, view); } else { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java index 98415d1a71..77c3e0a41c 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java @@ -33,6 +33,7 @@ import static com.android.launcher3.taskbar.bubbles.BubbleBarView.FADE_IN_ANIM_A import static com.android.launcher3.taskbar.bubbles.BubbleBarView.FADE_OUT_ANIM_POSITION_DURATION_MS; import static com.android.launcher3.util.FlagDebugUtils.appendFlag; import static com.android.launcher3.util.FlagDebugUtils.formatFlagChange; +import static com.android.quickstep.fallback.RecentsStateUtilsKt.toLauncherState; import static com.android.quickstep.util.SystemUiFlagUtils.isTaskbarHidden; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_AWAKE; @@ -63,6 +64,10 @@ import com.android.launcher3.uioverrides.QuickstepLauncher; import com.android.launcher3.util.MultiPropertyFactory.MultiProperty; import com.android.quickstep.RecentsAnimationCallbacks; import com.android.quickstep.RecentsAnimationController; +import com.android.quickstep.fallback.RecentsState; +import com.android.quickstep.fallback.window.RecentsDisplayModel; +import com.android.quickstep.fallback.window.RecentsWindowFlags; +import com.android.quickstep.fallback.window.RecentsWindowManager; import com.android.quickstep.util.ScalingWorkspaceRevealAnim; import com.android.quickstep.util.SystemUiFlagUtils; import com.android.quickstep.views.RecentsView; @@ -74,6 +79,7 @@ import com.android.wm.shell.shared.bubbles.BubbleBarLocation; import java.io.PrintWriter; import java.util.HashMap; import java.util.StringJoiner; +import java.util.function.Consumer; /** * Track LauncherState, RecentsAnimation, resumed state for task bar in one place here and animate @@ -209,7 +215,7 @@ public class TaskbarLauncherStateController { }; private final StateManager.StateListener<LauncherState> mStateListener = - new StateManager.StateListener<LauncherState>() { + new StateManager.StateListener<>() { @Override public void onStateTransitionStart(LauncherState toState) { @@ -243,6 +249,20 @@ public class TaskbarLauncherStateController { } }; + private final StateManager.StateListener<RecentsState> mRecentsStateListener = + new StateManager.StateListener<>() { + + @Override + public void onStateTransitionStart(RecentsState toState) { + mStateListener.onStateTransitionStart(toLauncherState(toState)); + } + + @Override + public void onStateTransitionComplete(RecentsState finalState) { + mStateListener.onStateTransitionComplete(toLauncherState(finalState)); + } + }; + /** * Callback for when launcher state transition completes after user swipes to home. * @param finalState The final state of the transition. @@ -278,6 +298,8 @@ public class TaskbarLauncherStateController { if (!mControllers.taskbarActivityContext.isPhoneMode()) { mLauncher.getStateManager().addStateListener(mStateListener); + runForRecentsWindowManager(recentsWindowManager -> + recentsWindowManager.getStateManager().addStateListener(mRecentsStateListener)); } mLauncherState = launcher.getStateManager().getState(); updateStateForSysuiFlags(sysuiStateFlags, /*applyState*/ false); @@ -302,6 +324,8 @@ public class TaskbarLauncherStateController { mLauncher.getHotseat().setIconsAlpha(1f, ALPHA_CHANNEL_TASKBAR_ALIGNMENT); mLauncher.getStateManager().removeStateListener(mStateListener); + runForRecentsWindowManager(recentsWindowManager -> + recentsWindowManager.getStateManager().removeStateListener(mRecentsStateListener)); mCanSyncViews = !mControllers.taskbarActivityContext.isPhoneMode(); mLauncher.removeOnDeviceProfileChangeListener(mOnDeviceProfileChangeListener); @@ -340,12 +364,15 @@ public class TaskbarLauncherStateController { } mTaskBarRecentsAnimationListener = new TaskBarRecentsAnimationListener(callbacks); callbacks.addListener(mTaskBarRecentsAnimationListener); - ((RecentsView) mLauncher.getOverviewPanel()).setTaskLaunchListener(() -> - mTaskBarRecentsAnimationListener.endGestureStateOverride(true, false /*canceled*/)); + RecentsView recentsView = mControllers.uiController.getRecentsView(); + if (recentsView != null) { + recentsView.setTaskLaunchListener(() -> mTaskBarRecentsAnimationListener + .endGestureStateOverride(true, false /*canceled*/)); + recentsView.setTaskLaunchCancelledRunnable(() -> { + updateStateForUserFinishedToApp(false /* finishedToApp */); + }); + } - ((RecentsView) mLauncher.getOverviewPanel()).setTaskLaunchCancelledRunnable(() -> { - updateStateForUserFinishedToApp(false /* finishedToApp */); - }); return animatorSet; } @@ -823,6 +850,15 @@ public class TaskbarLauncherStateController { return mLauncherState.isRecentsViewVisible; } + /** + * Returns the current mLauncherState. Note that this could represent RecentsState as well, as + * we convert those to equivalent LauncherStates even if Launcher Activity is not actually in + * those states (for the case where the state is represented in a separate Window instead). + */ + public LauncherState getLauncherState() { + return mLauncherState; + } + private void playStateTransitionAnim(AnimatorSet animatorSet, long duration, boolean committed) { boolean isInStashedState = mLauncherState.isTaskbarStashed(mLauncher); @@ -1060,7 +1096,10 @@ public class TaskbarLauncherStateController { boolean canceled) { mCallbacks.removeListener(this); mTaskBarRecentsAnimationListener = null; - ((RecentsView) mLauncher.getOverviewPanel()).setTaskLaunchListener(null); + RecentsView recentsView = mControllers.uiController.getRecentsView(); + if (recentsView != null) { + recentsView.setTaskLaunchListener(null); + } if (mSkipNextRecentsAnimEnd && !canceled) { mSkipNextRecentsAnimEnd = false; @@ -1099,6 +1138,20 @@ public class TaskbarLauncherStateController { controller.applyState(); } + /** + * Helper function to run a callback on the RecentsWindowManager (if it exists). + */ + private void runForRecentsWindowManager(Consumer<RecentsWindowManager> callback) { + if (RecentsWindowFlags.getEnableOverviewInWindow()) { + final TaskbarActivityContext taskbarContext = mControllers.taskbarActivityContext; + RecentsWindowManager recentsWindowManager = RecentsDisplayModel.getINSTANCE() + .get(taskbarContext).getRecentsWindowManager(taskbarContext.getDisplayId()); + if (recentsWindowManager != null) { + callback.accept(recentsWindowManager); + } + } + } + private static String getStateString(int flags) { StringJoiner result = new StringJoiner("|"); appendFlag(result, flags, FLAG_VISIBLE, "flag_visible"); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java index 66ae0600b1..ebff620159 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java @@ -701,7 +701,9 @@ public class TaskbarManager implements DisplayDecorationListener { private TaskbarUIController createTaskbarUIControllerForRecentsViewContainer( RecentsViewContainer container) { debugPrimaryTaskbar("createTaskbarUIControllerForRecentsViewContainer"); - if (container instanceof QuickstepLauncher quickstepLauncher) { + if (mActivity instanceof QuickstepLauncher quickstepLauncher) { + // If 1P Launcher is default, always use LauncherTaskbarUIController, regardless of + // whether the recents container is NexusLauncherActivity or RecentsWindowManager. return new LauncherTaskbarUIController(quickstepLauncher); } // If a 3P Launcher is default, always use FallbackTaskbarUIController regardless of diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java index 061a5a127e..b567871b92 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java @@ -21,6 +21,7 @@ import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_HOTSEAT import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_HOTSEAT_PREDICTION; import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_APP; +import android.animation.Animator; import android.content.Intent; import android.graphics.drawable.BitmapDrawable; import android.view.MotionEvent; @@ -38,6 +39,8 @@ import com.android.launcher3.model.data.ItemInfoWithIcon; import com.android.launcher3.popup.SystemShortcut; import com.android.launcher3.taskbar.bubbles.BubbleBarController; import com.android.launcher3.util.SplitConfigurationOptions; +import com.android.quickstep.GestureState; +import com.android.quickstep.RecentsAnimationCallbacks; import com.android.quickstep.util.SplitTask; import com.android.quickstep.views.RecentsView; import com.android.quickstep.views.TaskContainer; @@ -455,4 +458,18 @@ public class TaskbarUIController implements BubbleBarController.BubbleBarLocatio */ public void onSwipeToUnstashTaskbar() { } + + /** + * Called at the end of a gesture (see {@link GestureState.GestureEndTarget}). + * @param endTarget Where the gesture animation is going to. + * @param callbacks callbacks to track the recents animation lifecycle. The state change is + * automatically reset once the recents animation finishes + * @return An optional Animator to play in parallel with the default gesture end animation. + */ + public @Nullable Animator getParallelAnimationToGestureEndTarget( + GestureState.GestureEndTarget endTarget, + long duration, + RecentsAnimationCallbacks callbacks) { + return null; + } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewCallbacksFactory.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewCallbacksFactory.kt index 17da5336f4..6e948894c2 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewCallbacksFactory.kt +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewCallbacksFactory.kt @@ -42,7 +42,8 @@ open class TaskbarViewCallbacksFactory : ResourceBasedOverride { if (contextualSearchInvoked) { val runningPackage = TopTaskTracker.INSTANCE[activity].getCachedTopTask( - /* filterOnlyVisibleRecents */ true + /* filterOnlyVisibleRecents */ true, + activity.display.displayId, ) .getPackageName() activity.statsLogManager diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java index c5b97e7bbc..6340bb1b69 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java @@ -495,7 +495,8 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar View[] iconViews = mTaskbarView.getIconViews(); float finalScale; - if (mControllers.getSharedState().startTaskbarVariantIsTransient) { + TaskbarSharedState sharedState = mControllers.getSharedState(); + if (sharedState != null || mControllers.getSharedState().startTaskbarVariantIsTransient) { finalScale = mapRange(scale, 1f, ((float) mPersistentIconSize / mTransientIconSize)); } else { finalScale = mapRange(scale, ((float) mTransientIconSize / mPersistentIconSize), 1f); diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/TaskViewDismissTouchController.kt b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/TaskViewDismissTouchController.kt index 76eb138ed6..eac5235dda 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/TaskViewDismissTouchController.kt +++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/TaskViewDismissTouchController.kt @@ -212,10 +212,6 @@ CONTAINER : RecentsViewContainer { val currentDisplacement = taskBeingDragged.secondaryDismissTranslationProperty.get(taskBeingDragged) - if (currentDisplacement == 0f) { - clearState() - return - } val isBeyondDismissThreshold = abs(currentDisplacement) > abs(DISMISS_THRESHOLD_FRACTION * dismissLength) val velocityIsGoingUp = recentsView.pagedOrientationHandler.isGoingUp(velocity, isRtl) @@ -229,7 +225,6 @@ CONTAINER : RecentsViewContainer { taskBeingDragged, velocity, isDismissing, - detector, dismissLength, this::clearState, ) diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index 168b856b25..47aa1de646 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -1614,7 +1614,7 @@ public abstract class AbsSwipeUpHandler< TaskStackChangeListeners.getInstance().registerTaskStackListener( mActivityRestartListener); - mParallelRunningAnim = mContainerInterface.getParallelAnimationToLauncher( + mParallelRunningAnim = mContainerInterface.getParallelAnimationToGestureEndTarget( mGestureState.getEndTarget(), duration, mTaskAnimationManager.getCurrentCallbacks()); if (mParallelRunningAnim != null) { diff --git a/quickstep/src/com/android/quickstep/BaseContainerInterface.java b/quickstep/src/com/android/quickstep/BaseContainerInterface.java index c64067aa58..244dfc3971 100644 --- a/quickstep/src/com/android/quickstep/BaseContainerInterface.java +++ b/quickstep/src/com/android/quickstep/BaseContainerInterface.java @@ -182,7 +182,7 @@ public abstract class BaseContainerInterface<STATE_TYPE extends BaseState<STATE_ * Called when the gesture ends and the animation starts towards the given target. Used to add * an optional additional animation with the same duration. */ - public @Nullable Animator getParallelAnimationToLauncher( + public @Nullable Animator getParallelAnimationToGestureEndTarget( GestureState.GestureEndTarget endTarget, long duration, RecentsAnimationCallbacks callbacks) { if (endTarget == RECENTS) { diff --git a/quickstep/src/com/android/quickstep/FallbackActivityInterface.java b/quickstep/src/com/android/quickstep/FallbackActivityInterface.java index d8e0296a68..7654471555 100644 --- a/quickstep/src/com/android/quickstep/FallbackActivityInterface.java +++ b/quickstep/src/com/android/quickstep/FallbackActivityInterface.java @@ -203,16 +203,16 @@ public final class FallbackActivityInterface extends } @Override - public @Nullable Animator getParallelAnimationToLauncher(GestureEndTarget endTarget, + public @Nullable Animator getParallelAnimationToGestureEndTarget(GestureEndTarget endTarget, long duration, RecentsAnimationCallbacks callbacks) { FallbackTaskbarUIController uiController = getTaskbarController(); - Animator superAnimator = super.getParallelAnimationToLauncher( + Animator superAnimator = super.getParallelAnimationToGestureEndTarget( endTarget, duration, callbacks); if (uiController == null) { return superAnimator; } - RecentsState toState = stateFromGestureEndTarget(endTarget); - Animator taskbarAnimator = uiController.createAnimToRecentsState(toState, duration); + Animator taskbarAnimator = uiController.getParallelAnimationToGestureEndTarget( + endTarget, duration, callbacks); if (taskbarAnimator == null) { return superAnimator; } diff --git a/quickstep/src/com/android/quickstep/FallbackWindowInterface.java b/quickstep/src/com/android/quickstep/FallbackWindowInterface.java index 35630ef57f..503f047e4f 100644 --- a/quickstep/src/com/android/quickstep/FallbackWindowInterface.java +++ b/quickstep/src/com/android/quickstep/FallbackWindowInterface.java @@ -31,7 +31,7 @@ import androidx.annotation.Nullable; import com.android.launcher3.DeviceProfile; import com.android.launcher3.statemanager.StateManager; -import com.android.launcher3.taskbar.FallbackTaskbarUIController; +import com.android.launcher3.taskbar.TaskbarUIController; import com.android.launcher3.util.DisplayController; import com.android.quickstep.GestureState.GestureEndTarget; import com.android.quickstep.fallback.RecentsState; @@ -104,14 +104,9 @@ public final class FallbackWindowInterface extends BaseWindowInterface{ } @Override - public FallbackTaskbarUIController getTaskbarController() { + public TaskbarUIController getTaskbarController() { RecentsWindowManager manager = getCreatedContainer(); - if (manager == null) { - return null; - } - return null; - // todo b/365775636: pass a taskbar implementation - // return manager.getTaskbarUIController(); + return manager == null ? null : manager.getTaskbarUIController(); } @Override @@ -213,16 +208,16 @@ public final class FallbackWindowInterface extends BaseWindowInterface{ } @Override - public @Nullable Animator getParallelAnimationToLauncher(GestureEndTarget endTarget, + public @Nullable Animator getParallelAnimationToGestureEndTarget(GestureEndTarget endTarget, long duration, RecentsAnimationCallbacks callbacks) { - FallbackTaskbarUIController uiController = getTaskbarController(); - Animator superAnimator = super.getParallelAnimationToLauncher( + TaskbarUIController uiController = getTaskbarController(); + Animator superAnimator = super.getParallelAnimationToGestureEndTarget( endTarget, duration, callbacks); if (uiController == null) { return superAnimator; } - RecentsState toState = stateFromGestureEndTarget(endTarget); - Animator taskbarAnimator = uiController.createAnimToRecentsState(toState, duration); + Animator taskbarAnimator = uiController.getParallelAnimationToGestureEndTarget( + endTarget, duration, callbacks); if (taskbarAnimator == null) { return superAnimator; } diff --git a/quickstep/src/com/android/quickstep/HomeVisibilityState.kt b/quickstep/src/com/android/quickstep/HomeVisibilityState.kt index 1345e0b344..020b9e2fab 100644 --- a/quickstep/src/com/android/quickstep/HomeVisibilityState.kt +++ b/quickstep/src/com/android/quickstep/HomeVisibilityState.kt @@ -18,6 +18,9 @@ package com.android.quickstep import android.os.RemoteException import android.util.Log +import android.view.InsetsState +import android.view.WindowInsets + import com.android.launcher3.Utilities import com.android.launcher3.config.FeatureFlags import com.android.launcher3.util.Executors @@ -30,6 +33,8 @@ class HomeVisibilityState { var isHomeVisible = true private set + @Volatile var navbarInsetPosition = 0 + private var listeners = mutableSetOf<VisibilityChangeListener>() fun addListener(l: VisibilityChangeListener) = listeners.add(l) @@ -50,6 +55,11 @@ class HomeVisibilityState { }, ) } + override fun onDisplayInsetsChanged(insetsState: InsetsState) { + val bottomInset = insetsState.calculateInsets(insetsState.displayFrame, + WindowInsets.Type.navigationBars(), false).bottom + navbarInsetPosition = insetsState.displayFrame.bottom - bottomInset + } } ) } catch (e: RemoteException) { diff --git a/quickstep/src/com/android/quickstep/InputConsumerUtils.kt b/quickstep/src/com/android/quickstep/InputConsumerUtils.kt index c8ca5344c2..89b5b291c6 100644 --- a/quickstep/src/com/android/quickstep/InputConsumerUtils.kt +++ b/quickstep/src/com/android/quickstep/InputConsumerUtils.kt @@ -550,7 +550,7 @@ object InputConsumerUtils { (com.android.launcher3.Flags.useActivityOverlay() && runningTask != null && runningTask.isHomeTask && - overviewComponentObserver.isHomeAndOverviewSame && + overviewComponentObserver.isHomeAndOverviewSameActivity && !launcherResumedThroughShellTransition && !previousGestureState.isRecentsAnimationRunning) diff --git a/quickstep/src/com/android/quickstep/LauncherActivityInterface.java b/quickstep/src/com/android/quickstep/LauncherActivityInterface.java index ac0aa76ad5..fa8e4846b3 100644 --- a/quickstep/src/com/android/quickstep/LauncherActivityInterface.java +++ b/quickstep/src/com/android/quickstep/LauncherActivityInterface.java @@ -261,7 +261,8 @@ public final class LauncherActivityInterface extends return launcher != null && launcher.getStateManager().getState() == OVERVIEW && launcher.isStarted() - && TopTaskTracker.INSTANCE.get(launcher).getCachedTopTask(false).isHomeTask(); + && TopTaskTracker.INSTANCE.get(launcher).getCachedTopTask(false, + launcher.getDisplayId()).isHomeTask(); } private boolean isInMinusOne() { @@ -270,7 +271,8 @@ public final class LauncherActivityInterface extends return launcher != null && launcher.getStateManager().getState() == NORMAL && !launcher.isStarted() - && TopTaskTracker.INSTANCE.get(launcher).getCachedTopTask(false).isHomeTask(); + && TopTaskTracker.INSTANCE.get(launcher).getCachedTopTask(false, + launcher.getDisplayId()).isHomeTask(); } @Override @@ -298,16 +300,16 @@ public final class LauncherActivityInterface extends } @Override - public @Nullable Animator getParallelAnimationToLauncher(GestureEndTarget endTarget, + public @Nullable Animator getParallelAnimationToGestureEndTarget(GestureEndTarget endTarget, long duration, RecentsAnimationCallbacks callbacks) { LauncherTaskbarUIController uiController = getTaskbarController(); - Animator superAnimator = super.getParallelAnimationToLauncher( + Animator superAnimator = super.getParallelAnimationToGestureEndTarget( endTarget, duration, callbacks); if (uiController == null || callbacks == null) { return superAnimator; } - LauncherState toState = stateFromGestureEndTarget(endTarget); - Animator taskbarAnimator = uiController.createAnimToLauncher(toState, callbacks, duration); + Animator taskbarAnimator = uiController.getParallelAnimationToGestureEndTarget(endTarget, + duration, callbacks); if (superAnimator == null) { return taskbarAnimator; } else { diff --git a/quickstep/src/com/android/quickstep/OverviewCommandHelper.kt b/quickstep/src/com/android/quickstep/OverviewCommandHelper.kt index 6a9c3dd519..8b9a3daea8 100644 --- a/quickstep/src/com/android/quickstep/OverviewCommandHelper.kt +++ b/quickstep/src/com/android/quickstep/OverviewCommandHelper.kt @@ -450,10 +450,10 @@ constructor( ) gestureState.isHandlingAtomicEvent = true val interactionHandler = - touchInteractionService.swipeUpHandlerFactory.newHandler( - gestureState, - command.createTime, - ) + touchInteractionService + // TODO(b/404757863): use command.displayId instead of focusedDisplayId. + .getSwipeUpHandlerFactory(focusedDisplayId) + .newHandler(gestureState, command.createTime) interactionHandler.setGestureEndCallback { onTransitionComplete(command, interactionHandler, onCallbackResult) } @@ -570,12 +570,7 @@ constructor( private fun updateRecentsViewFocus(command: CommandInfo) { val recentsView: RecentsView<*, *> = getVisibleRecentsView(command.displayId) ?: return - if ( - command.type != KEYBOARD_INPUT && - command.type != HIDE && - command.type != SHOW && - command.type != TOGGLE - ) { + if (command.type != KEYBOARD_INPUT && command.type != HIDE && command.type != SHOW) { return } diff --git a/quickstep/src/com/android/quickstep/OverviewComponentObserver.java b/quickstep/src/com/android/quickstep/OverviewComponentObserver.java index 7d3a1da76f..e7386dcb93 100644 --- a/quickstep/src/com/android/quickstep/OverviewComponentObserver.java +++ b/quickstep/src/com/android/quickstep/OverviewComponentObserver.java @@ -24,6 +24,7 @@ import static android.view.Display.DEFAULT_DISPLAY; import static com.android.launcher3.Flags.enableOverviewOnConnectedDisplays; import static com.android.launcher3.config.FeatureFlags.SEPARATE_RECENTS_ACTIVITY; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; +import static com.android.quickstep.fallback.window.RecentsWindowFlags.enableFallbackOverviewInWindow; import static com.android.quickstep.fallback.window.RecentsWindowFlags.enableLauncherOverviewInWindow; import static com.android.systemui.shared.system.PackageManagerWrapper.ACTION_PREFERRED_ACTIVITY_CHANGED; @@ -50,7 +51,6 @@ import com.android.launcher3.util.DaggerSingletonObject; import com.android.launcher3.util.DaggerSingletonTracker; import com.android.launcher3.util.SimpleBroadcastReceiver; import com.android.quickstep.fallback.window.RecentsDisplayModel; -import com.android.quickstep.fallback.window.RecentsWindowFlags; import com.android.quickstep.util.ActiveGestureProtoLogProxy; import com.android.systemui.shared.system.PackageManagerWrapper; @@ -181,7 +181,7 @@ public final class OverviewComponentObserver { mDefaultDisplayContainerInterface.onAssistantVisibilityChanged(0.f); } - if (SEPARATE_RECENTS_ACTIVITY.get() || enableLauncherOverviewInWindow.isTrue()) { + if (SEPARATE_RECENTS_ACTIVITY.get()) { mIsDefaultHome = false; if (defaultHome == null) { defaultHome = mMyHomeIntent.getComponent(); @@ -194,8 +194,13 @@ public final class OverviewComponentObserver { + ", mIsDefaultHome=" + mIsDefaultHome); if (!mIsHomeDisabled && (defaultHome == null || mIsDefaultHome)) { - // User default home is same as out home app. Use Overview integrated in Launcher. - mDefaultDisplayContainerInterface = LauncherActivityInterface.INSTANCE; + // User default home is same as our home app. Use Overview integrated in Launcher. + if (enableLauncherOverviewInWindow.isTrue()) { + mDefaultDisplayContainerInterface = + mRecentsDisplayModel.getFallbackWindowInterface(DEFAULT_DISPLAY); + } else { + mDefaultDisplayContainerInterface = LauncherActivityInterface.INSTANCE; + } mIsHomeAndOverviewSame = true; mOverviewIntent = mMyHomeIntent; mCurrentHomeIntent.setComponent(mMyHomeIntent.getComponent()); @@ -204,7 +209,7 @@ public final class OverviewComponentObserver { unregisterOtherHomeAppUpdateReceiver(); } else { // The default home app is a different launcher. Use the fallback Overview instead. - if (RecentsWindowFlags.Companion.getEnableOverviewInWindow()) { + if (enableFallbackOverviewInWindow.isTrue()) { mDefaultDisplayContainerInterface = mRecentsDisplayModel.getFallbackWindowInterface(DEFAULT_DISPLAY); } else { @@ -290,12 +295,16 @@ public final class OverviewComponentObserver { } /** - * Returns true if home and overview are same activity. + * Returns true if home and overview are same process. */ public boolean isHomeAndOverviewSame() { return mIsHomeAndOverviewSame; } + public boolean isHomeAndOverviewSameActivity() { + return isHomeAndOverviewSame() && !enableLauncherOverviewInWindow.isTrue(); + } + /** * Get the current control helper for managing interactions to the overview container for * the given displayId. diff --git a/quickstep/src/com/android/quickstep/RecentTasksList.java b/quickstep/src/com/android/quickstep/RecentTasksList.java index dab78c5df3..a77241549c 100644 --- a/quickstep/src/com/android/quickstep/RecentTasksList.java +++ b/quickstep/src/com/android/quickstep/RecentTasksList.java @@ -504,7 +504,7 @@ public class RecentTasksList implements WindowManagerProxy.DesktopVisibilityList for (TaskInfo taskInfo : recentTaskInfo.getTaskInfoList()) { Task task = createTask(taskInfo, minimizedTaskIds); List<Task> tasks = perDisplayTasks.computeIfAbsent( - ExternalDisplaysKt.getDisplayId(task), + ExternalDisplaysKt.getSafeDisplayId(task), k -> new ArrayList<>()); tasks.add(task); } diff --git a/quickstep/src/com/android/quickstep/TaskAnimationManager.java b/quickstep/src/com/android/quickstep/TaskAnimationManager.java index 4f00381271..cf0a3d570f 100644 --- a/quickstep/src/com/android/quickstep/TaskAnimationManager.java +++ b/quickstep/src/com/android/quickstep/TaskAnimationManager.java @@ -59,6 +59,7 @@ import com.android.systemui.shared.system.TaskStackChangeListeners; import java.io.PrintWriter; import java.util.HashMap; +import java.util.Locale; public class TaskAnimationManager implements RecentsAnimationCallbacks.RecentsAnimationListener { public static final boolean SHELL_TRANSITIONS_ROTATION = @@ -132,6 +133,17 @@ public class TaskAnimationManager implements RecentsAnimationCallbacks.RecentsAn public RecentsAnimationCallbacks startRecentsAnimation(@NonNull GestureState gestureState, Intent intent, RecentsAnimationCallbacks.RecentsAnimationListener listener) { ActiveGestureProtoLogProxy.logStartRecentsAnimation(); + // Check displayId + if (mDisplayId != gestureState.getDisplayId()) { + String msg = String.format(Locale.ENGLISH, + "Constructor displayId %d does not equal gestureState display id %d", + mDisplayId, gestureState.getDisplayId()); + if (FeatureFlags.IS_STUDIO_BUILD) { + throw new IllegalArgumentException(msg); + } else { + Log.e("TaskAnimationManager", msg, new Exception()); + } + } // Notify if recents animation is still running if (mController != null) { String msg = "New recents animation started before old animation completed"; @@ -239,11 +251,11 @@ public class TaskAnimationManager implements RecentsAnimationCallbacks.RecentsAn RemoteAnimationTarget appearedTaskTarget = appearedTaskTargets[0]; BaseContainerInterface containerInterface = mLastGestureState.getContainerInterface(); - for (RemoteAnimationTarget compat : appearedTaskTargets) { if (compat.windowConfiguration.getActivityType() == ACTIVITY_TYPE_HOME && containerInterface.getCreatedContainer() instanceof RecentsActivity - && DisplayController.getNavigationMode(mCtx) != NO_BUTTON) { + && DisplayController.INSTANCE.get(mCtx).getInfoForDisplay( + mDisplayId).getNavigationMode() != NO_BUTTON) { // The only time we get onTasksAppeared() in button navigation with a // 3p launcher is if the user goes to overview first, and in this case we // can immediately finish the transition diff --git a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java index df66a5e30e..ae6bfbc517 100644 --- a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java +++ b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java @@ -202,10 +202,14 @@ public class TaskOverlayFactory implements ResourceBasedOverride { */ public void initOverlay(Task task, @Nullable Bitmap thumbnail, Matrix matrix, boolean rotated) { - getActionsView().updateDisabledFlags(DISABLED_NO_THUMBNAIL, thumbnail == null); + if (!enableRefactorTaskThumbnail()) { + getActionsView().updateDisabledFlags(DISABLED_NO_THUMBNAIL, thumbnail == null); + } if (thumbnail != null) { - getActionsView().updateDisabledFlags(DISABLED_ROTATED, rotated); + if (!enableRefactorTaskThumbnail()) { + getActionsView().updateDisabledFlags(DISABLED_ROTATED, rotated); + } getActionsView().setCallbacks(new OverlayUICallbacksImpl(isRealSnapshot(), task)); } } diff --git a/quickstep/src/com/android/quickstep/TopTaskTracker.java b/quickstep/src/com/android/quickstep/TopTaskTracker.java index 8116a8867d..7e773e3a58 100644 --- a/quickstep/src/com/android/quickstep/TopTaskTracker.java +++ b/quickstep/src/com/android/quickstep/TopTaskTracker.java @@ -22,8 +22,10 @@ import static android.content.Intent.ACTION_CHOOSER; import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS; import static android.view.Display.DEFAULT_DISPLAY; +import static com.android.launcher3.Flags.enableOverviewOnConnectedDisplays; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_TYPE_A; +import static com.android.quickstep.fallback.window.RecentsWindowFlags.enableOverviewOnConnectedDisplays; import static com.android.wm.shell.Flags.enableShellTopTaskTracking; import static com.android.wm.shell.Flags.enableFlexibleSplit; import static com.android.wm.shell.shared.GroupedTaskInfo.TYPE_SPLIT; @@ -47,6 +49,7 @@ import com.android.launcher3.util.SplitConfigurationOptions.StageType; import com.android.launcher3.util.TraceHelper; import com.android.quickstep.dagger.QuickstepBaseAppComponent; import com.android.quickstep.util.DesksUtils; +import com.android.quickstep.util.ExternalDisplaysKt; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.Task.TaskKey; import com.android.systemui.shared.system.ActivityManagerWrapper; @@ -316,21 +319,26 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta */ @NonNull @UiThread - public CachedTaskInfo getCachedTopTask(boolean filterOnlyVisibleRecents) { + public CachedTaskInfo getCachedTopTask(boolean filterOnlyVisibleRecents, int displayId) { if (enableShellTopTaskTracking()) { // TODO(346588978): Currently ignore filterOnlyVisibleRecents, but perhaps make this an // explicit filter For things to ignore (ie. PIP/Bubbles/Assistant/etc/so that this is // explicit) - // TODO(346588978): This assumes default display as gesture nav is only supported there - return new CachedTaskInfo(mVisibleTasks.get(DEFAULT_DISPLAY)); + return new CachedTaskInfo(mVisibleTasks.get(displayId)); } else { if (filterOnlyVisibleRecents) { // Since we only know about the top most task, any filtering may not be applied on // the cache. The second to top task may change while the top task is still the // same. - RunningTaskInfo[] tasks = TraceHelper.allowIpcs("getCachedTopTask.true", () -> + TaskInfo[] tasks = TraceHelper.allowIpcs("getCachedTopTask.true", () -> ActivityManagerWrapper.getInstance().getRunningTasks(true)); - return new CachedTaskInfo(Arrays.asList(tasks)); + if (enableOverviewOnConnectedDisplays()) { + return new CachedTaskInfo(Arrays.stream(tasks).filter( + info -> ExternalDisplaysKt.getSafeDisplayId(info) + == displayId).toList()); + } else { + return new CachedTaskInfo(Arrays.asList(tasks)); + } } if (mOrderedTaskList.isEmpty()) { @@ -344,7 +352,12 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta // Strip the pinned task and recents task tasks.removeIf(t -> t.taskId == mPinnedTaskId || isRecentsTask(t) || DesksUtils.isDesktopWallpaperTask(t)); - return new CachedTaskInfo(tasks); + if (enableOverviewOnConnectedDisplays()) { + return new CachedTaskInfo(tasks.stream().filter( + info -> ExternalDisplaysKt.getSafeDisplayId(info) == displayId).toList()); + } else { + return new CachedTaskInfo(tasks); + } } } diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index 9780482396..3543ad1427 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -95,7 +95,6 @@ import com.android.quickstep.OverviewCommandHelper.CommandType; import com.android.quickstep.OverviewComponentObserver.OverviewChangeListener; import com.android.quickstep.fallback.window.RecentsDisplayModel; import com.android.quickstep.fallback.window.RecentsDisplayModel.RecentsDisplayResource; -import com.android.quickstep.fallback.window.RecentsWindowFlags; import com.android.quickstep.fallback.window.RecentsWindowSwipeHandler; import com.android.quickstep.inputconsumers.BubbleBarInputConsumer; import com.android.quickstep.inputconsumers.OneHandedModeInputConsumer; @@ -952,7 +951,7 @@ public class TouchInteractionService extends Service { mGestureState, taskAnimationManager, inputMonitorCompat, - getSwipeUpHandlerFactory(), + getSwipeUpHandlerFactory(displayId), this::onConsumerInactive, inputEventReceiver, mTaskbarManager, @@ -1076,7 +1075,7 @@ public class TouchInteractionService extends Service { // previousTaskInfo can be null iff previousGestureState == GestureState.DEFAULT_STATE taskInfo = previousTaskInfo != null ? previousTaskInfo - : TopTaskTracker.INSTANCE.get(this).getCachedTopTask(false); + : TopTaskTracker.INSTANCE.get(this).getCachedTopTask(false, displayId); gestureState.updateRunningTask(taskInfo); gestureState.updateLastStartedTaskIds(previousGestureState.getLastStartedTaskIds()); gestureState.updatePreviouslyAppearedTaskIds( @@ -1086,7 +1085,7 @@ public class TouchInteractionService extends Service { mOverviewComponentObserver, displayId, ActiveGestureLog.INSTANCE.incrementLogId()); - taskInfo = TopTaskTracker.INSTANCE.get(this).getCachedTopTask(false); + taskInfo = TopTaskTracker.INSTANCE.get(this).getCachedTopTask(false, displayId); gestureState.updateRunningTask(taskInfo); } gestureState.setTrackpadGestureType(trackpadGestureType); @@ -1097,11 +1096,20 @@ public class TouchInteractionService extends Service { return gestureState; } - public AbsSwipeUpHandler.Factory getSwipeUpHandlerFactory() { - return mOverviewComponentObserver.isHomeAndOverviewSame() - ? mLauncherSwipeHandlerFactory - : (RecentsWindowFlags.Companion.getEnableOverviewInWindow() - ? mRecentsWindowSwipeHandlerFactory : mFallbackSwipeHandlerFactory); + /** + * Returns a AbsSwipeUpHandler.Factory, used to instantiate AbsSwipeUpHandler later. + * @param displayId The displayId of the display this handler will be used on. + */ + public AbsSwipeUpHandler.Factory getSwipeUpHandlerFactory(int displayId) { + BaseContainerInterface<?, ?> containerInterface = + mOverviewComponentObserver.getContainerInterface(displayId); + if (containerInterface instanceof FallbackWindowInterface) { + return mRecentsWindowSwipeHandlerFactory; + } else if (containerInterface instanceof LauncherActivityInterface) { + return mLauncherSwipeHandlerFactory; + } else { + return mFallbackSwipeHandlerFactory; + } } /** diff --git a/quickstep/src/com/android/quickstep/fallback/RecentsState.java b/quickstep/src/com/android/quickstep/fallback/RecentsState.java index 00aa1090e0..77aac4176d 100644 --- a/quickstep/src/com/android/quickstep/fallback/RecentsState.java +++ b/quickstep/src/com/android/quickstep/fallback/RecentsState.java @@ -50,23 +50,31 @@ public class RecentsState implements BaseState<RecentsState> { private static final int FLAG_ADD_DESK_BUTTON = BaseState.getFlag(10); private static final int FLAG_SHOW_EXPLODED_DESKTOP_VIEW = BaseState.getFlag(11); + public static final int DEFAULT_STATE_ORDINAL = 0; + public static final int MODAL_TASK_ORDINAL = 1; + public static final int BACKGROUND_APP_ORDINAL = 2; + public static final int HOME_STATE_ORDINAL = 3; + public static final int BG_LAUNCHER_ORDINAL = 4; + public static final int OVERVIEW_SPLIT_SELECT_ORDINAL = 5; + private static final RecentsState[] sAllStates = new RecentsState[6]; - public static final RecentsState DEFAULT = new RecentsState(0, + public static final RecentsState DEFAULT = new RecentsState(DEFAULT_STATE_ORDINAL, FLAG_DISABLE_RESTORE | FLAG_CLEAR_ALL_BUTTON | FLAG_OVERVIEW_ACTIONS | FLAG_SHOW_AS_GRID | FLAG_SCRIM | FLAG_LIVE_TILE | FLAG_RECENTS_VIEW_VISIBLE | FLAG_ADD_DESK_BUTTON | FLAG_SHOW_EXPLODED_DESKTOP_VIEW); - public static final RecentsState MODAL_TASK = new ModalState(1, + public static final RecentsState MODAL_TASK = new ModalState(MODAL_TASK_ORDINAL, FLAG_DISABLE_RESTORE | FLAG_OVERVIEW_ACTIONS | FLAG_MODAL | FLAG_SHOW_AS_GRID | FLAG_SCRIM | FLAG_LIVE_TILE | FLAG_RECENTS_VIEW_VISIBLE | FLAG_SHOW_EXPLODED_DESKTOP_VIEW); - public static final RecentsState BACKGROUND_APP = new BackgroundAppState(2, + public static final RecentsState BACKGROUND_APP = new BackgroundAppState(BACKGROUND_APP_ORDINAL, FLAG_DISABLE_RESTORE | FLAG_NON_INTERACTIVE | FLAG_FULL_SCREEN | FLAG_RECENTS_VIEW_VISIBLE | FLAG_TASK_THUMBNAIL_SPLASH | FLAG_DETACH_DESKTOP_CAROUSEL); - public static final RecentsState HOME = new RecentsState(3, 0); - public static final RecentsState BG_LAUNCHER = new LauncherState(4, 0); - public static final RecentsState OVERVIEW_SPLIT_SELECT = new RecentsState(5, + public static final RecentsState HOME = new RecentsState(HOME_STATE_ORDINAL, 0); + public static final RecentsState BG_LAUNCHER = new LauncherState(BG_LAUNCHER_ORDINAL, 0); + public static final RecentsState OVERVIEW_SPLIT_SELECT = new RecentsState( + OVERVIEW_SPLIT_SELECT_ORDINAL, FLAG_SHOW_AS_GRID | FLAG_SCRIM | FLAG_RECENTS_VIEW_VISIBLE | FLAG_CLOSE_POPUPS | FLAG_DISABLE_RESTORE | FLAG_SHOW_EXPLODED_DESKTOP_VIEW); @@ -90,7 +98,15 @@ public class RecentsState implements BaseState<RecentsState> { @Override public String toString() { - return "Ordinal-" + ordinal; + return switch (ordinal) { + case DEFAULT_STATE_ORDINAL -> "DEFAULT"; + case MODAL_TASK_ORDINAL -> "MODAL_TASK"; + case BACKGROUND_APP_ORDINAL -> "BACKGROUND_APP"; + case HOME_STATE_ORDINAL -> "HOME"; + case BG_LAUNCHER_ORDINAL -> "BG_LAUNCHER"; + case OVERVIEW_SPLIT_SELECT_ORDINAL -> "SPLIT_SELECT"; + default -> "Unknown Ordinal-" + ordinal; + }; } @Override diff --git a/quickstep/src/com/android/quickstep/fallback/RecentsStateUtils.kt b/quickstep/src/com/android/quickstep/fallback/RecentsStateUtils.kt new file mode 100644 index 0000000000..fec8a809b9 --- /dev/null +++ b/quickstep/src/com/android/quickstep/fallback/RecentsStateUtils.kt @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 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.fallback + +import com.android.launcher3.LauncherState + +fun RecentsState.toLauncherState(): LauncherState { + return when (ordinal) { + RecentsState.DEFAULT_STATE_ORDINAL -> LauncherState.OVERVIEW + RecentsState.MODAL_TASK_ORDINAL -> LauncherState.OVERVIEW_MODAL_TASK + RecentsState.BACKGROUND_APP_ORDINAL -> LauncherState.BACKGROUND_APP + RecentsState.HOME_STATE_ORDINAL -> LauncherState.NORMAL + RecentsState.BG_LAUNCHER_ORDINAL -> LauncherState.NORMAL + RecentsState.OVERVIEW_SPLIT_SELECT_ORDINAL -> LauncherState.OVERVIEW_SPLIT_SELECT + else -> LauncherState.NORMAL + } +} + +fun RecentsState.toLauncherStateOrdinal(): Int = toLauncherState().ordinal diff --git a/quickstep/src/com/android/quickstep/fallback/window/RecentsWindowManager.kt b/quickstep/src/com/android/quickstep/fallback/window/RecentsWindowManager.kt index 1a3a2e3dfe..bc08af2da6 100644 --- a/quickstep/src/com/android/quickstep/fallback/window/RecentsWindowManager.kt +++ b/quickstep/src/com/android/quickstep/fallback/window/RecentsWindowManager.kt @@ -44,9 +44,6 @@ import com.android.launcher3.statemanager.StateManager.AtomicAnimationFactory import com.android.launcher3.statemanager.StatefulContainer import com.android.launcher3.taskbar.TaskbarUIController import com.android.launcher3.testing.TestLogging -import com.android.launcher3.testing.shared.TestProtocol.NORMAL_STATE_ORDINAL -import com.android.launcher3.testing.shared.TestProtocol.OVERVIEW_SPLIT_SELECT_ORDINAL -import com.android.launcher3.testing.shared.TestProtocol.OVERVIEW_STATE_ORDINAL import com.android.launcher3.testing.shared.TestProtocol.SEQUENCE_MAIN import com.android.launcher3.util.ContextTracker import com.android.launcher3.util.DisplayController @@ -70,8 +67,7 @@ import com.android.quickstep.fallback.RecentsState.BACKGROUND_APP import com.android.quickstep.fallback.RecentsState.BG_LAUNCHER import com.android.quickstep.fallback.RecentsState.DEFAULT import com.android.quickstep.fallback.RecentsState.HOME -import com.android.quickstep.fallback.RecentsState.MODAL_TASK -import com.android.quickstep.fallback.RecentsState.OVERVIEW_SPLIT_SELECT +import com.android.quickstep.fallback.toLauncherStateOrdinal import com.android.quickstep.util.RecentsAtomicAnimationFactory import com.android.quickstep.util.RecentsWindowProtoLogProxy import com.android.quickstep.util.SplitSelectStateController @@ -355,40 +351,16 @@ class RecentsWindowManager(context: Context, wallpaperColorHints: Int) : override fun onStateSetStart(state: RecentsState) { super.onStateSetStart(state) - RecentsWindowProtoLogProxy.logOnStateSetStart(getStateName(state)) + RecentsWindowProtoLogProxy.logOnStateSetStart(state.toString()) } override fun onStateSetEnd(state: RecentsState) { super.onStateSetEnd(state) - RecentsWindowProtoLogProxy.logOnStateSetEnd(getStateName(state)) + RecentsWindowProtoLogProxy.logOnStateSetEnd(state.toString()) if (state == HOME || state == BG_LAUNCHER) { cleanupRecentsWindow() } - when (state) { - HOME, - BG_LAUNCHER -> - AccessibilityManagerCompat.sendStateEventToTest(baseContext, NORMAL_STATE_ORDINAL) - DEFAULT -> - AccessibilityManagerCompat.sendStateEventToTest(baseContext, OVERVIEW_STATE_ORDINAL) - OVERVIEW_SPLIT_SELECT -> - AccessibilityManagerCompat.sendStateEventToTest( - baseContext, - OVERVIEW_SPLIT_SELECT_ORDINAL, - ) - } - } - - private fun getStateName(state: RecentsState?): String { - return when (state) { - null -> "NULL" - DEFAULT -> "DEFAULT" - MODAL_TASK -> "MODAL_TASK" - BACKGROUND_APP -> "BACKGROUND_APP" - HOME -> "HOME" - BG_LAUNCHER -> "BG_LAUNCHER" - OVERVIEW_SPLIT_SELECT -> "OVERVIEW_SPLIT_SELECT" - else -> "ordinal=" + state.ordinal - } + AccessibilityManagerCompat.sendStateEventToTest(baseContext, state.toLauncherStateOrdinal()) } override fun getSystemUiController(): SystemUiController? { diff --git a/quickstep/src/com/android/quickstep/fallback/window/RecentsWindowSwipeHandler.java b/quickstep/src/com/android/quickstep/fallback/window/RecentsWindowSwipeHandler.java index 1d85febad2..b365ddf3a4 100644 --- a/quickstep/src/com/android/quickstep/fallback/window/RecentsWindowSwipeHandler.java +++ b/quickstep/src/com/android/quickstep/fallback/window/RecentsWindowSwipeHandler.java @@ -222,6 +222,7 @@ public class RecentsWindowSwipeHandler extends AbsSwipeUpHandler<RecentsWindowMa @Override protected void finishRecentsControllerToHome(Runnable callback) { final Runnable recentsCallback; + // TODO(b/404866791): check if this is actually necessary for this recents-in-window class if (mAppCanEnterPip) { // Make sure Launcher is resumed after auto-enter-pip transition to actually trigger // the PiP task appearing. @@ -238,7 +239,7 @@ public class RecentsWindowSwipeHandler extends AbsSwipeUpHandler<RecentsWindowMa } mRecentsView.cleanupRemoteTargets(); mRecentsAnimationController.finish( - mAppCanEnterPip /* toRecents */, recentsCallback, true /* sendUserLeaveHint */); + true /* toRecents */, recentsCallback, true /* sendUserLeaveHint */); } @Override diff --git a/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressHandler.java b/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressHandler.java index 107babd61e..571a5468d1 100644 --- a/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressHandler.java +++ b/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressHandler.java @@ -88,7 +88,7 @@ public class NavHandleLongPressHandler implements ResourceBasedOverride { */ @Nullable @VisibleForTesting - final Runnable getLongPressRunnable(NavHandle navHandle) { + final Runnable getLongPressRunnable(NavHandle navHandle, int displayId) { if (!isContextualSearchEntrypointEnabled(navHandle)) { Log.i(TAG, "Contextual Search invocation failed: entry point disabled"); mVibratorWrapper.cancelVibrate(); @@ -116,7 +116,7 @@ public class NavHandleLongPressHandler implements ResourceBasedOverride { Log.i(TAG, "Contextual Search invocation successful"); String runningPackage = TopTaskTracker.INSTANCE.get(mContext).getCachedTopTask( - /* filterOnlyVisibleRecents */ true).getPackageName(); + /* filterOnlyVisibleRecents */ true, displayId).getPackageName(); mStatsLogManager.logger().withPackageName(runningPackage) .log(LAUNCHER_LAUNCH_ASSISTANT_SUCCESSFUL_NAV_HANDLE); } else { diff --git a/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java b/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java index baabde884e..af7c975e0b 100644 --- a/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java +++ b/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumer.java @@ -214,7 +214,7 @@ public class NavHandleLongPressInputConsumer extends DelegateInputConsumer { && !mDeepPressLogged) { // Log deep press even if feature is disabled. String runningPackage = mTopTaskTracker.getCachedTopTask( - /* filterOnlyVisibleRecents */ true).getPackageName(); + /* filterOnlyVisibleRecents */ true, getDisplayId()).getPackageName(); mStatsLogManager.logger().withPackageName(runningPackage).log( mNavHandle.isNavHandleStashedTaskbar() ? LAUNCHER_DEEP_PRESS_STASHED_TASKBAR : LAUNCHER_DEEP_PRESS_NAVBAR); @@ -233,12 +233,13 @@ public class NavHandleLongPressInputConsumer extends DelegateInputConsumer { Log.d(TAG, "triggerLongPress"); } String runningPackage = mTopTaskTracker.getCachedTopTask( - /* filterOnlyVisibleRecents */ true).getPackageName(); + /* filterOnlyVisibleRecents */ true, getDisplayId()).getPackageName(); mStatsLogManager.logger().withPackageName(runningPackage).log( mNavHandle.isNavHandleStashedTaskbar() ? LAUNCHER_LONG_PRESS_STASHED_TASKBAR : LAUNCHER_LONG_PRESS_NAVBAR); - Runnable longPressRunnable = mNavHandleLongPressHandler.getLongPressRunnable(mNavHandle); + Runnable longPressRunnable = mNavHandleLongPressHandler.getLongPressRunnable(mNavHandle, + getDisplayId()); if (longPressRunnable == null) { return; } diff --git a/quickstep/src/com/android/quickstep/inputconsumers/OtherActivityInputConsumer.java b/quickstep/src/com/android/quickstep/inputconsumers/OtherActivityInputConsumer.java index 2db75738f4..54cc391293 100644 --- a/quickstep/src/com/android/quickstep/inputconsumers/OtherActivityInputConsumer.java +++ b/quickstep/src/com/android/quickstep/inputconsumers/OtherActivityInputConsumer.java @@ -58,6 +58,7 @@ import com.android.quickstep.RecentsAnimationDeviceState; import com.android.quickstep.RecentsAnimationTargets; import com.android.quickstep.RotationTouchHelper; import com.android.quickstep.TaskAnimationManager; +import com.android.quickstep.util.ActiveGestureProtoLogProxy; import com.android.quickstep.util.CachedEventDispatcher; import com.android.quickstep.util.MotionPauseDetector; import com.android.quickstep.util.NavBarPosition; @@ -424,6 +425,8 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC mMotionPauseDetector.setIsTrackpadGesture(mGestureState.isTrackpadGesture()); mInteractionHandler.initWhenReady( "OtherActivityInputConsumer.startTouchTrackingForWindowAnimation"); + ActiveGestureProtoLogProxy.logGestureStartSwipeHandler( + mInteractionHandler.getClass().getSimpleName()); if (DEBUG) { Log.d(TAG, "startTouchTrackingForWindowAnimation: isRecentsAnimationRunning=" diff --git a/quickstep/src/com/android/quickstep/recents/ui/viewmodel/TaskTileUiState.kt b/quickstep/src/com/android/quickstep/recents/ui/viewmodel/TaskTileUiState.kt index 8a6a8051f1..863d30b2e4 100644 --- a/quickstep/src/com/android/quickstep/recents/ui/viewmodel/TaskTileUiState.kt +++ b/quickstep/src/com/android/quickstep/recents/ui/viewmodel/TaskTileUiState.kt @@ -37,6 +37,7 @@ data class TaskTileUiState( val hasHeader: Boolean, val sysUiStatusNavFlags: Int, val taskOverlayEnabled: Boolean, + val isCentralTask: Boolean, ) sealed class TaskData { diff --git a/quickstep/src/com/android/quickstep/recents/ui/viewmodel/TaskViewModel.kt b/quickstep/src/com/android/quickstep/recents/ui/viewmodel/TaskViewModel.kt index 09e20711d0..fac0c0a0bb 100644 --- a/quickstep/src/com/android/quickstep/recents/ui/viewmodel/TaskViewModel.kt +++ b/quickstep/src/com/android/quickstep/recents/ui/viewmodel/TaskViewModel.kt @@ -29,7 +29,6 @@ import com.android.quickstep.recents.domain.usecase.IsThumbnailValidUseCase import com.android.quickstep.recents.domain.usecase.ThumbnailPosition import com.android.quickstep.recents.viewmodel.RecentsViewData import com.android.quickstep.views.TaskViewType -import com.android.quickstep.views.TaskViewType.SINGLE import com.android.systemui.shared.recents.model.ThumbnailData import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.Flow @@ -66,6 +65,12 @@ class TaskViewModel( } .distinctUntilChanged() + private val isCentralTask = + combine(taskIds, recentsViewData.centralTaskIds) { taskIds, centralTaskIds -> + taskIds == centralTaskIds + } + .distinctUntilChanged() + private val taskData = taskIds.flatMapLatest { ids -> // Combine Tasks requests @@ -79,14 +84,12 @@ class TaskViewModel( combine(recentsViewData.overlayEnabled, recentsViewData.settledFullyVisibleTaskIds) { isOverlayEnabled, settledFullyVisibleTaskIds -> - taskViewType == SINGLE && - isOverlayEnabled && - settledFullyVisibleTaskIds.any { it in taskIds.value } + isOverlayEnabled && settledFullyVisibleTaskIds.any { it in taskIds.value } } .distinctUntilChanged() val state: Flow<TaskTileUiState> = - combine(taskData, isLiveTile, overlayEnabled, ::mapToTaskTile) + combine(taskData, isLiveTile, overlayEnabled, isCentralTask, ::mapToTaskTile) .distinctUntilChanged() .flowOn(dispatcherProvider.background) @@ -114,6 +117,7 @@ class TaskViewModel( tasks: List<TaskData>, isLiveTile: Boolean, overlayEnabled: Boolean, + isCentralTask: Boolean, ): TaskTileUiState { val firstThumbnailData = (tasks.firstOrNull() as? TaskData.Data)?.thumbnailData return TaskTileUiState( @@ -122,6 +126,7 @@ class TaskViewModel( hasHeader = taskViewType == TaskViewType.DESKTOP, sysUiStatusNavFlags = getSysUiStatusNavFlagsUseCase(firstThumbnailData), taskOverlayEnabled = overlayEnabled, + isCentralTask = isCentralTask, ) } diff --git a/quickstep/src/com/android/quickstep/recents/viewmodel/RecentsViewData.kt b/quickstep/src/com/android/quickstep/recents/viewmodel/RecentsViewData.kt index 2465a4671b..803fb354ff 100644 --- a/quickstep/src/com/android/quickstep/recents/viewmodel/RecentsViewData.kt +++ b/quickstep/src/com/android/quickstep/recents/viewmodel/RecentsViewData.kt @@ -27,6 +27,9 @@ class RecentsViewData { // The settled set of visible taskIds that is updated after RecentsView scroll settles. val settledFullyVisibleTaskIds = MutableStateFlow(emptySet<Int>()) + // The id for the task ids in the TaskView that controls the Actions View + val centralTaskIds = MutableStateFlow(emptySet<Int>()) + // A list of taskIds that are associated with a RecentsAnimationController. */ val runningTaskIds = MutableStateFlow(emptySet<Int>()) diff --git a/quickstep/src/com/android/quickstep/recents/viewmodel/RecentsViewModel.kt b/quickstep/src/com/android/quickstep/recents/viewmodel/RecentsViewModel.kt index 5ff8aaa840..4d168c7476 100644 --- a/quickstep/src/com/android/quickstep/recents/viewmodel/RecentsViewModel.kt +++ b/quickstep/src/com/android/quickstep/recents/viewmodel/RecentsViewModel.kt @@ -38,6 +38,10 @@ class RecentsViewModel( recentsViewData.settledFullyVisibleTaskIds.value = taskIds } + fun updateCentralTaskIds(taskIds: Set<Int>) { + recentsViewData.centralTaskIds.value = taskIds + } + fun setOverlayEnabled(isOverlayEnabled: Boolean) { recentsViewData.overlayEnabled.value = isOverlayEnabled } diff --git a/quickstep/src/com/android/quickstep/util/AppPairsController.java b/quickstep/src/com/android/quickstep/util/AppPairsController.java index 8385485253..24c01ae26d 100644 --- a/quickstep/src/com/android/quickstep/util/AppPairsController.java +++ b/quickstep/src/com/android/quickstep/util/AppPairsController.java @@ -32,7 +32,6 @@ import static com.android.wm.shell.shared.split.SplitScreenConstants.SNAP_TO_NON import static com.android.wm.shell.shared.split.SplitScreenConstants.getIndex; import static com.android.wm.shell.shared.split.SplitScreenConstants.isPersistentSnapPosition; -import android.content.Context; import android.content.Intent; import android.content.pm.LauncherApps; import android.util.Log; @@ -93,10 +92,10 @@ public class AppPairsController { private static final int BITMASK_SIZE = 16; private static final int BITMASK_FOR_SNAP_POSITION = (1 << BITMASK_SIZE) - 1; - private Context mContext; + private ActivityContext mContext; private final SplitSelectStateController mSplitSelectStateController; private final StatsLogManager mStatsLogManager; - public AppPairsController(Context context, + public AppPairsController(ActivityContext context, SplitSelectStateController splitSelectStateController, StatsLogManager statsLogManager) { mContext = context; @@ -208,7 +207,7 @@ public class AppPairsController { } AppPairInfo newAppPair = new AppPairInfo(apps); - IconCache iconCache = LauncherAppState.getInstance(mContext).getIconCache(); + IconCache iconCache = LauncherAppState.getInstance(mContext.asContext()).getIconCache(); MODEL_EXECUTOR.execute(() -> { newAppPair.getAppContents().forEach(member -> { member.title = ""; @@ -216,8 +215,8 @@ public class AppPairsController { iconCache.getTitleAndIcon(member, member.getMatchingLookupFlag()); }); MAIN_EXECUTOR.execute(() -> { - LauncherAccessibilityDelegate delegate = - QuickstepLauncher.getLauncher(mContext).getAccessibilityDelegate(); + LauncherAccessibilityDelegate delegate = QuickstepLauncher.getLauncher( + mContext.asContext()).getAccessibilityDelegate(); if (delegate != null) { delegate.addToWorkspace(newAppPair, true, (success) -> { if (success) { @@ -300,7 +299,7 @@ public class AppPairsController { */ @Nullable private AppInfo resolveAppInfoByComponent(@NonNull ComponentKey key) { - AllAppsStore appsStore = ActivityContext.lookupContext(mContext) + AllAppsStore appsStore = ActivityContext.lookupContext(mContext.asContext()) .getAppsView().getAppsStore(); // First look up the app info in order of: @@ -326,7 +325,7 @@ public class AppPairsController { if (appInfo == null) { return null; } - return appInfo.makeWorkspaceItem(mContext); + return appInfo.makeWorkspaceItem(mContext.asContext()); } /** @@ -418,7 +417,7 @@ public class AppPairsController { } else { // Tapped an app pair while in a single app final TopTaskTracker.CachedTaskInfo runningTask = topTaskTracker - .getCachedTopTask(false /* filterOnlyVisibleRecents */); + .getCachedTopTask(false /* filterOnlyVisibleRecents */, context.getDisplayId()); mSplitSelectStateController.findLastActiveTasksAndRunCallback( componentKeys, @@ -548,6 +547,6 @@ public class AppPairsController { */ @VisibleForTesting public TopTaskTracker getTopTaskTracker() { - return TopTaskTracker.INSTANCE.get(mContext); + return TopTaskTracker.INSTANCE.get(mContext.asContext()); } } diff --git a/quickstep/src/com/android/quickstep/util/ContextualSearchInvoker.kt b/quickstep/src/com/android/quickstep/util/ContextualSearchInvoker.kt index 3bc9adcba6..e574cc7cdd 100644 --- a/quickstep/src/com/android/quickstep/util/ContextualSearchInvoker.kt +++ b/quickstep/src/com/android/quickstep/util/ContextualSearchInvoker.kt @@ -87,7 +87,8 @@ internal constructor( if (success) { val runningPackage = TopTaskTracker.INSTANCE[context].getCachedTopTask( - /* filterOnlyVisibleRecents */ true + /* filterOnlyVisibleRecents */ true, + DEFAULT_DISPLAY, ) .getPackageName() statsLogManager diff --git a/quickstep/src/com/android/quickstep/util/ContextualSearchStateManager.java b/quickstep/src/com/android/quickstep/util/ContextualSearchStateManager.java index a8d3c6d5a3..136c496dce 100644 --- a/quickstep/src/com/android/quickstep/util/ContextualSearchStateManager.java +++ b/quickstep/src/com/android/quickstep/util/ContextualSearchStateManager.java @@ -18,6 +18,7 @@ package com.android.quickstep.util; import static android.app.contextualsearch.ContextualSearchManager.ACTION_LAUNCH_CONTEXTUAL_SEARCH; import static android.app.contextualsearch.ContextualSearchManager.ENTRYPOINT_SYSTEM_ACTION; import static android.app.contextualsearch.ContextualSearchManager.FEATURE_CONTEXTUAL_SEARCH; +import static android.view.Display.DEFAULT_DISPLAY; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_LAUNCH_OMNI_SUCCESSFUL_SYSTEM_ACTION; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; @@ -244,7 +245,8 @@ public class ContextualSearchStateManager { ENTRYPOINT_SYSTEM_ACTION); if (contextualSearchInvoked) { String runningPackage = mTopTaskTracker.getCachedTopTask( - /* filterOnlyVisibleRecents */ true).getPackageName(); + /* filterOnlyVisibleRecents */ true, + DEFAULT_DISPLAY).getPackageName(); StatsLogManager.newInstance(mContext).logger() .withPackageName(runningPackage) .log(LAUNCHER_LAUNCH_OMNI_SUCCESSFUL_SYSTEM_ACTION); diff --git a/quickstep/src/com/android/quickstep/util/ExternalDisplays.kt b/quickstep/src/com/android/quickstep/util/ExternalDisplays.kt index 455b3121ec..0aaca31f8b 100644 --- a/quickstep/src/com/android/quickstep/util/ExternalDisplays.kt +++ b/quickstep/src/com/android/quickstep/util/ExternalDisplays.kt @@ -16,6 +16,7 @@ package com.android.quickstep.util +import android.app.TaskInfo import android.view.Display.DEFAULT_DISPLAY import android.view.Display.INVALID_DISPLAY import com.android.systemui.shared.recents.model.Task @@ -24,10 +25,9 @@ import com.android.systemui.shared.recents.model.Task val Int.isExternalDisplay get() = this != DEFAULT_DISPLAY -/** Returns displayId of this [Task], default to [DEFAULT_DISPLAY] */ -val Task?.displayId +val Int?.safeDisplayId get() = - this?.key?.displayId.let { displayId -> + this.let { displayId -> when (displayId) { null -> DEFAULT_DISPLAY INVALID_DISPLAY -> DEFAULT_DISPLAY @@ -35,6 +35,14 @@ val Task?.displayId } } +/** Returns displayId of this [Task], default to [DEFAULT_DISPLAY] */ +val Task?.safeDisplayId + get() = this?.key?.displayId.safeDisplayId + /** Returns if this task belongs tto [DEFAULT_DISPLAY] */ val Task?.isExternalDisplay - get() = displayId.isExternalDisplay + get() = safeDisplayId.isExternalDisplay + +/** Returns displayId of this [TaskInfo], default to [DEFAULT_DISPLAY] */ +val TaskInfo?.safeDisplayId + get() = this?.displayId.safeDisplayId diff --git a/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java b/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java index fd8b356708..08f2552157 100644 --- a/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java +++ b/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java @@ -195,7 +195,7 @@ public class SplitSelectStateController { mRecentTasksModel = recentsModel; mActivityBackCallback = activityBackCallback; mSplitAnimationController = new SplitAnimationController(this); - mAppPairsController = new AppPairsController(mContainer.asContext(), this, statsLogManager); + mAppPairsController = new AppPairsController(mContainer, this, statsLogManager); mSplitSelectDataHolder = new SplitSelectDataHolder(mContainer.asContext()); } diff --git a/quickstep/src/com/android/quickstep/views/IconAppChipView.kt b/quickstep/src/com/android/quickstep/views/IconAppChipView.kt index 7683a1500a..46ed29b7c8 100644 --- a/quickstep/src/com/android/quickstep/views/IconAppChipView.kt +++ b/quickstep/src/com/android/quickstep/views/IconAppChipView.kt @@ -122,7 +122,7 @@ constructor( field = max(value, minMaxWidth) } - var isExpanded: Boolean = false + var status: AppChipStatus = AppChipStatus.Collapsed private set override fun onFinishInflate() { @@ -358,8 +358,8 @@ constructor( ObjectAnimator.ofFloat(iconArrowView, TRANSLATION_X, arrowTranslationWithRtl), ObjectAnimator.ofFloat(iconArrowView, SCALE_Y, -1f), ) - animator!!.setDuration(MENU_BACKGROUND_REVEAL_DURATION.toLong()) - isExpanded = true + animator!!.duration = MENU_BACKGROUND_REVEAL_DURATION.toLong() + status = AppChipStatus.Expanded } else { // Clip expanded text with reveal animation so it doesn't go beyond the edge of the menu val expandedTextClipAnim = @@ -393,8 +393,8 @@ constructor( ObjectAnimator.ofFloat(iconArrowView, TRANSLATION_X, 0f), ObjectAnimator.ofFloat(iconArrowView, SCALE_Y, 1f), ) - animator!!.setDuration(MENU_BACKGROUND_HIDE_DURATION.toLong()) - isExpanded = false + animator!!.duration = MENU_BACKGROUND_HIDE_DURATION.toLong() + status = AppChipStatus.Collapsed } if (!animated) animator!!.duration = 0 @@ -434,6 +434,11 @@ constructor( override fun asView(): View = this + enum class AppChipStatus { + Expanded, + Collapsed, + } + private companion object { private val SUM_AGGREGATOR = FloatBiFunction { a: Float, b: Float -> a + b } diff --git a/quickstep/src/com/android/quickstep/views/RecentsDismissUtils.kt b/quickstep/src/com/android/quickstep/views/RecentsDismissUtils.kt index db18394d19..6acaeae8db 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsDismissUtils.kt +++ b/quickstep/src/com/android/quickstep/views/RecentsDismissUtils.kt @@ -24,7 +24,6 @@ import androidx.dynamicanimation.animation.SpringForce import com.android.launcher3.Flags.enableGridOnlyOverview import com.android.launcher3.R import com.android.launcher3.Utilities.boundToRange -import com.android.launcher3.touch.SingleAxisSwipeDetector import com.android.launcher3.util.DynamicResource import com.android.launcher3.util.MSDLPlayerWrapper import com.android.quickstep.util.TaskGridNavHelper @@ -33,6 +32,7 @@ import com.google.android.msdl.data.model.MSDLToken import com.google.android.msdl.domain.InteractionProperties import kotlin.math.abs import kotlin.math.roundToInt +import kotlin.math.sign /** * Helper class for [RecentsView]. This util class contains refactored and extracted functions from @@ -51,7 +51,6 @@ class RecentsDismissUtils(private val recentsView: RecentsView<*, *>) { draggedTaskView: TaskView?, velocity: Float, isDismissing: Boolean, - detector: SingleAxisSwipeDetector, dismissLength: Int, onEndRunnable: () -> Unit, ): SpringAnimation? { @@ -60,11 +59,14 @@ class RecentsDismissUtils(private val recentsView: RecentsView<*, *>) { FloatPropertyCompat.createFloatPropertyCompat( draggedTaskView.secondaryDismissTranslationProperty ) + val minVelocity = + recentsView.pagedOrientationHandler.getSecondaryDimension(draggedTaskView).toFloat() + val startVelocity = abs(velocity).coerceAtLeast(minVelocity) * velocity.sign // Animate dragged task towards dismissal or rest state. val draggedTaskViewSpringAnimation = SpringAnimation(draggedTaskView, taskDismissFloatProperty) .setSpring(createExpressiveDismissSpringForce()) - .setStartVelocity(if (detector.isFling(velocity)) velocity else 0f) + .setStartVelocity(startVelocity) .addUpdateListener { animation, value, _ -> if (isDismissing && abs(value) >= abs(dismissLength)) { animation.cancel() @@ -103,6 +105,7 @@ class RecentsDismissUtils(private val recentsView: RecentsView<*, *>) { draggedTaskViewSpringAnimation, driverProgressThreshold = 0f, isSpringDirectionVertical = true, + minVelocity = startVelocity, ) } return draggedTaskViewSpringAnimation @@ -114,15 +117,11 @@ class RecentsDismissUtils(private val recentsView: RecentsView<*, *>) { tasksToExclude: List<TaskView> = emptyList(), driverProgressThreshold: Float, isSpringDirectionVertical: Boolean, + minVelocity: Float, ) { // Empty spring animation exists for conditional start, and to drive neighboring springs. val neighborsToSettle = SpringAnimation(FloatValueHolder()).setSpring(createExpressiveDismissSpringForce()) - addThresholdSpringAnimationTrigger( - springAnimationDriver, - progressThreshold = driverProgressThreshold, - neighborsToSettle, - ) // Add tasks before dragged index, fanning out from the dragged task. // The order they are added matters, as each spring drives the next. @@ -152,6 +151,19 @@ class RecentsDismissUtils(private val recentsView: RecentsView<*, *>) { isSpringDirectionVertical, ) } + + val isCurrentDisplacementAboveOrigin = + recentsView.pagedOrientationHandler.isGoingUp( + draggedTaskView.secondaryDismissTranslationProperty.get(draggedTaskView), + recentsView.isRtl, + ) + addThresholdSpringAnimationTrigger( + springAnimationDriver, + progressThreshold = driverProgressThreshold, + neighborsToSettle, + isCurrentDisplacementAboveOrigin, + minVelocity, + ) } /** As spring passes threshold for the first time, run conditional spring with velocity. */ @@ -159,25 +171,35 @@ class RecentsDismissUtils(private val recentsView: RecentsView<*, *>) { springAnimationDriver: SpringAnimation, progressThreshold: Float, conditionalSpring: SpringAnimation, + isCurrentDisplacementAboveOrigin: Boolean, + minVelocity: Float, ) { - var lastPosition = 0f - var startSettling = false - springAnimationDriver.addUpdateListener { _, value, velocity -> - // We do not compare to the threshold directly, as the update listener - // does not necessarily hit every value. Do not check again once it has started - // settling, as a spring can bounce past the end value multiple times. - if (startSettling) return@addUpdateListener - if ( - lastPosition < progressThreshold && value >= progressThreshold || - lastPosition > progressThreshold && value <= progressThreshold - ) { - startSettling = true - } - lastPosition = value - if (startSettling) { - conditionalSpring.setStartVelocity(velocity).animateToFinalPosition(0f) - playDismissSettlingHaptic(velocity) + val runSettlingAtVelocity = { velocity: Float -> + conditionalSpring.setStartVelocity(velocity).animateToFinalPosition(0f) + playDismissSettlingHaptic(velocity) + } + if (isCurrentDisplacementAboveOrigin) { + var lastPosition = 0f + var startSettling = false + springAnimationDriver.addUpdateListener { _, value, velocity -> + // We do not compare to the threshold directly, as the update listener + // does not necessarily hit every value. Do not check again once it has started + // settling, as a spring can bounce past the end value multiple times. + if (startSettling) return@addUpdateListener + if ( + lastPosition < progressThreshold && value >= progressThreshold || + lastPosition > progressThreshold && value <= progressThreshold + ) { + startSettling = true + } + lastPosition = value + if (startSettling) { + runSettlingAtVelocity(velocity) + } } + } else { + // Run settling animations immediately when displacement is already below settled state. + runSettlingAtVelocity(minVelocity) } } @@ -429,6 +451,7 @@ class RecentsDismissUtils(private val recentsView: RecentsView<*, *>) { tasksToExclude = tasksToReflow, driverProgressThreshold = dismissedTaskGap, isSpringDirectionVertical = false, + minVelocity = 0f, ) } else { springAnimationDriver.addEndListener { _, _, _, _ -> diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index aa25738eb2..8f7dc808d1 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -169,7 +169,6 @@ import com.android.launcher3.statemanager.StatefulContainer; import com.android.launcher3.testing.TestLogging; import com.android.launcher3.testing.shared.TestProtocol; import com.android.launcher3.touch.OverScroll; -import com.android.launcher3.touch.SingleAxisSwipeDetector; import com.android.launcher3.util.CancellableTask; import com.android.launcher3.util.DynamicResource; import com.android.launcher3.util.IntArray; @@ -859,7 +858,7 @@ public abstract class RecentsView< */ private boolean mAnyTaskHasBeenDismissed; - private final RecentsViewModel mRecentsViewModel; + protected final RecentsViewModel mRecentsViewModel; private final RecentsViewModelHelper mHelper; protected final RecentsViewUtils mUtils = new RecentsViewUtils(this); protected final RecentsDismissUtils mDismissUtils = new RecentsDismissUtils(this); @@ -1595,7 +1594,7 @@ public abstract class RecentsView< /** * Returns true if the given TaskView is in expected scroll position. */ - public boolean isTaskInExpectedScrollPosition(TaskView taskView) { + public boolean isTaskInExpectedScrollPosition(@NonNull TaskView taskView) { return getScrollForPage(indexOfChild(taskView)) == getPagedOrientationHandler().getPrimaryScroll(this); } @@ -3367,8 +3366,8 @@ public abstract class RecentsView< int snappedPage = isKeyboardTaskFocusPending() ? mKeyboardTaskFocusIndex : getNextPage(); TaskView snappedTaskView = getTaskViewAt(snappedPage); TaskView homeTaskView = getHomeTaskView(); - TaskView expectedCurrentTaskView = mUtils.getExpectedCurrentTask(getFocusedTaskView(), - getRunningTaskView()); + TaskView expectedCurrentTaskView = mUtils.getExpectedCurrentTask(getRunningTaskView(), + getFocusedTaskView()); TaskView nextFocusedTaskView = null; // Don't clear the top row, if the user has dismissed a task, to maintain the task order. @@ -3943,8 +3942,10 @@ public abstract class RecentsView< newClearAllShortTotalWidthTranslation = expectedFirstTaskStart - firstTaskStart; } } - if (lastGridTaskView != null && (isTaskViewVisible(lastGridTaskView) || ( - isExpressiveDismiss && lastGridTaskView == dismissedTaskView))) { + if (lastGridTaskView != null && ( + (!isExpressiveDismiss && lastGridTaskView.isVisibleToUser()) || (isExpressiveDismiss + && (isTaskViewVisible(lastGridTaskView) + || lastGridTaskView == dismissedTaskView)))) { // After dismissal, animate translation of the remaining tasks to fill any gap left // between the end of the grid and the clear all button. Only animate if the clear // all button is visible or would become visible after dismissal. @@ -5993,6 +5994,9 @@ public abstract class RecentsView< updateCurrentTaskActionsVisibility(); loadVisibleTaskData(TaskView.FLAG_UPDATE_ALL); updateEnabledOverlays(); + if (enableRefactorTaskThumbnail()) { + mUtils.updateCentralTask(); + } } @Override @@ -7186,10 +7190,10 @@ public abstract class RecentsView< * spring in response to the perceived impact of the settling task. */ public SpringAnimation createTaskDismissSettlingSpringAnimation(TaskView draggedTaskView, - float velocity, boolean isDismissing, SingleAxisSwipeDetector detector, - int dismissLength, Function0<Unit> onEndRunnable) { + float velocity, boolean isDismissing, int dismissLength, + Function0<Unit> onEndRunnable) { return mDismissUtils.createTaskDismissSettlingSpringAnimation(draggedTaskView, velocity, - isDismissing, detector, dismissLength, onEndRunnable); + isDismissing, dismissLength, onEndRunnable); } /** diff --git a/quickstep/src/com/android/quickstep/views/RecentsViewUtils.kt b/quickstep/src/com/android/quickstep/views/RecentsViewUtils.kt index 51a5d0f0d6..50941fefa8 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsViewUtils.kt +++ b/quickstep/src/com/android/quickstep/views/RecentsViewUtils.kt @@ -391,6 +391,27 @@ class RecentsViewUtils(private val recentsView: RecentsView<*, *>) { } } + fun updateCentralTask() { + val isTablet: Boolean = getDeviceProfile().isTablet + val actionsViewCanRelateToTaskView = !(isTablet && enableGridOnlyOverview()) + val focusedTaskView = recentsView.focusedTaskView + val currentPageTaskView = recentsView.currentPageTaskView + + fun isInExpectedScrollPosition(taskView: TaskView?) = + taskView?.let { recentsView.isTaskInExpectedScrollPosition(it) } ?: false + + val centralTaskIds: Set<Int> = + when { + !actionsViewCanRelateToTaskView -> emptySet() + isTablet && isInExpectedScrollPosition(focusedTaskView) -> + focusedTaskView!!.taskIdSet + isInExpectedScrollPosition(currentPageTaskView) -> currentPageTaskView!!.taskIdSet + else -> emptySet() + } + + recentsView.mRecentsViewModel.updateCentralTaskIds(centralTaskIds) + } + var deskExplodeProgress: Float = 0f set(value) { field = value diff --git a/quickstep/src/com/android/quickstep/views/TaskMenuView.kt b/quickstep/src/com/android/quickstep/views/TaskMenuView.kt index 696f934701..f7cb7bef78 100644 --- a/quickstep/src/com/android/quickstep/views/TaskMenuView.kt +++ b/quickstep/src/com/android/quickstep/views/TaskMenuView.kt @@ -251,6 +251,7 @@ constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int = 0) : rotation = orientationHandler.degreesRotated if (enableOverviewIconMenu()) { + elevation = resources.getDimension(R.dimen.task_thumbnail_icon_menu_elevation) translationX = thumbnailAlignedX translationY = thumbnailAlignedY } else { @@ -428,9 +429,7 @@ constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int = 0) : var additionalTranslationX = 0f if ( - recentsViewContainer.deviceProfile.isLandscape && - taskContainer.stagePosition == - SplitConfigurationOptions.STAGE_POSITION_BOTTOM_OR_RIGHT + taskContainer.stagePosition == SplitConfigurationOptions.STAGE_POSITION_BOTTOM_OR_RIGHT ) { // Animate menu and icon when split task would display off the side of the screen. additionalTranslationX = @@ -474,8 +473,8 @@ constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int = 0) : val isLastMenuOptionFocused = optionLayout.indexOfChild(optionLayout.focusedChild) == optionLayout.childCount - 1 if ( - (isLastMenuOptionFocused && event.keyCode == KeyEvent.KEYCODE_DPAD_DOWN) - || (isFirstMenuOptionFocused && event.keyCode == KeyEvent.KEYCODE_DPAD_UP) + (isLastMenuOptionFocused && event.keyCode == KeyEvent.KEYCODE_DPAD_DOWN) || + (isFirstMenuOptionFocused && event.keyCode == KeyEvent.KEYCODE_DPAD_UP) ) { iconView.requestFocus() return true diff --git a/quickstep/src/com/android/quickstep/views/TaskView.kt b/quickstep/src/com/android/quickstep/views/TaskView.kt index 3835e48a9e..a108afc34b 100644 --- a/quickstep/src/com/android/quickstep/views/TaskView.kt +++ b/quickstep/src/com/android/quickstep/views/TaskView.kt @@ -97,8 +97,11 @@ import com.android.quickstep.util.BorderAnimator.Companion.createSimpleBorderAni import com.android.quickstep.util.RecentsOrientedState import com.android.quickstep.util.TaskCornerRadius import com.android.quickstep.util.TaskRemovedDuringLaunchListener -import com.android.quickstep.util.displayId import com.android.quickstep.util.isExternalDisplay +import com.android.quickstep.util.safeDisplayId +import com.android.quickstep.views.IconAppChipView.AppChipStatus +import com.android.quickstep.views.OverviewActionsView.DISABLED_NO_THUMBNAIL +import com.android.quickstep.views.OverviewActionsView.DISABLED_ROTATED import com.android.quickstep.views.RecentsView.UNBOUND_TASK_VIEW_ID import com.android.systemui.shared.recents.model.Task import com.android.systemui.shared.recents.model.ThumbnailData @@ -152,7 +155,7 @@ constructor( get() = this === recentsView?.selectedTaskView open val displayId: Int - get() = taskContainers.firstOrNull()?.task.displayId + get() = taskContainers.firstOrNull()?.task.safeDisplayId val isExternalDisplay: Boolean get() = displayId.isExternalDisplay @@ -828,6 +831,20 @@ constructor( height = container.thumbnailView.height, ) container.setOverlayEnabled(state.taskOverlayEnabled, thumbnailPosition) + if (state.isCentralTask) { + this.container.actionsView.let { + it.updateDisabledFlags( + DISABLED_ROTATED, + thumbnailPosition?.isRotated ?: false, + ) + it.updateDisabledFlags( + DISABLED_NO_THUMBNAIL, + state.tasks.any { taskData -> + (taskData as? TaskData.Data)?.thumbnailData?.thumbnail == null + }, + ) + } + } if (enableOverviewIconMenu()) { setIconState(container, containerState) @@ -1551,7 +1568,7 @@ constructor( recentsView.setTaskBorderEnabled(false) } return if (enableOverviewIconMenu() && menuContainer.iconView is IconAppChipView) { - if (menuContainer.iconView.isExpanded) { + if (menuContainer.iconView.status == AppChipStatus.Expanded) { closeTaskMenu() } else { menuContainer.iconView.revealAnim(/* isRevealing= */ true) diff --git a/quickstep/src_protolog/com/android/quickstep/util/ActiveGestureProtoLogProxy.java b/quickstep/src_protolog/com/android/quickstep/util/ActiveGestureProtoLogProxy.java index 773a039cf3..2532fcf8cf 100644 --- a/quickstep/src_protolog/com/android/quickstep/util/ActiveGestureProtoLogProxy.java +++ b/quickstep/src_protolog/com/android/quickstep/util/ActiveGestureProtoLogProxy.java @@ -544,7 +544,7 @@ public class ActiveGestureProtoLogProxy { @NonNull Point displaySize, @NonNull RectF swipeRegion, @NonNull RectF ohmRegion, int gesturalHeight, int largerGesturalHeight, @NonNull String reason) { if (!enableActiveGestureProtoLog() || !isProtoLogInitialized()) return; - ProtoLog.d(ACTIVE_GESTURE_LOG, + ProtoLog.d(ACTIVE_GESTURE_LOG, "OrientationTouchTransformer.createRegionForDisplay: " + "dispRot=%d, dispSize=%s, swipeRegion=%s, ohmRegion=%s, " + "gesturalHeight=%d, largerGesturalHeight=%d, reason=%s", @@ -560,4 +560,14 @@ public class ActiveGestureProtoLogProxy { ProtoLog.d(ACTIVE_GESTURE_LOG, "TaskAnimationManager not available for displayId=%d", displayId); } + + public static void logGestureStartSwipeHandler(@NonNull String interactionHandler) { + ActiveGestureLog.INSTANCE.addLog(new ActiveGestureLog.CompoundString( + "OtherActivityInputConsumer.startTouchTrackingForWindowAnimation: " + + "interactionHandler=%s", interactionHandler)); + if (!enableActiveGestureProtoLog() || !isProtoLogInitialized()) return; + ProtoLog.d(ACTIVE_GESTURE_LOG, + "OtherActivityInputConsumer.startTouchTrackingForWindowAnimation: " + + "interactionHandler=%s", interactionHandler); + } } diff --git a/quickstep/tests/multivalentTests/src/com/android/quickstep/AbsSwipeUpHandlerTestCase.java b/quickstep/tests/multivalentTests/src/com/android/quickstep/AbsSwipeUpHandlerTestCase.java index 78240000c3..2f5f160898 100644 --- a/quickstep/tests/multivalentTests/src/com/android/quickstep/AbsSwipeUpHandlerTestCase.java +++ b/quickstep/tests/multivalentTests/src/com/android/quickstep/AbsSwipeUpHandlerTestCase.java @@ -292,7 +292,7 @@ public abstract class AbsSwipeUpHandlerTestCase< public void testHomeGesture_invalidatesHandlerAfterParallelAnim() { ValueAnimator parallelAnim = new ValueAnimator(); parallelAnim.setRepeatCount(ValueAnimator.INFINITE); - when(mActivityInterface.getParallelAnimationToLauncher(any(), anyLong(), any())) + when(mActivityInterface.getParallelAnimationToGestureEndTarget(any(), anyLong(), any())) .thenReturn(parallelAnim); SWIPE_HANDLER handler = createSwipeUpHandlerForGesture(GestureState.GestureEndTarget.HOME); runOnMainSync(() -> { @@ -306,7 +306,7 @@ public abstract class AbsSwipeUpHandlerTestCase< @Test public void testHomeGesture_invalidatesHandlerIfNoParallelAnim() { - when(mActivityInterface.getParallelAnimationToLauncher(any(), anyLong(), any())) + when(mActivityInterface.getParallelAnimationToGestureEndTarget(any(), anyLong(), any())) .thenReturn(null); SWIPE_HANDLER handler = createSwipeUpHandlerForGesture(GestureState.GestureEndTarget.HOME); runOnMainSync(() -> { diff --git a/quickstep/tests/multivalentTests/src/com/android/quickstep/fallback/RecentsStateUtilsTest.kt b/quickstep/tests/multivalentTests/src/com/android/quickstep/fallback/RecentsStateUtilsTest.kt new file mode 100644 index 0000000000..4e9dae8da0 --- /dev/null +++ b/quickstep/tests/multivalentTests/src/com/android/quickstep/fallback/RecentsStateUtilsTest.kt @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2025 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.fallback + +import com.android.launcher3.testing.shared.TestProtocol.BACKGROUND_APP_STATE_ORDINAL +import com.android.launcher3.testing.shared.TestProtocol.NORMAL_STATE_ORDINAL +import com.android.launcher3.testing.shared.TestProtocol.OVERVIEW_MODAL_TASK_STATE_ORDINAL +import com.android.launcher3.testing.shared.TestProtocol.OVERVIEW_SPLIT_SELECT_ORDINAL +import com.android.launcher3.testing.shared.TestProtocol.OVERVIEW_STATE_ORDINAL +import com.android.launcher3.util.LauncherMultivalentJUnit +import com.android.launcher3.util.LauncherMultivalentJUnit.EmulatedDevices +import com.google.common.truth.Truth.assertThat +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(LauncherMultivalentJUnit::class) +@EmulatedDevices(["pixelTablet2023"]) +class RecentsStateUtilsTest { + + @Test + fun testRecentsStateDefault_toLauncherStateOrdinal_isOverviewStateOrdinal() { + assertThat(RecentsState.DEFAULT.toLauncherStateOrdinal()).isEqualTo(OVERVIEW_STATE_ORDINAL) + } + + @Test + fun testRecentsStateModal_toLauncherStateOrdinal_isModalTaskStateOrdinal() { + assertThat(RecentsState.MODAL_TASK.toLauncherStateOrdinal()) + .isEqualTo(OVERVIEW_MODAL_TASK_STATE_ORDINAL) + } + + @Test + fun testRecentsStateBackgroundApp_toLauncherStateOrdinal_isBackgroundAppStateOrdinal() { + assertThat(RecentsState.BACKGROUND_APP.toLauncherStateOrdinal()) + .isEqualTo(BACKGROUND_APP_STATE_ORDINAL) + } + + @Test + fun testRecentsStateHome_toLauncherStateOrdinal_isNormalStateOrdinal() { + assertThat(RecentsState.HOME.toLauncherStateOrdinal()).isEqualTo(NORMAL_STATE_ORDINAL) + } + + @Test + fun testRecentsStateBgLauncher_toLauncherStateOrdinal_isNormalStateOrdinal() { + assertThat(RecentsState.BG_LAUNCHER.toLauncherStateOrdinal()) + .isEqualTo(NORMAL_STATE_ORDINAL) + } + + @Test + fun testRecentsStateOverviewSplitSelect_toLauncherStateOrdinal_isOverviewSplitSelectStateOrdinal() { + assertThat(RecentsState.OVERVIEW_SPLIT_SELECT.toLauncherStateOrdinal()) + .isEqualTo(OVERVIEW_SPLIT_SELECT_ORDINAL) + } +} diff --git a/quickstep/tests/multivalentTests/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumerTest.java b/quickstep/tests/multivalentTests/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumerTest.java index cfeade8ff3..ee9505cdbb 100644 --- a/quickstep/tests/multivalentTests/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumerTest.java +++ b/quickstep/tests/multivalentTests/src/com/android/quickstep/inputconsumers/NavHandleLongPressInputConsumerTest.java @@ -36,6 +36,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; @@ -105,11 +106,12 @@ public class NavHandleLongPressInputConsumerTest { @Before public void setup() { MockitoAnnotations.initMocks(this); - when(mTopTaskTracker.getCachedTopTask(anyBoolean())).thenReturn(mTaskInfo); + when(mTopTaskTracker.getCachedTopTask(anyBoolean(), anyInt())).thenReturn(mTaskInfo); when(mDeviceState.getSquaredTouchSlop()).thenReturn(SQUARED_TOUCH_SLOP); when(mDelegate.allowInterceptByParent()).thenReturn(true); mLongPressTriggered.set(false); - when(mNavHandleLongPressHandler.getLongPressRunnable(any())).thenReturn(mLongPressRunnable); + when(mNavHandleLongPressHandler.getLongPressRunnable(any(), anyInt())).thenReturn( + mLongPressRunnable); when(mStatsLogger.withPackageName(any())).thenReturn(mStatsLogger); when(mStatsLatencyLogger.withInstanceId(any())).thenReturn(mStatsLatencyLogger); when(mStatsLatencyLogger.withLatency(anyLong())).thenReturn(mStatsLatencyLogger); diff --git a/quickstep/tests/multivalentTests/src/com/android/quickstep/recents/ui/viewmodel/TaskViewModelTest.kt b/quickstep/tests/multivalentTests/src/com/android/quickstep/recents/ui/viewmodel/TaskViewModelTest.kt index 18b9fe9685..333c2856e6 100644 --- a/quickstep/tests/multivalentTests/src/com/android/quickstep/recents/ui/viewmodel/TaskViewModelTest.kt +++ b/quickstep/tests/multivalentTests/src/com/android/quickstep/recents/ui/viewmodel/TaskViewModelTest.kt @@ -85,6 +85,7 @@ class TaskViewModelTest { hasHeader = false, sysUiStatusNavFlags = FLAGS_APPEARANCE_LIGHT_THEME, taskOverlayEnabled = false, + isCentralTask = false, ) assertThat(sut.state.first()).isEqualTo(expectedResult) } @@ -132,6 +133,7 @@ class TaskViewModelTest { hasHeader = false, sysUiStatusNavFlags = FLAGS_APPEARANCE_LIGHT_THEME, taskOverlayEnabled = false, + isCentralTask = false, ) assertThat(sut.state.first()).isEqualTo(expectedResult) } @@ -155,6 +157,7 @@ class TaskViewModelTest { hasHeader = false, sysUiStatusNavFlags = FLAGS_APPEARANCE_LIGHT_THEME, taskOverlayEnabled = false, + isCentralTask = false, ) assertThat(sut.state.first()).isEqualTo(expectedResult) } @@ -178,6 +181,7 @@ class TaskViewModelTest { hasHeader = false, sysUiStatusNavFlags = FLAGS_APPEARANCE_LIGHT_THEME, taskOverlayEnabled = false, + isCentralTask = false, ) assertThat(sut.state.first()).isEqualTo(expectedResult) } @@ -200,6 +204,7 @@ class TaskViewModelTest { hasHeader = false, sysUiStatusNavFlags = FLAGS_APPEARANCE_LIGHT_THEME, taskOverlayEnabled = false, + isCentralTask = false, ) assertThat(sut.state.first()).isEqualTo(expectedResult) } @@ -218,6 +223,7 @@ class TaskViewModelTest { hasHeader = false, sysUiStatusNavFlags = FLAGS_APPEARANCE_LIGHT_THEME, taskOverlayEnabled = false, + isCentralTask = false, ) assertThat(sut.state.first()).isEqualTo(expectedResult) } @@ -233,6 +239,7 @@ class TaskViewModelTest { hasHeader = false, sysUiStatusNavFlags = FLAGS_APPEARANCE_DEFAULT, taskOverlayEnabled = false, + isCentralTask = false, ) assertThat(sut.state.first()).isEqualTo(expectedResult) } @@ -248,45 +255,41 @@ class TaskViewModelTest { } @Test - fun taskOverlayDisabled_when_usingGroupedTask() = + fun taskOverlayDisabled_when_OverlayIsEnabledForInvisibleTask() = testScope.runTest { - sut = createTaskViewModel(TaskViewType.GROUPED) sut.bind(TASK_MODEL_1.id) recentsViewData.overlayEnabled.value = true - recentsViewData.settledFullyVisibleTaskIds.value = setOf(1) + recentsViewData.settledFullyVisibleTaskIds.value = setOf(2) assertThat(sut.state.first().taskOverlayEnabled).isFalse() } @Test - fun taskOverlayDisabled_when_usingDesktopTask() = + fun taskOverlayDisabled_when_OverlayIsDisabledForVisibleTask() = testScope.runTest { - sut = createTaskViewModel(TaskViewType.DESKTOP) sut.bind(TASK_MODEL_1.id) - recentsViewData.overlayEnabled.value = true + recentsViewData.overlayEnabled.value = false recentsViewData.settledFullyVisibleTaskIds.value = setOf(1) assertThat(sut.state.first().taskOverlayEnabled).isFalse() } @Test - fun taskOverlayDisabled_when_OverlayIsEnabledForInvisibleTask() = + fun isCentralTask_when_CentralTaskIdsMatchTaskIds() = testScope.runTest { - sut.bind(TASK_MODEL_1.id) - recentsViewData.overlayEnabled.value = true - recentsViewData.settledFullyVisibleTaskIds.value = setOf(2) + sut.bind(TASK_MODEL_1.id, TASK_MODEL_2.id) + recentsViewData.centralTaskIds.value = setOf(TASK_MODEL_1.id, TASK_MODEL_2.id) - assertThat(sut.state.first().taskOverlayEnabled).isFalse() + assertThat(sut.state.first().isCentralTask).isTrue() } @Test - fun taskOverlayDisabled_when_OverlayIsDisabledForVisibleTask() = + fun isNotCentralTask_when_CentralTaskIdsDoMatchTaskIds() = testScope.runTest { - sut.bind(TASK_MODEL_1.id) - recentsViewData.overlayEnabled.value = false - recentsViewData.settledFullyVisibleTaskIds.value = setOf(1) + sut.bind(TASK_MODEL_1.id, TASK_MODEL_2.id) + recentsViewData.centralTaskIds.value = setOf(TASK_MODEL_3.id) - assertThat(sut.state.first().taskOverlayEnabled).isFalse() + assertThat(sut.state.first().isCentralTask).isFalse() } @Test diff --git a/quickstep/tests/multivalentTests/src/com/android/quickstep/util/AppPairsControllerTest.kt b/quickstep/tests/multivalentTests/src/com/android/quickstep/util/AppPairsControllerTest.kt index 76d36d3658..c325af4d3e 100644 --- a/quickstep/tests/multivalentTests/src/com/android/quickstep/util/AppPairsControllerTest.kt +++ b/quickstep/tests/multivalentTests/src/com/android/quickstep/util/AppPairsControllerTest.kt @@ -17,8 +17,9 @@ package com.android.quickstep.util import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM -import android.content.Context import android.content.res.Resources +import android.view.Display +import android.view.Display.DEFAULT_DISPLAY import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.launcher3.apppairs.AppPairIcon import com.android.launcher3.logging.StatsLogManager @@ -26,6 +27,7 @@ import com.android.launcher3.model.data.ItemInfo import com.android.launcher3.taskbar.TaskbarActivityContext import com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_BOTTOM_OR_RIGHT import com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT +import com.android.launcher3.views.ActivityContext import com.android.quickstep.TopTaskTracker import com.android.quickstep.TopTaskTracker.CachedTaskInfo import com.android.systemui.shared.recents.model.Task @@ -56,7 +58,7 @@ import org.mockito.kotlin.whenever @RunWith(AndroidJUnit4::class) class AppPairsControllerTest { - @Mock lateinit var context: Context + @Mock lateinit var context: ActivityContext @Mock lateinit var resources: Resources @Mock lateinit var splitSelectStateController: SplitSelectStateController @Mock lateinit var statsLogManager: StatsLogManager @@ -83,6 +85,7 @@ class AppPairsControllerTest { } @Mock lateinit var mockAppPairIcon: AppPairIcon + @Mock lateinit var mockDisplay: Display @Mock lateinit var mockTaskbarActivityContext: TaskbarActivityContext @Mock lateinit var mockTopTaskTracker: TopTaskTracker @Mock lateinit var mockCachedTaskInfo: CachedTaskInfo @@ -105,8 +108,10 @@ class AppPairsControllerTest { // Stub methods on appPairsController so that they return mocks spyAppPairsController = spy(appPairsController) whenever(mockAppPairIcon.context).thenReturn(mockTaskbarActivityContext) + whenever(mockAppPairIcon.display).thenReturn(mockDisplay) + whenever(mockDisplay.displayId).thenReturn(DEFAULT_DISPLAY) doReturn(mockTopTaskTracker).whenever(spyAppPairsController).topTaskTracker - whenever(mockTopTaskTracker.getCachedTopTask(any())).thenReturn(mockCachedTaskInfo) + whenever(mockTopTaskTracker.getCachedTopTask(any(), any())).thenReturn(mockCachedTaskInfo) whenever(mockTask1.getKey()).thenReturn(mockTaskKey1) whenever(mockTask2.getKey()).thenReturn(mockTaskKey2) doNothing().whenever(spyAppPairsController).launchAppPair(any(), any()) diff --git a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/bubbles/animation/BubbleBarViewAnimatorTest.kt b/quickstep/tests/src/com/android/launcher3/taskbar/bubbles/animation/BubbleBarViewAnimatorTest.kt index 61a697503e..61a697503e 100644 --- a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/bubbles/animation/BubbleBarViewAnimatorTest.kt +++ b/quickstep/tests/src/com/android/launcher3/taskbar/bubbles/animation/BubbleBarViewAnimatorTest.kt diff --git a/quickstep/tests/src/com/android/quickstep/InputConsumerUtilsTest.java b/quickstep/tests/src/com/android/quickstep/InputConsumerUtilsTest.java index 93b979cc32..1464ca8432 100644 --- a/quickstep/tests/src/com/android/quickstep/InputConsumerUtilsTest.java +++ b/quickstep/tests/src/com/android/quickstep/InputConsumerUtilsTest.java @@ -293,7 +293,7 @@ public class InputConsumerUtilsTest { @Test public void testNewBaseConsumer_launcherChildActivityResumed_returnsDefaultInputConsumer() { when(mRunningTask.isHomeTask()).thenReturn(true); - when(mOverviewComponentObserver.isHomeAndOverviewSame()).thenReturn(true); + when(mOverviewComponentObserver.isHomeAndOverviewSameActivity()).thenReturn(true); assertEqualsDefaultInputConsumer(this::createBaseInputConsumer); } |