Merge "Update the computation of the widget span from size" into sc-dev am: 0bb96c9168
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/14736371
Change-Id: I88641547e683ca42b776cd300fc155e42761dddb
diff --git a/quickstep/res/values-af/strings.xml b/quickstep/res/values-af/strings.xml
index 2cef1e5..f563cdb 100644
--- a/quickstep/res/values-af/strings.xml
+++ b/quickstep/res/values-af/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Voorspelde program: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Maak seker dat jy van die rand heel links af swiep."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Maak seker dat jy van die linkerrand na die middel van die skerm swiep en laat los."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Swiep van regs na middel van skerm om terug te gaan na laaste skerm."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Maak seker dat jy van die rand heel regs af swiep."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Maak seker dat jy van die regterrand na die middel van die skerm swiep en laat los."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Jy het die \"gaan terug\"-gebaar voltooi. Nou kan jy leer hoe om tussen programme te wissel."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Jy het die \"gaan terug\"-gebaar voltooi."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Maak seker dat jy nie te naby aan die onderkant van die skerm swiep nie."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Gaan na Instellings om sensitiwiteit van teruggebaar te verander"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Swiep van links af om terug te gaan"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Swiep van linkerkant na middel van skerm om terug te gaan na laaste skerm waarop jy was."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Maak seker dat jy van die onderrand van die skerm af opswiep."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Maak seker jy onderbreek nie voordat jy laat los nie."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Maak seker jy swiep reguit op."</string>
diff --git a/quickstep/res/values-am/strings.xml b/quickstep/res/values-am/strings.xml
index 253cb6c..3c20bb1 100644
--- a/quickstep/res/values-am/strings.xml
+++ b/quickstep/res/values-am/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"የተገመተው መተግበሪያ፦ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"ከግራ ጠርዝ ጥግ ጀምሮ ማንሸራተትዎን ያረጋግጡ።"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"ከግራ ጠርዝ ወደ ማያ ገጹ መሃል ማንሸራተትዎን እና መልቀቅዎን ያረጋግጡ።"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"እንዲሁም ከቀኝ ጠርዝ ወደ ማያ ገጹ መሃል በማንሸራተት ወደ መጨረሻው ማያ ገጽ መመለስ ይችላሉ።"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"ከቀኝ ጠርዝ ጥግ ጀምሮ ማንሸራተትዎን ያረጋግጡ።"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"ከቀኝ ጠርዝ ወደ ማያ ገጹ መሃል ማንሸራተትዎን እና መልቀቅዎን ያረጋግጡ።"</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"ወደኋላ የመመለስ ምልክትን አጠናቀዋል። ቀጥሎም መተግበሪያዎችን እንዴት መቀየር እንደሚችሉ ይወቁ።"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"ወደኋላ የመመለስ ምልክትን አጠናቀዋል።"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"ከማያ ገጹ ታችኛው ክፍል ጋር በጣም ጠጋ ብለው አለማንሸራተትዎን ያረጋግጡ።"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"ከኋላ ስሜት ሰጭነት ደረጃ ለመለወጥ ወደ ቅንብሮች ይመለሱ"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"ወደ ኋላ ለመመለስ ከግራ ጀምረው ያንሸራትቱ"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"ወደነበሩበት የመጨረሻው ማያ ገጽ ለመመለስ ከግራ ጠርዝ ወደ ማያ ገጹ መሃል ያንሸራትቱ።"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"ከማያ ገጹ የታችኛው ጫፍ ወደ ላይ ማንሸራተትዎን ያረጋግጡ።"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"ከመልቀቅዎ በፊት ለአፍታ እንዳልቆሙ ያረጋግጡ።"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"በቀጥታ ወደ ላይ ማንሸራተትዎን ያረጋግጡ።"</string>
diff --git a/quickstep/res/values-ar/strings.xml b/quickstep/res/values-ar/strings.xml
index 002eb7e..65f4c30 100644
--- a/quickstep/res/values-ar/strings.xml
+++ b/quickstep/res/values-ar/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"التطبيق المتوقع: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"تأكّد من التمرير سريعًا من أقصى الحافة اليمنى."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"تأكّد من التمرير سريعًا من الحافة اليمنى إلى وسط الشاشة ثم ارفع إصبعك."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"يمكنك أيضًا الرجوع إلى الشاشة السابقة عن طريق التمرير سريعًا من الحافة اليسرى إلى وسط الشاشة"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"تأكّد من التمرير سريعًا من أقصى الحافة اليسرى."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"تأكّد من التمرير سريعًا من الحافة اليسرى إلى وسط الشاشة ثم ارفع إصبعك."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"لقد أكملت التدريب على إيماءة الرجوع. تعرّف بعد ذلك على كيفية التبديل بين التطبيقات."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"لقد أكملت التدريب على إيماءة الرجوع."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"تأكّد من عدم التمرير بالقرب من أسفل الشاشة."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"لتغيير مستوى حساسية إيماءة الرجوع، انتقِل إلى \"الإعدادات\""</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"مرِّر سريعًا من اليسار للرجوع."</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"للرجوع إلى الشاشة السابقة، مرِّر سريعًا من الحافة اليمنى إلى وسط الشاشة"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"تأكّد من التمرير سريعًا من الحافة السفلى للشاشة إلى أعلاها."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"تأكّد من عدم التوقّف قليلاً قبل رفع إصبعك."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"تأكّد من التمرير إلى الأعلى مباشرةً."</string>
diff --git a/quickstep/res/values-as/strings.xml b/quickstep/res/values-as/strings.xml
index 699565f..d5e5761 100644
--- a/quickstep/res/values-as/strings.xml
+++ b/quickstep/res/values-as/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"পূৰ্বানুমান কৰা এপ্: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"আপুনি বাওঁ প্ৰান্তৰৰ একেবাৰে সীমাৰ পৰা ছোৱাইপ কৰাটো নিশ্চিত কৰক।"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"আপুনি স্ক্ৰীনৰ বাওঁ প্ৰান্তৰৰ পৰা সোঁ প্ৰান্তৰৰ ফালে মধ্যভাগলৈকে ছোৱাইপ কৰি এৰি দিয়াটো নিশ্চিত কৰক।"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"আপুনি স্ক্ৰীনখনৰ সোঁ প্ৰান্তৰৰ পৰা মাজলৈ ছোৱাইপ কৰিও অন্তিম স্ক্ৰীনখনলৈ উভতি যাব পাৰে।"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"আপুনি সোঁ প্ৰান্তৰৰ একেবাৰে সীমাৰ পৰা ছোৱাইপ কৰাটো নিশ্চিত কৰক।"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"আপুনি স্ক্ৰীনৰ সোঁ প্ৰান্তৰৰ পৰা মধ্যভাগলৈকে ছোৱাইপ কৰি এৰি দিয়াটো নিশ্চিত কৰক।"</string>
- <string name="back_gesture_feedback_complete_with_follow_up" msgid="8653374779579748392">"আপুনি উভতি যাওক নিৰ্দেশটো সম্পূৰ্ণ কৰিলে। ইয়াৰ পাছত, এপ্ কেনেকৈ সলনি কৰিব সেয়া জানক।"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"আপুনি উভতি যাওক নিৰ্দেশটো সম্পূৰ্ণ কৰিলে।"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"আপুনি স্ক্ৰীনৰ তলৰ অংশৰ বেছি ওচৰলৈ ছোৱাইপ নকৰাটো নিশ্চিত কৰক।"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"উভতি যোৱাৰ নির্দেশটোৰ সংবেদনশীলতা সলনি কৰিবলৈ ছেটিঙলৈ যাওক"</string>
- <string name="back_gesture_intro_title" msgid="5538727561353262952">"উভতি যাবলৈ বাওঁ প্ৰান্তৰৰ পৰা ছোৱাইপ কৰক"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"আপুনি পূৰ্বে থকা অন্তিম স্ক্ৰীনখনলৈ উভতি যাবলৈ স্ক্ৰীনখনৰ বাওঁ প্ৰান্তৰৰ পৰা মাজলৈ ছোৱাইপ কৰক।"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"আপুনি স্ক্ৰীনৰ তলৰ প্ৰান্তৰ পৰা ওপৰলৈ ছোৱাইপ কৰাটো নিশ্চিত কৰক।"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"আপুনি এৰি দিয়াৰ পূৰ্বে অলপো নোৰোৱাটো নিশ্চিত কৰক।"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"আপুনি পোনকৈ ওপৰলৈ ছোৱাইপ কৰাটো নিশ্চিত কৰক।"</string>
diff --git a/quickstep/res/values-az/strings.xml b/quickstep/res/values-az/strings.xml
index 2d03b4e..4aab9fe 100644
--- a/quickstep/res/values-az/strings.xml
+++ b/quickstep/res/values-az/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Proqnozlaşdırılan tətbiq: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Ən sol tərəfdən sürüşdürdüyünüzə əmin olun."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Ekranın sol kənarından ortasına sürüşdürüb buraxın."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Həmçinin ekranın sağ kənarından ortasına sürüşdürərək son ekrana qayıda bilərsiniz."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Ən sağ tərəfdən sürüşdürdüyünüzə əmin olun."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Ekranın sağ kənarından ortasına sürüşdürüb buraxın."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Geri getmə jestini tamamladınız. Sonra tətbiqləri keçirməyi öyrənin."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Geri getmə jestini tamamladınız."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Ekranın altına çox yaxın sürüşdürmədiyinizə əmin olun."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Geri qayıtma jestinin həssaslığını dəyişmək üçün Ayarlara keçin"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Geri qayıtmaq üçün soldan sürüşdürün"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Son ekrana qayıtmaq üçün ekranın sol kənarından ortasına doğru sürüşdürün."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Ekranın aşağı kənarından yuxarı sürüşdürdüyünüzə əmin olun."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Buraxmazdan əvvəl durdurmadığınıza əmin olun."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Birbaşa yuxarı sürüşdürdüyünüzə əmin olun."</string>
diff --git a/quickstep/res/values-b+sr+Latn/strings.xml b/quickstep/res/values-b+sr+Latn/strings.xml
index e9c52c2..bff46e8 100644
--- a/quickstep/res/values-b+sr+Latn/strings.xml
+++ b/quickstep/res/values-b+sr+Latn/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predviđamo aplikaciju: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Obavezno prevucite od same leve ivice."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Obavezno prevucite od leve ivice do sredine ekrana i otpustite."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Vratite se na poslednji ekran prevlačenjem zdesna ka sredini."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Obavezno prevucite od same desne ivice."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Obavezno prevucite od desne ivice do sredine ekrana i otpustite."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Dovršili ste pokret za povratak. Sada saznajte kako da promenite aplikacije."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Dovršili ste pokret za povratak."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Nikako ne prevlačite previše blizu dna ekrana."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Osetljivost pok. za nazad možete da promenite u Podešavanjima"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Prevucite sa leve strane da biste se vratili"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Da biste se vratili na poslednji ekran, prevucite od leve ivice ka sredini ekrana."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Obavezno prevucite nagore od donje ivice ekrana."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Nikako ne stajte pre otpuštanja."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Obavezno prevucite pravo nagore."</string>
diff --git a/quickstep/res/values-be/strings.xml b/quickstep/res/values-be/strings.xml
index d0774cb..d5b9dc9 100644
--- a/quickstep/res/values-be/strings.xml
+++ b/quickstep/res/values-be/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Праграма з падказкі: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Пераканайцеся, што вы не праводзіце пальцам занадта далёка ад левага вугла экрана."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Пераканайцеся, што праводзіце пальцам з левага вугла ў цэнтр экрана, а потым адпускаеце."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Каб вярнуцца, правядзіце ад правага краю ў цэнтр экрана."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Пераканайцеся, што вы не праводзіце пальцам занадта далёка ад правага вугла экрана."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Пераканайцеся, што праводзіце пальцам з правага вугла ў цэнтр экрана, а потым адпускаеце."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Вы навучыліся рабіць жэст вяртання. А зараз даведайцеся, як пераключацца паміж праграмамі."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Вы навучыліся рабіць жэст вяртання."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Пераканайцеся, што вы не праводзіце пальцам занадта блізка да ніжняга краю экрана."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Каб змяніць адчувальнасць жэста вяртання, адкрыйце налады"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Каб вярнуцца назад, правядзіце пальцам ад левага краю"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Каб вярнуцца на папярэдні экран, правядзіце пальцам ад левага краю ў цэнтр экрана."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Пераканайцеся, што праводзіце пальцам па экране знізу ўверх."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Пераканайцеся, што не затрымліваецеся перад адпусканнем."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Пераканайцеся, што праводзіце пальцам вертыкальна."</string>
diff --git a/quickstep/res/values-bg/strings.xml b/quickstep/res/values-bg/strings.xml
index d9d5b4a..727236d 100644
--- a/quickstep/res/values-bg/strings.xml
+++ b/quickstep/res/values-bg/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Предвидено приложение: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Трябва да прекарате пръст от най-лявата част на екрана."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Трябва да прекарате пръст от левия край на екрана до средата, след което да вдигнете пръста си."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Можете да се върнете на последния екран, като прекарате пръст от десния край на екрана до средата."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Трябва да прекарате пръст от най-дясната част на екрана."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Трябва да прекарате пръст от десния край на екрана до средата, след което да вдигнете пръста си."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Изпълнихте жеста за връщане назад. В следващия урок ще научите как се превключва между приложения."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Изпълнихте жеста за връщане назад."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Не прекарвайте пръст твърде близо до долната част на екрана."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Променете чувств. на жеста за връщане назад от настройките"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Прекарайте пръст от ляво, за да се върнете назад"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"За да се върнете на последния активен екран, прекарайте пръст от левия край на екрана до средата."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Трябва да прекарате пръст нагоре от долния край на екрана."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Не задържайте, преди да вдигнете пръста си."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Трябва да прекарате пръст право нагоре."</string>
diff --git a/quickstep/res/values-bn/strings.xml b/quickstep/res/values-bn/strings.xml
index dde010f..0fd888d 100644
--- a/quickstep/res/values-bn/strings.xml
+++ b/quickstep/res/values-bn/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"আপনার প্রয়োজন হতে পারে এমন অ্যাপ: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"একদম বাঁ প্রান্ত থেকে সোয়াইপ করছেন কিনা ভাল করে দেখে নিন।"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"আপনি বাঁ প্রান্ত থেকে স্ক্রিনের মাঝখান পর্যন্ত সোয়াইপ করছেন ও পরে আঙুল তুলে নিন। এটির খেয়াল রাখুন।"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"ডান প্রান্ত থেকে স্ক্রিনের মাঝখান পর্যন্ত সোয়াইপ করে আপনি আগের ক্রিনেও ফিরে যেতে পারেন।"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"একদম ডান প্রান্ত থেকে সোয়াইপ করছেন কিনা ভাল করে দেখে নিন।"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"আপনি ডান প্রান্ত থেকে স্ক্রিনের মাঝখান পর্যন্ত সোয়াইপ করছেন ও পরে আঙুল তুলে নিন। এটি খেয়াল রাখুন।"</string>
- <string name="back_gesture_feedback_complete_with_follow_up" msgid="8653374779579748392">"আপনি ফিরে যাওয়ার জেসচার সম্পর্কে জেনেছেন। এরপর, একটি অ্যাপ থেকে অন্য অ্যাপে কীভাবে যাবেন জেনে নিন।"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"আপনি ফিরে যাওয়ার জেসচার সম্পর্কে জেনেছেন।"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"স্ক্রিনের নিচের প্রান্তের খুব কাছে পর্যন্ত যাতে সোয়াইপ না করেন সেটি ভাল করে দেখে নিন।"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"ফিরে যাওয়ার জেসচারের সেন্সিটিভিটি পরিবর্তন করতে, সেটিংসে যান"</string>
- <string name="back_gesture_intro_title" msgid="5538727561353262952">"ফিরে যেতে আপনার স্ক্রিনের বাম প্রান্ত থেকে সোয়াইপ করুন"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"আপনার থাকা আগের স্ক্রিনে ফিরে যেতে, বাঁ প্রান্ত থেকে স্ক্রিনের মাঝখান পর্যন্ত সোয়াইপ করুন।"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"স্ক্রিনের নিচের প্রান্ত থেকে আপনি সোয়াইপ করেছেন কিনা ভাল করে দেখে নিন।"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"আঙুল তুলে নেওয়ার আগে আপনি যাতে পজ না করেন সেটি ভাল করে দেখে নিন।"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"আপনি উপরের দিকে সোজাসুজি সোয়াইপ করেছেন কিনা ভাল করে দেখে নিন।"</string>
diff --git a/quickstep/res/values-bs/strings.xml b/quickstep/res/values-bs/strings.xml
index 07268cc..7234696 100644
--- a/quickstep/res/values-bs/strings.xml
+++ b/quickstep/res/values-bs/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predviđena aplikacija: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Obratite pažnju da prevučete s krajnjeg lijevog ruba."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Obratite pažnju da prevučete s lijevog ruba prema sredini ekrana, a zatim pustite."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Na posljednji ekran se možete vratiti i prevlačenjem od desnog ruba do sredine ekrana."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Obratite pažnju da prevučete s krajnjeg desnog ruba."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Obratite pažnju da prevučete s desnog ruba prema sredini ekrana, a zatim pustite."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Završili ste pokret za vraćanje. Sljedeće naučite kako prebacivati između aplikacija."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Završili ste pokret za vraćanje."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Obratite pažnju da ne prevučete preblizu donjem dijelu ekrana."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Promijenite osjetljivost pokreta za povratak u Postavkama"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Prevucite slijeva nadesno da se vratite"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Da se vratite na posljednji ekran na kojem ste bili, prevucite od lijevog ruba do sredine ekrana."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Obratite pažnju da prevučete prema gore s donjeg ruba ekrana."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Obratite pažnju da ne zastanete prije puštanja."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Obratite pažnju da prevučete ravno prema gore."</string>
diff --git a/quickstep/res/values-ca/strings.xml b/quickstep/res/values-ca/strings.xml
index 47a4916..b565f3f 100644
--- a/quickstep/res/values-ca/strings.xml
+++ b/quickstep/res/values-ca/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicció d\'aplicació: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Assegura\'t de lliscar des de l\'extrem esquerre de la pantalla."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Assegura\'t de lliscar des de la vora esquerra cap al centre de la pantalla i deixa anar."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"També pots tornar a la darrera pantalla lliscant des de l\'extrem dret cap al centre."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Assegura\'t de lliscar des de l\'extrem dret de la pantalla."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Assegura\'t de lliscar des de la vora dreta cap al centre de la pantalla i deixa anar."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Has completat el gest per tornar enrere. Ara, descobreix com pots canviar d\'aplicació."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Has completat el gest per tornar enrere."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Assegura\'t de no lliscar massa a prop de la part inferior de la pantalla."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Per canviar la sensibilitat del gest, ves a Configuració"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Llisca des de l\'esquerra per tornar enrere"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Per tornar a la darrera pantalla, llisca des de l\'extrem esquerre cap al centre de la pantalla."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Assegura\'t de lliscar des de la vora inferior de la pantalla."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Assegura\'t de no aturar-te abans de deixar anar."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Assegura\'t de lliscar directament cap amunt."</string>
diff --git a/quickstep/res/values-cs/strings.xml b/quickstep/res/values-cs/strings.xml
index de78092..a852c76 100644
--- a/quickstep/res/values-cs/strings.xml
+++ b/quickstep/res/values-cs/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Předpokládaná aplikace: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Přejeďte prstem z úplného levého okraje obrazovky."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Přejeďte prstem z levého okraje doprostřed obrazovky a zdvihněte prst."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Přejetím prstem z pravého okraje doprostřed obrazovky se také můžete vrátit zpět na poslední obrazovku."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Přejeďte prstem z úplného pravého okraje obrazovky."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Přejeďte prstem z pravého okraje doprostřed obrazovky a zdvihněte prst."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Dokončili jste gesto pro přechod zpět. Teď se naučíte přepínat aplikace."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Dokončili jste gesto pro přechod zpět."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Dejte pozor, abyste prstem nepřejížděli moc blízko ke spodnímu okraji obrazovky."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Citlivost gesta pro přechod zpět můžete změnit v Nastavení"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Pokud se chcete vrátit, přejeďte prstem zleva"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Na poslední obrazovku se můžete vrátit přejetím prstem z levého okraje doprostřed obrazovky."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Přejeďte prstem nahoru z dolního okraje obrazovky."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Před zdvihnutím prstu nedělejte pauzu."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Přejeďte prstem přímo nahoru."</string>
diff --git a/quickstep/res/values-da/strings.xml b/quickstep/res/values-da/strings.xml
index aea76a2..6729bfe 100644
--- a/quickstep/res/values-da/strings.xml
+++ b/quickstep/res/values-da/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"App, du forventes at skulle bruge: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Stryg fra kanten yderst til venstre."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Stryg fra venstre kant mod midten af skærmen, og løft fingeren."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Du kan også gå tilbage til den seneste skærm ved at stryge mod midten af skærmen fra højre kant."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Stryg fra kanten yderst til højre."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Stryg fra højre kant mod midten af skærmen, og løft fingeren."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Du har fuldført bevægelsen for Gå tilbage. Som det næste kan du se, hvordan du skifter app."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Du har fuldført bevægelsen for Gå tilbage."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Undgå at stryge for tæt på bunden af skærmen."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Juster følsomheden for bevægelsen Gå tilbage i Indstillinger"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Stryg fra venstre for at gå tilbage"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Stryg mod midten af skærmen fra venstre kant for at gå tilbage til den seneste skærm, du var på."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Stryg opad fra bunden af skærmen."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Undlad at holde fingeren stille, indtil du løfter fingeren."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Stryg lige opad."</string>
diff --git a/quickstep/res/values-de/strings.xml b/quickstep/res/values-de/strings.xml
index 6ea539c..4b5fd27 100644
--- a/quickstep/res/values-de/strings.xml
+++ b/quickstep/res/values-de/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Vorgeschlagene App: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Wische vom äußersten linken Bildschirmrand."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Wische vom linken Bildschirmrand zur Bildschirmmitte und lass los."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Du kannst auch zum letzten Bildschirm zurückgehen, indem du vom rechten Bildschirmrand zur Mitte wischst."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Wische vom äußersten rechten Bildschirmrand."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Wische vom rechten Bildschirmrand zur Bildschirmmitte und lass los."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Du hast die „Zurück“-Touch-Geste abgeschlossen. Gleich lernst du, wie man zwischen Apps wechselt."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Du hast die „Zurück“-Touch-Geste abgeschlossen."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Wische nicht zu nah am unteren Bildschirmrand."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Du kannst die Empfindlichkeit von „Zurück“ in den Einstellungen ändern"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Von links nach rechts wischen, um zurückzugehen"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Wenn du zum letzten Bildschirm zurückgehen möchtest, wische vom linken Bildschirmrand zur Mitte."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Wische vom unteren Bildschirmrand nach oben."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Achte darauf, nicht innezuhalten, bevor du loslässt."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Wische gerade nach oben."</string>
diff --git a/quickstep/res/values-el/strings.xml b/quickstep/res/values-el/strings.xml
index 3908929..cf26f51 100644
--- a/quickstep/res/values-el/strings.xml
+++ b/quickstep/res/values-el/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Εφαρμογή από πρόβλεψη: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Φροντίστε να σύρετε από το άκρο της αριστερής πλευράς."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Φροντίστε να σύρετε από το αριστερό άκρο προς το μέσο της οθόνης και απομακρύνετε το δάχτυλό σας."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Μπορείτε να επιστρέψετε στην τελευταία οθόνη με σάρωση από το δεξί άκρο προς το κέντρο της οθόνης."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Φροντίστε να σύρετε από το άκρο της δεξιάς πλευράς."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Φροντίστε να σύρετε από το δεξί άκρο προς το μέσο της οθόνης και απομακρύνετε το δάχτυλό σας."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Ολοκληρώσατε την κίνηση επιστροφής. Στη συνέχεια, μάθετε πώς να κάνετε εναλλαγή εφαρμογών."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Ολοκληρώσατε την κίνηση επιστροφής."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Φροντίστε να μην σύρετε υπερβολικά κοντά στο κάτω μέρος της οθόνης."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Μεταβείτε στις Ρυθμίσεις για αλλαγή ευαισθ. κίνησης επιστρ."</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Για να επιστρέψετε, σύρετε από τα αριστερά"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Για να επιστρέψετε στην τελευταία οθόνη, σύρετε από το αριστερό άκρο προς το κέντρο της οθόνης."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Φροντίστε να σύρετε προς τα επάνω από το κάτω άκρο της οθόνης."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Φροντίστε να μην κάνετε παύση προτού απομακρύνετε τα δάχτυλά σας."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Φροντίστε να σύρετε απευθείας προς τα επάνω."</string>
diff --git a/quickstep/res/values-en-rAU/strings.xml b/quickstep/res/values-en-rAU/strings.xml
index 2bd4e21..6612f18 100644
--- a/quickstep/res/values-en-rAU/strings.xml
+++ b/quickstep/res/values-en-rAU/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicted app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Make sure that you swipe from the far-left edge."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Make sure that you swipe from the left edge to the middle of the screen and let go."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"You can also go back to the last screen by swiping from the right edge to the middle of the screen."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Make sure that you swipe from the far-right edge."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Make sure that you swipe from the right edge to the middle of the screen and let go."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"You completed the go back gesture. Next, learn how to switch apps."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"You completed the go back gesture."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Make sure that you don\'t swipe too close to the bottom of the screen."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"To change sensitivity of the back gesture, go to Settings"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Swipe from the left to go back"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"To go back to the last screen you were on, swipe from the left edge to the middle of the screen."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Make sure that you swipe up from the bottom edge of the screen."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Make sure that you don\'t pause before letting go."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Make sure that you swipe straight up."</string>
diff --git a/quickstep/res/values-en-rCA/strings.xml b/quickstep/res/values-en-rCA/strings.xml
index 2bd4e21..6612f18 100644
--- a/quickstep/res/values-en-rCA/strings.xml
+++ b/quickstep/res/values-en-rCA/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicted app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Make sure that you swipe from the far-left edge."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Make sure that you swipe from the left edge to the middle of the screen and let go."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"You can also go back to the last screen by swiping from the right edge to the middle of the screen."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Make sure that you swipe from the far-right edge."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Make sure that you swipe from the right edge to the middle of the screen and let go."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"You completed the go back gesture. Next, learn how to switch apps."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"You completed the go back gesture."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Make sure that you don\'t swipe too close to the bottom of the screen."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"To change sensitivity of the back gesture, go to Settings"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Swipe from the left to go back"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"To go back to the last screen you were on, swipe from the left edge to the middle of the screen."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Make sure that you swipe up from the bottom edge of the screen."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Make sure that you don\'t pause before letting go."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Make sure that you swipe straight up."</string>
diff --git a/quickstep/res/values-en-rGB/strings.xml b/quickstep/res/values-en-rGB/strings.xml
index 2bd4e21..6612f18 100644
--- a/quickstep/res/values-en-rGB/strings.xml
+++ b/quickstep/res/values-en-rGB/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicted app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Make sure that you swipe from the far-left edge."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Make sure that you swipe from the left edge to the middle of the screen and let go."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"You can also go back to the last screen by swiping from the right edge to the middle of the screen."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Make sure that you swipe from the far-right edge."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Make sure that you swipe from the right edge to the middle of the screen and let go."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"You completed the go back gesture. Next, learn how to switch apps."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"You completed the go back gesture."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Make sure that you don\'t swipe too close to the bottom of the screen."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"To change sensitivity of the back gesture, go to Settings"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Swipe from the left to go back"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"To go back to the last screen you were on, swipe from the left edge to the middle of the screen."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Make sure that you swipe up from the bottom edge of the screen."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Make sure that you don\'t pause before letting go."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Make sure that you swipe straight up."</string>
diff --git a/quickstep/res/values-en-rIN/strings.xml b/quickstep/res/values-en-rIN/strings.xml
index 2bd4e21..6612f18 100644
--- a/quickstep/res/values-en-rIN/strings.xml
+++ b/quickstep/res/values-en-rIN/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicted app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Make sure that you swipe from the far-left edge."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Make sure that you swipe from the left edge to the middle of the screen and let go."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"You can also go back to the last screen by swiping from the right edge to the middle of the screen."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Make sure that you swipe from the far-right edge."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Make sure that you swipe from the right edge to the middle of the screen and let go."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"You completed the go back gesture. Next, learn how to switch apps."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"You completed the go back gesture."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Make sure that you don\'t swipe too close to the bottom of the screen."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"To change sensitivity of the back gesture, go to Settings"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Swipe from the left to go back"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"To go back to the last screen you were on, swipe from the left edge to the middle of the screen."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Make sure that you swipe up from the bottom edge of the screen."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Make sure that you don\'t pause before letting go."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Make sure that you swipe straight up."</string>
diff --git a/quickstep/res/values-en-rXC/strings.xml b/quickstep/res/values-en-rXC/strings.xml
index 8c91887..51b2caf 100644
--- a/quickstep/res/values-en-rXC/strings.xml
+++ b/quickstep/res/values-en-rXC/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicted app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Make sure you swipe from the far-left edge."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Make sure you swipe from the left edge to the middle of the screen and let go."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"You can also go back to the last screen by swiping from the right edge to the middle of the screen."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Make sure you swipe from the far-right edge."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Make sure you swipe from the right edge to the middle of the screen and let go."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"You completed the go back gesture. Next up, learn how to switch apps."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"You completed the go back gesture."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Make sure you don\'t swipe too close to the bottom of the screen."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"To change the sensitivity of the back gesture, go to Settings"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Swipe from the left to go back"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"To go back to the last screen you were on, swipe from the left edge to the middle of the screen."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Make sure you swipe up from the bottom edge of the screen."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Make sure you don\'t pause before letting go."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Make sure you swipe straight up."</string>
diff --git a/quickstep/res/values-es-rUS/strings.xml b/quickstep/res/values-es-rUS/strings.xml
index 4edbfeb..ad08b6f 100644
--- a/quickstep/res/values-es-rUS/strings.xml
+++ b/quickstep/res/values-es-rUS/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predicción de app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Asegúrate de deslizar el dedo bien desde el borde izquierdo."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Asegúrate de deslizar el dedo del borde izquierdo hacia el centro de la pantalla y, luego, suéltalo."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Desliza de derecha al centro para volver a última pantalla."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Asegúrate de deslizar el dedo bien desde el borde derecho."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Asegúrate de deslizar el dedo del borde derecho hacia el centro de la pantalla y, luego, suéltalo."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Completaste el gesto \"Atrás\". A continuación, obtén información para cambiar de app."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Completaste el gesto \"Atrás\"."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Asegúrate de no hacerlo muy cerca de la parte inferior de la pantalla."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Cambia sensibilidad de gesto \"Atrás\" en Configuración"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Para volver, desliza el dedo desde la izquierda"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Para volver a la última pantalla, desliza el dedo del borde izquierdo al centro de la pantalla."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Asegúrate de deslizar el dedo hacia arriba desde la borde inferior de la pantalla."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Asegúrate de no detenerte antes de soltarlo."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Asegúrate de deslizar el dedo derecho hacia arriba."</string>
diff --git a/quickstep/res/values-es/strings.xml b/quickstep/res/values-es/strings.xml
index 5abec85..73316cf 100644
--- a/quickstep/res/values-es/strings.xml
+++ b/quickstep/res/values-es/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Aplicación sugerida: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Desliza el dedo desde el extremo izquierdo."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Desliza el dedo desde el borde izquierdo de la pantalla hasta el centro y levántalo."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"También puedes deslizar el dedo del borde derecho al centro para volver a la pantalla anterior."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Desliza el dedo desde el extremo derecho."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Desliza el dedo desde el borde derecho de la pantalla hasta el centro y levántalo."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Has completado el gesto para volver. Ahora, descubre cómo cambiar de aplicación."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Has completado el gesto para volver."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"No deslices el dedo demasiado cerca de la parte inferior de la pantalla."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Para cambiar la sensibilidad del gesto, ve a Ajustes"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Desliza el dedo desde la izquierda para volver"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Si quieres volver a la pantalla anterior, desliza el dedo del borde izquierdo al centro."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Desliza el dedo hacia arriba desde el borde inferior de la pantalla."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"No hagas ninguna pausa antes de levantar el dedo."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Desliza el dedo directamente hacia arriba."</string>
diff --git a/quickstep/res/values-et/strings.xml b/quickstep/res/values-et/strings.xml
index 08e18c9..aa734bc 100644
--- a/quickstep/res/values-et/strings.xml
+++ b/quickstep/res/values-et/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Ennustatud rakendus: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Pühkige kindlasti vasakpoolsest servast."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Pühkige ekraanikuva vasakust servast keskele ja eemaldage sõrm."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Eelmisele ekraanikuvale naasmiseks võite ka ekraanikuva paremast servast keskele pühkida."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Pühkige kindlasti parempoolsest servast."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Pühkige ekraanikuva paremast servast keskele ja eemaldage sõrm."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Tegite tagasiliikumise liigutuse. Järgmisena vaadake, kuidas rakenduste vahel vahetada."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Tegite tagasiliikumise liigutuse."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Veenduge, et te ei pühiks liiga ekraanikuva allosa lähedalt."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Tagasiliigutuse tundlikkuse muutmiseks avage menüü Seaded"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Tagasiliikumiseks pühkige vasakult paremale"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Eelmisele ekraanikuvale naasmiseks pühkige vasakust servast ekraanikuva keskele."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Pühkige kindlasti ekraanikuva alumisest servast üles."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Veenduge, et te enne vabastamist liigutust ei peataks."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Pühkige kindlasti otse üles."</string>
diff --git a/quickstep/res/values-eu/strings.xml b/quickstep/res/values-eu/strings.xml
index aca7132..02fdf04 100644
--- a/quickstep/res/values-eu/strings.xml
+++ b/quickstep/res/values-eu/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Iragarritako aplikazioa: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Ziurtatu hatza ezkerreko ertzetik pasatzen duzula."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Ziurtatu hatza pantailaren ezkerreko ertzetik erdialdera pasatzen eta askatzen duzula."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Aurreko pantailara itzultzeko beste modu bat: pasatu hatza pantailaren eskuineko ertzetik erdialdera."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Ziurtatu hatza eskuineko ertzetik pasatzen duzula."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Ziurtatu hatza pantailaren eskuineko ertzetik erdialdera pasatzen eta askatzen duzula."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Ikasi duzu atzera egiteko keinua. Jarraian, ikasi aplikazioa aldatzen."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Ikasi duzu atzera egiteko keinua."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Ziurtatu hatza ez duzula pantailaren behealdetik gertuegi pasatzen."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Keinuaren sentikortasuna aldatzeko, joan ezarpenetara"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Atzera egiteko, pasatu hatza ezkerretik"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Aurreko pantailara itzultzeko, pasatu hatza pantailaren ezkerreko ertzetik erdialdera."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Ziurtatu hatza pantailaren beheko ertzetik gora pasatzen duzula."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Ziurtatu askatu aurretik ez duzula hatza gelditzen."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Ziurtatu hatza zuzen gora pasatzen duzula."</string>
diff --git a/quickstep/res/values-fa/strings.xml b/quickstep/res/values-fa/strings.xml
index b5acf4e..71bfa2a 100644
--- a/quickstep/res/values-fa/strings.xml
+++ b/quickstep/res/values-fa/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"برنامه پیشبینیشده: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"دقت کنید که از ابتدای لبه سمت چپ تند بکشید."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"دقت کنید که از لبه سمت چپ تند به وسط صفحه بکشید و رها کنید."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"با تند کشیدن از لبه سمت راست به وسط صفحه هم میتوانید به عقب بروید."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"دقت کنید که از ابتدای لبه سمت راست تند بکشید."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"دقت کنید که از لبه سمت راست تند به وسط صفحه بکشید و رها کنید."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"اشاره برگشتن را تکمیل کردید. مورد بعدی، با نحوه جابهجا شدن بین برنامهها آشنا شوید."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"اشاره برگشتن را تکمیل کردید."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"دقت کنید که موقع تند کشیدن بیشاز حد به پایین صفحه نزدیک نشوید."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"برای تغییر حساسیت اشاره برگشت، به «تنظیمات» بروید"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"برای برگشتن به عقب، از سمت چپ تند بکشید"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"برای برگشتن به آخرین صفحهای که در آن بودید، از لبه سمت چپ تند به وسط صفحه بکشید."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"دقت کنید که از لبه پایینی صفحه تند به بالا بکشید."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"دقت کنید که تا قبلاز رها کردن، کشیدن را متوقف نکنید."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"دقت کنید که مستقیماً تند به بالا بکشید."</string>
diff --git a/quickstep/res/values-fi/strings.xml b/quickstep/res/values-fi/strings.xml
index ae28267..69cc82a 100644
--- a/quickstep/res/values-fi/strings.xml
+++ b/quickstep/res/values-fi/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Ennakoitu sovellus: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Muista pyyhkäistä aivan vasemmasta reunasta."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Pyyhkäise näytön vasemmasta reunasta keskelle ja päästä irti."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Voit myös palata edelliseen näkymään pyyhkäisemällä näytön oikeasta reunasta keskelle."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Muista pyyhkäistä aivan oikeasta reunasta."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Pyyhkäise näytön oikeasta reunasta keskelle ja päästä irti."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Olet oppinut Takaisin-eleen. Opettele seuraavaksi vaihtamaan sovellusta."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Olet oppinut Takaisin-eleen."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Varo, ettet pyyhkäise liian lähellä alareunaa."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Voit muuttaa Takaisin-eleen herkkyyttä asetuksista"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Palaa takaisin pyyhkäisemällä vasemmasta reunasta"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Voit palata edelliseen näkymään pyyhkäisemällä näytön vasemmasta reunasta keskelle."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Pyyhkäise ylös näytön alareunasta."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Varo keskeyttämästä ennen kuin päästät irti."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Muista pyyhkäistä suoraan ylöspäin."</string>
diff --git a/quickstep/res/values-fr-rCA/strings.xml b/quickstep/res/values-fr-rCA/strings.xml
index bf3fa40..7910dc1 100644
--- a/quickstep/res/values-fr-rCA/strings.xml
+++ b/quickstep/res/values-fr-rCA/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Application prédite : <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Assurez-vous de balayer l\'écran à partir de l\'extrémité gauche."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Assurez-vous de balayer l\'écran de l\'extrémité gauche jusqu\'au centre, puis de lever le doigt."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Vous pouvez aussi revenir à l\'écran précédent en balayant l\'écran du côté droit jusqu\'au centre."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Assurez-vous de balayer l\'écran à partir de l\'extrémité droite."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Assurez-vous de balayer l\'écran de l\'extrémité droite jusqu\'au centre, puis de lever le doigt."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Vous avez appris le geste de retour en arrière. Maintenant, apprenez comment changer d\'application."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Vous avez appris le geste de retour en arrière."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Assurez-vous de ne pas balayer trop près du bas de l\'écran."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Modifiez la sensibilité du geste de retour dans Paramètres"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Balayez l\'écran à partir de la gauche pour revenir en arrière."</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Pour revenir à l\'écran précédent, balayez l\'écran du côté gauche jusqu\'au centre."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Assurez-vous de balayer l\'écran à partir de l\'extrémité inférieure vers le haut."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Assurez-vous de ne pas interrompre le geste avant de lever le doigt."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Assurez-vous de balayer l\'écran en ligne droite vers le haut."</string>
diff --git a/quickstep/res/values-fr/strings.xml b/quickstep/res/values-fr/strings.xml
index e7676ae..a815d5b 100644
--- a/quickstep/res/values-fr/strings.xml
+++ b/quickstep/res/values-fr/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Application prédite : <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Veillez à balayer l\'écran depuis le bord gauche."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Veillez à bien balayer l\'écran depuis le bord gauche jusqu\'au centre avant de relever le doigt."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Pour revenir à l\'écran précédent, balayez l\'écran depuis le bord droit jusqu\'au centre."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Veillez à balayer l\'écran depuis le bord droit."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Veillez à bien balayer l\'écran depuis le bord droit jusqu\'au centre avant de relever le doigt."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Vous avez appris le geste pour revenir en arrière. Apprenez ensuite à passer d\'une appli à l\'autre."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Vous avez appris le geste pour revenir en arrière."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Veillez à ne pas balayer l\'écran trop près du bas."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Modifiez la sensibilité du geste retour dans les paramètres"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Balayez l\'écran depuis le bord gauche pour revenir en arrière"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Pour revenir à l\'écran précédent, balayez l\'écran depuis le bord gauche jusqu\'au centre."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Veillez à balayer l\'écran du bas vers le haut."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Veillez à ne pas marquer de pause dans votre geste avant de relever le doigt."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Veillez à balayer l\'écran vers le haut."</string>
diff --git a/quickstep/res/values-gl/strings.xml b/quickstep/res/values-gl/strings.xml
index 5841c83..1846efc 100644
--- a/quickstep/res/values-gl/strings.xml
+++ b/quickstep/res/values-gl/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Aplicación predita: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Asegúrate de pasar o dedo desde o bordo esquerdo máis afastado."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Asegúrate de pasar o dedo desde o bordo esquerdo ata o medio da pantalla e avanza."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Podes volver á última pantalla pasando o dedo desde o bordo dereito ata a metade da pantalla."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Asegúrate de pasar o dedo desde o bordo dereito máis afastado."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Asegúrate de pasar o dedo desde o bordo dereito ata o medio da pantalla e avanza."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Completaches o xesto de volver á última pantalla. O próximo é aprender a cambiar de aplicación."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Completaches o xesto de volver á última pantalla."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Asegúrate de non pasar o dedo demasiado preto da parte inferior da pantalla."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Podes cambiar a sensibilidade do xesto en Configuración"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Pasa o dedo desde a esquerda para volver"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Para volver á última pantalla, pasa o dedo desde o bordo esquerdo ata a metade da pantalla."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Asegúrate de pasar o dedo cara arriba desde o bordo inferior da pantalla."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Asegúrate de non facer unha pausa antes de avanzar."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Asegúrate de pasar o dedo cara arriba cun movemento vertical."</string>
diff --git a/quickstep/res/values-gu/strings.xml b/quickstep/res/values-gu/strings.xml
index 8169eed..dcd0dfc 100644
--- a/quickstep/res/values-gu/strings.xml
+++ b/quickstep/res/values-gu/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"પૂર્વાનુમાનિત ઍપ: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"ખાતરી કરો કે તમે એકદમ દૂરની ડાબી કિનારીએથી સ્વાઇપ કરો છો."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"ખાતરી કરો કે તમે ડાબી કિનારીએથી સ્ક્રીનના મધ્ય ભાગ સુધી સ્વાઇપ કરો છે અને આંગળી ઊંચકી લો છો."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"તમે જમણી કિનારીએથી સ્ક્રીનના મધ્ય ભાગ સુધી સ્વાઇપ કરીને પણ છેલ્લી સ્ક્રીન પર પાછા જઈ શકો છો."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"ખાતરી કરો કે તમે એકદમ દૂરની જમણી કિનારીએથી સ્વાઇપ કરો છો."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"ખાતરી કરો કે તમે જમણી કિનારીએથી સ્ક્રીનના મધ્ય ભાગ સુધી સ્વાઇપ કરો છે અને આંગળી ઊંચકી લો છો."</string>
- <string name="back_gesture_feedback_complete_with_follow_up" msgid="8653374779579748392">"તમે પાછા જવાનો સંકેત પૂર્ણ કર્યો છે. હવે પછી, ઍપ સ્વિચ કરવાની રીત વિશે જાણો."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"તમે પાછા જવાનો સંકેત પૂર્ણ કર્યો છે."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"ખાતરી કરો કે તમારાથી સ્ક્રીનની એકદમ નીચેની કિનારીની ખૂબ નજીક સુધી સ્વાઇપ ન થઈ જાય."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"પાછા જવાના સંકેતની સંવેદિતા બદલવા માટે, સેટિંગમાં જાઓ"</string>
- <string name="back_gesture_intro_title" msgid="5538727561353262952">"પાછળ જવા ડાબેથી સ્વાઇપ કરો"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"તમે જે છેલ્લી સ્ક્રીન પર હતા તેની પર પાછા જવા, ડાબી કિનારીએથી સ્ક્રીનના મધ્ય ભાગ સુધી સ્વાઇપ કરો."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"ખાતરી કરો કે તમે સ્ક્રીનની નીચેની કિનારીએથી ઉપરની તરફ સ્વાઇપ કરો છો."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"ખાતરી કરો કે તમે આંગળી ઊંચકી લેતા પહેલાં સ્વાઇપ કરવાનું થોભાવતા નથી."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"ખાતરી કરો કે તમે સીધું ઉપરની તરફ સ્વાઇપ કરો છો."</string>
diff --git a/quickstep/res/values-hi/strings.xml b/quickstep/res/values-hi/strings.xml
index ff6ec89..b96dbe2 100644
--- a/quickstep/res/values-hi/strings.xml
+++ b/quickstep/res/values-hi/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"सुझाया गया ऐप्लिकेशन: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"देख लें कि आप स्क्रीन की बाईं तरफ़ के बिल्कुल किनारे से स्वाइप कर रहे हों."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"देख लें कि आप स्क्रीन के बाएं किनारे से बीचों-बीच तक स्वाइप कर रहे हों और फिर अपनी उंगली उठा लें."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"आप दाएं किनारे से स्क्रीन के बीच तक स्वाइप करके भी पिछली स्क्रीन पर जा सकते हैं."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"देख लें कि आप स्क्रीन की दाईं तरफ़ के बिल्कुल किनारे से स्वाइप कर रहे हों."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"देख लें कि आप स्क्रीन के दाएं किनारे से बीचों-बीच तक स्वाइप कर रहे हों और फिर अपनी उंगली उठा लें."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"आपने पीछे ले जाने वाले हाथ के जेस्चर के बारे में जान लिया है. एक ऐप से दूसरे पर जाने का तरीका जानें."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"आपने पेज पर पीछे ले जाने वाले हाथ के जेस्चर (हाव-भाव) के बारे में जान लिया है."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"देखे लें कि आप स्क्रीन पर बिल्कुल नीचे तक स्वाइप न कर रहे हों."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"\'सेटिंग\' में जाकर, पीछे जाने के लिए इस्तेमाल होने वाले हाथ के जेस्चर (हाव-भाव) की संवेदनशीलता बदलें"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"वापस जाने के लिए, स्क्रीन के बाएं किनारे से स्वाइप करें"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"पिछली स्क्रीन पर वापस जाने के लिए, बाएं किनारे से स्क्रीन के बीच तक स्वाइप करें."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"देख लें कि आप स्क्रीन के निचले किनारे से ऊपर की ओर स्वाइप कर रहे हों."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"देख लें कि आप स्क्रीन से अपनी उंगली उठाने से पहले, इसे कहीं न रोक रहे हों."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"देख लें कि आप ऊपर की ओर बिल्कुल सीधे स्वाइप कर रहे हों."</string>
diff --git a/quickstep/res/values-hr/strings.xml b/quickstep/res/values-hr/strings.xml
index 0d61c2c..d64f821 100644
--- a/quickstep/res/values-hr/strings.xml
+++ b/quickstep/res/values-hr/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predviđena aplikacija: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Pazite da prijeđete prstom od krajnjeg lijevog ruba."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Pazite da prijeđete prstom od lijevog ruba do sredine zaslona i podignite prst."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Na posljednji se zaslon možete vratiti i prelaskom od desnog ruba do sredine zaslona."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Pazite da prijeđete prstom od krajnjeg desnog ruba."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Pazite da prijeđete prstom od desnog ruba do sredine zaslona i podignite prst."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Izvršili ste pokret za povratak. Sad saznajte kako promijeniti aplikaciju."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Izvršili ste pokret za povratak."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Pazite da ne prijeđete prstom preblizu dnu zaslona."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Osjetljivost pokreta povratka promijenite u postavkama"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Prijeđite prstom slijeva udesno da biste se vratili"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Da biste se vratili na posljednji posjećeni zaslon, prijeđite od lijevog ruba do sredine zaslona."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Pazite da prijeđete prstom prema gore od donjeg ruba zaslona."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Pazite da ne zastanete prije podizanja prsta."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Pazite da prijeđete prstom ravno prema gore."</string>
diff --git a/quickstep/res/values-hu/strings.xml b/quickstep/res/values-hu/strings.xml
index 354e999..90e4ea7 100644
--- a/quickstep/res/values-hu/strings.xml
+++ b/quickstep/res/values-hu/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Várható alkalmazás: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Csúsztasson a képernyő bal széléről."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Csúsztasson a képernyő bal széléről a képernyő közepéig, és engedje el a képernyőt."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"A képernyő jobb széléről a képernyő közepéig csúsztatva is visszatérhet a legutóbbi képernyőre."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Csúsztasson a képernyő jobb széléről."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Csúsztasson a képernyő jobb széléről a képernyő közepéig, és engedje el a képernyőt."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Teljesítette a visszalépési kézmozdulatot. Most megtanulhatja, hogyan válthat az appok között."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Teljesítette a visszalépési kézmozdulatot."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Ne csúsztasson túl közel a képernyő aljához."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"A vissza mozdulat érzékenysége a Beállításokban módosítható"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"A visszalépéshez csúsztasson balról jobbra"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Ha visszatérne a legutóbbi képernyőre, csúsztasson a képernyő közepére a bal szélétől."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Csúsztasson felfelé a képernyő aljától."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Ne álljon meg, mielőtt elengedi a képernyőt."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Csúsztasson egyenesen felfelé."</string>
diff --git a/quickstep/res/values-hy/strings.xml b/quickstep/res/values-hy/strings.xml
index 9f112df..3373fe6 100644
--- a/quickstep/res/values-hy/strings.xml
+++ b/quickstep/res/values-hy/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Առաջարկվող հավելված՝ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Համոզվեք, որ մատը սահեցնում եք էկրանի ձախ եզրից։"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Սահեցրեք մատն էկրանի ձախ եզրից դեպի կենտրոն և բաց թողեք։"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Անցեք վերջին էկրան՝ էկրանի աջ եզրից մատը սահեցնելով դեպի կենտրոն։"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Համոզվեք, որ մատը սահեցնում եք էկրանի աջ եզրից։"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Սահեցրեք մատն էկրանի աջ եզրից դեպի կենտրոն և բաց թողեք։"</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Դուք սովորեցիք հետ գնալու ժեստը։ Այժմ սովորենք՝ ինչպես անցնել մի հավելվածից մյուսը։"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Դուք սովորեցիք հետ գնալու ժեստը։"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Համոզվեք, որ մատը չափազանց մոտ չեք սահեցնում էկրանին ներքևի հատվածին։"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Հետ գնալու ժեստի զգայունությունը փոփոխեք կարգավորումներում"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Սահեցրեք մատը ձախից՝ հետ գնալու համար"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Վերջին էկրան վերադառնալու համար էկրանի եզրից մատը սահեցրեք դեպի կենտրոն։"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Համոզվեք, որ մատն էկրանի ներքևի եզրից վերև եք սահեցնում։"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Համոզվեք, որ դադար չեք տալիս նախքան բաց թողնելը։"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Համոզվեք, որ մատն ուղիղ վերև եք սահեցնում։"</string>
diff --git a/quickstep/res/values-in/strings.xml b/quickstep/res/values-in/strings.xml
index b7adc5f..122f6b8 100644
--- a/quickstep/res/values-in/strings.xml
+++ b/quickstep/res/values-in/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Aplikasi yang diprediksi: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Pastikan Anda menggeser dari tepi ujung kiri."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Pastikan Anda menggeser dari tepi kiri ke tengah layar, lalu lepaskan."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Geser dari tepi kanan ke tengah layar menuju layar terakhir."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Pastikan Anda menggeser dari tepi ujung kanan."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Pastikan Anda menggeser dari tepi kanan ke tengah layar, lalu lepaskan."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Anda telah menyelesaikan gestur kembali. Selanjutnya, pelajari cara beralih aplikasi."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Anda telah menyelesaikan gestur kembali."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Pastikan Anda tidak menggeser terlalu dekat ke bagian bawah layar."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Untuk mengubah sensitivitas gestur kembali, buka Setelan"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Geser dari kiri untuk kembali"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Untuk kembali ke layar terakhir, geser dari tepi kiri ke tengah layar."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Pastikan Anda menggeser ke atas dari tepi bawah layar."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Pastikan Anda tidak menjeda sebelum melepaskan."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Pastikan Anda menggeser lurus ke atas."</string>
diff --git a/quickstep/res/values-is/strings.xml b/quickstep/res/values-is/strings.xml
index abb5298..d79cb4a 100644
--- a/quickstep/res/values-is/strings.xml
+++ b/quickstep/res/values-is/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Tillaga að forriti: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Passaðu að strjúka frá jaðri vinstri brúnar."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Passaðu að strjúka frá vinstri brún skjásins að miðju hans og sleppa svo."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Þú getur einnig farið til baka á síðasta skjá með því að strjúka frá hægri brún að miðju skjásins."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Passaðu að strjúka frá jaðri hægri brúnar."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Passaðu að strjúka frá hægri brún skjásins að miðju hans og sleppa svo."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Þú laukst við að kynna þér bendinguna „til baka“. Næst skaltu læra hvernig þú skiptir á milli forrita."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Þú laukst við að kynna þér bendinguna „til baka“."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Passaðu að strjúka ekki of nálægt neðri brún skjásins."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Til að breyta næmi til baka-bendingar ferðu í stillingar"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Strjúktu frá vinstri til að fara til baka"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Strjúktu frá vinstri brún að miðju skjásins til að fara aftur til baka í síðasta skjá sem var opinn."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Passaðu að strjúka upp frá neðri brún skjásins."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Passaðu að stoppa ekki áður en þú sleppir."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Passaðu að strjúka beint upp."</string>
diff --git a/quickstep/res/values-it/strings.xml b/quickstep/res/values-it/strings.xml
index 9d6d1f3..51443b8 100644
--- a/quickstep/res/values-it/strings.xml
+++ b/quickstep/res/values-it/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"App prevista: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Assicurati di scorrere dall\'estremità del bordo sinistro."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Assicurati di scorrere dal bordo sinistro verso il centro dello schermo e solleva il dito."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Puoi anche tornare all\'ultima schermata scorrendo dal bordo destro verso il centro dello schermo."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Assicurati di scorrere dall\'estremità del bordo destro."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Assicurati di scorrere dal bordo destro verso il centro dello schermo e solleva il dito."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Hai completato il gesto Indietro. Ora, impara come passare da un\'app all\'altra."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Hai completato il gesto Indietro."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Assicurati di non scorrere troppo vicino alla parte inferiore dello schermo."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Usa Impostazioni per cambiare sensibilità del gesto Indietro"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Scorri da sinistra per tornare indietro"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Per tornare all\'ultima schermata mostrata, scorri dal bordo sinistro verso il centro dello schermo."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Assicurati di scorrere verso l\'alto dal bordo inferiore dello schermo."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Assicurati di non fare pause prima di sollevare il dito."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Assicurati di scorrere verso l\'alto senza fermarti."</string>
diff --git a/quickstep/res/values-iw/strings.xml b/quickstep/res/values-iw/strings.xml
index 4173f18..6a641e4 100644
--- a/quickstep/res/values-iw/strings.xml
+++ b/quickstep/res/values-iw/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"האפליקציות החזויות: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"חשוב להקפיד להחליק מהקצה הימני."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"חשוב להקפיד להחליק מהקצה הימני למרכז המסך ואז לשחרר."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"אפשר לחזור למסך הקודם בהחלקה מהקצה הימני של המסך אל המרכז."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"חשוב להקפיד להחליק מהקצה השמאלי."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"חשוב להקפיד להחליק מהקצה השמאלי למרכז המסך ואז לשחרר."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"השלמת את תנועת \'הקודם\'. בשלב הבא לומדים איך לעבור בין אפליקציות."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"השלמת את תנועת \'הקודם\'."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"חשוב להקפיד שלא להחליק קרוב מדי לתחתית המסך."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"כדי לשנות את מידת הרגישות של תנועת החזרה, יש לעבור להגדרות"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"יש להחליק מצד שמאל כדי לחזור למסך הקודם"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"כדי לחזור למסך הקודם, יש להחליק מהקצה השמאלי של המסך אל המרכז."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"חשוב להקפיד להחליק למעלה מהקצה התחתון של המסך."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"חשוב לוודא שלא מחכים לפני שמשחררים."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"חשוב להקפיד להחליק ישר למעלה."</string>
diff --git a/quickstep/res/values-ja/strings.xml b/quickstep/res/values-ja/strings.xml
index 27f81b7..bdc301a 100644
--- a/quickstep/res/values-ja/strings.xml
+++ b/quickstep/res/values-ja/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"予測されたアプリ: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"一番左端からスワイプしてください。"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"画面の左端から中央に向かってスワイプし、指を離してください。"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"画面の右端から中央に向かってスワイプして直前の画面に戻ることもできます。"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"一番右端からスワイプしてください。"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"画面の右端から中央に向かってスワイプし、指を離してください。"</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"「戻る」操作を完了しました。次は、アプリを切り替える方法を覚えましょう。"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"「戻る」操作を完了しました。"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"スワイプする際は画面の下部に近づきすぎないようにしましょう。"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"「戻る」操作の感度を変更するには [設定] に移動します"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"左端からスワイプすると前の画面に戻ります"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"直前の画面に戻るには、画面の左端から中央に向かってスワイプします。"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"画面の下端から上にスワイプしてください。"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"指を離す前にいったん止めないでください。"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"まっすぐ上にスワイプしてください。"</string>
diff --git a/quickstep/res/values-ka/strings.xml b/quickstep/res/values-ka/strings.xml
index c532589..6c879a5 100644
--- a/quickstep/res/values-ka/strings.xml
+++ b/quickstep/res/values-ka/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"ნაწინასწარმეტყველები აპი: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"არ გადაფურცლოთ მარცხენა კიდის ბოლოდან."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"გადაფურცლეთ მარცხენა კიდიდან ეკრანის ცენტრისკენ და თითი აუშვით."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"ასევე, შეგიძლიათ, დაბრუნდეთ ბოლო ეკრანზე მარჯვენა კიდიდან ეკრანის შუისკენ გადაფურცვლით."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"არ გადაფურცლოთ მარჯვენა კიდის ბოლოდან."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"გადაფურცლეთ მარჯვენა კიდიდან ეკრანის ცენტრისკენ და თითი აუშვით."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"თქვენ შეასრულეთ უკან დაბრუნების ჟესტი. ახლა კი შევიტყოთ, როგორ გადავრთოთ აპები."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"თქვენ შეასრულეთ უკან დაბრუნების ჟესტი."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"არ გადაფურცლოთ ეკრანის ბოლოსთან ახლოს."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"დაბრუნების ჟესტის მგრძნობელობის შესაცვლელად გადადით პარამეტრებზე"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"უკან დასაბრუნებლად გადაფურცლეთ მარცხნიდან"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"ბოლო ნანახ ეკრანზე დასაბრუნებლად გადაფურცლეთ მარცხენა კიდიდან ეკრანის ცენტრისკენ."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"გადაფურცლეთ ეკრანის ქვედა კიდიდან ზემოთ."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"არ დააპაუზოთ თითის აშვებამდე."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"გადაფურცლეთ ზემოთ."</string>
diff --git a/quickstep/res/values-kk/strings.xml b/quickstep/res/values-kk/strings.xml
index 4cf0d2b..5daf466 100644
--- a/quickstep/res/values-kk/strings.xml
+++ b/quickstep/res/values-kk/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Болжалды қолданба: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Сол жақтағы ең шеткі нүктеден бастап сырғытыңыз."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Экранның сол жақ шетінен ортасына қарай сырғытыңыз да, жіберіңіз."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Экранның оң жақ шетінен ортасына қарай сырғыту арқылы соңғы ашылған экранға орала аласыз."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Оң жақтағы ең шеткі нүктеден бастап сырғытыңыз."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Экранның оң жақ шетінен ортасына қарай сырғытыңыз да, жіберіңіз."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Артқа қайту қимылын аяқтадыңыз. Енді қолданбаларды ауыстыруды үйреніңіз."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Артқа қайту қимылын аяқтадыңыз."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Саусағыңызбен сырғыту кезінде экранның төменгі жағына тым жақындамаңыз."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Артқа қайту қимылы сезгіштігін параметрлерден өзгертіңіз."</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Артқа қайту үшін сол жақтан сырғытыңыз"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Соңғы ашылған экранға оралу үшін экранның сол жақ шетінен ортасына қарай сырғытыңыз."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Экранның төменгі шетінен жоғары қарай сырғытыңыз."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Жіберер алдында кідіріс жасамаңыз."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Тігінен жоғары қарай сырғытыңыз."</string>
diff --git a/quickstep/res/values-km/strings.xml b/quickstep/res/values-km/strings.xml
index 1e46ded..337c308 100644
--- a/quickstep/res/values-km/strings.xml
+++ b/quickstep/res/values-km/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"កម្មវិធីដែលបានព្យាករ៖ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"ត្រូវប្រាកដថាអ្នកអូសពីចុងគែមខាងឆ្វេង។"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"ត្រូវប្រាកដថាអ្នកអូសពីគែមខាងឆ្វេងទៅផ្នែកកណ្ដាលនៃអេក្រង់ រួចដកដៃ។"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"អ្នកក៏អាចត្រឡប់ទៅអេក្រង់ចុងក្រោយបានផងដែរ ដោយអូសពីគែមខាងស្ដាំទៅផ្នែកកណ្ដាលនៃអេក្រង់។"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"ត្រូវប្រាកដថាអ្នកអូសពីចុងគែមខាងស្ដាំ។"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"ត្រូវប្រាកដថាអ្នកអូសពីគែមខាងស្ដាំទៅផ្នែកកណ្ដាលនៃអេក្រង់ រួចដកដៃ។"</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"អ្នកបានបញ្ចប់ចលនាថយក្រោយហើយ។ បន្ទាប់មកទៀត សូមស្វែងយល់ពីរបៀបប្ដូរកម្មវិធី។"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"អ្នកបានបញ្ចប់ចលនាថយក្រោយហើយ។"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"ត្រូវប្រាកដថាអ្នកមិនអូសទៅជិតផ្នែកខាងក្រោមនៃអេក្រង់ពេក។"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"ដើម្បីប្ដូរកម្រិតរំញោចនឹងចលនាថយក្រោយ សូមចូលទៅកាន់ការកំណត់"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"អូសពីឆ្វេងដើម្បីថយក្រោយ"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"ដើម្បីត្រឡប់ទៅអេក្រង់ចុងក្រោយដែលអ្នកបានចូល សូមអូសពីគែមខាងឆ្វេងទៅផ្នែកកណ្ដាលនៃអេក្រង់។"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"ត្រូវប្រាកដថាអ្នកអូសឡើងលើពីគែមខាងក្រោមនៃអេក្រង់។"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"ត្រូវប្រាកដថាអ្នកមិនផ្អាក មុនពេលដកដៃ។"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"ត្រូវប្រាកដថាអ្នកអូសត្រង់ឡើងលើ។"</string>
diff --git a/quickstep/res/values-kn/strings.xml b/quickstep/res/values-kn/strings.xml
index e057b76..1ebdea2 100644
--- a/quickstep/res/values-kn/strings.xml
+++ b/quickstep/res/values-kn/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"ಶಿಫಾರಸು ಮಾಡಿದ ಆ್ಯಪ್: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"ನೀವು ದೂರದ ಎಡ ಅಂಚಿನಿಂದ ಸ್ವೈಪ್ ಮಾಡುತ್ತಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"ಎಡ ಅಂಚಿನಿಂದ ಸ್ಕ್ರೀನ್ ಮಧ್ಯಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಹಾಗೂ ನಿಮ್ಮ ಬೆರಳನ್ನು ಮೇಲೆತ್ತಿ."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"ಬಲ ಅಂಚಿನಿಂದ ಸ್ಕ್ರೀನ್ ಮಧ್ಯಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಕೊನೆಯ ಸ್ಕ್ರೀನ್ಗೆ ಹೋಗಿ."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"ನೀವು ದೂರದ ಬಲ ಅಂಚಿನಿಂದ ಸ್ವೈಪ್ ಮಾಡುತ್ತಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"ಬಲ ಅಂಚಿನಿಂದ ಸ್ಕ್ರೀನ್ ಮಧ್ಯಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಹಾಗೂ ನಿಮ್ಮ ಬೆರಳನ್ನು ಮೇಲೆತ್ತಿ."</string>
- <string name="back_gesture_feedback_complete_with_follow_up" msgid="8653374779579748392">"ನೀವು ಗೋ ಬ್ಯಾಕ್ ಗೆಸ್ಚರ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ್ದೀರಿ. ಮುಂದೆ, ಆ್ಯಪ್ಗಳನ್ನು ಬದಲಾಯಿಸುವುದು ಹೇಗೆ ಎಂದು ತಿಳಿಯಿರಿ."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"ನೀವು ಗೋ ಬ್ಯಾಕ್ ಗೆಸ್ಚರ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ್ದೀರಿ."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"ನೀವು ಸ್ಕ್ರೀನ್ನ ಕೆಳಭಾಗಕ್ಕೆ ಹೆಚ್ಚು ಹತ್ತಿರ ಸ್ವೈಪ್ ಮಾಡದಂತೆ ನೋಡಿಕೊಳ್ಳಿ."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"ಬ್ಯಾಕ್ ಗೆಸ್ಚರ್ನ ಸೂಕ್ಷ್ಮತೆ ಬದಲಾಯಿಸಲು, ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಹೋಗಿ"</string>
- <string name="back_gesture_intro_title" msgid="5538727561353262952">"ಹಿಂದಕ್ಕೆ ಹೋಗಲು, ಎಡದಿಂದ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"ಈ ಮೊದಲು ನೀವಿದ್ದ ಕೊನೆಯ ಸ್ಕ್ರೀನ್ಗೆ ಹಿಂತಿರುಗಲು, ಬಲ ಅಂಚಿನಿಂದ ಸ್ಕ್ರೀನ್ ಮಧ್ಯಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"ಸ್ಕ್ರೀನ್ನ ಕೆಳಗಿನ ಅಂಚಿನಿಂದ ನೀವು ಸ್ವೈಪ್ ಮಾಡುತ್ತಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"ವಿರಾಮಗೊಳಿಸದೆ ನಿಮ್ಮ ಬೆರಳನ್ನು ಸ್ಕ್ರೀನ್ನಿಂದ ಮೇಲೆತ್ತಿ."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"ನೀವು ನೇರವಾಗಿ ಸ್ವೈಪ್ ಮಾಡುತ್ತಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ."</string>
diff --git a/quickstep/res/values-ko/strings.xml b/quickstep/res/values-ko/strings.xml
index a0c7882..6e6f872 100644
--- a/quickstep/res/values-ko/strings.xml
+++ b/quickstep/res/values-ko/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"예상 앱: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"왼쪽 가장자리 끝에서 스와이프하세요."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"왼쪽 가장자리에서 화면 중앙으로 스와이프한 후 손가락을 떼세요."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"오른쪽 가장자리에서 화면 중앙으로 스와이프하여 마지막 화면으로 돌아갈 수도 있습니다"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"오른쪽 가장자리 끝에서 스와이프하세요."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"오른쪽 가장자리에서 화면 중앙으로 스와이프한 후 손가락을 떼세요."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"돌아가기 동작을 완료했습니다. 이번에는 앱 전환 방법을 알아보겠습니다."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"돌아가기 동작을 완료했습니다."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"화면 하단에 지나치게 가까운 곳에서 스와이프하면 안 됩니다."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"돌아가기 동작의 민감도를 변경하려면 설정으로 이동하세요"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"왼쪽에서 스와이프하여 뒤로 돌아가세요"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"마지막 화면으로 돌아가려면 왼쪽 가장자리에서 화면 중앙으로 스와이프하세요"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"화면 하단 가장자리에서 위로 스와이프하세요."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"손가락을 떼기 전에 멈추지 않아야 합니다."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"위로 똑바르게 스와이프하세요."</string>
diff --git a/quickstep/res/values-ky/strings.xml b/quickstep/res/values-ky/strings.xml
index 4c89553..3d6913a 100644
--- a/quickstep/res/values-ky/strings.xml
+++ b/quickstep/res/values-ky/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Божомолдонгон колдонмо: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Экранды эң четинен солдон оңго карай сүрүңүз."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Экранды сол жагынан ортосуна карай сүрүп, манжаңызды алыңыз."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Акыркы экранга кайтуу үчүн экранды оң жагынан ортосуна карай сүрүңүз."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Экранды эң четинен оңдой солго карай сүрүңүз."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Экранды оң жагынан ортосуна карай сүрүп, манжаңызды алыңыз."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"\"Артка\" жаңсоосу боюнча үйрөткүчтү бүтүрдүңүз. Эми колдонмолорду которуштурганды үйрөнүп алыңыз."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"\"Артка\" жаңсоосу боюнча үйрөткүчтү бүтүрдүңүз."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Манжаңызды экрандын ылдый жагына өтө жакындатпай сүрүңүз."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"\"Артка\" жаң-нун сезгичтигин өзгөртүү үчүн Жөндөөлөргө өтүңүз"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Артка кайтуу үчүн экраныңыздын сол четинен сүрүп коюңуз"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Акыркы экранга кайтуу үчүн экранды сол жагынан ортосуна карай сүрүңүз."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Экранды ылдыйдан өйдө карай сүрүңүз."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Манжаңызды алганга чейин токтотпоңуз."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Экранды өйдө карай сүрүңүз."</string>
diff --git a/quickstep/res/values-lo/strings.xml b/quickstep/res/values-lo/strings.xml
index 714d38c..8464d80 100644
--- a/quickstep/res/values-lo/strings.xml
+++ b/quickstep/res/values-lo/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"ແອັບທີ່ຄາດເດົາໄວ້: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"ກະລຸນາກວດສອບວ່າທ່ານປັດຈາກຂອບຊ້າຍສຸດ."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"ກະລຸນາກວດສອບວ່າທ່ານປັດຈາກຂອບຊ້າຍໄປຫາທາງກາງຂອງຈໍແລ້ວປ່ອຍ."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"ທ່ານສາມາດກັບໄປຫາໜ້າຈໍຫຼ້າສຸດໄດ້ໂດຍການປັດຈາກຂອບຂວາໄປຫາກາງຈໍ."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"ກະລຸນາກວດສອບວ່າທ່ານປັດຈາກຂອບຂວາສຸດ."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"ກະລຸນາກວດສອບວ່າທ່ານປັດຈາກຂອບຂວາໄປຫາທາງກາງຂອງຈໍແລ້ວປ່ອຍ."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"ທ່ານໃຊ້ທ່າທາງກັບຄືນສຳເລັດແລ້ວ. ຕໍ່ໄປ, ມາສຶກສາວິທີສະຫຼັບແອັບ."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"ທ່ານໃຊ້ທ່າທາງກັບຄືນສຳເລັດແລ້ວ."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"ກະລຸນາກວດສອບວ່າທ່ານບໍ່ໄດ້ປັດໃກ້ກັບທາງລຸ່ມຂອງໜ້າຈໍເກີນໄປ."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"ເພື່ອປ່ຽນຄວາມລະອຽດອ່ອນຂອງທ່າທາງກັບຄືນ, ໃຫ້ໄປຫາການຕັ້ງຄ່າ"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"ປັດຈາກຊ້າຍເພື່ອກັບຄືນ"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"ເພື່ອກັບຄືນໄປໜ້າຈໍຫຼ້າສຸດທີ່ທ່ານໃຊ້, ໃຫ້ປັດຈາກຂອບຊ້າຍໄປຫາກາງຈໍ."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"ກະລຸນາກວດສອບວ່າທ່ານປັດຂຶ້ນຈາກຂອບລຸ່ມສຸດຂອງໜ້າຈໍ."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"ກະລຸນາກວດສອບວ່າທ່ານບໍ່ຢຸດຊົ່ວຄາວກ່ອນປ່ອຍນິ້ວ."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"ກະລຸນາກວດສອບວ່າທ່ານປັດຂຶ້ນໄປຊື່ໆ."</string>
diff --git a/quickstep/res/values-lt/strings.xml b/quickstep/res/values-lt/strings.xml
index 55e46e7..b1451a8 100644
--- a/quickstep/res/values-lt/strings.xml
+++ b/quickstep/res/values-lt/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Numatoma programa: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Turite perbraukti nuo kairiojo krašto."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Turite perbraukti nuo kairiojo krašto link ekrano vidurio ir pakelti pirštą."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Į ankstesnį ekraną taip pat galite grįžti, perbraukdami nuo dešiniojo krašto link ekrano vidurio."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Turite perbraukti nuo dešiniojo krašto."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Turite perbraukti nuo dešiniojo krašto link ekrano vidurio ir pakelti pirštą."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Atlikote grįžimo atgal gestą. Toliau sužinosite, kaip perjungti programas."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Atlikote grįžimo atgal gestą."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Nebraukite per arti ekrano apačios."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Norėd. pak. grįžimo gesto jautr., eikite į sk. „Nustatymai“"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Perbraukite iš kairės, kad grįžtumėte"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Norėdami grįžti į ankstesnį ekraną, kuriame lankėtės, perbraukite nuo kairiojo krašto link ekrano vidurio."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Turite perbraukti aukštyn nuo apatinio ekrano krašto."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Nepristabdykite prieš pakeldami pirštą."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Turite tiesiai perbraukti aukštyn."</string>
diff --git a/quickstep/res/values-lv/strings.xml b/quickstep/res/values-lv/strings.xml
index 216d1ce..2e6b1da 100644
--- a/quickstep/res/values-lv/strings.xml
+++ b/quickstep/res/values-lv/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Prognozētā lietotne: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Jāvelk no pašas kreisās malas."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Jāvelk no ekrāna kreisās malas uz vidu un jāatlaiž."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Varat arī pāriet atpakaļ uz pēdējo ekrānu, velkot no labās malas uz ekrāna vidu."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Jāvelk no pašas labās malas."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Jāvelk no ekrāna labās malas uz vidu un jāatlaiž."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Jūs sekmīgi veicāt atgriešanās žestu. Tagad varat iemācīties, kā pārslēgt lietotnes."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Jūs sekmīgi veicāt atgriešanās žestu."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Nevelciet pārāk tuvu ekrāna apakšdaļai."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Atgriešanās žesta jutīguma līmeni varat mainīt iestatījumos."</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Lai pārietu atpakaļ, velciet no kreisās malas."</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Lai pārietu atpakaļ uz pēdējo izmantoto ekrānu, velciet no kreisās malas uz ekrāna vidu."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Jāvelk augšup no ekrāna apakšmalas."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Pirms atlaišanas nepārtrauciet kustību."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Jāvelk tieši uz augšu."</string>
diff --git a/quickstep/res/values-mk/strings.xml b/quickstep/res/values-mk/strings.xml
index a39933f..011d5ce 100644
--- a/quickstep/res/values-mk/strings.xml
+++ b/quickstep/res/values-mk/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Предвидена апликација: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Повлечете од подалечниот лев агол."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Повлечете од левиот раб кон средината на екранот и пуштете."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Може да се вратите на последниот екран и со повлекување од десниот раб кон средината на екранот."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Повлечете од подалечниот десен агол."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Повлечете од десниот раб кон средината на екранот и пуштете."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Завршивте со упатството за враќање назад. Следно, дознајте како да се префрлате помеѓу апликации."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Завршивте со упатството за враќање назад."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Не повлекувајте преблиску до долниот раб на екранот."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"За да ја промените чувствителноста, одете во „Поставки“"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Повлечете одлево за да се вратите назад"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"За да се вратите на последниот екран на кој бевте, повлечете од левиот раб кон средината на екранот."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Повлечете нагоре од долниот раб на екранот."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Не правете пауза пред да пуштите."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Повлечете право нагоре."</string>
diff --git a/quickstep/res/values-ml/strings.xml b/quickstep/res/values-ml/strings.xml
index c2edf3e..4f5068b 100644
--- a/quickstep/res/values-ml/strings.xml
+++ b/quickstep/res/values-ml/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"പ്രവചിച്ച ആപ്പ്: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"ഇടത്തേയറ്റത്തെ അരികിൽ നിന്ന് സ്വെെപ്പ് ചെയ്യുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"ഇടത്തേ അരികിൽ നിന്ന് സ്ക്രീനിന്റെ മധ്യഭാഗത്തേക്ക് സ്വെെപ്പ് ചെയ്ത് വിടുക."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"സ്ക്രീനിന്റെ വലത് അരികിൽ നിന്ന് നടുവിലേക്ക് സ്വൈപ്പ് ചെയ്തും മുൻ സ്ക്രീനിലേക്ക് പോകാം."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"വലത്തേയറ്റത്തെ അരികിൽ നിന്ന് സ്വെെപ്പ് ചെയ്യുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"വലത്തേ അരികിൽ നിന്ന് സ്ക്രീനിന്റെ മധ്യഭാഗത്തേക്ക് സ്വെെപ്പ് ചെയ്ത് വിടുക."</string>
- <string name="back_gesture_feedback_complete_with_follow_up" msgid="8653374779579748392">"മടങ്ങുക ജെസ്ച്ചർ നിങ്ങൾ പൂർത്തിയാക്കി. അടുത്തത്, എങ്ങനെ ആപ്പുകൾ തമ്മിൽ മാറാമെന്ന് മനസ്സിലാക്കുക."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"മടങ്ങുക ജെസ്ച്ചർ നിങ്ങൾ പൂർത്തിയാക്കി."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"സ്ക്രീനിന്റെ ഏറ്റവും അടിഭാഗത്തേക്ക് സ്വെെപ്പ് ചെയ്യുന്നില്ലെന്ന് ഉറപ്പാക്കുക."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"ബാക്ക്ജെസ്റ്ററിന്റെ സെൻസിറ്റിവിറ്റി മാറ്റാൻ ക്രമീകരണത്തിൽ പോകൂ"</string>
- <string name="back_gesture_intro_title" msgid="5538727561353262952">"പുറകോട്ട് പോകാൻ ഇടതുഭാഗത്ത് നിന്ന് സ്വൈപ്പ് ചെയ്യുക"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"മുമ്പത്തെ സ്ക്രീനിലേക്ക് പോകാൻ, സ്ക്രീനിന്റെ ഇടത് അരികിൽ നിന്ന് നടുവിലേക്ക് സ്വൈപ്പ് ചെയ്യുക."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"സ്ക്രീനിന്റെ താഴത്തെ അരികിൽ നിന്ന് മുകളിലേക്ക് സ്വെെപ്പ് ചെയ്യുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"വിടുന്നതിന് മുമ്പ് നിങ്ങൾ താൽക്കാലികമായി നിർത്തുന്നില്ലെന്ന് ഉറപ്പാക്കുക."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"നേരെ മുകളിലേക്ക് സ്വെെപ്പ് ചെയ്യുന്നുണ്ടെന്ന് ഉറപ്പിക്കുക."</string>
diff --git a/quickstep/res/values-mn/strings.xml b/quickstep/res/values-mn/strings.xml
index d378c7b..c292abd 100644
--- a/quickstep/res/values-mn/strings.xml
+++ b/quickstep/res/values-mn/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Таамаглаж буй апп: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Та зүүн захын булангаас шударна уу."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Та дэлгэцийн зүүн булангаас дунд хэсэг хүртэл шударч, суллаарай."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Та мөн дэлгэцийн баруун булангаас дунд хэсэг рүү шударснаар сүүлийн дэлгэц рүү буцах боломжтой."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Та баруун захын булангаас шударна уу."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Та дэлгэцийн баруун булангаас дунд хэсэг хүртэл шударч, суллаарай."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Та буцах зангааг гүйцэтгэлээ. Дараа нь аппуудыг хэрхэн сэлгэх талаар мэдэж авна уу."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Та буцах зангааг гүйцэтгэлээ."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Та дэлгэцийн доод хэсэгтэй хэт ойр бүү шудраарай."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Буцах зангааны мэдрэгшлийг өөрчлөх бол Тохиргоо руу очно уу"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Буцахын тулд зүүн талаас шударна уу"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Та байсан сүүлийн дэлгэц рүүгээ буцахын тулд дэлгэцийн баруун булангаас дунд хэсэг рүү шударна уу"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Та дэлгэцийн доод булангаас дээш шударна уу."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Та суллахаасаа өмнө түр зогсоож болохгүй."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Та чигээрээ шударна уу."</string>
diff --git a/quickstep/res/values-mr/strings.xml b/quickstep/res/values-mr/strings.xml
index 373d204..0bc8e82 100644
--- a/quickstep/res/values-mr/strings.xml
+++ b/quickstep/res/values-mr/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"पूर्वानुमान केलेले अॅप: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"तुम्ही स्क्रीनच्या अगदी डाव्या कडेपासून स्वाइप करत आहात याची खात्री करा."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"तुम्ही स्क्रीनच्या डाव्या कडेपासून मध्यावर स्वाइप करून बोट उचलत आहात याची खात्री करा."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"तुम्ही स्क्रीनच्या उजव्या कडेपासून मध्याभागी स्वाइप करून मागील स्क्रीनवर परतदेखील जाऊ शकता."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"तुम्ही स्क्रीनच्या अगदी उजव्या कडेपासून स्वाइप करत आहात याची खात्री करा."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"तुम्ही स्क्रीनच्या उजव्या कडेपासून मध्यावर स्वाइप करून बोट उचलत आहात याची खात्री करा."</string>
- <string name="back_gesture_feedback_complete_with_follow_up" msgid="8653374779579748392">"तुम्ही गो बॅक जेश्चर पूर्ण केले. आता, ॲप्स कशी स्विच करायची ते जाणून घ्या."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"तुम्ही गो बॅक जेश्चर पूर्ण केले."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"तुम्ही स्क्रीनच्या तळाच्या अगदी जवळून स्वाइप करत नाही याची खात्री करा."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"बॅक जेश्चरची संवेदनशीलता बदलण्यासाठी, सेटिंग्ज वर जा"</string>
- <string name="back_gesture_intro_title" msgid="5538727561353262952">"मागे जाण्यासाठी डावीकडून स्वाइप करा"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"तुम्ही होतात त्या मागील स्क्रीनवर परत जाण्यासाठी, स्क्रीनच्या डाव्या कडेपासून मध्याभागी स्वाइप करा."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"तुम्ही स्क्रीनच्या तळाच्या कडेपासून वर स्वाइप करत आहात याची खात्री करा."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"तुम्ही स्क्रीनवरून बोट उचलण्यापूर्वी ते थांबवत नाही याची खात्री करा."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"तुम्ही सरळ वर स्वाइप करत आहात याची खात्री करा."</string>
diff --git a/quickstep/res/values-ms/strings.xml b/quickstep/res/values-ms/strings.xml
index 507fb43..af39275 100644
--- a/quickstep/res/values-ms/strings.xml
+++ b/quickstep/res/values-ms/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Apl yang diramalkan: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Pastikan anda meleret dari hujung sebelah kiri."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Pastikan anda meleret dari tepi sebelah kiri ke tengah skrin dan lepaskan."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Anda juga boleh kembali ke skrin terakhir dengan meleret dari tepi sebelah kanan ke tengah skrin."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Pastikan anda meleret dari hujung sebelah kanan."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Pastikan anda meleret dari tepi sebelah kanan ke tengah skrin dan lepaskan."</string>
- <string name="back_gesture_feedback_complete_with_follow_up" msgid="8653374779579748392">"Anda telah melengkapkan gerak isyarat undur. Seterusnya, ketahui cara menukar apl."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Anda telah melengkapkan gerak isyarat undur."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Pastikan anda tidak meleret terlalu dekat dengan bahagian bawah skrin."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Utk mengubah kepekaan gerak isyarat undur, pergi ke Tetapan"</string>
- <string name="back_gesture_intro_title" msgid="5538727561353262952">"Leret dari kiri untuk kembali"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Untuk kembali ke skrin terakhir yang anda berada, leret dari tepi sebelah kiri ke tengah skrin."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Pastikan anda meleret ke atas dari tepi sebelah bawah skrin."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Pastikan anda tidak menjeda sebelum melepaskan gerak isyarat tersebut."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Pastikan anda meleret terus ke atas."</string>
diff --git a/quickstep/res/values-my/strings.xml b/quickstep/res/values-my/strings.xml
index 02042b4..13411e2 100644
--- a/quickstep/res/values-my/strings.xml
+++ b/quickstep/res/values-my/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"ကြိုတင်မှန်းဆထားသော အက်ပ်− <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"ဘယ်ဘက်အစွန် ခပ်လှမ်းလှမ်းမှ ပွတ်ဆွဲကြောင်း သေချာပါစေ။"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"ဘယ်ဘက်အစွန်မှ ဖန်သားပြင်အလယ်သို့ ပွတ်ဆွဲပြီး လွှတ်လိုက်ကြောင်း သေချာပါစေ။"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"ဖန်သားပြင်၏ညာအစွန်းမှ အလယ်သို့ပွတ်ဆွဲ၍ ပြီးခဲ့သောဖန်သားပြင်သို့လည်း ပြန်သွားနိုင်သည်။"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"ညာဘက်အစွန် ခပ်လှမ်းလှမ်းမှ ပွတ်ဆွဲကြောင်း သေချာပါစေ။"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"ညာဘက်အစွန်မှ ဖန်သားပြင်အလယ်သို့ ပွတ်ဆွဲပြီး လွှတ်လိုက်ကြောင်း သေချာပါစေ။"</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"နောက်ဆုတ်လက်ဟန် ရှင်းလင်းပို့ချချက် ပြီးပါပြီ။ နောက်အဆင့်တွင် အက်ပ်များပြောင်းနည်းကို လေ့လာပါ။"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"နောက်ဆုတ်လက်ဟန် ရှင်းလင်းပို့ချချက် ပြီးပါပြီ။"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"ဖန်သားပြင် အောက်ခြေနှင့် အလွန်နီးကပ်စွာ ပွတ်ဆွဲခြင်းမရှိကြောင်း သေချာပါစေ။"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"နောက်ဆုတ်လက်ဟန်၏ အာရုံခံစွမ်းကိုပြောင်းရန် ‘ဆက်တင်များ’ သို့ သွားပါ"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"နောက်သို့ပြန်သွားရန် ဘယ်ဘက်မှ ပွတ်ဆွဲပါ"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"သင်ရှိခဲ့သည့် ပြီးခဲ့သောဖန်သားပြင်သို့ ပြန်သွားရန် ဖန်သားပြင်၏ဘယ်အစွန်းမှ အလယ်သို့ပွတ်ဆွဲပါ။"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"ဖန်သားပြင် အောက်ခြေအစွန်မှ အပေါ်သို့ ပွတ်ဆွဲကြောင်း သေချာပါစေ။"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"လက်မလွှတ်ခင် ခဏရပ်ခြင်းမရှိကြောင်း သေချာပါစေ။"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"အပေါ်တည့်တည့်သို့ ပွတ်ဆွဲကြောင်း သေချာပါစေ။"</string>
diff --git a/quickstep/res/values-nb/strings.xml b/quickstep/res/values-nb/strings.xml
index 6276c45..ff1dde7 100644
--- a/quickstep/res/values-nb/strings.xml
+++ b/quickstep/res/values-nb/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Foreslått app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Sørg for at du sveiper fra kanten helt til venstre."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Sørg for at du sveiper fra den venstre kanten til midten av skjermen og slipper."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Du kan også gå tilbake til forrige skjerm ved å sveipe fra høyre kant til midten av skjermen."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Sørg for at du sveiper fra kanten helt til høyre."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Sørg for at du sveiper fra den høyre kanten til midten av skjermen og slipper."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Du har fullført bevegelsen for å gå tilbake. I neste trinn lærer du hvordan du bytter app."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Du har fullført bevegelsen for å gå tilbake."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Sørg for at du ikke sveiper for nær bunnen av skjermen."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Gå til Innstillinger for å endre tilbakebevegelsefølsomheten"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Sveip fra venstre for å gå tilbake"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"For å gå tilbake til den forrige skjermen du var på, sveip fra venstre kant til midten av skjermen."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Sørg for at du sveiper opp fra den nederste kanten av skjermen."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Sørg for at du ikke setter på pause før du slipper."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Sørg for at du sveiper rett opp."</string>
diff --git a/quickstep/res/values-ne/strings.xml b/quickstep/res/values-ne/strings.xml
index 1c53c2f..f04b935 100644
--- a/quickstep/res/values-ne/strings.xml
+++ b/quickstep/res/values-ne/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"पूर्वानुमान गरिएको एप: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"स्क्रिनको सबैभन्दा बायाँ किनाराबाट स्वाइप गर्नुहोस्।"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"स्क्रिनको बायाँ किनाराबाट मध्य भागसम्म स्वाइप गर्नुहोस् अनि औँला उठाउनुहोस्।"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"तपाईं स्क्रिनको दायाँ किनाराबाट मध्य भागसम्म स्वाइप गरेर पनि यसअघिको स्क्रिनमा फर्कन सक्नुहुन्छ।"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"स्क्रिनको सबैभन्दा दायाँ किनाराबाट स्वाइप गर्नुहोस्।"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"स्क्रिनको दायाँ किनाराबाट मध्य भागसम्म स्वाइप गर्नुहोस् अनि औँला उठाउनुहोस्।"</string>
- <string name="back_gesture_feedback_complete_with_follow_up" msgid="8653374779579748392">"तपाईंले \'पछाडि जानुहोस्\' नामक इसारा प्रयोग गर्ने तरिका सिक्नुभयो। अब एउटा एपबाट अर्को एपमा जाने तरिका सिक्नुहोस्।"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"तपाईंले \'पछाडि जानुहोस्\' नामक इसारा प्रयोग गर्ने तरिका सिक्नुभयो।"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"स्क्रिनको फेदको धेरै नजिकसम्म स्वाइप नगर्नुहोस्।"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"\'पछाडि\' नामक इसाराको संवेदनशीलता बदल्न सेटिङमा जानुहोस्"</string>
- <string name="back_gesture_intro_title" msgid="5538727561353262952">"पछाडि जान बायाँ किनाराबाट स्वाइप गर्नुहोस्"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"तपाईं यसअघि जुन स्क्रिनमा हुनुहुन्थ्यो त्यो फर्कन स्क्रिनको बायाँ किनाराबाट मध्य भागसम्म स्वाइप गर्नुहोस्।"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"स्क्रिनको फेदबाट माथितिर स्वाइप गर्नुहोस्।"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"औँला उठाउनुअघि नरोकिनुहोस्।"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"सीधै माथितिर स्वाइप गर्नुहोस्।"</string>
diff --git a/quickstep/res/values-nl/strings.xml b/quickstep/res/values-nl/strings.xml
index ca732e9..5825444 100644
--- a/quickstep/res/values-nl/strings.xml
+++ b/quickstep/res/values-nl/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Voorspelde app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Swipe helemaal vanaf de linkerrand."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Swipe vanaf de linkerrand naar het midden van het scherm en laat los."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Je kunt ook teruggaan naar het laatste scherm door vanaf de rechterkant naar het midden van het scherm te swipen."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Swipe helemaal vanaf de rechterrand."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Swipe vanaf de rechterrand naar het midden van het scherm en laat los."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Je weet nu hoe je het gebaar Terug maakt. Ontdek als volgende hoe je tussen apps schakelt."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Je weet nu hoe je het gebaar Terug maakt."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Swipe niet te dicht bij de onderkant van het scherm."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Open Instellingen om de gevoeligheid van Terug te wijzigen"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Swipe vanaf de linkerkant om terug te gaan"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Swipe vanaf de linkerkant naar het midden van het scherm om terug te gaan naar het vorige scherm."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Swipe vanaf de onderrand van het scherm omhoog."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Pauzeer niet voordat je loslaat."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Swipe recht omhoog."</string>
diff --git a/quickstep/res/values-or/strings.xml b/quickstep/res/values-or/strings.xml
index 3159871..54a5932 100644
--- a/quickstep/res/values-or/strings.xml
+++ b/quickstep/res/values-or/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"ପୂର୍ବାନୁମାନ କରାଯାଇଥିବା ଆପ୍: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"ଆପଣ ଦୂର-ବାମ ଧାରରୁ ସ୍ୱାଇପ୍ କରୁଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ।"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"ଆପଣ ସ୍କ୍ରିନର ବାମ ଧାରରୁ ମଝିକୁ ସ୍ୱାଇପ୍ କରି ଛାଡ଼ି ଦେଉଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ।"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"ଆପଣ ସ୍କ୍ରିନର ଡାହାଣ ଧାରରୁ ମଝିକୁ ସ୍ୱାଇପ୍ କରି ପୂର୍ବ ସ୍କ୍ରିନକୁ ମଧ୍ୟ ଫେରିପାରିବେ।"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"ଆପଣ ଦୂର-ଡାହାଣ ଧାରରୁ ସ୍ୱାଇପ୍ କରୁଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ।"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"ଆପଣ ସ୍କ୍ରିନର ଡାହାଣ ଧାରରୁ ମଝିକୁ ସ୍ୱାଇପ୍ କରି ଛାଡ଼ି ଦେଉଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ।"</string>
- <string name="back_gesture_feedback_complete_with_follow_up" msgid="8653374779579748392">"ଆପଣ \'ପଛକୁ ଫେରନ୍ତୁ\' ଜେଶ୍ଚର୍ ସମ୍ପୂର୍ଣ୍ଣ କରିଛନ୍ତି। ତା\'ପରେ, ଆପଗୁଡ଼ିକୁ କିପରି ସ୍ୱିଚ୍ କରିବେ ତାହା ଜାଣନ୍ତୁ।"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"ଆପଣ \'ପଛକୁ ଫେରନ୍ତୁ\' ଜେଶ୍ଚର୍ ସମ୍ପୂର୍ଣ୍ଣ କରିଛନ୍ତି।"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"ଆପଣ ସ୍କ୍ରିନର ତଳଭାଗର ଅତି ନିକଟରୁ ସ୍ୱାଇପ୍ କରୁନଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ।"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"ପଛକୁ ଫେରିବା ଜେଶ୍ଚରର ସମ୍ବେଦନଶୀଳତା ବଦଳାଇବାକୁ ସେଟିଂସକୁ ଯାଆନ୍ତୁ"</string>
- <string name="back_gesture_intro_title" msgid="5538727561353262952">"ପଛକୁ ଫେରିବା ପାଇଁ ବାମ ଧାରରୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"ଆପଣ ଯେଉଁ ପୂର୍ବ ସ୍କ୍ରିନରେ ଥିଲେ ସେହି ସ୍କ୍ରିନକୁ ଫେରିବା ପାଇଁ, ସ୍କ୍ରିନର ବାମ ଧାରରୁ ମଝିକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ।"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"ଆପଣ ସ୍କ୍ରିନର ତଳ ଧାରରୁ ଉପରକୁ ସ୍ୱାଇପ୍ କରୁଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ।"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"ଆପଣ ଛାଡ଼ିବା ପୂର୍ବରୁ ବିରତ କରୁନଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ।"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"ଆପଣ ସିଧା ଉପରକୁ ସ୍ୱାଇପ୍ କରୁଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ।"</string>
diff --git a/quickstep/res/values-pa/strings.xml b/quickstep/res/values-pa/strings.xml
index 801beb7..d00e6cf 100644
--- a/quickstep/res/values-pa/strings.xml
+++ b/quickstep/res/values-pa/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"ਪੂਰਵ ਅਨੁਮਾਨਿਤ ਐਪ: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਦੂਰ-ਖੱਬੇ ਕਿਨਾਰੇ ਤੋਂ ਸਵਾਈਪ ਕਰਦੇ ਹੋ।"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਖੱਬੇ ਕਿਨਾਰੇ ਤੋਂ ਸਕ੍ਰੀਨ ਦੇ ਵਿਚਕਾਰ ਤੱਕ ਸਵਾਈਪ ਕਰਦੇ ਹੋ ਅਤੇ ਛੱਡ ਦਿੰਦੇ ਹੋ।"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"ਤੁਸੀਂ ਸੱਜੇ ਕਿਨਾਰੇ ਤੋਂ ਸਕ੍ਰੀਨ ਦੇ ਵਿਚਕਾਰ ਤੱਕ ਸਵਾਈਪ ਕਰਕੇ ਪਿਛਲੀ ਸਕ੍ਰੀਨ \'ਤੇ ਵਾਪਸ ਜਾ ਸਕਦੇ ਹੋ।"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਦੂਰ-ਸੱਜੇ ਕਿਨਾਰੇ ਤੋਂ ਸਵਾਈਪ ਕਰਦੇ ਹੋ।"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਸੱਜੇ ਕਿਨਾਰੇ ਤੋਂ ਸਕ੍ਰੀਨ ਦੇ ਵਿਚਕਾਰ ਤੱਕ ਸਵਾਈਪ ਕਰਦੇ ਹੋ ਅਤੇ ਛੱਡ ਦਿੰਦੇ ਹੋ।"</string>
- <string name="back_gesture_feedback_complete_with_follow_up" msgid="8653374779579748392">"ਤੁਸੀਂ \'ਵਾਪਸ ਜਾਓ\' ਦਾ ਇਸ਼ਾਰਾ ਪੂਰਾ ਕੀਤਾ। ਅੱਗੇ, ਜਾਣੋ ਕਿ ਐਪਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਿਵੇਂ ਕਰਨੀ ਹੈ।"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"ਤੁਸੀਂ \'ਵਾਪਸ ਜਾਓ\' ਦਾ ਇਸ਼ਾਰਾ ਪੂਰਾ ਕੀਤਾ।"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਲੇ ਹਿੱਸੇ ਦੇ ਬਹੁਤ ਨੇੜੇ ਸਵਾਈਪ ਨਾ ਕਰੋ।"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"ਪਿੱਛੇ ਜਾਣ ਦੇ ਸੰਕੇਤ ਦੀ ਸੰਵੇਦਨਸ਼ੀਲਤਾ ਬਦਲਣ ਲਈ, ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ"</string>
- <string name="back_gesture_intro_title" msgid="5538727561353262952">"ਪਿੱਛੇ ਜਾਣ ਲਈ ਖੱਬੇ ਪਾਸੇ ਤੋਂ ਸਵਾਈਪ ਕਰੋ"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"ਜਿੱਥੇ ਤੁਸੀਂ ਸੀ ਉਸ ਸਕ੍ਰੀਨ \'ਤੇ ਵਾਪਸ ਜਾਣ ਲਈ, ਖੱਬੇ ਕਿਨਾਰੇ ਤੋਂ ਸਕ੍ਰੀਨ ਦੇ ਵਿਚਕਾਰ ਤੱਕ ਸਵਾਈਪ ਕਰੋ।"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਲੇ ਕਿਨਾਰੇ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਦੇ ਹੋ।"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"ਪੱਕਾ ਕਰੋ ਕਿ ਸਕ੍ਰੀਨ ਨੂੰ ਛੱਡਣ ਤੋਂ ਪਹਿਲਾਂ ਰੁਕੋ ਨਾ।"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਸਿੱਧੇ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਦੇ ਹੋ।"</string>
diff --git a/quickstep/res/values-pl/strings.xml b/quickstep/res/values-pl/strings.xml
index cb0953b..ae4f238 100644
--- a/quickstep/res/values-pl/strings.xml
+++ b/quickstep/res/values-pl/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Przewidywana aplikacja: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Pamiętaj, aby przesuwać palcem od samej lewej krawędzi."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Pamiętaj, aby przesuwać palcem od lewej krawędzi do środka ekranu, a potem podnieść palec."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Możesz także wrócić do ostatniego ekranu, przesuwając palcem od prawej krawędzi do środka ekranu."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Pamiętaj, aby przesuwać palcem od samej prawej krawędzi."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Pamiętaj, aby przesuwać palcem od prawej krawędzi do środka ekranu, a potem podnieść palec."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Gest przejścia wstecz został opanowany. Poćwicz teraz przełączanie aplikacji."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Gest przejścia wstecz został opanowany."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Pamiętaj, aby nie przesuwać palcem zbyt blisko dolnej części ekranu."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Czułość gestu cofania możesz zmienić w Ustawieniach"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Aby wrócić, przesuń palcem od lewej strony"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Aby wrócić do ostatniego ekranu, przesuń palcem od lewej krawędzi do środka ekranu."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Pamiętaj, aby przesuwać palcem od dolnej krawędzi ekranu."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Pamiętaj, aby przed podniesieniem palca nie było przerwy."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Pamiętaj, aby przesuwać palcem prosto do góry."</string>
diff --git a/quickstep/res/values-pt-rPT/strings.xml b/quickstep/res/values-pt-rPT/strings.xml
index 16f6349..e6065ae 100644
--- a/quickstep/res/values-pt-rPT/strings.xml
+++ b/quickstep/res/values-pt-rPT/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"App prevista: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Garanta que desliza rapidamente com o dedo a partir da extremidade esquerda."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Garanta que desliza rapidamente com o dedo do limite esquerdo até ao centro do ecrã e solta."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Também pode voltar ao último ecrã ao deslizar rapidamente da direita para o centro do ecrã."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Garanta que desliza rapidamente com o dedo a partir da extremidade direita."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Garanta que desliza rapidamente com o dedo do limite direito até ao centro do ecrã e solta."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Concluiu o gesto para retroceder. A seguir, saiba como alternar entre apps."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Concluiu o gesto para retroceder."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Garanta que não desliza rapidamente com o dedo demasiado perto da parte inferior do ecrã."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Altere a sensibilidade do gesto para voltar nas Definições."</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Deslize rapidamente a partir da esquerda para retroceder"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Para voltar ao último ecrã, deslize rapidamente a partir do limite esquerdo para o centro do ecrã."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Garanta que desliza rapidamente com o dedo a partir do limite inferior do ecrã."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Garanta que não faz uma pausa antes de soltar."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Garanta que desliza rapidamente com o dedo para cima."</string>
diff --git a/quickstep/res/values-pt/strings.xml b/quickstep/res/values-pt/strings.xml
index cbea6d9..c4e0957 100644
--- a/quickstep/res/values-pt/strings.xml
+++ b/quickstep/res/values-pt/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"App previsto: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Deslize da borda esquerda."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Deslize da borda esquerda até o meio da tela e solte."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Para voltar à tela anterior, deslize da borda direita até o meio da tela."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Deslize da borda direita."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Deslize da borda direita até o meio da tela e solte."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Você concluiu o gesto para voltar. A seguir, aprenda a trocar de app."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Você concluiu o gesto para voltar."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Não deslize perto demais da parte inferior da tela."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Mude a sensibilidade do gesto de voltar nas configurações"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Deslize da esquerda para voltar"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Para voltar à tela anterior, deslize da borda esquerda até o meio da tela."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Deslize da borda inferior da tela para cima."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Não pare antes de soltar."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Deslize para cima."</string>
diff --git a/quickstep/res/values-ro/strings.xml b/quickstep/res/values-ro/strings.xml
index 2b78e8b..d12a616 100644
--- a/quickstep/res/values-ro/strings.xml
+++ b/quickstep/res/values-ro/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Aplicația estimată: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Glisați dinspre marginea stângă îndepărtată."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Glisați dinspre marginea stângă spre mijlocul ecranului și eliberați."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Reveniți la ultimul ecran glisând de la marginea dreaptă spre mijlocul ecranului."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Glisați dinspre marginea dreaptă îndepărtată."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Glisați dinspre marginea dreaptă spre mijlocul ecranului și eliberați."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Ați finalizat gestul „înapoi”. În continuare, aflați cum să comutați între aplicații."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Ați finalizat gestul „înapoi”."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Nu glisați prea aproape de partea de jos a ecranului."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Schimbați sensibilitatea gestului „Înapoi” accesând Setările"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Glisați dinspre stânga pentru a reveni"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Pentru a reveni la ultimul ecran accesat, glisați de la marginea stângă spre mijlocul ecranului."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Glisați în sus dinspre marginea de jos a ecranului."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Nu întrerupeți gestul înainte de a elibera."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Glisați direct în sus."</string>
diff --git a/quickstep/res/values-ru/strings.xml b/quickstep/res/values-ru/strings.xml
index ea513bc..e7ebe86 100644
--- a/quickstep/res/values-ru/strings.xml
+++ b/quickstep/res/values-ru/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Рекомендуемое приложение: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Проведите слева направо от самого края экрана."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Проведите от левого края экрана до середины дисплея и отпустите палец."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Вернуться назад можно, проведя от правого края к центру."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Проведите справа налево от самого края экрана."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Проведите от правого края экрана до середины дисплея и отпустите палец."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Вы выполнили жест для перехода назад. Теперь мы расскажем, как переключаться между приложениями."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Вы выполнили жест для перехода назад."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Проведите пальцем не слишком близко к нижнему краю экрана."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Уровень чувствительности можно изменить в настройках."</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Чтобы вернуться, проведите слева направо."</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Чтобы вернуться к предыдущему экрану, проведите от левого края к центру."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Проведите снизу вверх от самого края экрана."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Не приостанавливайтесь перед тем, как отпустить палец."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Проведите по экрану ровно вверх."</string>
diff --git a/quickstep/res/values-si/strings.xml b/quickstep/res/values-si/strings.xml
index 52e9ace..a412d6c 100644
--- a/quickstep/res/values-si/strings.xml
+++ b/quickstep/res/values-si/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"පුරෝකථනය කළ යෙදුම: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"ඔබ ඈත වම් දාරයෙන් ස්වයිප් කරන බවට සහතික කර ගන්න."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"ඔබ වම් දාරයේ සිට තිරයේ මැදට ස්වයිප් කර අත හරින බව සහතික කර ගන්න."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"දකුණු මායිමේ සිට තිරයේ මැදට ස්වයිප් කර අවසාන තිරයට යා හැකිය."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"ඔබ ඈත දකුණු දාරයෙන් ස්වයිප් කරන බවට සහතික කර ගන්න."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"ඔබ දකුණු දාරයේ සිට තිරයේ මැදට ස්වයිප් කර අත හරින බව සහතික කර ගන්න."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"ඔබ ආපසු යාමේ ඉංගිතය සම්පූර්ණ කරන ලදි. ඊළඟට, යෙදුම් මාරු කරන ආකාරය දැන ගන්න."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"ඔබ ආපසු යාමේ ඉංගිතය සම්පූර්ණ කරන ලදි."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"ඔබ තිරයේ පහළට ඉතාම සමීපව ස්වයිප් නොකරන බවට සහතික කර ගන්න."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"ආපසු ඉංගිතයෙහි සංවේදීතාව වෙනස් කිරීමට, සැකසීම් වෙත යන්න"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"ආපසු යාමට වමේ සිට ස්වයිප් කරන්න"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"ඔබ සිටි අවසාන තිරයට ආපසු යාමට, වම් මායිමෙන් තිරයේ මැදට ස්වයිප් කරන්න."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"ඔබ තිරයේ පහළ දාරයේ සිට ඉහළට ස්වයිප් කරන බව සහතික කර ගන්න."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"යාමට ඉඩ හැරීමට පෙර ඔබ විරාමයක් නොගන්නා බව සහතික කර ගන්න."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"ඔබ කෙලින්ම ඉහළට ස්වයිප් කරන බව සහතික කර ගන්න."</string>
diff --git a/quickstep/res/values-sk/strings.xml b/quickstep/res/values-sk/strings.xml
index fb50f2f..0e786cf 100644
--- a/quickstep/res/values-sk/strings.xml
+++ b/quickstep/res/values-sk/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predpovedaná aplikácia: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Musite potiahnuť z úplne krajného ľavého okraja."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Musíte potiahnuť z ľavého okraja do stredu obrazovky a uvoľniť."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Na poslednú obrazovku sa môžete tiež vrátiť potiahnutím z pravého okraja do stredu obrazovky."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Musite potiahnuť z úplne krajného pravého okraja."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Musíte potiahnuť z pravého okraja do stredu obrazovky a uvoľniť."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Dokončili ste gesto na prechod späť. V ďalšom kroku sa naučíte, ako prepínať aplikácie."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Dokončili ste gesto na prechod späť."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Nesmiete potiahnuť príliš blízko dolnej časti obrazovky."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Ak chcete zmeniť citlivosť gesta Späť, prejdite do Nastavení"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Vrátite sa potiahnutím zľava"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Na poslednú obrazovku prejdete potiahnutím z ľavého okraja do stredu obrazovky."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Musíte potiahnuť nahor z dolného okraja obrazovky."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Pred uvoľnením nesmiete zastať."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Musíte potiahnuť priamo hore."</string>
diff --git a/quickstep/res/values-sl/strings.xml b/quickstep/res/values-sl/strings.xml
index df93eb2..59c587b 100644
--- a/quickstep/res/values-sl/strings.xml
+++ b/quickstep/res/values-sl/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Predvidena aplikacija: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Pazite, da ne povlečete s skrajno levega roba."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Pazite, da povlečete z levega roba do sredine zaslona in dvignete prst."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Na zadnji zaslon se lahko vrnete tudi tako, da z desnega roba povlečete do sredine zaslona."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Pazite, da ne povlečete s skrajno desnega roba."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Pazite, da povlečete z desnega roba do sredine zaslona in dvignete prst."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Izvedli ste potezo za pomik nazaj. Zdaj se naučite preklapljanja med aplikacijami."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Izvedli ste potezo za pomik nazaj."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Pazite, da ne povlečete preblizu dna zaslona."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Občutljivost poteze za nazaj lahko spremenite v nastavitvah."</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Povlecite z leve za pomik nazaj."</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Če se želite vrniti na zadnji prikazani zaslon, povlecite z levega roba do sredine zaslona."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Pazite, da povlečete s spodnjega roba zaslona navzgor."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Pazite, da ne zaustavite prsta, preden ga dvignete."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Pazite, da povlečete naravnost navzgor."</string>
diff --git a/quickstep/res/values-sq/strings.xml b/quickstep/res/values-sq/strings.xml
index 3582082..35037b8 100644
--- a/quickstep/res/values-sq/strings.xml
+++ b/quickstep/res/values-sq/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Aplikacioni i parashikuar: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Sigurohu që të rrëshqasësh shpejt nga skaji sa më majtas."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Sigurohu që të rrëshqasësh shpejt nga skaji i majtë drejt mesit të ekranit dhe lëshoje."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Mund dhe të kthehesh në ekranin e fundit duke rrëshqitur shpejt nga skaji i djathtë në mes të ekranit."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Sigurohu që të rrëshqasësh shpejt nga skaji sa më djathtas."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Sigurohu që të rrëshqasësh shpejt nga skaji i djathtë drejt mesit të ekranit dhe lëshoje."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"E ke përfunduar gjestin e kthimit prapa. Në vijim do të mësosh se si t\'i ndërrosh aplikacionet."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"E ke përfunduar gjestin e kthimit prapa."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Sigurohu që të mos rrëshqasësh shumë afër fundit të ekranit."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Për të ndryshuar ndjeshmërinë e gjestit të kthimit prapa, shko te \"Cilësimet\""</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Rrëshqit shpejt nga e majta për t\'u kthyer prapa"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Për t\'u kthyer në ekranin e fundit ku ishe, rrëshqit shpejt nga skaji i majtë në mes të ekranit."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Sigurohu që të rrëshqasësh shpejt lart nga skaji i poshtëm i ekranit."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Sigurohu që të mos ndalosh para se ta lëshosh."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Sigurohu që të rrëshqasësh shpejt drejt lart."</string>
diff --git a/quickstep/res/values-sr/strings.xml b/quickstep/res/values-sr/strings.xml
index 6a18169..ef45c5c 100644
--- a/quickstep/res/values-sr/strings.xml
+++ b/quickstep/res/values-sr/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Предвиђамо апликацију: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Обавезно превуците од саме леве ивице."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Обавезно превуците од леве ивице до средине екрана и отпустите."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Вратите се на последњи екран превлачењем здесна ка средини."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Обавезно превуците од саме десне ивице."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Обавезно превуците од десне ивице до средине екрана и отпустите."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Довршили сте покрет за повратак. Сада сазнајте како да промените апликације."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Довршили сте покрет за повратак."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Никако не превлачите превише близу дна екрана."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Осетљивост пок. за назад можете да промените у Подешавањима"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Превуците са леве стране да бисте се вратили"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Да бисте се вратили на последњи екран, превуците од леве ивице ка средини екрана."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Обавезно превуците нагоре од доње ивице екрана."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Никако не стајте пре отпуштања."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Обавезно превуците право нагоре."</string>
diff --git a/quickstep/res/values-sv/strings.xml b/quickstep/res/values-sv/strings.xml
index d9b5648..29af68d 100644
--- a/quickstep/res/values-sv/strings.xml
+++ b/quickstep/res/values-sv/strings.xml
@@ -47,19 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Appförslag: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Se till att du sveper ända från vänsterkanten."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Se till att du sveper från den vänstra kanten till mitten av skärmen och sedan släpper."</string>
- <skip />
- <skip />
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Se till att du sveper ända från högerkanten."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Se till att du sveper från den högra kanten till mitten av skärmen och sedan släpper."</string>
- <!-- no translation found for back_gesture_feedback_complete_with_follow_up (8653374779579748392) -->
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
<skip />
<!-- no translation found for back_gesture_feedback_complete_without_follow_up (6405649621667113830) -->
<skip />
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Se till att du inte sveper för nära skärmens nederkant."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Öppna inställningarna om du vill ändra rörelsens känslighet"</string>
- <!-- no translation found for back_gesture_intro_title (5538727561353262952) -->
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
<skip />
- <!-- no translation found for back_gesture_intro_subtitle (8139048712004626940) -->
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
<skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Se till att du sveper från nederkanten på skärmen."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Se till att du sveper i en jämn rörelse innan du släpper."</string>
diff --git a/quickstep/res/values-sw/strings.xml b/quickstep/res/values-sw/strings.xml
index 8670339..4cbc405 100644
--- a/quickstep/res/values-sw/strings.xml
+++ b/quickstep/res/values-sw/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Programu iliyotabiriwa: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Hakikisha unatelezesha kidole kuanzia ukingo wa mbali wa kushoto."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Hakikisha unatelezesha kidole kuanzia ukingo wa kushoto kuelekea katikati ya skrini na uachilie."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Unaweza pia kurudi kwenye skrini iliyotangulia kwa kutelezesha kidole kuanzia ukingo wa kulia kuelekea katikati ya skrini."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Hakikisha unatelezesha kidole kuanzia ukingo wa mbali wa kulia."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Hakikisha unatelezesha kidole kuanzia ukingo wa kulia kuelekea katikati ya skrini na uachilie."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Umekamilisha ishara ya kurudi nyuma. Hatua inayofuata, jifunze jinsi ya kubadilisha programu."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Umekamilisha ishara ya kurudi nyuma."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Hakikisha hutelezeshi kidole karibu sana na sehemu ya chini ya skrini."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Kubadilisha hisi ya ishara ya nyuma, nenda kwenye Mipangilio"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Telezesha kidole kutoka kushoto ili urudi nyuma"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Ili urudi kwenye skrini iliyotangulia, telezesha kidole kuanzia ukingo wa kushoto kuelekea katikati ya skrini."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Hakikisha unatelezesha kidole juu kuanzia ukingo wa chini wa skrini."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Hakikisha kuwa husimamishi kabla ya kuachilia."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Hakikisha unatelezesha kidole kuelekea juu."</string>
diff --git a/quickstep/res/values-ta/strings.xml b/quickstep/res/values-ta/strings.xml
index 8867c00..010e3b5 100644
--- a/quickstep/res/values-ta/strings.xml
+++ b/quickstep/res/values-ta/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"கணித்த ஆப்ஸ்: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"இடது ஓரத்தின் விளிம்பிலிருந்து ஸ்வைப் செய்கிறீர்கள் என்பதை உறுதிசெய்துகொள்ளுங்கள்."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"இடது ஓரத்திலிருந்து திரையின் மையப் பகுதிக்கு ஸ்வைப் செய்தபிறகு விடுவிப்பதை உறுதிசெய்துகொள்ளுங்கள்."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"வலது ஓரத்திலிருந்து திரையின் மையப் பகுதிக்கு ஸ்வைப் செய்தும் முந்தைய திரைக்கு மீண்டும் செல்லலாம்."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"வலது ஓரத்தின் விளிம்பிலிருந்து ஸ்வைப் செய்கிறீர்கள் என்பதை உறுதிசெய்துகொள்ளுங்கள்."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"வலது ஓரத்திலிருந்து திரையின் மையப் பகுதிக்கு ஸ்வைப் செய்தபிறகு விடுவிப்பதை உறுதிசெய்துகொள்ளுங்கள்."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"பின்செல் சைகைப் பயிற்சியை முடித்துவிட்டீர்கள். அடுத்து, ஆப்ஸுக்கிடையே மாறுவது எப்படி என்பதை அறிக."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"பின்செல் சைகைப் பயிற்சியை முடித்துவிட்டீர்கள்."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"திரையின் கீழ்பகுதிக்கு மிக நெருக்கமாக ஸ்வைப் செய்யவில்லை என்பதை உறுதிசெய்துகொள்ளுங்கள்."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"பின்செல் சைகையின் உணர்திறனை மாற்ற அமைப்புகளுக்குச் செல்க"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"பின்செல்வதற்கு இடதுபுறத்திலிருந்து ஸ்வைப் செய்யுங்கள்"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"முந்தைய திரைக்கு மீண்டும் செல்ல, இடது ஓரத்திலிருந்து திரையின் மையப் பகுதிக்கு ஸ்வைப் செய்யுங்கள்."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"திரையின் கீழ் ஓரத்திலிருந்து மேல்நோக்கி ஸ்வைப் செய்வதை உறுதிசெய்துகொள்ளுங்கள்."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"விடுவிப்பதற்கு முன்பாக இடைநிறுத்தவில்லை என்பதை உறுதிசெய்துகொள்ளுங்கள்."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"மேல்நோக்கி நேராக ஸ்வைப் செய்வதை உறுதிசெய்துகொள்ளுங்கள்."</string>
diff --git a/quickstep/res/values-te/strings.xml b/quickstep/res/values-te/strings.xml
index be50c9c..14c83be 100644
--- a/quickstep/res/values-te/strings.xml
+++ b/quickstep/res/values-te/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"సూచించబడిన యాప్: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"మీరు చాలా-ఎడమ అంచు నుండి స్వైప్ చేశారని నిర్ధారించుకోండి."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"మీరు ఎడమ అంచు నుండి స్క్రీన్ మధ్యలోకి స్వైప్ చేశారని నిర్ధారించుకోని, ఆపై మీ వేలిని ఎత్తండి."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"కుడి అంచు నుండి స్క్రీన్ మధ్యలోకి స్వైప్ చేయడం ద్వారా మీరు చివరి స్క్రీన్కు తిరిగి వెళ్ళవచ్చు."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"మీరు చాలా-కుడి అంచు నుండి స్వైప్ చేశారని నిర్ధారించుకోండి."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"మీరు కుడి అంచు నుండి స్క్రీన్ మధ్యలోకి స్వైప్ చేశారని నిర్ధారించుకోని, ఆపై మీ వేలిని ఎత్తండి."</string>
- <string name="back_gesture_feedback_complete_with_follow_up" msgid="8653374779579748392">"మీరు తిరిగి వెనక్కు వెళ్లే సంజ్ఞను పూర్తి చేశారు. తర్వాత, యాప్ల మధ్య ఎలా మారాలో తెలుసుకోండి."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"మీరు తిరిగి వెనక్కు వెళ్లే సంజ్ఞను పూర్తి చేశారు."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"మీరు స్క్రీన్ దిగువకు చాలా దగ్గరగా స్వైప్ చేయలేదని నిర్ధారించుకోండి."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"వెనుక సంజ్ఞ సున్నితత్వం మార్చడానికి, సెట్టింగ్లకు వెళ్లండి"</string>
- <string name="back_gesture_intro_title" msgid="5538727561353262952">"వెనుకకు వెళ్లడానికి ఎడమ వైపు నుండి స్వైప్ చేయండి"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"మీరు ఉన్న చివరి స్క్రీన్కు తిరిగి వెళ్లడానికి, ఎడమ అంచు నుండి స్క్రీన్ మధ్యలోకి స్వైప్ చేయండి."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"మీరు స్క్రీన్ దిగువ అంచు నుండి పైకి స్వైప్ చేశారని నిర్ధారించుకోండి."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"బయలుదేరే ముందు మీరు పాజ్ చేయకుండా చూసుకోండి."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"మీరు నేరుగా పైకి స్వైప్ చేశారని నిర్ధారించుకోండి."</string>
diff --git a/quickstep/res/values-th/strings.xml b/quickstep/res/values-th/strings.xml
index c413e4e..eab0421 100644
--- a/quickstep/res/values-th/strings.xml
+++ b/quickstep/res/values-th/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"แอปที่คาดว่าจะใช้: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"ตรวจสอบว่าปัดจากขอบด้านซ้ายสุด"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"ตรวจสอบว่าปัดจากขอบด้านซ้ายไปตรงกลางหน้าจอ แล้วยกนิ้วขึ้น"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"หรือจะกลับไปหน้าจอล่าสุดโดยปัดจากขอบขวาไปตรงกลางหน้าจอก็ได้"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"ตรวจสอบว่าปัดจากขอบด้านขวาสุด"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"ตรวจสอบว่าปัดจากขอบด้านขวาไปตรงกลางหน้าจอ แล้วยกนิ้วขึ้น"</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"คุณทำท่าทางสัมผัสเพื่อย้อนกลับเสร็จแล้ว ต่อไปดูวิธีสลับแอป"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"คุณทำท่าทางสัมผัสเพื่อย้อนกลับเสร็จแล้ว"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"ตรวจสอบว่าไม่ได้ปัดใกล้กับด้านล่างของหน้าจอมากเกินไป"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"เปลี่ยนความไวของท่าทางสัมผัสเพื่อย้อนกลับได้ที่การตั้งค่า"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"ปัดจากด้านซ้ายเพื่อย้อนกลับ"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"หากต้องการย้อนกลับไปที่หน้าจอล่าสุดที่เปิด ให้ปัดจากขอบด้านซ้ายไปตรงกลางหน้าจอ"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"ตรวจสอบว่าปัดขึ้นจากขอบด้านล่างของหน้าจอ"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"ตรวจสอบว่าไม่มีการหยุดชั่วคราวก่อนยกนิ้วขึ้น"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"ตรวจสอบว่าปัดขึ้นในแนวตรง"</string>
diff --git a/quickstep/res/values-tl/strings.xml b/quickstep/res/values-tl/strings.xml
index b9260dc..e8d38fd 100644
--- a/quickstep/res/values-tl/strings.xml
+++ b/quickstep/res/values-tl/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Hinulaang app: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Tiyaking magsa-swipe ka mula sa pinakadulo sa kaliwa."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Tiyaking mag-swipe mula sa kaliwang gilid papunta sa gitna ng screen, saka iangat ang iyong daliri."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Puwede ka ring mag-swipe mula sa kanan papunta sa gitna para bumalik sa nakaraang screen."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Tiyaking magsa-swipe ka mula sa pinakadulo sa kanan."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Tiyaking mag-swipe mula sa kanang gilid papunta sa gitna ng screen, saka iangat ang iyong daliri."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Nakumpleto mo na ang galaw para bumalik. Susunod, alamin kung paano magpalipat-lipat sa mga app."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Nakumpleto mo na ang galaw para bumalik."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Tiyaking hindi ka magsa-swipe nang masyadong malapit sa ibaba ng screen."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Pumunta sa Settings para baguhin ang sensitivity ng pagbalik"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Mag-swipe mula sa kaliwa para bumalik"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Mag-swipe mula sa kaliwang gilid papunta sa gitna para bumalik sa nakaraang screen na pinuntahan mo."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Tiyaking magsa-swipe ka pataas mula sa pinakaibaba ng screen."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Tiyaking hindi ka magpo-pause bago iangat ang iyong daliri."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Tiyaking magsa-swipe ka nang diretso pataas."</string>
diff --git a/quickstep/res/values-tr/strings.xml b/quickstep/res/values-tr/strings.xml
index 9db5e4a..144ad0f 100644
--- a/quickstep/res/values-tr/strings.xml
+++ b/quickstep/res/values-tr/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Tahmin edilen uygulama: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Ekranın en solundan kaydırdığınızdan emin olun."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Sol kenardan ekranın ortasına doğru kaydırıp bıraktığınızdan emin olun."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"İsterseniz sağ kenardan ekranın ortasına kaydırarak son ekrana dönebilirsiniz."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Ekranın en sağından kaydırdığınızdan emin olun."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Sağ kenardan ekranın ortasına doğru kaydırıp bıraktığınızdan emin olun."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Geri dön hareketini tamamladınız. Sırada, uygulamalar arasında geçiş yapmayı öğrenmek var."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Geri dön hareketini tamamladınız."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Ekranın alt kısmına çok yakın bir şekilde kaydırmadığınızdan emin olun."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Geri hareketinin hassasiyetini değiştirmek için Ayarlar\'a gidin"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Geri gitmek için soldan kaydırın"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Görüntülediğiniz son ekrana dönmek için sol kenardan ekranın ortasına kaydırın."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Ekranın alt kenarından yukarı kaydırdığınızdan emin olun."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Bırakmadan önce parmağınızı duraklatmadığınızdan emin olun."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Düz bir şekilde yukarı kaydırdığınızdan emin olun."</string>
diff --git a/quickstep/res/values-uk/strings.xml b/quickstep/res/values-uk/strings.xml
index 37c8802..e5a2266 100644
--- a/quickstep/res/values-uk/strings.xml
+++ b/quickstep/res/values-uk/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Передбачений додаток: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Проведіть пальцем саме від лівого краю екрана."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Проведіть пальцем від лівого краю до середини екрана й підніміть палець."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Щоб повернутися, проведіть пальцем справа до середини."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Проведіть пальцем саме від правого краю екрана."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Проведіть пальцем від правого краю до середини екрана й підніміть палець."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Ви виконали жест \"Назад\". Тепер дізнайтеся, як переходити між додатками."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Ви виконали жест \"Назад\"."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Не проводьте пальцем надто близько до нижнього краю екрана."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Щоб змінити чутливість жесту \"Назад\", відкрийте налаштування"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Щоб повернутися, проведіть пальцем зліва направо"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Щоб перейти на попередній екран, проведіть пальцем від лівого краю до середини екрана."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Проведіть пальцем угору від нижнього краю екрана."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Не робіть паузу перед тим, як відірвати палець від екрана."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Проводьте пальцем вертикально вгору."</string>
diff --git a/quickstep/res/values-ur/strings.xml b/quickstep/res/values-ur/strings.xml
index 425f498..6447df8 100644
--- a/quickstep/res/values-ur/strings.xml
+++ b/quickstep/res/values-ur/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"پیشن گوئی کردہ ایپ: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"اس بات کو یقینی بنائیں کہ آپ بائیں کنارے سے دور سے سوائپ کریں۔"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"یقینی طور پر بائیں کنارے سے اسکرین کے وسط تک سوائپ کریں اور پھر اپنی انگلی اٹھا لیں۔"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"آپ دائیں کنارے سے اسکرین کے وسط تک سوائپ کر کے پچھلی اسکرین پر واپس بھی جا سکتے ہیں۔"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"اس بات کو یقینی بنائیں کہ آپ دائیں کنارے سے دور سے سوائپ کریں۔"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"یقینی طور پر دائیں کنارے سے اسکرین کے وسط تک سوائپ کریں اور پھر اپنی انگلی اٹھا لیں۔"</string>
- <string name="back_gesture_feedback_complete_with_follow_up" msgid="8653374779579748392">"آپ نے واپس جائیں اشارے کو مکمل کر لیا۔ اس کے بعد ایپس سوئچ کرنے کا طریقہ جانیں۔"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"آپ نے واپس جائیں اشارے کو مکمل کر لیا۔"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"اس بات کو یقینی بنائیں کہ آپ اسکرین کے نچلے حصے سے زیادہ قریب سے سوائپ نہ کریں۔"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"پچھلے اشارے کی حساسیت تبدیل کرنے کے لیے ترتیبات پر جائیں"</string>
- <string name="back_gesture_intro_title" msgid="5538727561353262952">"واپس جانے کے لیے بائیں کنارے سے سوائپ کریں"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"پچھلی اسکرین جس پر آپ تھے اس پر واپس جانے کے لیے بائیں کنارے سے اسکرین کے وسط تک سوائپ کریں۔"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"اس بات کو یقینی بنائیں کہ آپ اسکرین کے نچلے کنارے سے اوپر کی طرف سوائپ کریں۔"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"اس بات کو یقینی بنائیں کہ آپ اپنی انگلی اوپر اٹھانے سے پہلے موقوف نہ کریں۔"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"اس بات کو یقینی بنائیں کہ آپ سیدھا اوپر کی طرف سوائپ کریں۔"</string>
diff --git a/quickstep/res/values-uz/strings.xml b/quickstep/res/values-uz/strings.xml
index d046eb2..462d3aa 100644
--- a/quickstep/res/values-uz/strings.xml
+++ b/quickstep/res/values-uz/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Taklif etilgan ilova: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Barmoqni chapdagi eng chekkadan suring."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Barmoqni ekranning chap chetidan oʻrtasigacha suring va ekrandan uzing."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Shuningdek, oʻng chetdan ekran oʻrtasiga surish orqali ham oxirgi ekranga qaytish mumkin."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Barmoqni oʻngdagi eng chekkadan suring."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Barmoqni ekranning oʻng chetidan oʻrtasigacha suring va ekrandan uzing."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Ortga qaytish ishorasi darsini tamomladingiz. Endi ilovalarni almashtirishni oʻrganamiz."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Ortga qaytish ishorasi darsini tamomladingiz."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Barmoqni ekran pastiga yaqin surmaslikka harakat qiling."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Orqaga ishorasi sezuvchanligi Sozlamalardan oʻzgartiriladi"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Orqaga qaytish uchun chapdan suring"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Oxirgi ekranga qaytish uchun barmoqni ekranning chap chekkasidan oʻrtasigacha suring."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Barmoqni ekranning pastki chetidan yuqoriga suring."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Barmoqni ekrandan pauzasiz qoʻyib uzing."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Barmoqni tik tepaga suring."</string>
diff --git a/quickstep/res/values-vi/strings.xml b/quickstep/res/values-vi/strings.xml
index 9f6eff9..d6241be 100644
--- a/quickstep/res/values-vi/strings.xml
+++ b/quickstep/res/values-vi/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Ứng dụng dự đoán: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Hãy vuốt từ mép ngoài cùng bên trái."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Hãy vuốt từ mép trái tới chính giữa màn hình rồi nhấc ngón tay."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Bạn cũng có thể vuốt từ mép phải tới chính giữa màn hình để quay lại màn hình gần đây nhất."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Hãy vuốt từ mép ngoài cùng bên phải."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Hãy vuốt từ mép phải tới chính giữa màn hình rồi nhấc ngón tay."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Bạn đã thực hiện xong cử chỉ quay lại. Tiếp theo, hãy tìm hiểu cách chuyển đổi ứng dụng."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Bạn đã thực hiện xong cử chỉ quay lại."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Hãy nhớ không được vuốt quá gần phần cuối màn hình."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Để thay đổi độ nhạy của cử chỉ quay lại, hãy vào mục Cài đặt"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Vuốt từ mép trái để quay lại"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Để quay lại màn hình gần đây nhất mà bạn xem, hãy vuốt từ mép trái tới chính giữa màn hình."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Hãy vuốt lên từ mép dưới cùng của màn hình."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Hãy nhớ không được tạm dừng trước khi nhấc ngón tay."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Hãy vuốt thẳng lên."</string>
diff --git a/quickstep/res/values-zh-rCN/strings.xml b/quickstep/res/values-zh-rCN/strings.xml
index e117c0a..21ce064 100644
--- a/quickstep/res/values-zh-rCN/strings.xml
+++ b/quickstep/res/values-zh-rCN/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"预测的应用:<xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"请从最左侧边缘开始滑动。"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"请从左侧边缘滑动到屏幕中间位置后再松开手指。"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"如要返回上一个屏幕,您也可以从右侧边缘滑动到屏幕中间位置。"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"请从最右侧边缘开始滑动。"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"请从右侧边缘滑动到屏幕中间位置后再松开手指。"</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"您完成了“返回”手势教程。接下来了解如何切换应用。"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"您完成了“返回”手势教程。"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"滑动时,手的位置不要太靠近屏幕底部。"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"如要调节“返回”手势的灵敏度,请转到“设置”"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"从左侧向右滑动手指即可返回"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"如要返回您查看过的上一个屏幕,请从左侧边缘滑动到屏幕中间位置。"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"请从屏幕底部边缘向上滑动。"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"在松开手指前请勿停下来。"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"请向上滑动。"</string>
diff --git a/quickstep/res/values-zh-rHK/strings.xml b/quickstep/res/values-zh-rHK/strings.xml
index 01d5748..d3e6c03 100644
--- a/quickstep/res/values-zh-rHK/strings.xml
+++ b/quickstep/res/values-zh-rHK/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"預測應用程式:<xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"請從螢幕左側邊緣滑動。"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"請從螢幕左側邊緣往中央滑動,然後放開手指。"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"從螢幕右側往中央滑動亦可返回上一個畫面。"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"請從螢幕右側邊緣滑動。"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"請從螢幕右側邊緣往中央滑動,然後放開手指"</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"您已完成「返回」手勢的教學課程。接下來一起瞭解如何切換應用程式。"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"您已完成「返回」手勢的教學課程。"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"滑動時,手的位置不要太接近螢幕底部。"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"如要變更「返回」手勢的敏感度,請前往「設定」"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"從螢幕左側往右滑動即可返回"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"如要返回上一個畫面,請從螢幕左側往中央滑動。"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"請從螢幕底部邊緣向上滑動。"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"放開手指前請勿停下來。"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"請向上滑動。"</string>
diff --git a/quickstep/res/values-zh-rTW/strings.xml b/quickstep/res/values-zh-rTW/strings.xml
index b21cacd..492ae14 100644
--- a/quickstep/res/values-zh-rTW/strings.xml
+++ b/quickstep/res/values-zh-rTW/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"預測的應用程式:<xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"請從螢幕左側邊緣滑動。"</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"請從螢幕左側邊緣往中央滑動,然後放開手指。"</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"從螢幕右側往中央滑動也可返回上一個畫面。"</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"請從螢幕右側邊緣滑動。"</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"請從螢幕右側邊緣往中央滑動,然後放開手指。"</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"你已完成「返回」手勢的教學課程。接著,一起來瞭解如何切換應用程式。"</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"你已完成「返回」手勢的教學課程。"</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"滑動時,手的位置不要太接近螢幕底部。"</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"如要變更「返回」手勢的敏感度,請前往「設定」"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"從螢幕左側往右滑動即可返回"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"如要返回先前的畫面,請從螢幕左側往中央滑動。"</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"請從螢幕底部邊緣向上滑動。"</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"放開手指前請勿停下來。"</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"請向上滑動。"</string>
diff --git a/quickstep/res/values-zu/strings.xml b/quickstep/res/values-zu/strings.xml
index 469a424..35edaef 100644
--- a/quickstep/res/values-zu/strings.xml
+++ b/quickstep/res/values-zu/strings.xml
@@ -47,15 +47,23 @@
<string name="hotseat_prediction_content_description" msgid="4582028296938078419">"Uhlelo lokusebenza olubikezelwe: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<string name="back_gesture_feedback_swipe_too_far_from_left_edge" msgid="340972404868601012">"Qiniseka ukuthi uswayiphela ekudeni emngceleni ongakwesobunxele."</string>
<string name="back_gesture_feedback_cancelled_left_edge" msgid="6671316150388702530">"Qiniseka ukuthi uswayipha kusuka emngceleni okwesobunxele kuya phakathi kwesikrini bese uyadedela."</string>
- <string name="back_right_gesture_intro_subtitle" msgid="8106594510099968430">"Futhi ungabuyela emuva esikrinini sangaphambilini ngokuswayipha kusuka kunqenqema langakwesokudla ukuya maphakathi nesikrini."</string>
<string name="back_gesture_feedback_swipe_too_far_from_right_edge" msgid="4306700023773832353">"Qiniseka ukuthi uswayiphela ekudeni emngceleni ongakwesokudla."</string>
<string name="back_gesture_feedback_cancelled_right_edge" msgid="4951916546256902552">"Qiniseka ukuthi uswayipha kusuka emngceleni okwesokudla kuya phakathi kwesikrini bese uyadedela."</string>
- <string name="back_gesture_feedback_complete_with_overview_follow_up" msgid="8653374779579748392">"Ukuqedile ukuthinta kokubuyela emuva. Ngokulandelayo, funda indlela yokushintsha ama-app."</string>
+ <!-- no translation found for back_gesture_feedback_complete_with_back_right_follow_up (2100639504811809267) -->
+ <skip />
+ <!-- no translation found for back_gesture_feedback_complete_with_overview_follow_up (9176400654037014471) -->
+ <skip />
<string name="back_gesture_feedback_complete_without_follow_up" msgid="6405649621667113830">"Ukuqedile ukuthinta kokubuyela emuva."</string>
<string name="back_gesture_feedback_swipe_in_nav_bar" msgid="1148198467090405643">"Qiniseka ukuba awuswayipheli eduze kakhulu naphansi kwesikrini."</string>
<string name="back_gesture_tutorial_confirm_subtitle" msgid="5181305411668713250">"Ukuze ushintshe ukuzwela kokuthinta emuva, iya Kumasethingi"</string>
- <string name="back_left_gesture_intro_title" msgid="5538727561353262952">"Swayipha kusuka kwesobunxele ukuze ubuyele emuva"</string>
- <string name="back_left_gesture_intro_subtitle" msgid="8139048712004626940">"Ukuze ubuyele esikrinini sangaphambilini lapho ubukade ukhona, swayipha kusuka kunqenqema lwesokunxele ukuya maphakathi nesikrini."</string>
+ <!-- no translation found for back_left_gesture_intro_title (5197184481779330065) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_title (7431951986971898074) -->
+ <skip />
+ <!-- no translation found for back_left_gesture_intro_subtitle (7672761376577628602) -->
+ <skip />
+ <!-- no translation found for back_right_gesture_intro_subtitle (2735828029197816509) -->
+ <skip />
<string name="home_gesture_feedback_swipe_too_far_from_edge" msgid="1446774096007065298">"Qiniseka ukuthi uswayiphela phezulu kusuka emngceleni ophansi wesikrini."</string>
<string name="home_gesture_feedback_overview_detected" msgid="1557523944897393013">"Qiniseka ukuthi awumisi ngaphambi kokudedela."</string>
<string name="home_gesture_feedback_wrong_swipe_direction" msgid="6993979358080825438">"Qiniseka ukuthi uswayiphela ngqo phezulu."</string>
diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml
index ffd83b1..af4e19e 100644
--- a/quickstep/res/values/dimens.xml
+++ b/quickstep/res/values/dimens.xml
@@ -16,7 +16,7 @@
<resources>
<dimen name="task_thumbnail_icon_size">48dp</dimen>
- <dimen name="task_thumbnail_icon_size_grid">32dp</dimen>
+ <dimen name="task_thumbnail_icon_size_grid">40dp</dimen>
<!-- For screens without rounded corners -->
<dimen name="task_corner_radius_small">2dp</dimen>
<!-- For Launchers that want to override the default dialog corner radius -->
@@ -37,10 +37,10 @@
<dimen name="overview_actions_horizontal_margin">16dp</dimen>
<dimen name="overview_grid_top_margin">77dp</dimen>
- <dimen name="overview_grid_bottom_margin">90dp</dimen>
+ <dimen name="overview_grid_bottom_margin">70dp</dimen>
<dimen name="overview_grid_side_margin">54dp</dimen>
<dimen name="overview_grid_row_spacing">42dp</dimen>
- <dimen name="overview_grid_focus_vertical_margin">90dp</dimen>
+ <dimen name="overview_grid_focus_vertical_margin">40dp</dimen>
<dimen name="split_placeholder_size">110dp</dimen>
<!-- These speeds are in dp/s -->
diff --git a/quickstep/robolectric_tests/src/com/android/launcher3/model/WidgetsPredicationUpdateTaskTest.java b/quickstep/robolectric_tests/src/com/android/launcher3/model/WidgetsPredicationUpdateTaskTest.java
index 7c97b93..5471e49 100644
--- a/quickstep/robolectric_tests/src/com/android/launcher3/model/WidgetsPredicationUpdateTaskTest.java
+++ b/quickstep/robolectric_tests/src/com/android/launcher3/model/WidgetsPredicationUpdateTaskTest.java
@@ -48,6 +48,7 @@
import com.android.launcher3.shadows.ShadowDeviceFlag;
import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.IntArray;
+import com.android.launcher3.util.IntSet;
import com.android.launcher3.util.ItemInfoMatcher;
import com.android.launcher3.util.LauncherModelHelper;
import com.android.launcher3.util.ViewOnDrawExecutor;
@@ -239,8 +240,8 @@
}
@Override
- public int getPageToBindSynchronously() {
- return 0;
+ public IntSet getPagesToBindSynchronously() {
+ return IntSet.wrap(0);
}
@Override
@@ -259,7 +260,7 @@
public void finishFirstPageBind(ViewOnDrawExecutor executor) { }
@Override
- public void finishBindingItems(int pageBoundFirst) { }
+ public void finishBindingItems(IntSet pagesBoundFirst) { }
@Override
public void preAddApps() { }
@@ -287,7 +288,7 @@
public void bindAllWidgets(List<WidgetsListBaseEntry> widgets) { }
@Override
- public void onPageBoundSynchronously(int page) { }
+ public void onPagesBoundSynchronously(IntSet pages) { }
@Override
public void executeOnNextDraw(ViewOnDrawExecutor executor) { }
diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
index c13225a..2a86e81 100644
--- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
+++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java
@@ -55,6 +55,7 @@
import com.android.launcher3.taskbar.TaskbarStateHandler;
import com.android.launcher3.uioverrides.RecentsViewStateController;
import com.android.launcher3.util.ActivityOptionsWrapper;
+import com.android.launcher3.util.IntSet;
import com.android.launcher3.util.ObjectWrapper;
import com.android.launcher3.util.UiThreadHelper;
import com.android.quickstep.RecentsModel;
@@ -411,8 +412,8 @@
}
@Override
- public void finishBindingItems(int pageBoundFirst) {
- super.finishBindingItems(pageBoundFirst);
+ public void finishBindingItems(IntSet pagesBoundFirst) {
+ super.finishBindingItems(pagesBoundFirst);
// Instantiate and initialize WellbeingModel now that its loading won't interfere with
// populating workspace.
// TODO: Find a better place for this
diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java
index 3aa758f..8813891 100644
--- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java
+++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java
@@ -35,7 +35,6 @@
import static com.android.launcher3.config.FeatureFlags.SEPARATE_RECENTS_ACTIVITY;
import static com.android.launcher3.dragndrop.DragLayer.ALPHA_INDEX_TRANSITIONS;
import static com.android.launcher3.statehandlers.DepthController.DEPTH;
-import static com.android.quickstep.TaskUtils.taskIsATargetWithMode;
import static com.android.quickstep.TaskViewUtils.findTaskViewToLaunch;
import static com.android.systemui.shared.system.QuickStepContract.getWindowCornerRadius;
import static com.android.systemui.shared.system.QuickStepContract.supportsRoundedCornersOnWindows;
@@ -1000,7 +999,15 @@
}
private boolean launcherIsATargetWithMode(RemoteAnimationTargetCompat[] targets, int mode) {
- return taskIsATargetWithMode(targets, mLauncher.getTaskId(), mode);
+ for (RemoteAnimationTargetCompat target : targets) {
+ if (target.mode == mode && target.taskInfo != null
+ // Compare component name instead of task-id because transitions will promote
+ // the target up to the root task while getTaskId returns the leaf.
+ && target.taskInfo.topActivity.equals(mLauncher.getComponentName())) {
+ return true;
+ }
+ }
+ return false;
}
/**
diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java
index c2d107c..ee57dd9 100644
--- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java
@@ -222,7 +222,7 @@
}
public boolean isDraggingItem() {
- return mTaskbarView.isDraggingItem();
+ return mContext.getDragController().isDragging();
}
/**
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
index 4ba0ee0..10ffefb 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java
@@ -28,9 +28,7 @@
import android.content.Intent;
import android.content.pm.LauncherApps;
import android.graphics.PixelFormat;
-import android.graphics.Point;
import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
import android.os.Process;
import android.os.SystemProperties;
import android.util.Log;
@@ -43,22 +41,14 @@
import android.widget.Toast;
import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.DeviceProfile;
-import com.android.launcher3.DragSource;
-import com.android.launcher3.DropTarget;
import com.android.launcher3.LauncherSettings.Favorites;
import com.android.launcher3.R;
-import com.android.launcher3.dragndrop.DragController;
-import com.android.launcher3.dragndrop.DragOptions;
-import com.android.launcher3.dragndrop.DragView;
-import com.android.launcher3.dragndrop.DraggableView;
import com.android.launcher3.folder.Folder;
import com.android.launcher3.folder.FolderIcon;
import com.android.launcher3.model.data.FolderInfo;
-import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.model.data.WorkspaceItemInfo;
import com.android.launcher3.taskbar.TaskbarNavButtonController.TaskbarButton;
import com.android.launcher3.touch.ItemClickHandler;
@@ -89,10 +79,13 @@
private final LayoutInflater mLayoutInflater;
private final TaskbarDragLayer mDragLayer;
private final TaskbarIconController mIconController;
- private final MyDragController mDragController;
+ private final TaskbarDragController mDragController;
private final WindowManager mWindowManager;
private WindowManager.LayoutParams mWindowLayoutParams;
+ private boolean mIsFullscreen;
+ // The size we should return to when we call setTaskbarWindowFullscreen(false)
+ private int mLastRequestedNonFullscreenHeight;
private final SysUINavigationMode.Mode mNavMode;
private final TaskbarNavButtonController mNavButtonController;
@@ -114,8 +107,8 @@
mIsSafeModeEnabled = TraceHelper.allowIpcs("isSafeMode",
() -> getPackageManager().isSafeMode());
- mOnTaskbarIconLongClickListener =
- new TaskbarDragController(this)::startSystemDragOnLongClick;
+ mDragController = new TaskbarDragController(this);
+ mOnTaskbarIconLongClickListener = mDragController::startDragOnLongClick;
mOnTaskbarIconClickListener = this::onTaskbarIconClicked;
float taskbarIconSize = getResources().getDimension(R.dimen.taskbar_icon_size);
@@ -126,7 +119,6 @@
mDragLayer = (TaskbarDragLayer) mLayoutInflater
.inflate(R.layout.taskbar, null, false);
mIconController = new TaskbarIconController(this, mDragLayer);
- mDragController = new MyDragController(this);
Display display = windowContext.getDisplay();
Context c = display.getDisplayId() == Display.DEFAULT_DISPLAY
@@ -136,9 +128,10 @@
}
public void init() {
+ mLastRequestedNonFullscreenHeight = mDeviceProfile.taskbarSize;
mWindowLayoutParams = new WindowManager.LayoutParams(
MATCH_PARENT,
- mDeviceProfile.taskbarSize,
+ mLastRequestedNonFullscreenHeight,
TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
@@ -160,17 +153,6 @@
mWindowManager.addView(mDragLayer, mWindowLayoutParams);
}
- /**
- * Updates the TaskbarContainer height (pass deviceProfile.taskbarSize to reset).
- */
- public void setTaskbarWindowHeight(int height) {
- if (mWindowLayoutParams.height == height) {
- return;
- }
- mWindowLayoutParams.height = height;
- mWindowManager.updateViewLayout(mDragLayer, mWindowLayoutParams);
- }
-
public boolean canShowNavButtons() {
return ENABLE_THREE_BUTTON_TASKBAR && mNavMode == Mode.THREE_BUTTONS;
}
@@ -196,7 +178,7 @@
}
@Override
- public DragController getDragController() {
+ public TaskbarDragController getDragController() {
return mDragController;
}
@@ -243,8 +225,30 @@
/**
* Updates the TaskbarContainer to MATCH_PARENT vs original Taskbar size.
*/
- protected void setTaskbarWindowFullscreen(boolean fullscreen) {
- setTaskbarWindowHeight(fullscreen ? MATCH_PARENT : getDeviceProfile().taskbarSize);
+ public void setTaskbarWindowFullscreen(boolean fullscreen) {
+ mIsFullscreen = fullscreen;
+ setTaskbarWindowHeight(fullscreen ? MATCH_PARENT : mLastRequestedNonFullscreenHeight);
+ }
+
+ /**
+ * Updates the TaskbarContainer height (pass deviceProfile.taskbarSize to reset).
+ */
+ public void setTaskbarWindowHeight(int height) {
+ if (mWindowLayoutParams.height == height) {
+ return;
+ }
+ if (height != MATCH_PARENT) {
+ mLastRequestedNonFullscreenHeight = height;
+ if (mIsFullscreen) {
+ // We still need to be fullscreen, so defer any change to our height until we call
+ // setTaskbarWindowFullscreen(false). For example, this could happen when dragging
+ // from the gesture region, as the drag will cancel the gesture and reset launcher's
+ // state, which in turn normally would reset the taskbar window height as well.
+ return;
+ }
+ }
+ mWindowLayoutParams.height = height;
+ mWindowManager.updateViewLayout(mDragLayer, mWindowLayoutParams);
}
protected void onTaskbarIconClicked(View view) {
@@ -307,27 +311,4 @@
AbstractFloatingView.closeAllOpenViews(this);
}
-
- private static class MyDragController extends DragController<TaskbarActivityContext> {
- MyDragController(TaskbarActivityContext activity) {
- super(activity);
- }
-
- @Override
- protected DragView startDrag(@Nullable Drawable drawable, @Nullable View view,
- DraggableView originalView, int dragLayerX, int dragLayerY, DragSource source,
- ItemInfo dragInfo, Point dragOffset, Rect dragRegion, float initialDragViewScale,
- float dragViewScaleOnDrop, DragOptions options) {
- return null;
- }
-
- @Override
- protected void exitDrag() {
- }
-
- @Override
- protected DropTarget getDefaultDropTarget(int[] dropCoordinates) {
- return null;
- }
- }
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java
index ee44927..855c507 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java
@@ -20,19 +20,35 @@
import android.content.ClipData;
import android.content.ClipDescription;
-import android.content.Context;
import android.content.Intent;
import android.content.pm.LauncherApps;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Point;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
import android.os.UserHandle;
import android.view.DragEvent;
+import android.view.MotionEvent;
import android.view.View;
+import androidx.annotation.Nullable;
+
+import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.BubbleTextView;
+import com.android.launcher3.DragSource;
+import com.android.launcher3.DropTarget;
import com.android.launcher3.LauncherSettings;
import com.android.launcher3.R;
+import com.android.launcher3.accessibility.DragViewStateAnnouncer;
+import com.android.launcher3.dragndrop.DragController;
+import com.android.launcher3.dragndrop.DragDriver;
+import com.android.launcher3.dragndrop.DragOptions;
+import com.android.launcher3.dragndrop.DragView;
+import com.android.launcher3.dragndrop.DraggableView;
+import com.android.launcher3.graphics.DragPreviewProvider;
+import com.android.launcher3.icons.FastBitmapDrawable;
+import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.model.data.WorkspaceItemInfo;
import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.system.ClipDescriptionCompat;
@@ -41,14 +57,20 @@
/**
* Handles long click on Taskbar items to start a system drag and drop operation.
*/
-public class TaskbarDragController {
+public class TaskbarDragController extends DragController<TaskbarActivityContext> {
- private final Context mContext;
private final int mDragIconSize;
+ private final int[] mTempXY = new int[2];
- public TaskbarDragController(Context context) {
- mContext = context;
- Resources resources = mContext.getResources();
+ // Where the initial touch was relative to the dragged icon.
+ private int mRegistrationX;
+ private int mRegistrationY;
+
+ private boolean mIsSystemDragInProgress;
+
+ public TaskbarDragController(TaskbarActivityContext activity) {
+ super(activity);
+ Resources resources = mActivity.getResources();
mDragIconSize = resources.getDimensionPixelSize(R.dimen.taskbar_icon_drag_icon_size);
}
@@ -57,18 +79,146 @@
* generate the ClipDescription and Intent.
* @return Whether {@link View#startDragAndDrop} started successfully.
*/
- protected boolean startSystemDragOnLongClick(View view) {
+ protected boolean startDragOnLongClick(View view) {
if (!(view instanceof BubbleTextView)) {
return false;
}
BubbleTextView btv = (BubbleTextView) view;
- View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view) {
+
+ mActivity.setTaskbarWindowFullscreen(true);
+ view.post(() -> {
+ startInternalDrag(btv);
+ btv.setVisibility(INVISIBLE);
+ });
+ return true;
+ }
+
+ private void startInternalDrag(BubbleTextView btv) {
+ float iconScale = 1f;
+ Drawable icon = btv.getIcon();
+ if (icon instanceof FastBitmapDrawable) {
+ iconScale = ((FastBitmapDrawable) icon).getAnimatedScale();
+ }
+
+ // Clear the pressed state if necessary
+ btv.clearFocus();
+ btv.setPressed(false);
+ btv.clearPressedBackground();
+
+ final DragPreviewProvider previewProvider = new DragPreviewProvider(btv);
+ final Drawable drawable = previewProvider.createDrawable();
+ final float scale = previewProvider.getScaleAndPosition(drawable, mTempXY);
+ int dragLayerX = mTempXY[0];
+ int dragLayerY = mTempXY[1];
+
+ Rect dragRect = new Rect();
+ btv.getSourceVisualDragBounds(dragRect);
+ dragLayerY += dragRect.top;
+
+ DragOptions dragOptions = new DragOptions();
+ // TODO: open popup/pre-drag
+ // PopupContainerWithArrow popupContainer = PopupContainerWithArrow.showForIcon(view);
+ // if (popupContainer != null) {
+ // dragOptions.preDragCondition = popupContainer.createPreDragCondition();
+ // }
+
+ startDrag(
+ drawable,
+ /* view = */ null,
+ /* originalView = */ btv,
+ dragLayerX,
+ dragLayerY,
+ (View target, DropTarget.DragObject d, boolean success) -> {} /* DragSource */,
+ (WorkspaceItemInfo) btv.getTag(),
+ /* dragVisualizeOffset = */ null,
+ dragRect,
+ scale * iconScale,
+ scale,
+ dragOptions);
+ }
+
+ @Override
+ protected DragView startDrag(@Nullable Drawable drawable, @Nullable View view,
+ DraggableView originalView, int dragLayerX, int dragLayerY, DragSource source,
+ ItemInfo dragInfo, Point dragOffset, Rect dragRegion, float initialDragViewScale,
+ float dragViewScaleOnDrop, DragOptions options) {
+ mOptions = options;
+
+ mRegistrationX = mMotionDown.x - dragLayerX;
+ mRegistrationY = mMotionDown.y - dragLayerY;
+
+ final int dragRegionLeft = dragRegion == null ? 0 : dragRegion.left;
+ final int dragRegionTop = dragRegion == null ? 0 : dragRegion.top;
+
+ mLastDropTarget = null;
+
+ mDragObject = new DropTarget.DragObject(mActivity.getApplicationContext());
+ mDragObject.originalView = originalView;
+
+ mIsInPreDrag = mOptions.preDragCondition != null
+ && !mOptions.preDragCondition.shouldStartDrag(0);
+
+ float scalePx = mDragIconSize - dragRegion.width();
+ final DragView dragView = mDragObject.dragView = new TaskbarDragView(
+ mActivity,
+ drawable,
+ mRegistrationX,
+ mRegistrationY,
+ initialDragViewScale,
+ dragViewScaleOnDrop,
+ scalePx);
+ dragView.setItemInfo(dragInfo);
+ mDragObject.dragComplete = false;
+
+ mDragObject.xOffset = mMotionDown.x - (dragLayerX + dragRegionLeft);
+ mDragObject.yOffset = mMotionDown.y - (dragLayerY + dragRegionTop);
+
+ mDragDriver = DragDriver.create(this, mOptions, /* secondaryEventConsumer = */ ev -> {});
+ if (!mOptions.isAccessibleDrag) {
+ mDragObject.stateAnnouncer = DragViewStateAnnouncer.createFor(dragView);
+ }
+
+ mDragObject.dragSource = source;
+ mDragObject.dragInfo = dragInfo;
+ mDragObject.originalDragInfo = mDragObject.dragInfo.makeShallowCopy();
+
+ if (dragRegion != null) {
+ dragView.setDragRegion(new Rect(dragRegion));
+ }
+
+ dragView.show(mLastTouch.x, mLastTouch.y);
+ mDistanceSinceScroll = 0;
+
+ if (!mIsInPreDrag) {
+ callOnDragStart();
+ } else if (mOptions.preDragCondition != null) {
+ mOptions.preDragCondition.onPreDragStart(mDragObject);
+ }
+
+ handleMoveEvent(mLastTouch.x, mLastTouch.y);
+
+ return dragView;
+ }
+
+ @Override
+ protected void callOnDragStart() {
+ super.callOnDragStart();
+ // Pre-drag has ended, start the global system drag.
+ AbstractFloatingView.closeAllOpenViews(mActivity);
+ startSystemDrag((BubbleTextView) mDragObject.originalView);
+ }
+
+ private void startSystemDrag(BubbleTextView btv) {
+ View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(btv) {
+
@Override
public void onProvideShadowMetrics(Point shadowSize, Point shadowTouchPoint) {
shadowSize.set(mDragIconSize, mDragIconSize);
- // TODO: should be based on last touch point on the icon.
- shadowTouchPoint.set(shadowSize.x / 2, shadowSize.y / 2);
+ // The registration point was taken before the icon scaled to mDragIconSize, so
+ // offset the registration to where the touch is on the new size.
+ int offset = (mDragIconSize - btv.getIconSize()) / 2;
+ shadowTouchPoint.set(mRegistrationX + offset, mRegistrationY + offset);
}
@Override
@@ -81,12 +231,12 @@
}
};
- Object tag = view.getTag();
+ Object tag = btv.getTag();
ClipDescription clipDescription = null;
Intent intent = null;
if (tag instanceof WorkspaceItemInfo) {
WorkspaceItemInfo item = (WorkspaceItemInfo) tag;
- LauncherApps launcherApps = mContext.getSystemService(LauncherApps.class);
+ LauncherApps launcherApps = mActivity.getSystemService(LauncherApps.class);
clipDescription = new ClipDescription(item.title,
new String[] {
item.itemType == LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT
@@ -116,28 +266,89 @@
if (clipDescription != null && intent != null) {
ClipData clipData = new ClipData(clipDescription, new ClipData.Item(intent));
- view.setOnDragListener(getDraggedViewDragListener());
- return view.startDragAndDrop(clipData, shadowBuilder, null /* localState */,
- View.DRAG_FLAG_GLOBAL | View.DRAG_FLAG_OPAQUE);
+ if (btv.startDragAndDrop(clipData, shadowBuilder, null /* localState */,
+ View.DRAG_FLAG_GLOBAL | View.DRAG_FLAG_OPAQUE)) {
+ onSystemDragStarted();
+ }
}
- return false;
}
- /**
- * Hide the original Taskbar item while it is being dragged.
- */
- private View.OnDragListener getDraggedViewDragListener() {
- return (view, dragEvent) -> {
+ private void onSystemDragStarted() {
+ mIsSystemDragInProgress = true;
+ mActivity.getDragLayer().setOnDragListener((view, dragEvent) -> {
switch (dragEvent.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
- view.setVisibility(INVISIBLE);
+ // Return true to tell system we are interested in events, so we get DRAG_ENDED.
return true;
case DragEvent.ACTION_DRAG_ENDED:
- view.setVisibility(VISIBLE);
- view.setOnDragListener(null);
+ mIsSystemDragInProgress = false;
+ maybeOnDragEnd();
return true;
}
return false;
- };
+ });
+ }
+
+ @Override
+ public boolean isDragging() {
+ return super.isDragging() || mIsSystemDragInProgress;
+ }
+
+ /**
+ * Whether we started dragging the given view and the drag is still in progress.
+ */
+ public boolean isDraggingView(View child) {
+ return isDragging() && mDragObject != null && mDragObject.originalView == child;
+ }
+
+ private void maybeOnDragEnd() {
+ if (!isDragging()) {
+ ((View) mDragObject.originalView).setVisibility(VISIBLE);
+ }
+ }
+
+ @Override
+ protected void callOnDragEnd() {
+ super.callOnDragEnd();
+ maybeOnDragEnd();
+ }
+
+ @Override
+ protected float getX(MotionEvent ev) {
+ // We will resize to fill the screen while dragging, so use screen coordinates. This ensures
+ // we start at the correct position even though touch down is on the smaller DragLayer size.
+ return ev.getRawX();
+ }
+
+ @Override
+ protected float getY(MotionEvent ev) {
+ // We will resize to fill the screen while dragging, so use screen coordinates. This ensures
+ // we start at the correct position even though touch down is on the smaller DragLayer size.
+ return ev.getRawY();
+ }
+
+ @Override
+ protected Point getClampedDragLayerPos(float x, float y) {
+ // No need to clamp, as we will take up the entire screen.
+ mTmpPoint.set(Math.round(x), Math.round(y));
+ return mTmpPoint;
+ }
+
+ @Override
+ protected void exitDrag() {
+ if (mDragObject != null) {
+ mActivity.getDragLayer().removeView(mDragObject.dragView);
+ }
+ }
+
+ @Override
+ public void addDropTarget(DropTarget target) {
+ // No-op as Taskbar currently doesn't support any drop targets internally.
+ // Note: if we do add internal DropTargets, we'll still need to ignore Folder.
+ }
+
+ @Override
+ protected DropTarget getDefaultDropTarget(int[] dropCoordinates) {
+ return null;
}
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayer.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayer.java
index 45ec911..2469f95 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayer.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayer.java
@@ -40,7 +40,7 @@
private final int mFolderMargin;
private final Paint mTaskbarBackgroundPaint;
- private TaskbarIconController.Callbacks mControllerCallbacks;
+ private TaskbarIconController.TaskbarDragLayerCallbacks mControllerCallbacks;
private TaskbarView mTaskbarView;
private final OnComputeInsetsListener mTaskbarInsetsComputer = this::onComputeTaskbarInsets;
@@ -69,10 +69,11 @@
@Override
public void recreateControllers() {
- mControllers = new TouchController[0];
+ mControllers = new TouchController[] {mActivity.getDragController()};
}
- public void init(TaskbarIconController.Callbacks callbacks, TaskbarView taskbarView) {
+ public void init(TaskbarIconController.TaskbarDragLayerCallbacks callbacks,
+ TaskbarView taskbarView) {
mControllerCallbacks = callbacks;
mTaskbarView = taskbarView;
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragView.java
new file mode 100644
index 0000000..cf28eff
--- /dev/null
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragView.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3.taskbar;
+
+import android.graphics.drawable.Drawable;
+
+import com.android.launcher3.R;
+import com.android.launcher3.dragndrop.DragView;
+
+/**
+ * A DragView drawn/used by the Taskbar. Note that this is only for the internal drag-and-drop,
+ * while the pre-drag is still in progress (i.e. when the long press popup is still open). After
+ * that ends, we switch to a system drag and drop view instead.
+ */
+public class TaskbarDragView extends DragView<TaskbarActivityContext> {
+ public TaskbarDragView(TaskbarActivityContext launcher, Drawable drawable, int registrationX,
+ int registrationY, float initialScale, float scaleOnDrop, float finalScaleDps) {
+ super(launcher, drawable, registrationX, registrationY, initialScale, scaleOnDrop,
+ finalScaleDps);
+ }
+
+ @Override
+ public void animateTo(int toTouchX, int toTouchY, Runnable onCompleteRunnable, int duration) {
+ Runnable onAnimationEnd = () -> {
+ if (onCompleteRunnable != null) {
+ onCompleteRunnable.run();
+ }
+ mActivity.getDragLayer().removeView(this);
+ };
+
+ duration = Math.max(duration,
+ getResources().getInteger(R.integer.config_dropAnimMinDuration));
+
+ animate()
+ .translationX(toTouchX - mRegistrationX)
+ .translationY(toTouchY - mRegistrationY)
+ .scaleX(mScaleOnDrop)
+ .scaleY(mScaleOnDrop)
+ .withEndAction(onAnimationEnd)
+ .setDuration(duration)
+ .start();
+ }
+}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarIconController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarIconController.java
index 683a5b9..cf0694b 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarIconController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarIconController.java
@@ -62,10 +62,11 @@
ButtonProvider buttonProvider = new ButtonProvider(mActivity);
mImeBarView.init(buttonProvider);
- mTaskbarView.construct(clickListener, longClickListener, buttonProvider);
+ mTaskbarView.init(new TaskbarViewCallbacks(), clickListener, longClickListener,
+ buttonProvider);
mTaskbarView.getLayoutParams().height = mActivity.getDeviceProfile().taskbarSize;
- mDragLayer.init(new Callbacks(), mTaskbarView);
+ mDragLayer.init(new TaskbarDragLayerCallbacks(), mTaskbarView);
}
public void onDestroy() {
@@ -102,7 +103,7 @@
/**
* Callbacks for {@link TaskbarDragLayer} to interact with the icon controller
*/
- public class Callbacks {
+ public class TaskbarDragLayerCallbacks {
/**
* Called to update the touchable insets
@@ -160,4 +161,16 @@
mImeBarView.setVisibility(alpha == 0 ? GONE : VISIBLE);
}
}
+
+ /**
+ * Callbacks for {@link TaskbarView} to interact with the icon controller
+ */
+ public class TaskbarViewCallbacks {
+ /**
+ * Returns whether no other controller is currently handling the given View's visibility.
+ */
+ public boolean canUpdateViewVisibility(View child) {
+ return !mActivity.getDragController().isDraggingView(child);
+ }
+ }
}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
index c6573a6..ac70358 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
@@ -24,7 +24,6 @@
import android.graphics.Rect;
import android.graphics.RectF;
import android.util.AttributeSet;
-import android.view.DragEvent;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
@@ -35,7 +34,6 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.BubbleTextView;
import com.android.launcher3.Insettable;
import com.android.launcher3.R;
@@ -62,7 +60,8 @@
private final TaskbarActivityContext mActivityContext;
- // Initialized in TaskbarController constructor.
+ // Initialized in init.
+ private TaskbarIconController.TaskbarViewCallbacks mControllerCallbacks;
private View.OnClickListener mIconClickListener;
private View.OnLongClickListener mIconLongClickListener;
@@ -75,7 +74,6 @@
// Prevents dispatching touches to children if true
private boolean mTouchEnabled = true;
- private boolean mIsDraggingItem;
// Only non-null when the corresponding Folder is open.
private @Nullable FolderIcon mLeaveBehindFolderIcon;
@@ -118,8 +116,10 @@
mHotseatIconsContainer = findViewById(R.id.hotseat_icons_layout);
}
- protected void construct(OnClickListener clickListener, OnLongClickListener longClickListener,
- ButtonProvider buttonProvider) {
+ protected void init(TaskbarIconController.TaskbarViewCallbacks callbacks,
+ OnClickListener clickListener, OnLongClickListener longClickListener,
+ ButtonProvider buttonProvider) {
+ mControllerCallbacks = callbacks;
mIconClickListener = clickListener;
mIconLongClickListener = longClickListener;
mButtonProvider = buttonProvider;
@@ -225,6 +225,9 @@
}
private void updateHotseatItemVisibility(View hotseatView) {
+ if (!mControllerCallbacks.canUpdateViewVisibility(hotseatView)) {
+ return;
+ }
hotseatView.setVisibility(
hotseatView.getTag() != null ? VISIBLE : (mAreHolesAllowed ? INVISIBLE : GONE));
}
@@ -349,24 +352,6 @@
mSystemButtonContainer.addView(mButtonProvider.getRecents(), buttonParams);
}
- @Override
- public boolean onDragEvent(DragEvent event) {
- switch (event.getAction()) {
- case DragEvent.ACTION_DRAG_STARTED:
- mIsDraggingItem = true;
- AbstractFloatingView.closeAllOpenViews(mActivityContext);
- return true;
- case DragEvent.ACTION_DRAG_ENDED:
- mIsDraggingItem = false;
- break;
- }
- return super.onDragEvent(event);
- }
-
- public boolean isDraggingItem() {
- return mIsDraggingItem;
- }
-
/**
* @return The bounding box of where the hotseat elements are relative to this TaskbarView.
*/
diff --git a/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java b/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java
index 996d36a..6cad3dd 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java
@@ -106,8 +106,7 @@
float clearAllButtonAlpha = state.areElementsVisible(mLauncher, CLEAR_ALL_BUTTON) ? 1 : 0;
propertySetter.setFloat(mRecentsView.getClearAllButton(), ClearAllButton.VISIBILITY_ALPHA,
clearAllButtonAlpha, LINEAR);
- float overviewButtonAlpha = state.areElementsVisible(mLauncher, OVERVIEW_ACTIONS)
- && mRecentsView.shouldShowOverviewActionsForState(state) ? 1 : 0;
+ float overviewButtonAlpha = state.areElementsVisible(mLauncher, OVERVIEW_ACTIONS) ? 1 : 0;
propertySetter.setFloat(mLauncher.getActionsView().getVisibilityAlpha(),
MultiValueAlpha.VALUE, overviewButtonAlpha, config.getInterpolator(
ANIM_OVERVIEW_ACTIONS_FADE, LINEAR));
diff --git a/quickstep/src/com/android/quickstep/BaseActivityInterface.java b/quickstep/src/com/android/quickstep/BaseActivityInterface.java
index 2696cbe..ebf422c 100644
--- a/quickstep/src/com/android/quickstep/BaseActivityInterface.java
+++ b/quickstep/src/com/android/quickstep/BaseActivityInterface.java
@@ -198,17 +198,18 @@
Rect gridRect = new Rect();
calculateGridSize(context, dp, gridRect);
- int verticalMargin = res.getDimensionPixelSize(
- R.dimen.overview_grid_focus_vertical_margin);
- float taskHeight = gridRect.height() - verticalMargin * 2;
+ int verticalMargin = Math.max(
+ res.getDimensionPixelSize(R.dimen.overview_grid_focus_vertical_margin),
+ res.getDimensionPixelSize(R.dimen.overview_actions_height));
+ float taskHeight =
+ gridRect.height() - verticalMargin * 2 - dp.overviewTaskThumbnailTopMarginPx;
PointF taskDimension = getTaskDimension(context, dp);
- float scale = taskHeight / Math.max(taskDimension.x, taskDimension.y);
+ float scale = taskHeight / taskDimension.y;
int outWidth = Math.round(scale * taskDimension.x);
int outHeight = Math.round(scale * taskDimension.y);
- int gravity = Gravity.CENTER_VERTICAL;
- gravity |= orientedState.getRecentsRtlSetting(res) ? Gravity.RIGHT : Gravity.LEFT;
+ int gravity = Gravity.CENTER;
Gravity.apply(gravity, outWidth, outHeight, gridRect, outRect);
} else {
int taskMargin = dp.overviewTaskMarginPx;
@@ -297,8 +298,7 @@
float rowHeight = (gridRect.height() - rowSpacing) / 2f;
PointF taskDimension = getTaskDimension(context, dp);
- float scale = (rowHeight - dp.overviewTaskThumbnailTopMarginPx) / Math.max(
- taskDimension.x, taskDimension.y);
+ float scale = (rowHeight - dp.overviewTaskThumbnailTopMarginPx) / taskDimension.y;
int outWidth = Math.round(scale * taskDimension.x);
int outHeight = Math.round(scale * taskDimension.y);
diff --git a/quickstep/src/com/android/quickstep/fallback/FallbackRecentsStateController.java b/quickstep/src/com/android/quickstep/fallback/FallbackRecentsStateController.java
index f0364eb..52083bb 100644
--- a/quickstep/src/com/android/quickstep/fallback/FallbackRecentsStateController.java
+++ b/quickstep/src/com/android/quickstep/fallback/FallbackRecentsStateController.java
@@ -77,9 +77,7 @@
float clearAllButtonAlpha = state.hasClearAllButton() ? 1 : 0;
setter.setFloat(mRecentsView.getClearAllButton(), ClearAllButton.VISIBILITY_ALPHA,
clearAllButtonAlpha, LINEAR);
- float overviewButtonAlpha =
- state.hasOverviewActions() && mRecentsView.shouldShowOverviewActionsForState(state)
- ? 1 : 0;
+ float overviewButtonAlpha = state.hasOverviewActions() ? 1 : 0;
setter.setFloat(mActivity.getActionsView().getVisibilityAlpha(),
MultiValueAlpha.VALUE, overviewButtonAlpha, LINEAR);
diff --git a/quickstep/src/com/android/quickstep/fallback/FallbackRecentsView.java b/quickstep/src/com/android/quickstep/fallback/FallbackRecentsView.java
index ac3fb27..efce650 100644
--- a/quickstep/src/com/android/quickstep/fallback/FallbackRecentsView.java
+++ b/quickstep/src/com/android/quickstep/fallback/FallbackRecentsView.java
@@ -26,14 +26,12 @@
import android.content.Context;
import android.os.Build;
import android.util.AttributeSet;
-import android.util.Log;
import androidx.annotation.Nullable;
import com.android.launcher3.anim.AnimatorPlaybackController;
import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.statemanager.StateManager.StateListener;
-import com.android.launcher3.testing.TestProtocol;
import com.android.quickstep.FallbackActivityInterface;
import com.android.quickstep.GestureState;
import com.android.quickstep.RecentsActivity;
@@ -122,6 +120,12 @@
}
}
+ @Nullable
+ @Override
+ protected TaskView getHomeTaskView() {
+ return mHomeTaskInfo != null ? getTaskView(mHomeTaskInfo.taskId) : null;
+ }
+
@Override
protected boolean shouldAddStubTaskView(RunningTaskInfo runningTaskInfo) {
if (mHomeTaskInfo != null && runningTaskInfo != null &&
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 342313d..4b0c08a 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -32,7 +32,6 @@
import static com.android.launcher3.Utilities.squaredHypot;
import static com.android.launcher3.Utilities.squaredTouchSlop;
import static com.android.launcher3.anim.Interpolators.ACCEL;
-import static com.android.launcher3.anim.Interpolators.ACCEL_0_5;
import static com.android.launcher3.anim.Interpolators.ACCEL_0_75;
import static com.android.launcher3.anim.Interpolators.ACCEL_DEACCEL;
import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
@@ -343,6 +342,7 @@
private static final int ADDITION_TASK_DURATION = 200;
private static final float INITIAL_DISMISS_TRANSLATION_INTERPOLATION_OFFSET = 0.55f;
private static final float ADDITIONAL_DISMISS_TRANSLATION_INTERPOLATION_OFFSET = 0.05f;
+ private static final float ANIMATION_DISMISS_PROGRESS_MIDPOINT = 0.5f;
private static final int SNAP_TO_PAGE_VIBRATION_PRIMITIVE =
Utilities.ATLEAST_S ? VibrationEffect.Composition.PRIMITIVE_LOW_TICK : -1;
@@ -361,6 +361,13 @@
protected SurfaceTransactionApplier mSyncTransactionApplier;
protected int mTaskWidth;
protected int mTaskHeight;
+ // Used to position the top of a task in the top row of the grid
+ private float mTaskGridVerticalDiff;
+ // The vertical space one grid task takes + space between top and bottom row.
+ private float mTopBottomRowHeightDiff;
+ // mTaskGridVerticalDiff and mTopBottomRowHeightDiff summed together provides the top
+ // position for bottom row of grid tasks.
+
protected final TransformParams mLiveTileParams = new TransformParams();
protected final TaskViewSimulator mLiveTileTaskViewSimulator;
protected final Rect mLastComputedTaskSize = new Rect();
@@ -500,7 +507,6 @@
protected boolean mRunningTaskTileHidden;
private Task mTmpRunningTask;
protected int mFocusedTaskId = -1;
- private float mFocusedTaskRatio;
private boolean mRunningTaskIconScaledDown = false;
@@ -825,7 +831,7 @@
// taskview for entering split screen, we only pretend to dismiss the task
if (child instanceof TaskView && child != mSplitHiddenTaskView) {
TaskView taskView = (TaskView) child;
- mHasVisibleTaskData.delete(taskView.getTask().key.id);
+ mHasVisibleTaskData.delete(taskView.getTaskId());
mTaskViewPool.recycle(taskView);
mActionsView.updateHiddenFlags(HIDDEN_NO_TASKS, getTaskViewCount() == 0);
}
@@ -932,7 +938,7 @@
public TaskView getTaskView(int taskId) {
for (int i = 0; i < getTaskViewCount(); i++) {
TaskView taskView = getTaskViewAt(i);
- if (taskView.hasTaskId(taskId)) {
+ if (taskView.getTaskId() == taskId) {
return taskView;
}
}
@@ -1133,6 +1139,9 @@
final TaskView taskView = (TaskView) getChildAt(pageIndex);
taskView.bind(task, mOrientationState);
}
+ if (mFocusedTaskId == -1 && getTaskViewCount() > 0) {
+ mFocusedTaskId = getTaskViewAt(0).getTaskId();
+ }
updateTaskSize();
if (mNextPage == INVALID_PAGE) {
@@ -1189,7 +1198,7 @@
public void resetTaskVisuals() {
for (int i = getTaskViewCount() - 1; i >= 0; i--) {
TaskView taskView = getTaskViewAt(i);
- if (mIgnoreResetTaskId != taskView.getTask().key.id) {
+ if (mIgnoreResetTaskId != taskView.getTaskId()) {
taskView.resetViewTransforms();
taskView.setStableAlpha(mContentAlpha);
taskView.setFullscreenProgress(mFullscreenProgress);
@@ -1308,6 +1317,11 @@
mSizeStrategy.calculateGridTaskSize(mActivity, mActivity.getDeviceProfile(),
mLastComputedGridTaskSize, mOrientationHandler);
+ mTaskGridVerticalDiff = mLastComputedGridTaskSize.top - mLastComputedTaskSize.top;
+ mTopBottomRowHeightDiff =
+ mLastComputedGridTaskSize.height() + dp.overviewTaskThumbnailTopMarginPx
+ + mRowSpacing;
+
// Force TaskView to update size from thumbnail
updateTaskSize();
@@ -1338,6 +1352,15 @@
* Updates TaskView scaling and translation required to support variable width.
*/
private void updateTaskSize() {
+ updateTaskSize(false);
+ }
+
+ /**
+ * Updates TaskView scaling and translation required to support variable width.
+ *
+ * @param isTaskDismissal indicates if update was called due to task dismissal
+ */
+ private void updateTaskSize(boolean isTaskDismissal) {
final int taskCount = getTaskViewCount();
if (taskCount == 0) {
return;
@@ -1358,7 +1381,7 @@
mClearAllButton.setFullscreenTranslationPrimary(accumulatedTranslationX);
- updateGridProperties();
+ updateGridProperties(isTaskDismissal);
}
public void getTaskSize(Rect outRect) {
@@ -1373,19 +1396,7 @@
public Point getSelectedTaskSize() {
mSizeStrategy.calculateTaskSize(mActivity, mActivity.getDeviceProfile(), mTempRect,
mOrientationHandler);
- int taskWidth = mTempRect.width();
- int taskHeight = mTempRect.height();
- if (mRunningTaskId != -1) {
- int boxLength = Math.max(taskWidth, taskHeight);
- if (mFocusedTaskRatio > 1) {
- taskWidth = boxLength;
- taskHeight = (int) (boxLength / mFocusedTaskRatio);
- } else {
- taskWidth = (int) (boxLength * mFocusedTaskRatio);
- taskHeight = boxLength;
- }
- }
- return new Point(taskWidth, taskHeight);
+ return new Point(mTempRect.width(), mTempRect.height());
}
/** Gets the last computed task size */
@@ -1417,13 +1428,7 @@
loadVisibleTaskData(TaskView.FLAG_UPDATE_ALL);
// After scrolling, update ActionsView's visibility.
- TaskView focusedTaskView = getFocusedTaskView();
- if (focusedTaskView != null) {
- float scrollDiff = Math.abs(getScrollForPage(indexOfChild(focusedTaskView))
- - mOrientationHandler.getPrimaryScroll(this));
- float delta = (mGridSideMargin - scrollDiff) / (float) mGridSideMargin;
- mActionsView.getScrollAlpha().setValue(Utilities.boundToRange(delta, 0, 1));
- }
+ updateActionsViewScrollAlpha();
}
// Update the high res thumbnail loader state
@@ -1431,6 +1436,20 @@
return scrolling;
}
+ private void updateActionsViewScrollAlpha() {
+ float scrollAlpha = 1f;
+ if (showAsGrid()) {
+ TaskView focusedTaskView = getFocusedTaskView();
+ if (focusedTaskView != null) {
+ float scrollDiff = Math.abs(getScrollForPage(indexOfChild(focusedTaskView))
+ - mOrientationHandler.getPrimaryScroll(this));
+ float delta = (mGridSideMargin - scrollDiff) / (float) mGridSideMargin;
+ scrollAlpha = Utilities.boundToRange(delta, 0, 1);
+ }
+ }
+ mActionsView.getScrollAlpha().setValue(scrollAlpha);
+ }
+
/**
* Scales and adjusts translation of adjacent pages as if on a curved carousel.
*/
@@ -1573,7 +1592,7 @@
setCurrentTask(-1);
mIgnoreResetTaskId = -1;
mTaskListChangeId = -1;
- mFocusedTaskId = -1;
+ mFocusedTaskId = getTaskViewCount() > 0 ? getTaskViewAt(0).getTaskId() : -1;
if (mRecentsAnimationController != null) {
if (LIVE_TILE.get() && mEnableDrawingLiveTile) {
@@ -1615,11 +1634,8 @@
return getTaskView(mFocusedTaskId);
}
- /**
- * Returns the width to height ratio of the focused {@link TaskView}.
- */
- public float getFocusedTaskRatio() {
- return mFocusedTaskRatio;
+ protected @Nullable TaskView getHomeTaskView() {
+ return null;
}
/**
@@ -1754,11 +1770,7 @@
}
setRunningTaskHidden(false);
animateUpRunningTaskIconScale();
-
- if (mCurrentGestureEndTarget == GestureState.GestureEndTarget.RECENTS
- && (!showAsGrid() || getFocusedTaskView() != null)) {
- animateActionsViewIn();
- }
+ animateActionsViewIn();
mCurrentGestureEndTarget = null;
}
@@ -1800,9 +1812,7 @@
boolean runningTaskTileHidden = mRunningTaskTileHidden;
int runningTaskId = runningTaskInfo == null ? -1 : runningTaskInfo.taskId;
setCurrentTask(runningTaskId);
- if (mActivity.getDeviceProfile().isTablet && FeatureFlags.ENABLE_OVERVIEW_GRID.get()) {
- setFocusedTask(runningTaskId);
- }
+ mFocusedTaskId = runningTaskId;
setCurrentPage(getRunningTaskIndex());
setRunningTaskViewShowScreenshot(false);
setRunningTaskHidden(runningTaskTileHidden);
@@ -1831,15 +1841,6 @@
}
/**
- * Sets the focused task id and store the width to height ratio of the focused task.
- */
- protected void setFocusedTask(int focusedTaskId) {
- mFocusedTaskId = focusedTaskId;
- mFocusedTaskRatio =
- mLastComputedTaskSize.width() / (float) mLastComputedTaskSize.height();
- }
-
- /**
* Hides the tile associated with {@link #mRunningTaskId}
*/
public void setRunningTaskHidden(boolean isHidden) {
@@ -1888,13 +1889,6 @@
anim.start();
}
- private void animateActionsViewOut() {
- ObjectAnimator anim = ObjectAnimator.ofFloat(
- mActionsView.getVisibilityAlpha(), MultiValueAlpha.VALUE, 1, 0);
- anim.setDuration(TaskView.SCALE_ICON_DURATION);
- anim.start();
- }
-
public void animateUpRunningTaskIconScale() {
mRunningTaskIconScaledDown = false;
TaskView firstTask = getRunningTaskView();
@@ -1928,20 +1922,8 @@
return;
}
- final int boxLength = Math.max(mLastComputedGridTaskSize.width(),
- mLastComputedGridTaskSize.height());
int taskTopMargin = mActivity.getDeviceProfile().overviewTaskThumbnailTopMarginPx;
- /*
- * taskGridVerticalDiff is used to position the top of a task in the top row of the grid
- * heightOffset is the vertical space one grid task takes + space between top and
- * bottom row
- * Summed together they provide the top position for bottom row of grid tasks
- */
- final float taskGridVerticalDiff =
- mLastComputedGridTaskSize.top - mLastComputedTaskSize.top;
- final float heightOffset = (boxLength + taskTopMargin) + mRowSpacing;
-
int topRowWidth = 0;
int bottomRowWidth = 0;
float topAccumulatedTranslationX = 0;
@@ -1961,6 +1943,8 @@
int snappedTaskRowWidth = 0;
int snappedPage = getNextPage();
TaskView snappedTaskView = getTaskViewAtByAbsoluteIndex(snappedPage);
+ TaskView homeTaskView = getHomeTaskView();
+ TaskView nextFocusedTaskView = null;
if (!isTaskDismissal) {
mTopRowIdSet.clear();
@@ -1998,15 +1982,20 @@
// calculate the distance focused task need to shift.
focusedTaskShift += mIsRtl ? taskWidthAndSpacing : -taskWidthAndSpacing;
}
- int taskId = taskView.getTask().key.id;
+ int taskId = taskView.getTaskId();
boolean isTopRow = isTaskDismissal ? mTopRowIdSet.contains(taskId)
: topRowWidth <= bottomRowWidth;
if (isTopRow) {
- topRowWidth += taskWidthAndSpacing;
+ if (homeTaskView != null && nextFocusedTaskView == null) {
+ // TaskView will be focused when swipe up, don't count towards row width.
+ nextFocusedTaskView = taskView;
+ } else {
+ topRowWidth += taskWidthAndSpacing;
+ }
topSet.add(i);
mTopRowIdSet.add(taskId);
- taskView.setGridTranslationY(taskGridVerticalDiff);
+ taskView.setGridTranslationY(mTaskGridVerticalDiff);
// Move horizontally into empty space.
float widthOffset = 0;
@@ -2025,7 +2014,7 @@
bottomSet.add(i);
// Move into bottom row.
- taskView.setGridTranslationY(heightOffset + taskGridVerticalDiff);
+ taskView.setGridTranslationY(mTopBottomRowHeightDiff + mTaskGridVerticalDiff);
// Move horizontally into empty space.
float widthOffset = 0;
@@ -2108,8 +2097,10 @@
// of swiping up after quick switch.
if (snappedTaskView != null) {
int distanceFromClearAll = longRowWidth - snappedTaskRowWidth;
+ // ClearAllButton should be off screen when snapped task is in its snapped position.
int minimumDistance =
- mLastComputedGridSize.width() - snappedTaskView.getLayoutParams().width;
+ mTaskWidth - snappedTaskView.getLayoutParams().width
+ + (mLastComputedGridSize.width() - mTaskWidth) / 2;
if (distanceFromClearAll < minimumDistance) {
int distanceDifference = minimumDistance - distanceFromClearAll;
clearAllTotalTranslationX += mIsRtl ? -distanceDifference : distanceDifference;
@@ -2129,8 +2120,8 @@
if (taskView1 == null || taskView2 == null) {
return false;
}
- int taskId1 = taskView1.getTask().key.id;
- int taskId2 = taskView2.getTask().key.id;
+ int taskId1 = taskView1.getTaskId();
+ int taskId2 = taskView2.getTaskId();
if (taskId1 == mFocusedTaskId || taskId2 == mFocusedTaskId) {
return false;
}
@@ -2259,8 +2250,16 @@
}
}
- public PendingAnimation createTaskDismissAnimation(TaskView taskView, boolean animateTaskView,
- boolean shouldRemoveTask, long duration) {
+ /**
+ * Creates a {@link PendingAnimation} for dismissing the specified {@link TaskView}.
+ * @param dismissedTaskView the {@link TaskView} to be dismissed
+ * @param animateTaskView whether the {@link TaskView} to be dismissed should be animated
+ * @param shouldRemoveTask whether the associated {@link Task} should be removed from
+ * ActivityManager after dismissal
+ * @param duration duration of the animation
+ */
+ public PendingAnimation createTaskDismissAnimation(TaskView dismissedTaskView,
+ boolean animateTaskView, boolean shouldRemoveTask, long duration) {
if (mPendingAnimation != null) {
mPendingAnimation.createPlaybackController().dispatchOnCancel();
}
@@ -2271,30 +2270,65 @@
return anim;
}
+ boolean showAsGrid = showAsGrid();
+ int taskCount = getTaskViewCount();
+ int dismissedIndex = indexOfChild(dismissedTaskView);
+ int dismissedTaskId = dismissedTaskView.getTaskId();
+
+ // Grid specific properties.
+ boolean isFocusedTaskDismissed = false;
+ TaskView nextFocusedTaskView = null;
+ boolean nextFocusedTaskFromTop = false;
+ float dismissedTaskWidth = 0;
+ float nextFocusedTaskWidth = 0;
+
+ // Non-grid specific properties.
int[] oldScroll = new int[count];
int[] newScroll = new int[count];
- getPageScrolls(oldScroll, false, SIMPLE_SCROLL_LOGIC);
- getPageScrolls(newScroll, false, (v) -> v.getVisibility() != GONE && v != taskView);
- int taskCount = getTaskViewCount();
int scrollDiffPerPage = 0;
- if (count > 1) {
- scrollDiffPerPage = Math.abs(oldScroll[1] - oldScroll[0]);
- }
- int draggedIndex = indexOfChild(taskView);
-
- boolean isFocusedTaskDismissed = taskView.getTask().key.id == mFocusedTaskId;
- if (isFocusedTaskDismissed && showAsGrid()) {
- anim.setFloat(mActionsView, VIEW_ALPHA, 0, clampToProgress(ACCEL_0_5, 0, 0.5f));
- }
- float dismissedTaskWidth = taskView.getLayoutParams().width + mPageSpacing;
boolean needsCurveUpdates = false;
+
+ if (showAsGrid) {
+ dismissedTaskWidth = dismissedTaskView.getLayoutParams().width + mPageSpacing;
+ isFocusedTaskDismissed = dismissedTaskId == mFocusedTaskId;
+ if (isFocusedTaskDismissed) {
+ nextFocusedTaskFromTop =
+ mTopRowIdSet.size() > 0 && mTopRowIdSet.size() >= (taskCount - 1) / 2f;
+ // Pick the next focused task from the preferred row.
+ for (int i = 0; i < taskCount; i++) {
+ TaskView taskView = getTaskViewAt(i);
+ if (taskView == dismissedTaskView) {
+ continue;
+ }
+ boolean isTopRow = mTopRowIdSet.contains(taskView.getTaskId());
+ if ((nextFocusedTaskFromTop && isTopRow
+ || (!nextFocusedTaskFromTop && !isTopRow))) {
+ nextFocusedTaskView = taskView;
+ break;
+ }
+ }
+ if (nextFocusedTaskView != null) {
+ nextFocusedTaskWidth =
+ nextFocusedTaskView.getLayoutParams().width + mPageSpacing;
+ }
+ }
+ } else {
+ getPageScrolls(oldScroll, false, SIMPLE_SCROLL_LOGIC);
+ getPageScrolls(newScroll, false,
+ v -> v.getVisibility() != GONE && v != dismissedTaskView);
+ if (count > 1) {
+ scrollDiffPerPage = Math.abs(oldScroll[1] - oldScroll[0]);
+ }
+ }
+
+ int distanceFromDismissedTask = 0;
for (int i = 0; i < count; i++) {
View child = getChildAt(i);
- if (child == taskView) {
+ if (child == dismissedTaskView) {
if (animateTaskView) {
- addDismissedTaskAnimations(taskView, duration, anim);
+ addDismissedTaskAnimations(dismissedTaskView, duration, anim);
}
- } else if (!showAsGrid()) {
+ } else if (!showAsGrid) {
// Compute scroll offsets from task dismissal for animation.
// If we just take newScroll - oldScroll, everything to the right of dragged task
// translates to the left. We need to offset this in some cases:
@@ -2303,15 +2337,15 @@
// - Current page is rightmost page (leftmost for RTL)
// - Dragging an adjacent page on the left side (right side for RTL)
int offset = mIsRtl ? scrollDiffPerPage : 0;
- if (mCurrentPage == draggedIndex) {
+ if (mCurrentPage == dismissedIndex) {
int lastPage = taskCount - 1;
if (mCurrentPage == lastPage) {
offset += mIsRtl ? -scrollDiffPerPage : scrollDiffPerPage;
}
} else {
- // Dragging an adjacent page.
+ // Dismissing an adjacent page.
int negativeAdjacent = mCurrentPage - 1; // (Right in RTL, left in LTR)
- if (draggedIndex == negativeAdjacent) {
+ if (dismissedIndex == negativeAdjacent) {
offset += mIsRtl ? -scrollDiffPerPage : scrollDiffPerPage;
}
}
@@ -2324,28 +2358,53 @@
float additionalDismissDuration =
ADDITIONAL_DISMISS_TRANSLATION_INTERPOLATION_OFFSET * Math.abs(
- i - draggedIndex);
+ i - dismissedIndex);
anim.setFloat(child, translationProperty, scrollDiff, clampToProgress(LINEAR,
Utilities.boundToRange(INITIAL_DISMISS_TRANSLATION_INTERPOLATION_OFFSET
+ additionalDismissDuration, 0f, 1f), 1));
needsCurveUpdates = true;
}
} else if (child instanceof TaskView) {
+ TaskView taskView = (TaskView) child;
+ if (isFocusedTaskDismissed) {
+ if (!isSameGridRow(taskView, nextFocusedTaskView)) {
+ continue;
+ }
+ } else {
+ if (i < dismissedIndex || !isSameGridRow(taskView, dismissedTaskView)) {
+ continue;
+ }
+ }
// Animate task with index >= dismissed index and in the same row as the
- // dismissed index, or if the dismissed task was the focused task. Offset
- // successive task dismissal durations for a staggered effect.
- if (isFocusedTaskDismissed || (i >= draggedIndex && isSameGridRow((TaskView) child,
- taskView))) {
- FloatProperty translationProperty =
- ((TaskView) child).getPrimaryDismissTranslationProperty();
- float additionalDismissDuration =
- ADDITIONAL_DISMISS_TRANSLATION_INTERPOLATION_OFFSET * Math.abs(
- i - draggedIndex);
- anim.setFloat(child, translationProperty,
- !mIsRtl ? -dismissedTaskWidth : dismissedTaskWidth,
- clampToProgress(LINEAR, Utilities.boundToRange(
- INITIAL_DISMISS_TRANSLATION_INTERPOLATION_OFFSET
- + additionalDismissDuration, 0f, 1f), 1));
+ // dismissed index or next focused index. Offset successive task dismissal
+ // durations for a staggered effect.
+ float animationStartProgress = Utilities.boundToRange(
+ INITIAL_DISMISS_TRANSLATION_INTERPOLATION_OFFSET
+ + ADDITIONAL_DISMISS_TRANSLATION_INTERPOLATION_OFFSET
+ * ++distanceFromDismissedTask, 0f, 1f);
+ if (taskView == nextFocusedTaskView) {
+ // Enlarge the task to be focused next, and translate into focus position.
+ float scale = mTaskWidth / (float) mLastComputedGridTaskSize.width();
+ anim.setFloat(taskView, TaskView.SNAPSHOT_SCALE, scale,
+ clampToProgress(LINEAR, animationStartProgress, 1f));
+ anim.setFloat(taskView, taskView.getPrimaryDismissTranslationProperty(),
+ mIsRtl ? dismissedTaskWidth : -dismissedTaskWidth,
+ clampToProgress(LINEAR, animationStartProgress, 1f));
+ float secondaryTranslation = -mTaskGridVerticalDiff;
+ if (!nextFocusedTaskFromTop) {
+ secondaryTranslation -= mTopBottomRowHeightDiff;
+ }
+ anim.setFloat(taskView, taskView.getSecondaryDissmissTranslationProperty(),
+ secondaryTranslation,
+ clampToProgress(LINEAR, animationStartProgress, 1f));
+ anim.setFloat(taskView, TaskView.FOCUS_TRANSITION, 0f,
+ clampToProgress(LINEAR, 0f, ANIMATION_DISMISS_PROGRESS_MIDPOINT));
+ } else {
+ float primaryTranslation =
+ isFocusedTaskDismissed ? nextFocusedTaskWidth : dismissedTaskWidth;
+ anim.setFloat(taskView, taskView.getPrimaryDismissTranslationProperty(),
+ mIsRtl ? primaryTranslation : -primaryTranslation,
+ clampToProgress(LINEAR, animationStartProgress, 1f));
}
}
}
@@ -2356,14 +2415,15 @@
// Add a tiny bit of translation Z, so that it draws on top of other views
if (animateTaskView) {
- taskView.setTranslationZ(0.1f);
+ dismissedTaskView.setTranslationZ(0.1f);
}
mPendingAnimation = anim;
+ final TaskView finalNextFocusedTaskView = nextFocusedTaskView;
mPendingAnimation.addEndListener(new Consumer<Boolean>() {
@Override
public void accept(Boolean success) {
- if (LIVE_TILE.get() && mEnableDrawingLiveTile && taskView.isRunningTask()
+ if (LIVE_TILE.get() && mEnableDrawingLiveTile && dismissedTaskView.isRunningTask()
&& success) {
finishRecentsAnimation(true /* toHome */, () -> onEnd(success));
} else {
@@ -2375,11 +2435,11 @@
private void onEnd(boolean success) {
if (success) {
if (shouldRemoveTask) {
- if (taskView.getTask() != null) {
+ if (dismissedTaskView.getTask() != null) {
UI_HELPER_EXECUTOR.execute(() -> ActivityManagerWrapper.getInstance()
- .removeTask(taskView.getTask().key.id));
+ .removeTask(dismissedTaskId));
mActivity.getStatsLogManager().logger()
- .withItemInfo(taskView.getItemInfo())
+ .withItemInfo(dismissedTaskView.getItemInfo())
.log(LAUNCHER_TASK_DISMISS_SWIPE_UP);
}
}
@@ -2389,31 +2449,31 @@
resetTaskVisuals();
int pageToSnapTo = mCurrentPage;
- // Snap to start if focused task was dismissed, as after quick switch it could
- // be at any page but the focused task always displays at the start.
- if (taskView.getTask().key.id == mFocusedTaskId) {
- pageToSnapTo = mTaskViewStartIndex;
- } else if (draggedIndex < pageToSnapTo || pageToSnapTo == (getTaskViewCount()
- - 1)) {
+ if (finalNextFocusedTaskView != null) {
+ pageToSnapTo = indexOfChild(finalNextFocusedTaskView);
+ }
+ if (dismissedIndex < pageToSnapTo || pageToSnapTo == (taskCount - 1)) {
pageToSnapTo -= 1;
}
- removeViewInLayout(taskView);
+ removeViewInLayout(dismissedTaskView);
+ mTopRowIdSet.remove(dismissedTaskId);
- if (getTaskViewCount() == 0) {
+ if (taskCount == 1) {
removeViewInLayout(mClearAllButton);
startHome();
} else {
- snapToPageImmediately(pageToSnapTo);
- // Grid got messed up, reapply.
- updateGridProperties(true);
- if (showAsGrid() && getFocusedTaskView() == null
- && mActionsView.getVisibilityAlpha().getValue() == 1) {
- animateActionsViewOut();
+ // Update focus task and its size.
+ if (finalNextFocusedTaskView != null) {
+ mFocusedTaskId = finalNextFocusedTaskView.getTaskId();
+ mTopRowIdSet.remove(mFocusedTaskId);
+ finalNextFocusedTaskView.animateIconScaleAndDimIntoView();
+ setCurrentPage(pageToSnapTo);
}
+ updateTaskSize(true);
+ // Update scroll and snap to page.
+ updateScrollSynchronously();
+ snapToPageImmediately(pageToSnapTo);
}
- // Update the layout synchronously so that the position of next view is
- // immediately available.
- onLayout(false /* changed */, getLeft(), getTop(), getRight(), getBottom());
}
onDismissAnimationEnds();
mPendingAnimation = null;
@@ -2449,7 +2509,8 @@
int taskCount = getTaskViewCount();
for (int i = 0; i < taskCount; i++) {
TaskView taskView = getTaskViewAt(i);
- if (taskView == mSplitHiddenTaskView && taskView != getFocusedTaskView()) {
+ if (taskView == mSplitHiddenTaskView
+ && !(showAsGrid() && taskView == getFocusedTaskView())) {
// Case where the hidden task view would have overlapped w/ placeholder,
// but because it's going to hide we don't care
// TODO (b/187312247) edge case for thumbnails that are off screen but scroll on
@@ -2594,7 +2655,7 @@
mContentAlpha = alpha;
for (int i = getTaskViewCount() - 1; i >= 0; i--) {
TaskView child = getTaskViewAt(i);
- if (!mRunningTaskTileHidden || child.getTask().key.id != mRunningTaskId) {
+ if (!mRunningTaskTileHidden || child.getTaskId() != mRunningTaskId) {
child.setStableAlpha(alpha);
}
}
@@ -3419,9 +3480,13 @@
}
/**
- * Updates page scroll synchronously and layout child views.
+ * Updates page scroll synchronously after measure and layout child views.
*/
public void updateScrollSynchronously() {
+ // onMeasure is needed to update child's measured width which is used in scroll calculation,
+ // in case TaskView sizes has changed when being focused/unfocused.
+ onMeasure(makeMeasureSpec(getMeasuredWidth(), EXACTLY),
+ makeMeasureSpec(getMeasuredHeight(), EXACTLY));
onLayout(false /* changed */, getLeft(), getTop(), getRight(), getBottom());
updateMinAndMaxScrollX();
}
@@ -3619,6 +3684,7 @@
public void setOverviewGridEnabled(boolean overviewGridEnabled) {
if (mOverviewGridEnabled != overviewGridEnabled) {
mOverviewGridEnabled = overviewGridEnabled;
+ updateActionsViewScrollAlpha();
// Request layout to ensure scroll position is recalculated with updated mGridProgress.
requestLayout();
}
@@ -3756,11 +3822,6 @@
&& mCurrentGestureEndTarget != GestureState.GestureEndTarget.RECENTS;
}
- public boolean shouldShowOverviewActionsForState(STATE_TYPE state) {
- return !state.displayOverviewTasksAsGrid(mActivity.getDeviceProfile())
- || getFocusedTaskView() != null;
- }
-
/**
* Used to register callbacks for when our empty message state changes.
*
diff --git a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
index 02888a1..1bfd430 100644
--- a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
@@ -411,7 +411,9 @@
*/
public static class PreviewPositionHelper {
- // Contains the portion of the thumbnail that is clipped when fullscreen progress = 0.
+ private static final RectF EMPTY_RECT_F = new RectF();
+
+ // Contains the portion of the thumbnail that is unclipped when fullscreen progress = 1.
private final RectF mClippedInsets = new RectF();
private final Matrix mMatrix = new Matrix();
private boolean mIsOrientationChanged;
@@ -616,15 +618,17 @@
break;
}
mClippedInsets.offsetTo(newLeftInset * scale, newTopInset * scale);
- mMatrix.postTranslate(translateX - mClippedInsets.left,
- translateY - mClippedInsets.top);
+ mMatrix.postTranslate(translateX, translateY);
+ if (TaskView.FULL_THUMBNAIL) {
+ mMatrix.postTranslate(-mClippedInsets.left, -mClippedInsets.top);
+ }
}
/**
* Insets to used for clipping the thumbnail (in case it is drawing outside its own space)
*/
public RectF getInsetsToDrawInFullscreen() {
- return mClippedInsets;
+ return TaskView.FULL_THUMBNAIL ? mClippedInsets : EMPTY_RECT_F;
}
}
}
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index b2a7b1b..ea37d70 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -147,6 +147,11 @@
*/
public static final boolean CLIP_STATUS_AND_NAV_BARS = false;
+ /**
+ * Should the TaskView scale down to fit whole thumbnail in fullscreen.
+ */
+ public static final boolean FULL_THUMBNAIL = false;
+
private static final float EDGE_SCALE_DOWN_FACTOR_CAROUSEL = 0.03f;
private static final float EDGE_SCALE_DOWN_FACTOR_GRID = 0.00f;
@@ -167,7 +172,7 @@
private static final List<Rect> SYSTEM_GESTURE_EXCLUSION_RECT =
Collections.singletonList(new Rect());
- private static final FloatProperty<TaskView> FOCUS_TRANSITION =
+ public static final FloatProperty<TaskView> FOCUS_TRANSITION =
new FloatProperty<TaskView>("focusTransition") {
@Override
public void setValue(TaskView taskView, float v) {
@@ -336,6 +341,19 @@
}
};
+ public static final FloatProperty<TaskView> SNAPSHOT_SCALE =
+ new FloatProperty<TaskView>("snapshotScale") {
+ @Override
+ public void setValue(TaskView taskView, float v) {
+ taskView.setSnapshotScale(v);
+ }
+
+ @Override
+ public Float get(TaskView taskView) {
+ return taskView.mSnapshotView.getScaleX();
+ }
+ };
+
private final TaskOutlineProvider mOutlineProvider;
private Task mTask;
@@ -524,8 +542,8 @@
return mTask;
}
- public boolean hasTaskId(int taskId) {
- return mTask != null && mTask.key != null && mTask.key.id == taskId;
+ public int getTaskId() {
+ return mTask != null && mTask.key != null ? mTask.key.id : -1;
}
public TaskThumbnailView getThumbnail() {
@@ -847,6 +865,7 @@
mSplitSelectTranslationX = 0f;
mDismissTranslationY = mTaskOffsetTranslationY = mTaskResistanceTranslationY =
mSplitSelectTranslationY = 0f;
+ setSnapshotScale(1f);
applyTranslationX();
applyTranslationY();
setTranslationZ(0);
@@ -926,6 +945,9 @@
if (mActivity.getDeviceProfile().isTablet && FeatureFlags.ENABLE_OVERVIEW_GRID.get()) {
setPivotX(getLayoutDirection() == LAYOUT_DIRECTION_RTL ? 0 : right - left);
setPivotY(mSnapshotView.getTop());
+ mSnapshotView.setPivotX(
+ getLayoutDirection() == LAYOUT_DIRECTION_RTL ? 0 : right - left);
+ mSnapshotView.setPivotY(0);
} else {
setPivotX((right - left) * 0.5f);
setPivotY(mSnapshotView.getTop() + mSnapshotView.getHeight() * 0.5f);
@@ -956,6 +978,11 @@
return mFullscreenScale;
}
+ private void setSnapshotScale(float dismissScale) {
+ mSnapshotView.setScaleX(dismissScale);
+ mSnapshotView.setScaleY(dismissScale);
+ }
+
/**
* Moves TaskView between carousel and 2 row grid.
*
@@ -1349,46 +1376,26 @@
int boxWidth;
int boxHeight;
- float thumbnailRatio;
boolean isFocusedTask = isFocusedTask();
if (isFocusedTask) {
// Task will be focused and should use focused task size. Use focusTaskRatio
// that is associated with the original orientation of the focused task.
boxWidth = taskWidth;
boxHeight = taskHeight;
- thumbnailRatio = getRecentsView().getFocusedTaskRatio();
} else {
// Otherwise task is in grid, and should use lastComputedGridTaskSize.
Rect lastComputedGridTaskSize = getRecentsView().getLastComputedGridTaskSize();
boxWidth = lastComputedGridTaskSize.width();
boxHeight = lastComputedGridTaskSize.height();
- thumbnailRatio = mTask != null ? mTask.getVisibleThumbnailRatio(
- TaskView.CLIP_STATUS_AND_NAV_BARS) : 0f;
}
- int boxLength = Math.max(boxWidth, boxHeight);
// Bound width/height to the box size.
- if (thumbnailRatio == 0f) {
- expectedWidth = boxWidth;
- expectedHeight = boxHeight + thumbnailPadding;
- } else if (thumbnailRatio > 1) {
- expectedWidth = boxLength;
- expectedHeight = (int) (boxLength / thumbnailRatio) + thumbnailPadding;
- } else {
- expectedWidth = (int) (boxLength * thumbnailRatio);
- expectedHeight = boxLength + thumbnailPadding;
- }
+ expectedWidth = boxWidth;
+ expectedHeight = boxHeight + thumbnailPadding;
// Scale to to fit task Rect.
fullscreenScale = taskWidth / (float) boxWidth;
- // In full screen, scale back TaskView to original size.
- if (expectedWidth > boxWidth) {
- fullscreenScale *= boxWidth / (float) expectedWidth;
- } else if (expectedHeight - thumbnailPadding > boxHeight) {
- fullscreenScale *= boxHeight / (float) (expectedHeight - thumbnailPadding);
- }
-
// Align to top of task Rect.
boxTranslationY = (expectedHeight - thumbnailPadding - taskHeight) / 2.0f;
} else {
diff --git a/robolectric_tests/src/com/android/launcher3/model/ModelMultiCallbacksTest.java b/robolectric_tests/src/com/android/launcher3/model/ModelMultiCallbacksTest.java
index a2abfd5..275cf81 100644
--- a/robolectric_tests/src/com/android/launcher3/model/ModelMultiCallbacksTest.java
+++ b/robolectric_tests/src/com/android/launcher3/model/ModelMultiCallbacksTest.java
@@ -26,12 +26,12 @@
import android.os.Process;
-import com.android.launcher3.PagedView;
import com.android.launcher3.model.BgDataModel.Callbacks;
import com.android.launcher3.model.data.AppInfo;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.shadows.ShadowLooperExecutor;
import com.android.launcher3.util.Executors;
+import com.android.launcher3.util.IntSet;
import com.android.launcher3.util.LauncherLayoutBuilder;
import com.android.launcher3.util.LauncherModelHelper;
import com.android.launcher3.util.LooperExecutor;
@@ -92,7 +92,7 @@
// Add a new callback
cb1.reset();
MyCallbacks cb2 = spy(MyCallbacks.class);
- cb2.mPageToBindSync = 2;
+ cb2.mPageToBindSync = IntSet.wrap(2);
mModelHelper.getModel().addCallbacksAndLoad(cb2);
waitForLoaderAndTempMainThread();
@@ -178,16 +178,16 @@
private abstract static class MyCallbacks implements Callbacks {
final List<ItemInfo> mItems = new ArrayList<>();
- int mPageToBindSync = 0;
- int mPageBoundSync = PagedView.INVALID_PAGE;
+ IntSet mPageToBindSync = IntSet.wrap(0);
+ IntSet mPageBoundSync = new IntSet();
ViewOnDrawExecutor mDeferredExecutor;
AppInfo[] mAppInfos;
MyCallbacks() { }
@Override
- public void onPageBoundSynchronously(int page) {
- mPageBoundSync = page;
+ public void onPagesBoundSynchronously(IntSet pages) {
+ mPageBoundSync = pages;
}
@Override
@@ -206,13 +206,13 @@
}
@Override
- public int getPageToBindSynchronously() {
+ public IntSet getPagesToBindSynchronously() {
return mPageToBindSync;
}
public void reset() {
mItems.clear();
- mPageBoundSync = PagedView.INVALID_PAGE;
+ mPageBoundSync = new IntSet();
mDeferredExecutor = null;
mAppInfos = null;
}
diff --git a/robolectric_tests/src/com/android/launcher3/util/LauncherPageRestoreHelperTest.java b/robolectric_tests/src/com/android/launcher3/util/LauncherPageRestoreHelperTest.java
new file mode 100644
index 0000000..51f5851
--- /dev/null
+++ b/robolectric_tests/src/com/android/launcher3/util/LauncherPageRestoreHelperTest.java
@@ -0,0 +1,224 @@
+/**
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3.util;
+
+import android.os.Bundle;
+
+import com.android.launcher3.LauncherPageRestoreHelper;
+import com.android.launcher3.Workspace;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.when;
+
+@RunWith(RobolectricTestRunner.class)
+public class LauncherPageRestoreHelperTest {
+
+ // Type: int
+ private static final String RUNTIME_STATE_CURRENT_SCREEN = "launcher.current_screen";
+ // Type: int
+ private static final String RUNTIME_STATE_CURRENT_SCREEN_COUNT =
+ "launcher.current_screen_count";
+
+ private LauncherPageRestoreHelper mPageRestoreHelper;
+ private Bundle mState;
+
+ @Mock
+ private Workspace mWorkspace;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mPageRestoreHelper = new LauncherPageRestoreHelper(mWorkspace);
+ mState = new Bundle();
+ }
+
+ @Test
+ public void givenNoChildrenInWorkspace_whenSavePages_thenNothingSaved() {
+ when(mWorkspace.getChildCount()).thenReturn(0);
+
+ mPageRestoreHelper.savePagesToRestore(mState);
+
+ assertFalse(mState.containsKey(RUNTIME_STATE_CURRENT_SCREEN_COUNT));
+ assertFalse(mState.containsKey(RUNTIME_STATE_CURRENT_SCREEN));
+ }
+
+ @Test
+ public void givenMultipleCurrentPages_whenSavePages_thenSavedCorrectly() {
+ when(mWorkspace.getChildCount()).thenReturn(5);
+ when(mWorkspace.getCurrentPage()).thenReturn(2);
+ givenPanelCount(2);
+
+ mPageRestoreHelper.savePagesToRestore(mState);
+
+ assertEquals(5, mState.getInt(RUNTIME_STATE_CURRENT_SCREEN_COUNT));
+ assertEquals(2, mState.getInt(RUNTIME_STATE_CURRENT_SCREEN));
+ }
+
+ @Test
+ public void givenNullSavedState_whenRestorePages_thenReturnEmptyIntSet() {
+ IntSet result = mPageRestoreHelper.getPagesToRestore(null);
+
+ assertTrue(result.isEmpty());
+ }
+
+ @Test
+ public void givenTotalPageCountMissing_whenRestorePages_thenReturnEmptyIntSet() {
+ givenSavedCurrentPage(1);
+ givenPanelCount(1);
+
+ IntSet result = mPageRestoreHelper.getPagesToRestore(mState);
+
+ assertTrue(result.isEmpty());
+ }
+
+ @Test
+ public void givenCurrentPageMissing_whenRestorePages_thenReturnEmptyIntSet() {
+ givenSavedPageCount(3);
+ givenPanelCount(2);
+
+ IntSet result = mPageRestoreHelper.getPagesToRestore(mState);
+
+ assertTrue(result.isEmpty());
+ }
+
+ @Test
+ public void givenOnePanel_whenRestorePages_thenReturnThatPage() {
+ givenSavedCurrentPage(2);
+ givenSavedPageCount(5);
+ givenPanelCount(1);
+
+ IntSet result = mPageRestoreHelper.getPagesToRestore(mState);
+
+ assertEquals(1, result.size());
+ assertEquals(2, result.getArray().get(0));
+ }
+
+ @Test
+ public void givenTwoPanelOnFirstPages_whenRestorePages_thenReturnThosePages() {
+ givenSavedCurrentPage(0, 1);
+ givenSavedPageCount(2);
+ givenPanelCount(2);
+
+ IntSet result = mPageRestoreHelper.getPagesToRestore(mState);
+
+ assertEquals(IntSet.wrap(0, 1), result);
+ }
+
+ @Test
+ public void givenTwoPanelOnMiddlePages_whenRestorePages_thenReturnThosePages() {
+ givenSavedCurrentPage(2, 3);
+ givenSavedPageCount(5);
+ givenPanelCount(2);
+
+ IntSet result = mPageRestoreHelper.getPagesToRestore(mState);
+
+ assertEquals(IntSet.wrap(2, 3), result);
+ }
+
+ @Test
+ public void givenTwoPanelOnLastPage_whenRestorePages_thenReturnOnlyLastPage() {
+ // The device has two panel home but the current page is the last page, so we don't have
+ // a right panel, only the left one.
+ givenSavedCurrentPage(2);
+ givenSavedPageCount(3);
+ givenPanelCount(2);
+
+ IntSet result = mPageRestoreHelper.getPagesToRestore(mState);
+
+ assertEquals(IntSet.wrap(2), result);
+ }
+
+ @Test
+ public void givenOnlyOnePageAndPhoneFolding_whenRestorePages_thenReturnOnlyOnePage() {
+ givenSavedCurrentPage(0);
+ givenSavedPageCount(1);
+ givenPanelCount(1);
+
+ IntSet result = mPageRestoreHelper.getPagesToRestore(mState);
+
+ assertEquals(IntSet.wrap(0), result);
+ }
+
+ @Test
+ public void givenPhoneFolding_whenRestorePages_thenReturnOnlyTheFirstCurrentPage() {
+ givenSavedCurrentPage(2, 3);
+ givenSavedPageCount(4);
+ givenPanelCount(1);
+
+ IntSet result = mPageRestoreHelper.getPagesToRestore(mState);
+
+ assertEquals(IntSet.wrap(2), result);
+ }
+
+ @Test
+ public void givenPhoneUnfolding_whenRestorePages_thenReturnCurrentPagePlusTheNextOne() {
+ givenSavedCurrentPage(2);
+ givenSavedPageCount(4);
+ givenPanelCount(2);
+
+ IntSet result = mPageRestoreHelper.getPagesToRestore(mState);
+
+ assertEquals(IntSet.wrap(2, 3), result);
+ }
+
+ @Test
+ public void givenPhoneUnfoldingOnLastPage_whenRestorePages_thenReturnOnlyLastPage() {
+ givenSavedCurrentPage(4);
+ givenSavedPageCount(5);
+ givenPanelCount(2);
+
+ IntSet result = mPageRestoreHelper.getPagesToRestore(mState);
+
+ assertEquals(IntSet.wrap(4), result);
+ }
+
+ @Test
+ public void givenOnlyOnePageAndPhoneUnfolding_whenRestorePages_thenReturnOnlyOnePage() {
+ givenSavedCurrentPage(0);
+ givenSavedPageCount(1);
+ givenPanelCount(2);
+
+ IntSet result = mPageRestoreHelper.getPagesToRestore(mState);
+
+ assertEquals(IntSet.wrap(0), result);
+ }
+
+ private void givenPanelCount(int panelCount) {
+ when(mWorkspace.getPanelCount()).thenReturn(panelCount);
+ when(mWorkspace.getLeftmostVisiblePageForIndex(anyInt())).thenAnswer(invocation -> {
+ int pageIndex = invocation.getArgument(0);
+ return pageIndex * panelCount / panelCount;
+ });
+ }
+
+ private void givenSavedPageCount(int pageCount) {
+ mState.putInt(RUNTIME_STATE_CURRENT_SCREEN_COUNT, pageCount);
+ }
+
+ private void givenSavedCurrentPage(int... pages) {
+ mState.putInt(RUNTIME_STATE_CURRENT_SCREEN, pages[0]);
+ }
+}
diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java
index 4f0ef12..d49dd73 100644
--- a/src/com/android/launcher3/BubbleTextView.java
+++ b/src/com/android/launcher3/BubbleTextView.java
@@ -403,7 +403,7 @@
}
}
- void clearPressedBackground() {
+ public void clearPressedBackground() {
setPressed(false);
setStayPressed(false);
}
@@ -849,8 +849,9 @@
switch (display) {
case DISPLAY_ALL_APPS:
return grid.allAppsIconSizePx;
- case DISPLAY_WORKSPACE:
case DISPLAY_FOLDER:
+ return grid.folderChildIconSizePx;
+ case DISPLAY_WORKSPACE:
default:
return grid.iconSizePx;
}
diff --git a/src/com/android/launcher3/DeleteDropTarget.java b/src/com/android/launcher3/DeleteDropTarget.java
index 80ec192..ba55834 100644
--- a/src/com/android/launcher3/DeleteDropTarget.java
+++ b/src/com/android/launcher3/DeleteDropTarget.java
@@ -33,6 +33,7 @@
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.model.data.LauncherAppWidgetInfo;
import com.android.launcher3.model.data.WorkspaceItemInfo;
+import com.android.launcher3.util.IntSet;
import com.android.launcher3.views.Snackbar;
public class DeleteDropTarget extends ButtonDropTarget {
@@ -131,7 +132,7 @@
onAccessibilityDrop(null, item);
ModelWriter modelWriter = mLauncher.getModelWriter();
Runnable onUndoClicked = () -> {
- mLauncher.setPageToBindSynchronously(itemPage);
+ mLauncher.setPagesToBindSynchronously(IntSet.wrap(itemPage));
modelWriter.abortDelete();
mLauncher.getStatsLogManager().logger().log(LAUNCHER_UNDO);
};
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 8889e60..892fb6d 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -105,6 +105,7 @@
import android.widget.Toast;
import androidx.annotation.CallSuper;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.annotation.VisibleForTesting;
@@ -164,6 +165,7 @@
import com.android.launcher3.util.ActivityTracker;
import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.IntArray;
+import com.android.launcher3.util.IntSet;
import com.android.launcher3.util.ItemInfoMatcher;
import com.android.launcher3.util.MultiValueAlpha;
import com.android.launcher3.util.MultiValueAlpha.AlphaProperty;
@@ -245,8 +247,6 @@
protected static final int REQUEST_LAST = 100;
// Type: int
- private static final String RUNTIME_STATE_CURRENT_SCREEN = "launcher.current_screen";
- // Type: int
private static final String RUNTIME_STATE = "launcher.state";
// Type: PendingRequestArgs
private static final String RUNTIME_STATE_PENDING_REQUEST_ARGS = "launcher.request_args";
@@ -284,6 +284,8 @@
private WidgetManagerHelper mAppWidgetManager;
private LauncherAppWidgetHost mAppWidgetHost;
+ private LauncherPageRestoreHelper mPageRestoreHelper;
+
private final int[] mTmpAddItemCellCoordinates = new int[2];
@Thunk
@@ -319,8 +321,8 @@
private PopupDataProvider mPopupDataProvider;
- private int mSynchronouslyBoundPage = PagedView.INVALID_PAGE;
- private int mPageToBindSynchronously = PagedView.INVALID_PAGE;
+ private IntSet mSynchronouslyBoundPages = new IntSet();
+ private IntSet mPagesToBindSynchronously = new IntSet();
// We only want to get the SharedPreferences once since it does an FS stat each time we get
// it from the context.
@@ -455,13 +457,10 @@
restoreState(savedInstanceState);
mStateManager.reapplyState();
- // We only load the page synchronously if the user rotates (or triggers a
- // configuration change) while launcher is in the foreground
- int currentScreen = PagedView.INVALID_PAGE;
+ mPageRestoreHelper = new LauncherPageRestoreHelper(mWorkspace);
if (savedInstanceState != null) {
- currentScreen = savedInstanceState.getInt(RUNTIME_STATE_CURRENT_SCREEN, currentScreen);
+ mPagesToBindSynchronously = mPageRestoreHelper.getPagesToRestore(savedInstanceState);
}
- mPageToBindSynchronously = currentScreen;
if (!mModel.addCallbacksAndLoad(this)) {
if (!internalStateHandled) {
@@ -1290,7 +1289,8 @@
}
}
- public FolderIcon findFolderIcon(final int folderIconId) {
+ @Override
+ public @Nullable FolderIcon findFolderIcon(final int folderIconId) {
return (FolderIcon) mWorkspace.getHomescreenIconByItemId(folderIconId);
}
@@ -1525,18 +1525,17 @@
@Override
public void onRestoreInstanceState(Bundle state) {
super.onRestoreInstanceState(state);
- mWorkspace.restoreInstanceStateForChild(mSynchronouslyBoundPage);
+ if (mSynchronouslyBoundPages != null) {
+ mSynchronouslyBoundPages.forEach(page -> mWorkspace.restoreInstanceStateForChild(page));
+ }
}
@Override
protected void onSaveInstanceState(Bundle outState) {
- if (mWorkspace.getChildCount() > 0) {
- outState.putInt(RUNTIME_STATE_CURRENT_SCREEN, mWorkspace.getNextPage());
+ mPageRestoreHelper.savePagesToRestore(outState);
- }
outState.putInt(RUNTIME_STATE, mStateManager.getState().ordinal);
-
AbstractFloatingView widgets = AbstractFloatingView
.getOpenView(this, AbstractFloatingView.TYPE_WIDGETS_FULL_SHEET);
if (widgets != null) {
@@ -2015,24 +2014,24 @@
}
/**
- * Sets the next page to bind synchronously on next bind.
- * @param page
+ * Sets the next pages to bind synchronously on next bind.
+ * @param pages should not be null.
*/
- public void setPageToBindSynchronously(int page) {
- mPageToBindSynchronously = page;
+ public void setPagesToBindSynchronously(@NonNull IntSet pages) {
+ mPagesToBindSynchronously = pages;
}
/**
* Implementation of the method from LauncherModel.Callbacks.
*/
@Override
- public int getPageToBindSynchronously() {
- if (mPageToBindSynchronously != PagedView.INVALID_PAGE) {
- return mPageToBindSynchronously;
- } else if (mWorkspace != null) {
- return mWorkspace.getCurrentPage();
+ public IntSet getPagesToBindSynchronously() {
+ if (mPagesToBindSynchronously != null && !mPagesToBindSynchronously.isEmpty()) {
+ return mPagesToBindSynchronously;
+ } else if (mWorkspace != null) {
+ return mWorkspace.getVisiblePageIndices();
} else {
- return 0;
+ return new IntSet();
}
}
@@ -2448,10 +2447,10 @@
return info;
}
- public void onPageBoundSynchronously(int page) {
- mSynchronouslyBoundPage = page;
- mWorkspace.setCurrentPage(page);
- mPageToBindSynchronously = PagedView.INVALID_PAGE;
+ public void onPagesBoundSynchronously(IntSet pages) {
+ mSynchronouslyBoundPages = pages;
+ mWorkspace.setCurrentPage(pages.getArray().get(0));
+ mPagesToBindSynchronously = new IntSet();
}
@Override
@@ -2497,7 +2496,7 @@
*
* Implementation of the method from LauncherModel.Callbacks.
*/
- public void finishBindingItems(int pageBoundFirst) {
+ public void finishBindingItems(IntSet pagesBoundFirst) {
Object traceToken = TraceHelper.INSTANCE.beginSection("finishBindingItems");
mWorkspace.restoreInstanceStateForRemainingPages();
@@ -2512,11 +2511,13 @@
ItemInstallQueue.INSTANCE.get(this)
.resumeModelPush(FLAG_LOADER_RUNNING);
+ int currentPage = pagesBoundFirst != null && !pagesBoundFirst.isEmpty()
+ ? pagesBoundFirst.getArray().get(0) : PagedView.INVALID_PAGE;
// When undoing the removal of the last item on a page, return to that page.
// Since we are just resetting the current page without user interaction,
// override the previous page so we don't log the page switch.
- mWorkspace.setCurrentPage(pageBoundFirst, pageBoundFirst /* overridePrevPage */);
- mPageToBindSynchronously = PagedView.INVALID_PAGE;
+ mWorkspace.setCurrentPage(currentPage, currentPage /* overridePrevPage */);
+ mPagesToBindSynchronously = new IntSet();
// Cache one page worth of icons
getViewCache().setCacheSize(R.layout.folder_application,
diff --git a/src/com/android/launcher3/LauncherPageRestoreHelper.java b/src/com/android/launcher3/LauncherPageRestoreHelper.java
new file mode 100644
index 0000000..e679a12
--- /dev/null
+++ b/src/com/android/launcher3/LauncherPageRestoreHelper.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3;
+
+import android.os.Bundle;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+
+import com.android.launcher3.util.IntSet;
+
+import static androidx.annotation.VisibleForTesting.PACKAGE_PRIVATE;
+
+/**
+ * There's a logic which prioritizes the binding for the current page and defers the other pages'
+ * binding. If two panel home is enabled, we want to bind both pages together.
+ * LauncherPageRestoreHelper's purpose is to contain the logic for persisting, restoring and
+ * calculating which pages to load immediately.
+ */
+public class LauncherPageRestoreHelper {
+
+ public static final String TAG = "LauncherPageRestoreHelper";
+
+ // Type: int
+ private static final String RUNTIME_STATE_CURRENT_SCREEN = "launcher.current_screen";
+ // Type: int
+ private static final String RUNTIME_STATE_CURRENT_SCREEN_COUNT =
+ "launcher.current_screen_count";
+
+ private Workspace mWorkspace;
+
+ public LauncherPageRestoreHelper(Workspace workspace) {
+ this.mWorkspace = workspace;
+ }
+
+ /**
+ * Some configuration changes trigger Launcher to recreate itself, and we want to give more
+ * priority to the currently active pages in the restoration process.
+ */
+ @VisibleForTesting(otherwise = PACKAGE_PRIVATE)
+ public IntSet getPagesToRestore(Bundle savedInstanceState) {
+ IntSet pagesToRestore = new IntSet();
+
+ if (savedInstanceState == null) {
+ return pagesToRestore;
+ }
+
+ int currentPage = savedInstanceState.getInt(RUNTIME_STATE_CURRENT_SCREEN, -1);
+ int totalPageCount = savedInstanceState.getInt(RUNTIME_STATE_CURRENT_SCREEN_COUNT, -1);
+ int panelCount = mWorkspace.getPanelCount();
+
+ if (totalPageCount <= 0 || currentPage < 0) {
+ Log.e(TAG, "getPagesToRestore: Invalid input: " + totalPageCount + ", " + currentPage);
+ return pagesToRestore;
+ }
+
+ int newCurrentPage = mWorkspace.getLeftmostVisiblePageForIndex(currentPage);
+ for (int page = newCurrentPage; page < newCurrentPage + panelCount
+ && page < totalPageCount; page++) {
+ pagesToRestore.add(page);
+ }
+
+ return pagesToRestore;
+ }
+
+ /**
+ * This should be called from Launcher's onSaveInstanceState method to persist everything that
+ * is necessary to calculate later which pages need to be initialized first after a
+ * configuration change.
+ */
+ @VisibleForTesting(otherwise = PACKAGE_PRIVATE)
+ public void savePagesToRestore(Bundle outState) {
+ int pageCount = mWorkspace.getChildCount();
+ if (pageCount > 0) {
+ outState.putInt(RUNTIME_STATE_CURRENT_SCREEN, mWorkspace.getCurrentPage());
+ outState.putInt(RUNTIME_STATE_CURRENT_SCREEN_COUNT, pageCount);
+ }
+ }
+}
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index 9725b06..d977620 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -16,6 +16,7 @@
package com.android.launcher3;
+import static androidx.annotation.VisibleForTesting.PACKAGE_PRIVATE;
import static com.android.launcher3.anim.Interpolators.SCROLL;
import static com.android.launcher3.compat.AccessibilityManagerCompat.isAccessibilityEnabled;
import static com.android.launcher3.compat.AccessibilityManagerCompat.isObservedEventType;
@@ -48,6 +49,7 @@
import android.widget.ScrollView;
import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
import com.android.launcher3.compat.AccessibilityManagerCompat;
import com.android.launcher3.config.FeatureFlags;
@@ -55,6 +57,7 @@
import com.android.launcher3.touch.PagedOrientationHandler;
import com.android.launcher3.touch.PagedOrientationHandler.ChildBounds;
import com.android.launcher3.util.EdgeEffectCompat;
+import com.android.launcher3.util.IntSet;
import com.android.launcher3.util.Thunk;
import com.android.launcher3.views.ActivityContext;
@@ -282,9 +285,15 @@
return newPage;
}
- private int getLeftmostVisiblePageForIndex(int pageIndex) {
+ /**
+ * In most cases where panelCount is 1, this method will just return the page index that was
+ * passed in.
+ * But for example when two panel home is enabled we might need the leftmost visible page index
+ * because that page is the current page.
+ */
+ public int getLeftmostVisiblePageForIndex(int pageIndex) {
int panelCount = getPanelCount();
- return (pageIndex / panelCount) * panelCount;
+ return pageIndex - pageIndex % panelCount;
}
/**
@@ -295,16 +304,34 @@
}
/**
+ * Returns an IntSet with the indices of the currently visible pages
+ */
+ @VisibleForTesting(otherwise = PACKAGE_PRIVATE)
+ public IntSet getVisiblePageIndices() {
+ IntSet visiblePageIndices = new IntSet();
+ int panelCount = getPanelCount();
+ int pageCount = getPageCount();
+
+ // If a device goes from one panel to two panel (i.e. unfolding a foldable device) while
+ // an odd indexed page is the current page, then the new leftmost visible page will be
+ // different from the old mCurrentPage.
+ int currentPage = getLeftmostVisiblePageForIndex(mCurrentPage);
+ for (int page = currentPage; page < currentPage + panelCount && page < pageCount; page++) {
+ visiblePageIndices.add(page);
+ }
+ return visiblePageIndices;
+ }
+
+ /**
* Executes the callback against each visible page
*/
public void forEachVisiblePage(Consumer<View> callback) {
- int panelCount = getPanelCount();
- for (int i = mCurrentPage; i < mCurrentPage + panelCount; i++) {
- View page = getPageAt(i);
+ getVisiblePageIndices().forEach(pageIndex -> {
+ View page = getPageAt(pageIndex);
if (page != null) {
callback.accept(page);
}
- }
+ });
}
/**
diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java
index cb9e1f3..becbb27 100644
--- a/src/com/android/launcher3/Utilities.java
+++ b/src/com/android/launcher3/Utilities.java
@@ -85,6 +85,7 @@
import com.android.launcher3.shortcuts.ShortcutRequest;
import com.android.launcher3.util.IntArray;
import com.android.launcher3.util.PackageManagerHelper;
+import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.views.BaseDragLayer;
import com.android.launcher3.widget.PendingAddShortcutInfo;
@@ -651,25 +652,26 @@
* @param outObj this is set to the internal data associated with {@param info},
* eg {@link LauncherActivityInfo} or {@link ShortcutInfo}.
*/
- public static Drawable getFullDrawable(Launcher launcher, ItemInfo info, int width, int height,
+ public static Drawable getFullDrawable(Context context, ItemInfo info, int width, int height,
Object[] outObj) {
- Drawable icon = loadFullDrawableWithoutTheme(launcher, info, width, height, outObj);
+ Drawable icon = loadFullDrawableWithoutTheme(context, info, width, height, outObj);
if (icon instanceof BitmapInfo.Extender) {
- icon = ((BitmapInfo.Extender) icon).getThemedDrawable(launcher);
+ icon = ((BitmapInfo.Extender) icon).getThemedDrawable(context);
}
return icon;
}
- private static Drawable loadFullDrawableWithoutTheme(Launcher launcher, ItemInfo info,
+ private static Drawable loadFullDrawableWithoutTheme(Context context, ItemInfo info,
int width, int height, Object[] outObj) {
- LauncherAppState appState = LauncherAppState.getInstance(launcher);
+ ActivityContext activity = ActivityContext.lookupContext(context);
+ LauncherAppState appState = LauncherAppState.getInstance(context);
if (info.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION) {
- LauncherActivityInfo activityInfo = launcher.getSystemService(LauncherApps.class)
+ LauncherActivityInfo activityInfo = context.getSystemService(LauncherApps.class)
.resolveActivity(info.getIntent(), info.user);
outObj[0] = activityInfo;
- return activityInfo == null ? null : LauncherAppState.getInstance(launcher)
+ return activityInfo == null ? null : LauncherAppState.getInstance(context)
.getIconProvider().getIcon(
- activityInfo, launcher.getDeviceProfile().inv.fillResIconDpi);
+ activityInfo, activity.getDeviceProfile().inv.fillResIconDpi);
} else if (info.itemType == LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT) {
if (info instanceof PendingAddShortcutInfo) {
ShortcutConfigActivityInfo activityInfo =
@@ -678,18 +680,18 @@
return activityInfo.getFullResIcon(appState.getIconCache());
}
List<ShortcutInfo> si = ShortcutKey.fromItemInfo(info)
- .buildRequest(launcher)
+ .buildRequest(context)
.query(ShortcutRequest.ALL);
if (si.isEmpty()) {
return null;
} else {
outObj[0] = si.get(0);
- return ShortcutCachingLogic.getIcon(launcher, si.get(0),
+ return ShortcutCachingLogic.getIcon(context, si.get(0),
appState.getInvariantDeviceProfile().fillResIconDpi);
}
} else if (info.itemType == LauncherSettings.Favorites.ITEM_TYPE_FOLDER) {
FolderAdaptiveIcon icon = FolderAdaptiveIcon.createFolderAdaptiveIcon(
- launcher, info.id, new Point(width, height));
+ activity, info.id, new Point(width, height));
if (icon == null) {
return null;
}
@@ -707,8 +709,8 @@
* badge. When dragged from workspace or folder, it may contain app AND/OR work profile badge
**/
@TargetApi(Build.VERSION_CODES.O)
- public static Drawable getBadge(Launcher launcher, ItemInfo info, Object obj) {
- LauncherAppState appState = LauncherAppState.getInstance(launcher);
+ public static Drawable getBadge(Context context, ItemInfo info, Object obj) {
+ LauncherAppState appState = LauncherAppState.getInstance(context);
int iconSize = appState.getInvariantDeviceProfile().iconBitmapSize;
if (info.itemType == LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT) {
boolean iconBadged = (info instanceof ItemInfoWithIcon)
@@ -728,7 +730,7 @@
} else if (info.itemType == LauncherSettings.Favorites.ITEM_TYPE_FOLDER) {
return ((FolderAdaptiveIcon) obj).getBadge();
} else {
- return launcher.getPackageManager()
+ return context.getPackageManager()
.getUserBadgedIcon(new FixedSizeEmptyDrawable(iconSize), info.user);
}
}
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 98d80fe..78e8048 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -16,6 +16,7 @@
package com.android.launcher3;
+import static androidx.annotation.VisibleForTesting.PROTECTED;
import static com.android.launcher3.LauncherAnimUtils.SPRING_LOADED_EXIT_DELAY;
import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_APPLICATION;
import static com.android.launcher3.LauncherState.ALL_APPS;
@@ -63,6 +64,8 @@
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.Toast;
+import androidx.annotation.VisibleForTesting;
+
import com.android.launcher3.accessibility.AccessibleDragListenerAdapter;
import com.android.launcher3.accessibility.WorkspaceAccessibilityHelper;
import com.android.launcher3.anim.Interpolators;
@@ -461,7 +464,8 @@
}
@Override
- protected int getPanelCount() {
+ @VisibleForTesting(otherwise = PROTECTED)
+ public int getPanelCount() {
return isTwoPanelEnabled() ? 2 : super.getPanelCount();
}
diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java
index 0c0c92e..1715161 100644
--- a/src/com/android/launcher3/config/FeatureFlags.java
+++ b/src/com/android/launcher3/config/FeatureFlags.java
@@ -214,14 +214,14 @@
+ "predictions to be updated while they are visible to the user.");
public static final BooleanFlag ENABLE_TASKBAR = getDebugFlag(
- "ENABLE_TASKBAR", false, "Allows a system Taskbar to be shown on larger devices.");
+ "ENABLE_TASKBAR", true, "Allows a system Taskbar to be shown on larger devices.");
public static final BooleanFlag ENABLE_OVERVIEW_GRID = getDebugFlag(
- "ENABLE_OVERVIEW_GRID", false, "Uses grid overview layout. "
+ "ENABLE_OVERVIEW_GRID", true, "Uses grid overview layout. "
+ "Only applicable on large screen devices.");
public static final BooleanFlag ENABLE_TWO_PANEL_HOME = getDebugFlag(
- "ENABLE_TWO_PANEL_HOME", false,
+ "ENABLE_TWO_PANEL_HOME", true,
"Uses two panel on home screen. Only applicable on large screen devices.");
public static final BooleanFlag ENABLE_SPLIT_SELECT = getDebugFlag(
diff --git a/src/com/android/launcher3/dragndrop/DragController.java b/src/com/android/launcher3/dragndrop/DragController.java
index 5731db4..1e0edac 100644
--- a/src/com/android/launcher3/dragndrop/DragController.java
+++ b/src/com/android/launcher3/dragndrop/DragController.java
@@ -74,7 +74,7 @@
/** Coordinate for last touch event **/
protected final Point mLastTouch = new Point();
- private final Point mTmpPoint = new Point();
+ protected final Point mTmpPoint = new Point();
protected DropTarget.DragObject mDragObject;
@@ -317,7 +317,7 @@
mDragObject.dragView.animateTo(mMotionDown.x, mMotionDown.y, onCompleteRunnable, duration);
}
- private void callOnDragEnd() {
+ protected void callOnDragEnd() {
if (mIsInPreDrag && mOptions.preDragCondition != null) {
mOptions.preDragCondition.onPreDragEnd(mDragObject, false /* dragStarted*/);
}
@@ -343,7 +343,7 @@
/**
* Clamps the position to the drag layer bounds.
*/
- private Point getClampedDragLayerPos(float x, float y) {
+ protected Point getClampedDragLayerPos(float x, float y) {
mActivity.getDragLayer().getLocalVisibleRect(mRectTemp);
mTmpPoint.x = (int) Math.max(mRectTemp.left, Math.min(x, mRectTemp.right - 1));
mTmpPoint.y = (int) Math.max(mRectTemp.top, Math.min(y, mRectTemp.bottom - 1));
@@ -390,7 +390,7 @@
return false;
}
- Point dragLayerPos = getClampedDragLayerPos(ev.getX(), ev.getY());
+ Point dragLayerPos = getClampedDragLayerPos(getX(ev), getY(ev));
mLastTouch.set(dragLayerPos.x, dragLayerPos.y);
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
// Remember location of down touch
@@ -403,6 +403,14 @@
return mDragDriver != null && mDragDriver.onInterceptTouchEvent(ev);
}
+ protected float getX(MotionEvent ev) {
+ return ev.getX();
+ }
+
+ protected float getY(MotionEvent ev) {
+ return ev.getY();
+ }
+
/**
* Call this from a drag source view.
*/
diff --git a/src/com/android/launcher3/dragndrop/DragDriver.java b/src/com/android/launcher3/dragndrop/DragDriver.java
index d4ce308..72e47e5 100644
--- a/src/com/android/launcher3/dragndrop/DragDriver.java
+++ b/src/com/android/launcher3/dragndrop/DragDriver.java
@@ -165,8 +165,11 @@
* Class for driving an internal (i.e. not using framework) drag/drop operation.
*/
static class InternalDragDriver extends DragDriver {
+ private final DragController mDragController;
+
InternalDragDriver(DragController dragController, Consumer<MotionEvent> sec) {
super(dragController, sec);
+ mDragController = dragController;
}
@Override
@@ -176,11 +179,14 @@
switch (action) {
case MotionEvent.ACTION_MOVE:
- mEventListener.onDriverDragMove(ev.getX(), ev.getY());
+ mEventListener.onDriverDragMove(mDragController.getX(ev),
+ mDragController.getY(ev));
break;
case MotionEvent.ACTION_UP:
- mEventListener.onDriverDragMove(ev.getX(), ev.getY());
- mEventListener.onDriverDragEnd(ev.getX(), ev.getY());
+ mEventListener.onDriverDragMove(mDragController.getX(ev),
+ mDragController.getY(ev));
+ mEventListener.onDriverDragEnd(mDragController.getX(ev),
+ mDragController.getY(ev));
break;
case MotionEvent.ACTION_CANCEL:
mEventListener.onDriverDragCancel();
@@ -197,7 +203,8 @@
switch (action) {
case MotionEvent.ACTION_UP:
- mEventListener.onDriverDragEnd(ev.getX(), ev.getY());
+ mEventListener.onDriverDragEnd(mDragController.getX(ev),
+ mDragController.getY(ev));
break;
case MotionEvent.ACTION_CANCEL:
mEventListener.onDriverDragCancel();
diff --git a/src/com/android/launcher3/dragndrop/DragView.java b/src/com/android/launcher3/dragndrop/DragView.java
index 1664980..fb1a6be 100644
--- a/src/com/android/launcher3/dragndrop/DragView.java
+++ b/src/com/android/launcher3/dragndrop/DragView.java
@@ -53,22 +53,19 @@
import androidx.dynamicanimation.animation.SpringAnimation;
import androidx.dynamicanimation.animation.SpringForce;
-import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherSettings;
-import com.android.launcher3.LauncherState;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.Interpolators;
import com.android.launcher3.icons.FastBitmapDrawable;
import com.android.launcher3.icons.LauncherIcons;
import com.android.launcher3.model.data.ItemInfo;
-import com.android.launcher3.statemanager.StateManager.StateListener;
import com.android.launcher3.util.RunnableList;
-import com.android.launcher3.util.Thunk;
+import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.views.BaseDragLayer;
/** A custom view for rendering an icon, folder, shortcut or widget during drag-n-drop. */
-public class DragView extends FrameLayout implements StateListener<LauncherState> {
+public abstract class DragView<T extends Context & ActivityContext> extends FrameLayout {
public static final int VIEW_ZOOM_DURATION = 150;
@@ -81,19 +78,18 @@
private final int mHeight;
private final int mBlurSizeOutline;
- private final int mRegistrationX;
- private final int mRegistrationY;
+ protected final int mRegistrationX;
+ protected final int mRegistrationY;
private final float mInitialScale;
- private final float mScaleOnDrop;
- private final int[] mTempLoc = new int[2];
+ protected final float mScaleOnDrop;
+ protected final int[] mTempLoc = new int[2];
private final RunnableList mOnDragStartCallback = new RunnableList();
private Point mDragVisualizeOffset = null;
private Rect mDragRegion = null;
- private final Launcher mLauncher;
- private final DragLayer mDragLayer;
- @Thunk final DragController mDragController;
+ protected final T mActivity;
+ private final BaseDragLayer<T> mDragLayer;
private boolean mHasDrawn = false;
final ValueAnimator mAnim;
@@ -109,7 +105,7 @@
private Path mScaledMaskPath;
private Drawable mBadge;
- public DragView(Launcher launcher, Drawable drawable, int registrationX,
+ public DragView(T launcher, Drawable drawable, int registrationX,
int registrationY, final float initialScale, final float scaleOnDrop,
final float finalScaleDps) {
this(launcher, getViewFromDrawable(launcher, drawable),
@@ -122,7 +118,7 @@
* <p>
* The registration point is the point inside our view that the touch events should
* be centered upon.
- * @param launcher The Launcher instance
+ * @param activity The Launcher instance/ActivityContext this DragView is in.
* @param content the view content that is attached to the drag view.
* @param width the width of the dragView
* @param height the height of the dragView
@@ -132,13 +128,12 @@
* @param scaleOnDrop the scale used in the drop animation.
* @param finalScaleDps the scale used in the zoom out animation when the drag view is shown.
*/
- public DragView(Launcher launcher, View content, int width, int height, int registrationX,
+ public DragView(T activity, View content, int width, int height, int registrationX,
int registrationY, final float initialScale, final float scaleOnDrop,
final float finalScaleDps) {
- super(launcher);
- mLauncher = launcher;
- mDragLayer = launcher.getDragLayer();
- mDragController = launcher.getDragController();
+ super(activity);
+ mActivity = activity;
+ mDragLayer = activity.getDragLayer();
mContent = content;
mWidth = width;
@@ -187,24 +182,6 @@
setWillNotDraw(false);
}
- @Override
- protected void onAttachedToWindow() {
- super.onAttachedToWindow();
- mLauncher.getStateManager().addStateListener(this);
- }
-
- @Override
- protected void onDetachedFromWindow() {
- super.onDetachedFromWindow();
- mLauncher.getStateManager().removeStateListener(this);
- }
-
- @Override
- public void onStateTransitionComplete(LauncherState finalState) {
- setVisibility((finalState == LauncherState.NORMAL
- || finalState == LauncherState.SPRING_LOADED) ? VISIBLE : INVISIBLE);
- }
-
/**
* Initialize {@code #mIconDrawable} if the item can be represented using
* an {@link AdaptiveIconDrawable} or {@link FolderAdaptiveIcon}.
@@ -221,10 +198,10 @@
Object[] outObj = new Object[1];
int w = mWidth;
int h = mHeight;
- Drawable dr = Utilities.getFullDrawable(mLauncher, info, w, h, outObj);
+ Drawable dr = Utilities.getFullDrawable(mActivity, info, w, h, outObj);
if (dr instanceof AdaptiveIconDrawable) {
- int blurMargin = (int) mLauncher.getResources()
+ int blurMargin = (int) mActivity.getResources()
.getDimension(R.dimen.blur_size_medium_outline) / 2;
Rect bounds = new Rect(0, 0, w, h);
@@ -232,13 +209,13 @@
// Badge is applied after icon normalization so the bounds for badge should not
// be scaled down due to icon normalization.
Rect badgeBounds = new Rect(bounds);
- mBadge = getBadge(mLauncher, info, outObj[0]);
+ mBadge = getBadge(mActivity, info, outObj[0]);
mBadge.setBounds(badgeBounds);
// Do not draw the background in case of folder as its translucent
final boolean shouldDrawBackground = !(dr instanceof FolderAdaptiveIcon);
- try (LauncherIcons li = LauncherIcons.obtain(mLauncher)) {
+ try (LauncherIcons li = LauncherIcons.obtain(mActivity)) {
Drawable nDr; // drawable to be normalized
if (shouldDrawBackground) {
nDr = dr;
@@ -429,12 +406,11 @@
applyTranslation();
}
- public void animateTo(int toTouchX, int toTouchY, Runnable onCompleteRunnable, int duration) {
- mTempLoc[0] = toTouchX - mRegistrationX;
- mTempLoc[1] = toTouchY - mRegistrationY;
- mDragLayer.animateViewIntoPosition(this, mTempLoc, 1f, mScaleOnDrop, mScaleOnDrop,
- DragLayer.ANIMATION_END_DISAPPEAR, onCompleteRunnable, duration);
- }
+ /**
+ * Animate this DragView to the given DragLayer coordinates and then remove it.
+ */
+ public abstract void animateTo(int toTouchX, int toTouchY, Runnable onCompleteRunnable,
+ int duration);
public void animateShift(final int shiftX, final int shiftY) {
if (mAnim.isStarted()) {
@@ -470,7 +446,7 @@
Picture picture = new Picture();
mContent.draw(picture.beginRecording(mWidth, mHeight));
picture.endRecording();
- View view = new View(mLauncher);
+ View view = new View(mActivity);
view.setClipToOutline(mContent.getClipToOutline());
view.setOutlineProvider(mContent.getOutlineProvider());
view.setBackground(new PictureDrawable(picture));
diff --git a/src/com/android/launcher3/dragndrop/FolderAdaptiveIcon.java b/src/com/android/launcher3/dragndrop/FolderAdaptiveIcon.java
index ea1fbdb..6a6603c 100644
--- a/src/com/android/launcher3/dragndrop/FolderAdaptiveIcon.java
+++ b/src/com/android/launcher3/dragndrop/FolderAdaptiveIcon.java
@@ -32,12 +32,12 @@
import androidx.annotation.Nullable;
-import com.android.launcher3.Launcher;
import com.android.launcher3.folder.FolderIcon;
import com.android.launcher3.folder.PreviewBackground;
import com.android.launcher3.graphics.ShiftedBitmapDrawable;
import com.android.launcher3.icons.BitmapRenderer;
import com.android.launcher3.util.Preconditions;
+import com.android.launcher3.views.ActivityContext;
/**
* {@link AdaptiveIconDrawable} representation of a {@link FolderIcon}
@@ -70,14 +70,14 @@
}
public static @Nullable FolderAdaptiveIcon createFolderAdaptiveIcon(
- Launcher launcher, int folderId, Point dragViewSize) {
+ ActivityContext activity, int folderId, Point dragViewSize) {
Preconditions.assertNonUiThread();
// Create the actual drawable on the UI thread to avoid race conditions with
// FolderIcon draw pass
try {
return MAIN_EXECUTOR.submit(() -> {
- FolderIcon icon = launcher.findFolderIcon(folderId);
+ FolderIcon icon = activity.findFolderIcon(folderId);
return icon == null ? null : createDrawableOnUiThread(icon, dragViewSize);
}).get();
diff --git a/src/com/android/launcher3/dragndrop/LauncherDragController.java b/src/com/android/launcher3/dragndrop/LauncherDragController.java
index a98d70c..0e8b0a5 100644
--- a/src/com/android/launcher3/dragndrop/LauncherDragController.java
+++ b/src/com/android/launcher3/dragndrop/LauncherDragController.java
@@ -96,7 +96,7 @@
final float scaleDps = mIsInPreDrag
? res.getDimensionPixelSize(R.dimen.pre_drag_view_scale) : 0f;
final DragView dragView = mDragObject.dragView = drawable != null
- ? new DragView(
+ ? new LauncherDragView(
mActivity,
drawable,
registrationX,
@@ -104,7 +104,7 @@
initialDragViewScale,
dragViewScaleOnDrop,
scaleDps)
- : new DragView(
+ : new LauncherDragView(
mActivity,
view,
view.getMeasuredWidth(),
diff --git a/src/com/android/launcher3/dragndrop/LauncherDragView.java b/src/com/android/launcher3/dragndrop/LauncherDragView.java
new file mode 100644
index 0000000..cc68e2e
--- /dev/null
+++ b/src/com/android/launcher3/dragndrop/LauncherDragView.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.launcher3.dragndrop;
+
+import android.graphics.drawable.Drawable;
+import android.view.View;
+
+import com.android.launcher3.Launcher;
+import com.android.launcher3.LauncherState;
+import com.android.launcher3.statemanager.StateManager;
+
+/**
+ * A DragView drawn/used by the Launcher activity.
+ */
+public class LauncherDragView extends DragView<Launcher>
+ implements StateManager.StateListener<LauncherState> {
+
+
+ public LauncherDragView(Launcher launcher, Drawable drawable, int registrationX,
+ int registrationY, float initialScale, float scaleOnDrop, float finalScaleDps) {
+ super(launcher, drawable, registrationX, registrationY, initialScale, scaleOnDrop,
+ finalScaleDps);
+ }
+
+ public LauncherDragView(Launcher launcher, View content, int width, int height,
+ int registrationX, int registrationY, float initialScale, float scaleOnDrop,
+ float finalScaleDps) {
+ super(launcher, content, width, height, registrationX, registrationY, initialScale,
+ scaleOnDrop, finalScaleDps);
+ }
+
+ @Override
+ protected void onAttachedToWindow() {
+ super.onAttachedToWindow();
+ mActivity.getStateManager().addStateListener(this);
+ }
+
+ @Override
+ protected void onDetachedFromWindow() {
+ super.onDetachedFromWindow();
+ mActivity.getStateManager().removeStateListener(this);
+ }
+
+ @Override
+ public void onStateTransitionComplete(LauncherState finalState) {
+ setVisibility((finalState == LauncherState.NORMAL
+ || finalState == LauncherState.SPRING_LOADED) ? VISIBLE : INVISIBLE);
+ }
+
+ @Override
+ public void animateTo(int toTouchX, int toTouchY, Runnable onCompleteRunnable, int duration) {
+ mTempLoc[0] = toTouchX - mRegistrationX;
+ mTempLoc[1] = toTouchY - mRegistrationY;
+ mActivity.getDragLayer().animateViewIntoPosition(this, mTempLoc, 1f, mScaleOnDrop,
+ mScaleOnDrop, DragLayer.ANIMATION_END_DISAPPEAR, onCompleteRunnable, duration);
+ }
+}
diff --git a/src/com/android/launcher3/graphics/DragPreviewProvider.java b/src/com/android/launcher3/graphics/DragPreviewProvider.java
index a549750..f027b33 100644
--- a/src/com/android/launcher3/graphics/DragPreviewProvider.java
+++ b/src/com/android/launcher3/graphics/DragPreviewProvider.java
@@ -32,13 +32,13 @@
import androidx.annotation.Nullable;
import com.android.launcher3.BubbleTextView;
-import com.android.launcher3.Launcher;
import com.android.launcher3.R;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.dragndrop.DraggableView;
import com.android.launcher3.icons.BitmapRenderer;
import com.android.launcher3.icons.FastBitmapDrawable;
import com.android.launcher3.util.SafeCloseable;
+import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.widget.LauncherAppWidgetHostView;
import java.nio.ByteBuffer;
@@ -150,7 +150,7 @@
}
public float getScaleAndPosition(Drawable preview, int[] outPos) {
- float scale = Launcher.getLauncher(mView.getContext())
+ float scale = ActivityContext.lookupContext(mView.getContext())
.getDragLayer().getLocationInDragLayer(mView, outPos);
if (mView instanceof LauncherAppWidgetHostView) {
// App widgets are technically scaled, but are drawn at their expected size -- so the
@@ -167,7 +167,7 @@
/** Returns the scale and position of a given view for drag-n-drop. */
public float getScaleAndPosition(View view, int[] outPos) {
- float scale = Launcher.getLauncher(mView.getContext())
+ float scale = ActivityContext.lookupContext(mView.getContext())
.getDragLayer().getLocationInDragLayer(mView, outPos);
if (mView instanceof LauncherAppWidgetHostView) {
// App widgets are technically scaled, but are drawn at their expected size -- so the
@@ -201,7 +201,7 @@
public void run() {
Bitmap preview = convertPreviewToAlphaBitmap(mPreviewSnapshot);
if (mIsIcon) {
- int size = Launcher.getLauncher(mContext).getDeviceProfile().iconSizePx;
+ int size = ActivityContext.lookupContext(mContext).getDeviceProfile().iconSizePx;
preview = Bitmap.createScaledBitmap(preview, size, size, false);
}
//else case covers AppWidgetHost (doesn't drag/drop across different device profiles)
diff --git a/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java b/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java
index 2a1aec8..952b850 100644
--- a/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java
+++ b/src/com/android/launcher3/graphics/LauncherPreviewRenderer.java
@@ -79,6 +79,7 @@
import com.android.launcher3.uioverrides.plugins.PluginManagerWrapper;
import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.IntArray;
+import com.android.launcher3.util.IntSet;
import com.android.launcher3.util.MainThreadInitializedObject;
import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.views.BaseDragLayer;
@@ -391,11 +392,14 @@
ArrayList<ItemInfo> otherWorkspaceItems = new ArrayList<>();
ArrayList<LauncherAppWidgetInfo> currentAppWidgets = new ArrayList<>();
ArrayList<LauncherAppWidgetInfo> otherAppWidgets = new ArrayList<>();
- filterCurrentWorkspaceItems(0 /* currentScreenId */,
- dataModel.workspaceItems, currentWorkspaceItems,
- otherWorkspaceItems);
- filterCurrentWorkspaceItems(0 /* currentScreenId */, dataModel.appWidgets,
- currentAppWidgets, otherAppWidgets);
+
+ IntSet currentScreenIds = IntSet.wrap(0);
+ // TODO(b/185508060): support two panel preview.
+ filterCurrentWorkspaceItems(currentScreenIds, dataModel.workspaceItems,
+ currentWorkspaceItems, otherWorkspaceItems);
+ filterCurrentWorkspaceItems(currentScreenIds, dataModel.appWidgets, currentAppWidgets,
+ otherAppWidgets);
+
sortWorkspaceItemsSpatially(mIdp, currentWorkspaceItems);
for (ItemInfo itemInfo : currentWorkspaceItems) {
switch (itemInfo.itemType) {
diff --git a/src/com/android/launcher3/model/BaseLoaderResults.java b/src/com/android/launcher3/model/BaseLoaderResults.java
index 5c85bab..12ee676 100644
--- a/src/com/android/launcher3/model/BaseLoaderResults.java
+++ b/src/com/android/launcher3/model/BaseLoaderResults.java
@@ -24,13 +24,13 @@
import com.android.launcher3.InvariantDeviceProfile;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.LauncherModel.CallbackTask;
-import com.android.launcher3.PagedView;
import com.android.launcher3.model.BgDataModel.Callbacks;
import com.android.launcher3.model.BgDataModel.FixedContainerItems;
import com.android.launcher3.model.data.AppInfo;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.model.data.LauncherAppWidgetInfo;
import com.android.launcher3.util.IntArray;
+import com.android.launcher3.util.IntSet;
import com.android.launcher3.util.LooperExecutor;
import com.android.launcher3.util.LooperIdleLock;
import com.android.launcher3.util.ViewOnDrawExecutor;
@@ -160,20 +160,26 @@
}
private void bind() {
- final int currentScreen;
+ IntSet currentScreenIndices;
{
// Create an anonymous scope to calculate currentScreen as it has to be a
// final variable.
- int currScreen = mCallbacks.getPageToBindSynchronously();
- if (currScreen >= mOrderedScreenIds.size()) {
- // There may be no workspace screens (just hotseat items and an empty page).
- currScreen = PagedView.INVALID_PAGE;
+ IntSet screenIndices = mCallbacks.getPagesToBindSynchronously();
+ if (screenIndices == null || screenIndices.isEmpty()
+ || screenIndices.getArray().get(screenIndices.size() - 1)
+ >= mOrderedScreenIds.size()) {
+ // There maybe no workspace screens (just hotseat items and an empty page).
+ // Also we want to prevent IndexOutOfBoundsExceptions.
+ screenIndices = new IntSet();
}
- currentScreen = currScreen;
+ currentScreenIndices = screenIndices;
}
- final boolean validFirstPage = currentScreen >= 0;
- final int currentScreenId =
- validFirstPage ? mOrderedScreenIds.get(currentScreen) : INVALID_SCREEN_ID;
+
+ final boolean validFirstPage = !currentScreenIndices.isEmpty();
+
+ IntSet currentScreenIds = new IntSet();
+ currentScreenIndices.forEach(
+ index -> currentScreenIds.add(mOrderedScreenIds.get(index)));
// Separate the items that are on the current screen, and all the other remaining items
ArrayList<ItemInfo> currentWorkspaceItems = new ArrayList<>();
@@ -181,9 +187,9 @@
ArrayList<LauncherAppWidgetInfo> currentAppWidgets = new ArrayList<>();
ArrayList<LauncherAppWidgetInfo> otherAppWidgets = new ArrayList<>();
- filterCurrentWorkspaceItems(currentScreenId, mWorkspaceItems, currentWorkspaceItems,
+ filterCurrentWorkspaceItems(currentScreenIds, mWorkspaceItems, currentWorkspaceItems,
otherWorkspaceItems);
- filterCurrentWorkspaceItems(currentScreenId, mAppWidgets, currentAppWidgets,
+ filterCurrentWorkspaceItems(currentScreenIds, mAppWidgets, currentAppWidgets,
otherAppWidgets);
final InvariantDeviceProfile idp = mApp.getInvariantDeviceProfile();
sortWorkspaceItemsSpatially(idp, currentWorkspaceItems);
@@ -220,14 +226,14 @@
bindWorkspaceItems(otherWorkspaceItems, deferredExecutor);
bindAppWidgets(otherAppWidgets, deferredExecutor);
// Tell the workspace that we're done binding items
- executeCallbacksTask(c -> c.finishBindingItems(currentScreen), deferredExecutor);
+ executeCallbacksTask(c -> c.finishBindingItems(currentScreenIndices), deferredExecutor);
if (validFirstPage) {
executeCallbacksTask(c -> {
// We are loading synchronously, which means, some of the pages will be
// bound after first draw. Inform the mCallbacks that page binding is
// not complete, and schedule the remaining pages.
- c.onPageBoundSynchronously(currentScreen);
+ c.onPagesBoundSynchronously(currentScreenIndices);
c.executeOnNextDraw((ViewOnDrawExecutor) deferredExecutor);
}, mUiExecutor);
diff --git a/src/com/android/launcher3/model/BgDataModel.java b/src/com/android/launcher3/model/BgDataModel.java
index 1d7d1a2..037f408 100644
--- a/src/com/android/launcher3/model/BgDataModel.java
+++ b/src/com/android/launcher3/model/BgDataModel.java
@@ -446,15 +446,16 @@
int FLAG_QUIET_MODE_CHANGE_PERMISSION = 1 << 2;
/**
- * Returns the page number to bind first, synchronously if possible or -1
+ * Returns an IntSet of page numbers to bind first, synchronously if possible
+ * or an empty IntSet
*/
- int getPageToBindSynchronously();
+ IntSet getPagesToBindSynchronously();
void clearPendingBinds();
void startBinding();
void bindItems(List<ItemInfo> shortcuts, boolean forceAnimateIcons);
void bindScreens(IntArray orderedScreenIds);
void finishFirstPageBind(ViewOnDrawExecutor executor);
- void finishBindingItems(int pageBoundFirst);
+ void finishBindingItems(IntSet pagesBoundFirst);
void preAddApps();
void bindAppsAdded(IntArray newScreens,
ArrayList<ItemInfo> addNotAnimated, ArrayList<ItemInfo> addAnimated);
@@ -468,7 +469,7 @@
void bindRestoreItemsChange(HashSet<ItemInfo> updates);
void bindWorkspaceComponentsRemoved(ItemInfoMatcher matcher);
void bindAllWidgets(List<WidgetsListBaseEntry> widgets);
- void onPageBoundSynchronously(int page);
+ void onPagesBoundSynchronously(IntSet pages);
void executeOnNextDraw(ViewOnDrawExecutor executor);
void bindDeepShortcutMap(HashMap<ComponentKey, Integer> deepShortcutMap);
diff --git a/src/com/android/launcher3/model/LoaderTask.java b/src/com/android/launcher3/model/LoaderTask.java
index 79396b1..34a21fe 100644
--- a/src/com/android/launcher3/model/LoaderTask.java
+++ b/src/com/android/launcher3/model/LoaderTask.java
@@ -83,6 +83,7 @@
import com.android.launcher3.shortcuts.ShortcutRequest.QueryResult;
import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.IOUtils;
+import com.android.launcher3.util.IntSet;
import com.android.launcher3.util.LooperIdleLock;
import com.android.launcher3.util.PackageManagerHelper;
import com.android.launcher3.util.PackageUserKey;
@@ -173,8 +174,9 @@
ArrayList<ItemInfo> allItems = mBgDataModel.getAllWorkspaceItems();
// Screen set is never empty
final int firstScreen = mBgDataModel.collectWorkspaceScreens().get(0);
+ // TODO(b/185515153): support two panel home.
- filterCurrentWorkspaceItems(firstScreen, allItems, firstScreenItems,
+ filterCurrentWorkspaceItems(IntSet.wrap(firstScreen), allItems, firstScreenItems,
new ArrayList<>() /* otherScreenItems are ignored */);
mFirstScreenBroadcast.sendBroadcasts(mApp.getContext(), firstScreenItems);
}
diff --git a/src/com/android/launcher3/model/ModelUtils.java b/src/com/android/launcher3/model/ModelUtils.java
index 9b5fac8..58aa9e5 100644
--- a/src/com/android/launcher3/model/ModelUtils.java
+++ b/src/com/android/launcher3/model/ModelUtils.java
@@ -51,7 +51,8 @@
* Filters the set of items who are directly or indirectly (via another container) on the
* specified screen.
*/
- public static <T extends ItemInfo> void filterCurrentWorkspaceItems(int currentScreenId,
+ public static <T extends ItemInfo> void filterCurrentWorkspaceItems(
+ IntSet currentScreenIds,
ArrayList<T> allWorkspaceItems,
ArrayList<T> currentScreenItems,
ArrayList<T> otherScreenItems) {
@@ -65,7 +66,7 @@
(lhs, rhs) -> Integer.compare(lhs.container, rhs.container));
for (T info : allWorkspaceItems) {
if (info.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) {
- if (info.screenId == currentScreenId) {
+ if (currentScreenIds.contains(info.screenId)) {
currentScreenItems.add(info);
itemsOnScreen.add(info.id);
} else {
diff --git a/src/com/android/launcher3/secondarydisplay/SecondaryDisplayLauncher.java b/src/com/android/launcher3/secondarydisplay/SecondaryDisplayLauncher.java
index 5999091..b271a6a 100644
--- a/src/com/android/launcher3/secondarydisplay/SecondaryDisplayLauncher.java
+++ b/src/com/android/launcher3/secondarydisplay/SecondaryDisplayLauncher.java
@@ -41,6 +41,7 @@
import com.android.launcher3.popup.PopupDataProvider;
import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.IntArray;
+import com.android.launcher3.util.IntSet;
import com.android.launcher3.util.ItemInfoMatcher;
import com.android.launcher3.util.Themes;
import com.android.launcher3.util.ViewOnDrawExecutor;
@@ -175,8 +176,8 @@
}
@Override
- public int getPageToBindSynchronously() {
- return 0;
+ public IntSet getPagesToBindSynchronously() {
+ return new IntSet();
}
@Override
@@ -199,7 +200,7 @@
}
@Override
- public void finishBindingItems(int pageBoundFirst) { }
+ public void finishBindingItems(IntSet pagesBoundFirst) { }
@Override
public void preAddApps() { }
@@ -229,7 +230,7 @@
public void bindAllWidgets(List<WidgetsListBaseEntry> widgets) { }
@Override
- public void onPageBoundSynchronously(int page) { }
+ public void onPagesBoundSynchronously(IntSet pages) { }
@Override
public void executeOnNextDraw(ViewOnDrawExecutor executor) {
diff --git a/src/com/android/launcher3/util/IntArray.java b/src/com/android/launcher3/util/IntArray.java
index 7252f7a..e7235e7 100644
--- a/src/com/android/launcher3/util/IntArray.java
+++ b/src/com/android/launcher3/util/IntArray.java
@@ -17,13 +17,14 @@
package com.android.launcher3.util;
import java.util.Arrays;
+import java.util.Iterator;
import java.util.StringTokenizer;
/**
* Copy of the platform hidden implementation of android.util.IntArray.
* Implements a growing array of int primitives.
*/
-public class IntArray implements Cloneable {
+public class IntArray implements Cloneable, Iterable<Integer> {
private static final int MIN_CAPACITY_INCREMENT = 12;
private static final int[] EMPTY_INT = new int[0];
@@ -272,4 +273,30 @@
throw new ArrayIndexOutOfBoundsException("length=" + len + "; index=" + index);
}
}
+
+ @Override
+ public Iterator<Integer> iterator() {
+ return new ValueIterator();
+ }
+
+ @Thunk
+ class ValueIterator implements Iterator<Integer> {
+
+ private int mNextIndex = 0;
+
+ @Override
+ public boolean hasNext() {
+ return mNextIndex < size();
+ }
+
+ @Override
+ public Integer next() {
+ return get(mNextIndex++);
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ }
}
\ No newline at end of file
diff --git a/src/com/android/launcher3/util/IntSet.java b/src/com/android/launcher3/util/IntSet.java
index 851f129..0f4df62 100644
--- a/src/com/android/launcher3/util/IntSet.java
+++ b/src/com/android/launcher3/util/IntSet.java
@@ -16,11 +16,13 @@
package com.android.launcher3.util;
import java.util.Arrays;
+import java.util.Iterator;
/**
* A wrapper over IntArray implementing a growing set of int primitives.
+ * The elements in the array are sorted in ascending order.
*/
-public class IntSet {
+public class IntSet implements Iterable<Integer> {
final IntArray mArray = new IntArray();
@@ -34,6 +36,16 @@
}
}
+ /**
+ * Removes the specified value from the set if it exist.
+ */
+ public void remove(int value) {
+ int index = Arrays.binarySearch(mArray.mValues, 0, mArray.mSize, value);
+ if (index >= 0) {
+ mArray.removeIndex(index);
+ }
+ }
+
public boolean contains(int value) {
return Arrays.binarySearch(mArray.mValues, 0, mArray.mSize, value) >= 0;
}
@@ -61,6 +73,9 @@
return (obj instanceof IntSet) && ((IntSet) obj).mArray.equals(mArray);
}
+ /**
+ * Returns the wrapped IntArray. The elements in the array are sorted in ascending order.
+ */
public IntArray getArray() {
return mArray;
}
@@ -78,4 +93,21 @@
Arrays.sort(set.mArray.mValues, 0, set.mArray.mSize);
return set;
}
+
+ /**
+ * Returns an IntSet with the given values.
+ */
+ public static IntSet wrap(int... array) {
+ return wrap(IntArray.wrap(array));
+ }
+
+ @Override
+ public Iterator<Integer> iterator() {
+ return mArray.iterator();
+ }
+
+ @Override
+ public String toString() {
+ return "IntSet{" + mArray.toConcatString() + '}';
+ }
}
diff --git a/src/com/android/launcher3/views/ActivityContext.java b/src/com/android/launcher3/views/ActivityContext.java
index 646b669..b95904e 100644
--- a/src/com/android/launcher3/views/ActivityContext.java
+++ b/src/com/android/launcher3/views/ActivityContext.java
@@ -21,9 +21,12 @@
import android.view.LayoutInflater;
import android.view.View.AccessibilityDelegate;
+import androidx.annotation.Nullable;
+
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.dot.DotInfo;
import com.android.launcher3.dragndrop.DragController;
+import com.android.launcher3.folder.FolderIcon;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.util.ViewCache;
@@ -100,6 +103,13 @@
}
/**
+ * Returns the FolderIcon with the given item id, if it exists.
+ */
+ default @Nullable FolderIcon findFolderIcon(final int folderIconId) {
+ return null;
+ }
+
+ /**
* Returns the ActivityContext associated with the given Context.
*/
static <T extends Context & ActivityContext> T lookupContext(Context context) {