diff options
235 files changed, 1539 insertions, 1180 deletions
diff --git a/quickstep/res/layout/task_menu_with_arrow.xml b/quickstep/res/layout/task_menu_with_arrow.xml index c9108a5abd..88e5cf72cb 100644 --- a/quickstep/res/layout/task_menu_with_arrow.xml +++ b/quickstep/res/layout/task_menu_with_arrow.xml @@ -18,6 +18,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:minWidth="@dimen/task_menu_width_grid" android:animateLayoutChanges="true" android:background="@drawable/task_menu_bg" android:orientation="vertical" diff --git a/quickstep/res/values-af/strings.xml b/quickstep/res/values-af/strings.xml index ab1dd78297..f347eaea0b 100644 --- a/quickstep/res/values-af/strings.xml +++ b/quickstep/res/values-af/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Doen meer met die Taakbalk"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Wys altyd die Taakbalk"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Raak en hou die verdeler in om altyd die Taakbalk onderaan jou skerm te wys"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Raak en hou die aksiesleutel om te soek wat op jou skerm is"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Hierdie produk gebruik die deel van jou skerm wat gekies is om te soek. Google se <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>privaatheidsbeleid<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> en <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>diensbepalings<xliff:g id="END_TOS_LINK"></a></xliff:g> geld."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Maak toe"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Klaar"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Tuis"</string> @@ -138,8 +140,7 @@ <string name="move_drop_target_top_or_left" msgid="2988702185049595807">"Skuif na links bo"</string> <string name="move_drop_target_bottom_or_right" msgid="5431393418797620162">"Skuif na regs onder"</string> <string name="quick_switch_overflow" msgid="6935266023013283353">"{count,plural, =1{Wys nog # app.}other{Wys nog # apps.}}"</string> - <!-- no translation found for quick_switch_desktop (4834587349322698616) --> - <skip /> + <string name="quick_switch_desktop" msgid="4834587349322698616">"{count,plural, =1{Wys # rekenaarapp.}other{Wys # rekenaarapps.}}"</string> <string name="quick_switch_split_task" msgid="5598194724255333896">"<xliff:g id="APP_NAME_1">%1$s</xliff:g> en <xliff:g id="APP_NAME_2">%2$s</xliff:g>"</string> <string name="desktop_select_app_toast" msgid="2306057322833956910">"Voeg nou app by werkskerm"</string> <string name="desktop_button_close_app_toast" msgid="5283096349579408560">"Kanselleer"</string> diff --git a/quickstep/res/values-am/strings.xml b/quickstep/res/values-am/strings.xml index e7fe0fa6da..bde3a2dc11 100644 --- a/quickstep/res/values-am/strings.xml +++ b/quickstep/res/values-am/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"በተግባር አሞሌው ተጨማሪ ነገር ያድርጉ"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"የተግባር አሞሌውን ሁልጊዜ አሳይ"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"በማያ ገጽዎ ግርጌ ላይ ያለውን የተግባር አሞሌ ሁልጊዜ ለማሳየት፣ መክፈያን ይንኩ እና ይያዙ"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"በማያ ገጽዎ ላይ ያለውን ነገር ለመፈለግ የተግባር ቁልፉን ነክተው ይያዙ"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"ይህ ምርት የተመረጠውን የማያ ገጽዎን ክፍል ለመፈለግ ይጠቀማል። የGoogle <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>የግላዊነት መመሪያ<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> እና <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>የአገልግሎት ውል<xliff:g id="END_TOS_LINK"></a></xliff:g> ተፈጻሚ ናቸው።"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"ዝጋ"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"ተጠናቅቋል"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"መነሻ"</string> diff --git a/quickstep/res/values-ar/strings.xml b/quickstep/res/values-ar/strings.xml index e98fc2ffbf..957da2c996 100644 --- a/quickstep/res/values-ar/strings.xml +++ b/quickstep/res/values-ar/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"إنجاز المزيد باستخدام شريط التطبيقات"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"عرض \"شريط التطبيقات\" دائمًا"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"انقر مع الاستمرار على أداة تقسيم الشاشة لعرض \"شريط التطبيقات\" دائمًا في أسفل الشاشة."</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"انقر مع الاستمرار على مفتاح الإجراء للبحث عن المحتوى الذي يظهر على شاشتك"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"يستخدم هذا المنتج الجزء المحدّد من الشاشة للبحث. تسري <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>سياسة خصوصية<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> Google و<xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>بنود خدمتها<xliff:g id="END_TOS_LINK"></a></xliff:g>."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"إغلاق"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"تم"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"الرئيسية"</string> diff --git a/quickstep/res/values-as/strings.xml b/quickstep/res/values-as/strings.xml index 9b75dad3a4..900521ef23 100644 --- a/quickstep/res/values-as/strings.xml +++ b/quickstep/res/values-as/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"টাস্কবাৰৰ জৰিয়তে অধিক কাৰ্য সম্পাদন কৰক"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"টাস্কবাৰডাল সদায় দেখুৱাওক"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"আপোনাৰ স্ক্ৰীনৰ তলত সদায় টাস্কবাৰডাল দেখুৱাবলৈ বিভাজকডাল স্পৰ্শ কৰি ধৰি ৰাখক"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"আপোনাৰ স্ক্ৰীনখনত থকা সমল সন্ধান কৰিবলৈ কাৰ্য কীটো স্পৰ্শ কৰি ধৰি ৰাখক"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"এই প্ৰ’ডাক্টটোৱে সন্ধান কৰিবলৈ আপোনাৰ স্ক্ৰীনখনৰ বাছনি কৰা অংশ ব্যৱহাৰ কৰে। Googleৰ <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>গোপনীয়তাৰ নীতি<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> আৰু <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>সেৱাৰ চৰ্তাৱলী<xliff:g id="END_TOS_LINK"></a></xliff:g> প্ৰযোজ্য।"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"বন্ধ কৰক"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"হ’ল"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"গৃহপৃষ্ঠা"</string> diff --git a/quickstep/res/values-az/strings.xml b/quickstep/res/values-az/strings.xml index 25a0fc8578..82b0d721aa 100644 --- a/quickstep/res/values-az/strings.xml +++ b/quickstep/res/values-az/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Tapşırıq paneli ilə daha çox şey edin"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"İşləmə panelini həmişə göstərin"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"İşləmə panelini həmişə ekranın aşağısında göstərmək üçün ayırıcı üzərinə toxunun və saxlayın"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Ekranda axtarış etmək üçün fəaliyyət açarına toxunub saxlayın"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Bu məhsul axtarış üçün ekranın seçilmiş hissəsindən istifadə edir. Google <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Məxfilik Siyasəti<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> və <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Xidmət Şərtləri<xliff:g id="END_TOS_LINK"></a></xliff:g> tətbiq edilir."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Bağlayın"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Hazırdır"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Ev"</string> diff --git a/quickstep/res/values-b+sr+Latn/strings.xml b/quickstep/res/values-b+sr+Latn/strings.xml index aaa7d8c50a..c88c0a2112 100644 --- a/quickstep/res/values-b+sr+Latn/strings.xml +++ b/quickstep/res/values-b+sr+Latn/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Uradite više pomoću trake zadataka"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Uvek prikazuj traku zadataka"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Da bi traka zadataka uvek bila prikazana u dnu ekrana, dodirnite i zadržite razdelnik"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Dodirnite i zadržite taster radnji da biste pretražili ono što je na ekranu"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Ovaj proizvod koristi izabrani deo ekrana za pretragu. Primenjuju se Google <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>politika privatnosti<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> i <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>uslovi korišćenja usluge<xliff:g id="END_TOS_LINK"></a></xliff:g>."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Zatvori"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Gotovo"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Početna"</string> diff --git a/quickstep/res/values-be/strings.xml b/quickstep/res/values-be/strings.xml index 4d65ecd52e..6a9fa06335 100644 --- a/quickstep/res/values-be/strings.xml +++ b/quickstep/res/values-be/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Выкарыстоўвайце магчымасці панэлі задач"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Замацуйце панэль задач унізе экрана"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Для гэтага націсніце на раздзяляльнік і ўтрымлівайце яго"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Каб выканаць пошук па тым, што адлюстравана на экране, націсніце і ўтрымлівайце клавішу дзеяння"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Гэты прадукт выконвае пошук па змесціве выбранай часткі экрана. Дзейнічаюць <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Умовы выкарыстання<xliff:g id="END_TOS_LINK"></a></xliff:g> і <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Палітыка прыватнасці<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Закрыць"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Гатова"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Галоўны экран"</string> diff --git a/quickstep/res/values-bg/strings.xml b/quickstep/res/values-bg/strings.xml index bf42a231ce..0faaaf71f1 100644 --- a/quickstep/res/values-bg/strings.xml +++ b/quickstep/res/values-bg/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Правете повече неща с лентата на задачите"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Лентата на задачите да се показва винаги"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"За да фиксирате лентата на задачите най-долу на екрана, докоснете и задръжте разделителя"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Докоснете и задръжте клавиша за действия, за да извършите търсене със съдържанието на екрана"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Този продукт използва избраната част на екрана ви, за да търси. Прилагат се <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Декларацията за поверителност<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> и <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Общите условия<xliff:g id="END_TOS_LINK"></a></xliff:g> на Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Затваряне"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Готово"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Начало"</string> diff --git a/quickstep/res/values-bn/strings.xml b/quickstep/res/values-bn/strings.xml index 89a5e76d21..de0c613e59 100644 --- a/quickstep/res/values-bn/strings.xml +++ b/quickstep/res/values-bn/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"\'টাস্কবার\' ফিচারের সাহায্যে আরও অনেক কিছু করুন"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"টাস্কবার সবসময় দেখানো"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"স্ক্রিনের নিচে টাস্কবার সবসময় দেখাতে ডিভাইডার টাচ করে ধরে থাকুন"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"আপনার স্ক্রিনে দেখতে পাওয়া কন্টেন্ট সার্চ করতে অ্যাকশন কী স্পর্শ করে ধরে রাখুন"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"সার্চ করার জন্য এই প্রোডাক্ট স্ক্রিনের বেছে নেওয়া অংশটুকু ব্যবহার করে। Google-এর <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>গোপনীয়তা নীতি<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> এবং <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>পরিষেবার শর্তাবলী<xliff:g id="END_TOS_LINK"></a></xliff:g> প্রযোজ্য।"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"বন্ধ করুন"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"হয়ে গেছে"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"হোম"</string> diff --git a/quickstep/res/values-bs/strings.xml b/quickstep/res/values-bs/strings.xml index 059c14cf00..6be4fb70cb 100644 --- a/quickstep/res/values-bs/strings.xml +++ b/quickstep/res/values-bs/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Uradite više pomoću trake zadataka"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Stalni prikaz trake zadataka"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Da se traka zadataka uvijek prikazuje na dnu ekrana, dodirnite i zadržite razdjelnik"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Dodirnite i zadržite tipku radnji da pretražite sadržaj na ekranu"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Ovaj proizvod koristi odabrani dio ekrana za pretraživanje. Primjenjuju se Googleova <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Pravila privatnosti<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> i <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Uslovi korištenja usluge<xliff:g id="END_TOS_LINK"></a></xliff:g>."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Zatvori"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Gotovo"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Dom"</string> diff --git a/quickstep/res/values-ca/strings.xml b/quickstep/res/values-ca/strings.xml index f2118ebe9f..e7fe6dfb2e 100644 --- a/quickstep/res/values-ca/strings.xml +++ b/quickstep/res/values-ca/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Treu més partit de la Barra de tasques"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Mostra sempre la Barra de tasques"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Perquè es mostri sempre la Barra de tasques a la part inferior de la pantalla, mantén premut el separador"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Mantén premuda la tecla d\'acció per cercar què es mostra a la pantalla"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Aquest producte utilitza la part seleccionada de la pantalla per fer cerques. S\'apliquen la <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>política de privadesa<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> i les <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>condicions del servei<xliff:g id="END_TOS_LINK"></a></xliff:g> de Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Tanca"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Fet"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Inici"</string> diff --git a/quickstep/res/values-cs/strings.xml b/quickstep/res/values-cs/strings.xml index 0771ace367..ad482afedd 100644 --- a/quickstep/res/values-cs/strings.xml +++ b/quickstep/res/values-cs/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Více možností s panelem aplikací"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Stálé zobrazení panelu aplikací"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Pokud chcete, aby se panel aplikací vždy zobrazoval ve spodní části obrazovky, podržte oddělovač."</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Podržením akční klávesy můžete vyhledat obsah na obrazovce"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Tato služba používá k vyhledávání vybranou část obrazovky. Platí <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>zásady ochrany soukromí<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> a <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>smluvní podmínky<xliff:g id="END_TOS_LINK"></a></xliff:g> společnosti Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Zavřít"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Hotovo"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Domů"</string> diff --git a/quickstep/res/values-da/strings.xml b/quickstep/res/values-da/strings.xml index a805762e8a..9d002f0104 100644 --- a/quickstep/res/values-da/strings.xml +++ b/quickstep/res/values-da/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Få mere fra hånden med proceslinjen"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Vis altid proceslinjen"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Hvis du vil have, at proceslinjen altid vises nederst på din skærm, skal du holde fingeren på skillelinjen"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Hold fingeren på handlingstasten for at søge efter det, der vises på din skærm"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Dette produkt bruger den valgte del af din skærm til at søge. Googles <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>privatlivspolitik<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> og <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>servicevilkår<xliff:g id="END_TOS_LINK"></a></xliff:g> er gældende."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Luk"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Luk"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Hjem"</string> diff --git a/quickstep/res/values-de/strings.xml b/quickstep/res/values-de/strings.xml index b1ce2d5be6..5baab32b4b 100644 --- a/quickstep/res/values-de/strings.xml +++ b/quickstep/res/values-de/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Mehr Möglichkeiten mit der Taskleiste"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Taskleiste immer anzeigen"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Damit die Taskleiste immer unten angezeigt wird, halte den Teiler gedrückt"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Aktionstaste gedrückt halten, um auf dem Bildschirm zu suchen"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Dieses Produkt verwendet den ausgewählten Teil deines Bildschirms für die Suche. Es gelten die <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Datenschutzerklärung<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> und die <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Nutzungsbedingungen<xliff:g id="END_TOS_LINK"></a></xliff:g> von Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Schließen"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Fertig"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Startbildschirm"</string> diff --git a/quickstep/res/values-el/strings.xml b/quickstep/res/values-el/strings.xml index 030d834e9e..59e8b120a8 100644 --- a/quickstep/res/values-el/strings.xml +++ b/quickstep/res/values-el/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Κάντε περισσότερα με τη Γραμμή εργαλείων"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Να εμφανίζεται πάντα η Γραμμή εργαλείων"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Για να εμφανίζεται πάντα η Γραμμή εργαλείων στο κάτω μέρος της οθόνης, αγγίξτε παρατεταμένα το διαχωριστικό"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Αγγίξτε παρατεταμένα το πλήκτρο ενέργειας για να αναζητήσετε το περιεχόμενο της οθόνης"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Αυτό το προϊόν χρησιμοποιεί το επιλεγμένο τμήμα της οθόνης σας για αναζήτηση. Ισχύουν η <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Πολιτική απορρήτου<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> και οι <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Όροι Παροχής Υπηρεσιών<xliff:g id="END_TOS_LINK"></a></xliff:g> της Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Κλείσιμο"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Τέλος"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Αρχική σελίδα"</string> diff --git a/quickstep/res/values-en-rAU/strings.xml b/quickstep/res/values-en-rAU/strings.xml index a083fa4af3..42521a9529 100644 --- a/quickstep/res/values-en-rAU/strings.xml +++ b/quickstep/res/values-en-rAU/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Do more with the Taskbar"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Always show the Taskbar"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"To always show the Taskbar on the bottom of your screen, touch and hold the divider"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Touch and hold the action key to search what\'s on your screen"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"This product uses the selected part of your screen to search. Google\'s <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Privacy Policy<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> and <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Terms of Service<xliff:g id="END_TOS_LINK"></a></xliff:g> apply."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Close"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Done"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Home"</string> diff --git a/quickstep/res/values-en-rCA/strings.xml b/quickstep/res/values-en-rCA/strings.xml index cadf7eedf7..9539da6189 100644 --- a/quickstep/res/values-en-rCA/strings.xml +++ b/quickstep/res/values-en-rCA/strings.xml @@ -117,8 +117,8 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Do more with the Taskbar"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Always show the Taskbar"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"To always show the Taskbar on the bottom of your screen, touch & hold the divider"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Touch & hold the action key to search what\'s on your screen"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"This product uses the selected part of your screen to search. Google\'s <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Privacy Policy<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> and <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Terms of Service<xliff:g id="END_TOS_LINK"></a></xliff:g> apply."</string> + <string name="taskbar_search_edu_title" msgid="5569194922234364530">"Touch & hold the action key to search what\'s on your screen"</string> + <string name="taskbar_edu_search_disclosure" msgid="8734536088447779686">"This product uses the selected part of your screen to search. Google\'s <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Privacy Policy<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> and <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Terms of Service<xliff:g id="END_TOS_LINK"></a></xliff:g> apply."</string> <string name="taskbar_edu_close" msgid="887022990168191073">"Close"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Done"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Home"</string> diff --git a/quickstep/res/values-en-rGB/strings.xml b/quickstep/res/values-en-rGB/strings.xml index a083fa4af3..42521a9529 100644 --- a/quickstep/res/values-en-rGB/strings.xml +++ b/quickstep/res/values-en-rGB/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Do more with the Taskbar"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Always show the Taskbar"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"To always show the Taskbar on the bottom of your screen, touch and hold the divider"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Touch and hold the action key to search what\'s on your screen"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"This product uses the selected part of your screen to search. Google\'s <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Privacy Policy<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> and <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Terms of Service<xliff:g id="END_TOS_LINK"></a></xliff:g> apply."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Close"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Done"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Home"</string> diff --git a/quickstep/res/values-en-rIN/strings.xml b/quickstep/res/values-en-rIN/strings.xml index a083fa4af3..42521a9529 100644 --- a/quickstep/res/values-en-rIN/strings.xml +++ b/quickstep/res/values-en-rIN/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Do more with the Taskbar"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Always show the Taskbar"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"To always show the Taskbar on the bottom of your screen, touch and hold the divider"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Touch and hold the action key to search what\'s on your screen"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"This product uses the selected part of your screen to search. Google\'s <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Privacy Policy<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> and <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Terms of Service<xliff:g id="END_TOS_LINK"></a></xliff:g> apply."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Close"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Done"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Home"</string> diff --git a/quickstep/res/values-en-rXC/strings.xml b/quickstep/res/values-en-rXC/strings.xml index 7f1aa13760..f3499e114b 100644 --- a/quickstep/res/values-en-rXC/strings.xml +++ b/quickstep/res/values-en-rXC/strings.xml @@ -117,8 +117,8 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Do more with the Taskbar"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Always show the Taskbar"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"To always show the Taskbar on the bottom of your screen, touch & hold the divider"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Touch & hold the action key to search what\'s on your screen"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"This product uses the selected part of your screen to search. Google\'s <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Privacy Policy<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> and <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Terms of Service<xliff:g id="END_TOS_LINK"></a></xliff:g> apply."</string> + <string name="taskbar_search_edu_title" msgid="5569194922234364530">"Touch & hold the action key to search what\'s on your screen"</string> + <string name="taskbar_edu_search_disclosure" msgid="8734536088447779686">"This product uses the selected part of your screen to search. Google\'s <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Privacy Policy<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> and <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Terms of Service<xliff:g id="END_TOS_LINK"></a></xliff:g> apply."</string> <string name="taskbar_edu_close" msgid="887022990168191073">"Close"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Done"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Home"</string> diff --git a/quickstep/res/values-es-rUS/strings.xml b/quickstep/res/values-es-rUS/strings.xml index 0a92029deb..8b221cc3d3 100644 --- a/quickstep/res/values-es-rUS/strings.xml +++ b/quickstep/res/values-es-rUS/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Aprovecha mejor la Barra de tareas"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Mostrar siempre la Barra de tareas"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Mantén presionado el divisor para mostrar siempre la Barra de tareas en la parte inferior de la pantalla"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Mantén presionada la tecla de acción para buscar qué hay en la pantalla"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Este producto usa la parte seleccionada de la pantalla para buscar. Se aplican la <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Política de Privacidad<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> y las <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Condiciones del Servicio<xliff:g id="END_TOS_LINK"></a></xliff:g> de Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Cerrar"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Listo"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Botón de inicio"</string> diff --git a/quickstep/res/values-es/strings.xml b/quickstep/res/values-es/strings.xml index 0d1ebe09ea..50934006b5 100644 --- a/quickstep/res/values-es/strings.xml +++ b/quickstep/res/values-es/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Sácale más partido a la barra de tareas"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Mostrar siempre la barra de tareas"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Para mostrar siempre la barra de tareas en la parte inferior, mantén pulsada la línea divisoria"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Mantén pulsada la tecla de acción para buscar lo que ves en pantalla"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"El producto usa la parte seleccionada de tu pantalla para hacer búsquedas. Se aplican la <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Política de Privacidad<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> y los <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Términos del Servicio<xliff:g id="END_TOS_LINK"></a></xliff:g> de Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Cerrar"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Hecho"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Inicio"</string> diff --git a/quickstep/res/values-et/strings.xml b/quickstep/res/values-et/strings.xml index 77529cb1e9..16d22485a7 100644 --- a/quickstep/res/values-et/strings.xml +++ b/quickstep/res/values-et/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Tehke tegumiriba abil enamat"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Alati kuvatud tegumiriba"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Puudutage pikalt jaoturit, et tegumiriba oleks ekraani allosas alati kuvatud"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Puudutage pikalt toiminguklahvi, et ekraanil kuvatut otsida"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"See toode kasutab otsingu jaoks ekraani valitud osa. Kehtivad Google\'i <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>privaatsuseeskirjad<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> ja <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>teenusetingimused<xliff:g id="END_TOS_LINK"></a></xliff:g>."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Sule"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Valmis"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Avaleht"</string> diff --git a/quickstep/res/values-eu/strings.xml b/quickstep/res/values-eu/strings.xml index 8a504ec077..690603b679 100644 --- a/quickstep/res/values-eu/strings.xml +++ b/quickstep/res/values-eu/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Egin gauza gehiago zereginen barrarekin"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Erakutsi beti zereginen barra"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Pantailaren behealdeko zereginen barra beti erakusteko, eduki sakatuta zatitzailea"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Eduki sakatuta ekintza-tekla pantailan dagoena bilatzeko"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Produktu honek pantailan hautatutako zatia erabiltzen du bilaketa egiteko. Google-ren <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Pribatutasun-gidalerroak<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> eta <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Zerbitzu-baldintzak<xliff:g id="END_TOS_LINK"></a></xliff:g> aplikatzen dira."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Itxi"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Eginda"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Hasiera"</string> diff --git a/quickstep/res/values-fa/strings.xml b/quickstep/res/values-fa/strings.xml index 814104509a..8d5045b766 100644 --- a/quickstep/res/values-fa/strings.xml +++ b/quickstep/res/values-fa/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"با «نوار وظیفه» میتوانید کارهای بیشتر انجام دهید"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"همیشه نشان داده شدن «نوار وظیفه»"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"برای اینکه «نوار وظیفه» همیشه در پایین صفحه نشان داده شود، تقسیمکننده را لمس کنید و نگه دارید"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"برای جستجوی محتوای صفحهنمایش، دکمه کنش را لمس کنید و نگه دارید"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"این محصول از قسمت انتخابشده صفحهنمایش شما برای جستجو استفاده میکند. <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>خطمشی رازداری<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> و <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>شرایط خدمات<xliff:g id="END_TOS_LINK"></a></xliff:g> Google اعمال میشود."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"بستن"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"تمام"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"صفحه اصلی"</string> diff --git a/quickstep/res/values-fi/strings.xml b/quickstep/res/values-fi/strings.xml index 18331a29d2..e6befd679b 100644 --- a/quickstep/res/values-fi/strings.xml +++ b/quickstep/res/values-fi/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Vinkkejä tehtäväpalkin tehokkaampaan käyttöön"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Näytä tehtäväpalkki aina"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Jos haluat tehtäväpalkin näkyvän aina näytön alaosassa, kosketa jakajaa pitkään"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Kosketa toimintonäppäintä pitkään, niin voit tehdä haun näytöltäsi"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Tämä tuote käyttää hakuun näytön valittua osaa. Tähän sovelletaan Googlen <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>tietosuojakäytäntöä<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> ja <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>käyttöehtoja<xliff:g id="END_TOS_LINK"></a></xliff:g>."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Sulje"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Valmis"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Etusivu"</string> diff --git a/quickstep/res/values-fr-rCA/strings.xml b/quickstep/res/values-fr-rCA/strings.xml index 467a72a766..875ad8fde3 100644 --- a/quickstep/res/values-fr-rCA/strings.xml +++ b/quickstep/res/values-fr-rCA/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Faites-en plus avec la barre des tâches"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Toujours afficher la Barre des tâches"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Pour toujours afficher la Barre des tâches en bas de l\'écran, maintenez le doigt sur le séparateur"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Maintenez le doigt sur la touche d\'action pour rechercher ce qui se trouve sur votre écran"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Ce produit utilise la partie sélectionnée de votre écran pour effectuer une recherche. La <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>politique de confidentialité<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> et les <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>conditions d\'utilisation<xliff:g id="END_TOS_LINK"></a></xliff:g> de Google s\'appliquent."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Fermer"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"OK"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Accueil"</string> diff --git a/quickstep/res/values-fr/strings.xml b/quickstep/res/values-fr/strings.xml index 20b9bab218..1d8227722d 100644 --- a/quickstep/res/values-fr/strings.xml +++ b/quickstep/res/values-fr/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Faites-en plus avec la barre des tâches"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Toujours afficher la barre des tâches"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Pour toujours afficher la barre des tâches en bas de votre écran, appuyez sur le séparateur de manière prolongée."</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Appuyez de manière prolongée sur la touche d\'action pour rechercher ce qui se trouve à l\'écran"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Ce produit utilise la zone sélectionnée de l\'écran pour rechercher. Les <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Règles de confidentialité<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> et les <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Conditions d\'utilisation<xliff:g id="END_TOS_LINK"></a></xliff:g> de Google s\'appliquent."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Fermer"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"OK"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Accueil"</string> diff --git a/quickstep/res/values-gl/strings.xml b/quickstep/res/values-gl/strings.xml index 71ebcf7ca0..096709ccac 100644 --- a/quickstep/res/values-gl/strings.xml +++ b/quickstep/res/values-gl/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Tira máis proveito da barra de tarefas"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Mostrar sempre a barra de tarefas"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Para fixar a barra de tarefas na parte inferior, mantén premida a liña divisoria"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Mantén premida a tecla de acción para buscar o que hai na pantalla"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Este produto utiliza a parte seleccionada da pantalla para facer buscas. Aplícanse as <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Condicións de servizo<xliff:g id="END_TOS_LINK"></a></xliff:g> e a <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Política de privacidade<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> de Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Pechar"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Listo"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Inicio"</string> diff --git a/quickstep/res/values-gu/strings.xml b/quickstep/res/values-gu/strings.xml index cb3c03f901..d495c59a84 100644 --- a/quickstep/res/values-gu/strings.xml +++ b/quickstep/res/values-gu/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"ટાસ્કબાર વડે બીજું ઘણું કરો"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"ટાસ્કબાર હંમેશાં બતાવો"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"ટાસ્કબાર હંમેશાં તમારી સ્ક્રીનમાં સૌથી નીચે દેખાય તે માટે વિભાજકને ટચ કરીને થોડીવાર દબાવી રાખો"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"તમારી સ્ક્રીન પર જે હોય તે શોધવા માટે, ઍક્શન કી ટચ કરીને દબાવી રાખો"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"શોધવા માટે, આ પ્રોડક્ટ તમારી સ્ક્રીનના પસંદ કરેલા ભાગનો ઉપયોગ કરે છે. Googleની <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>પ્રાઇવસી પૉલિસી<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> અને <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>સેવાની શરતો<xliff:g id="END_TOS_LINK"></a></xliff:g> લાગુ થાય છે."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"બંધ કરો"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"થઈ ગયું"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"હોમ"</string> diff --git a/quickstep/res/values-hi/strings.xml b/quickstep/res/values-hi/strings.xml index ebe7d89133..960b489c82 100644 --- a/quickstep/res/values-hi/strings.xml +++ b/quickstep/res/values-hi/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"टास्कबार के साथ कई और काम करें"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"टास्कबार को हमेशा दिखाएं"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"टास्कबार को हमेशा अपनी स्क्रीन के नीचे दिखाने के लिए, डिवाइडर दबाकर रखें"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"स्क्रीन में दिख रहे कॉन्टेंट को खोजने के लिए, ऐक्शन बटन को दबाकर रखें"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"यह प्रॉडक्ट, कॉन्टेंट खोजने के लिए स्क्रीन पर चुनिंदा हिस्से का इस्तेमाल करता है. Google की <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>निजता नीति<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> और <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>सेवा की शर्तें<xliff:g id="END_TOS_LINK"></a></xliff:g> लागू होती हैं."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"बंद करें"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"हो गया"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"होम"</string> diff --git a/quickstep/res/values-hr/strings.xml b/quickstep/res/values-hr/strings.xml index a8875ad1da..cc4db5beea 100644 --- a/quickstep/res/values-hr/strings.xml +++ b/quickstep/res/values-hr/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Učinite više pomoću trake sa zadacima"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Uvijek prikazuj traku sa zadacima"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Da bi se traka prikazivala, dodirnite i držite razdjelnik"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Dodirnite i zadržite tipku za radnju da biste pretražili što se nalazi na zaslonu"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Ovaj proizvod upotrebljava odabrani dio zaslona za pretraživanje. Primjenjuju se Googleova <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>pravila o privatnosti<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> i <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>uvjeti pružanja usluge<xliff:g id="END_TOS_LINK"></a></xliff:g>."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Zatvori"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Gotovo"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Početna"</string> diff --git a/quickstep/res/values-hu/strings.xml b/quickstep/res/values-hu/strings.xml index 4650f4d606..b0e0d39007 100644 --- a/quickstep/res/values-hu/strings.xml +++ b/quickstep/res/values-hu/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Jobban kihasználhatja a Feladatsávot"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Mindig jelenjen meg a Feladatsáv"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Ahhoz, hogy a Feladatsáv mindig megjelenjen a képernyő alján, érintse meg és tartsa lenyomva az elválasztót"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"A műveletbillentyűt lenyomva tartva kereshet a képernyőn található tartalmak között"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Ez a termék a képernyő kiválasztott részét használja a kereséshez. A Google <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Adatvédelmi irányelvei<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> és <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Általános Szerződési Feltételei<xliff:g id="END_TOS_LINK"></a></xliff:g> érvényesek."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Bezárás"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Kész"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Kezdőlap"</string> diff --git a/quickstep/res/values-hy/strings.xml b/quickstep/res/values-hy/strings.xml index 04049a9c6c..0d1f5cdca1 100644 --- a/quickstep/res/values-hy/strings.xml +++ b/quickstep/res/values-hy/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Օգտվեք հավելվածների վահանակի բոլոր հնարավորություններից"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Ամրացրեք հավելվածների վահանակը"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Հավելվածների վահանակն էկրանի ներքևում ամրացնելու համար հպեք և պահեք բաժանիչը"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Սեղմած պահեք գործողության ստեղնը՝ էկրանին բովանդակություն որոնելու համար"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Այս պրոդուկտն օգտագործում է էկրանի ընտրված հատվածը որոնման համար։ Կիրառվում են Google-ի <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>գաղտնիության քաղաքականությունը<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> և <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>օգտագործման պայմանները<xliff:g id="END_TOS_LINK"></a></xliff:g>։"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Փակել"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Պատրաստ է"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Սկիզբ"</string> diff --git a/quickstep/res/values-in/strings.xml b/quickstep/res/values-in/strings.xml index 833a568497..16aa8c49b2 100644 --- a/quickstep/res/values-in/strings.xml +++ b/quickstep/res/values-in/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Lakukan lebih banyak hal dengan Taskbar"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Selalu tampilkan Taskbar"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Untuk selalu menampilkan Taskbar di bagian bawah layar Anda, sentuh & tahan pembatasnya"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Sentuh & tahan tombol tindakan untuk mencari konten di layar Anda"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Produk ini menggunakan bagian layar terpilih untuk menelusuri. <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Kebijakan Privasi<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> dan <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Persyaratan Layanan<xliff:g id="END_TOS_LINK"></a></xliff:g> Google berlaku."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Tutup"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Selesai"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Layar utama"</string> diff --git a/quickstep/res/values-is/strings.xml b/quickstep/res/values-is/strings.xml index 5d3693db18..bed6542790 100644 --- a/quickstep/res/values-is/strings.xml +++ b/quickstep/res/values-is/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Nýttu forritastikuna betur"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Halda forritastikunni sýnilegri"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Haltu skjáskiptingunni neðst á skjánum inni til að halda forritastikunni sýnilegri"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Haltu aðgerðalyklinum inni til að leita að því sem er á skjánum"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Þessi vara notar valinn hluta skjásins til að leita. <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Persónuverndarstefna<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> og <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>þjónustuskilmálar<xliff:g id="END_TOS_LINK"></a></xliff:g> Google gilda."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Loka"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Lokið"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Heim"</string> diff --git a/quickstep/res/values-it/strings.xml b/quickstep/res/values-it/strings.xml index a9391f6949..663b334fe3 100644 --- a/quickstep/res/values-it/strings.xml +++ b/quickstep/res/values-it/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Fai di più con la barra delle app"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Mostra sempre la barra delle app"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Per mostrare sempre la barra delle app in basso, tocca e tieni premuto il divisore"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Tocca e tieni premuto il tasto azione per cercare gli elementi sullo schermo"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Il prodotto usa la parte selezionata dello schermo per cercare. Si applicano le <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Norme sulla privacy<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> e i <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Termini di servizio<xliff:g id="END_TOS_LINK"></a></xliff:g> di Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Chiudi"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Fine"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Home"</string> diff --git a/quickstep/res/values-iw/strings.xml b/quickstep/res/values-iw/strings.xml index 7514ba1bfe..ef4ab6ed51 100644 --- a/quickstep/res/values-iw/strings.xml +++ b/quickstep/res/values-iw/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"פעולות נוספות שאפשר לעשות עם סרגל האפליקציות"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"תמיד להציג את סרגל האפליקציות"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"כדי להציג תמיד את סרגל האפליקציות בתחתית המסך, יש ללחוץ לחיצה ארוכה על המחיצה"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"כדי לחפש במסך, צריך ללחוץ לחיצה ארוכה על מקש הפעולה"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"המוצר הזה משתמש בחלק שבחרת במסך לצורך חיפוש, בכפוף ל<xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>מדיניות הפרטיות<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> ו<xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>התנאים וההגבלות<xliff:g id="END_TOS_LINK"></a></xliff:g> של Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"סגירה"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"סיום"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"בית"</string> diff --git a/quickstep/res/values-ja/strings.xml b/quickstep/res/values-ja/strings.xml index 0cc9f89e9f..8855381f1e 100644 --- a/quickstep/res/values-ja/strings.xml +++ b/quickstep/res/values-ja/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"タスクバーの各種機能"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"タスクバーを常に表示"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"タスクバーを画面下部に常に表示するには分割線を長押しします"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"画面上の内容を検索するには、アクションキーを長押ししてください"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"このサービスは、検索する際に画面上で選択された箇所を使用します。Google の<xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>プライバシー ポリシー<xliff:g id="END_PRIVACY_LINK"></a></xliff:g>と<xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>利用規約<xliff:g id="END_TOS_LINK"></a></xliff:g>が適用されます。"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"閉じる"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"完了"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"ホーム"</string> diff --git a/quickstep/res/values-ka/strings.xml b/quickstep/res/values-ka/strings.xml index d24a698dde..63368b563e 100644 --- a/quickstep/res/values-ka/strings.xml +++ b/quickstep/res/values-ka/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"გააკეთეთ მეტი ამოცანათა ზოლის მეშვეობით"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"ამოცანათა ზოლის მუდმივად ჩვენება"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"თქვენი ეკრანის ქვედა ნაწილში ამოცანათა ზოლის მუდმივად საჩვენებლად, ხანგრძლივად შეეხეთ გამყოფს"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"შეეხეთ და გეჭიროთ მოქმედების კლავიში, რათა მოძებნოთ ის, რაც თქვენს ეკრანზეა"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"ეს პროდუქტი ძიებისთვის იყენებს თქვენი ეკრანის არჩეულ ნაწილს. მოქმედებს Google-ის <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>კონფიდენციალურობის დებულება<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> და <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>მომსახურებს პირობები<xliff:g id="END_TOS_LINK"></a></xliff:g>."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"დახურვა"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"მზადაა"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"მთავარი"</string> diff --git a/quickstep/res/values-kk/strings.xml b/quickstep/res/values-kk/strings.xml index 5073a3fe12..d610fc8c06 100644 --- a/quickstep/res/values-kk/strings.xml +++ b/quickstep/res/values-kk/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Тапсырмалар жолағында мүмкіндік көп"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Тапсырмалар жолағын әрдайым көрсету"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Экранның төменгі жағында тапсырмалар жолағы әрдайым көрсетілуі үшін, бөлгішті басып тұрыңыз."</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Экраннан іздеу үшін әрекет пернесін басып тұрыңыз"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Бұл өнім іздеу үшін экранның таңдалған бөлігін пайдаланады. Google <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Құпиялық саясаты<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> мен <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Қызмет көрсету шарттары<xliff:g id="END_TOS_LINK"></a></xliff:g> қолданылады."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Жабу"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Дайын"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Негізгі экран"</string> diff --git a/quickstep/res/values-km/strings.xml b/quickstep/res/values-km/strings.xml index 0d9aa52e1b..9810518ea6 100644 --- a/quickstep/res/values-km/strings.xml +++ b/quickstep/res/values-km/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"ធ្វើបានកាន់តែច្រើនដោយប្រើរបារកិច្ចការ"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"បង្ហាញរបារកិច្ចការជានិច្ច"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"ដើម្បីបង្ហាញរបារកិច្ចការនៅផ្នែកខាងក្រោមនៃអេក្រង់របស់អ្នកជានិច្ច សូមចុចបន្ទាត់ខណ្ឌចែកឱ្យជាប់"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"ចុចគ្រាប់ចុចសកម្មភាពឱ្យជាប់ ដើម្បីស្វែងរកអ្វីដែលមាននៅលើអេក្រង់របស់អ្នក"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"ផលិតផលនេះប្រើប្រាស់ផ្នែកដែលបានជ្រើសរើសនៃអេក្រង់របស់អ្នក ដើម្បីស្វែងរក។ <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>គោលការណ៍ឯកជនភាព<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> និង<xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>លក្ខខណ្ឌប្រើប្រាស់<xliff:g id="END_TOS_LINK"></a></xliff:g>របស់ Google ត្រូវបានអនុវត្ត។"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"បិទ"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"រួចរាល់"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"ទំព័រដើម"</string> diff --git a/quickstep/res/values-kn/strings.xml b/quickstep/res/values-kn/strings.xml index e4ff655728..10bb08a572 100644 --- a/quickstep/res/values-kn/strings.xml +++ b/quickstep/res/values-kn/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"ಟಾಸ್ಕ್ಬಾರ್ ಮೂಲಕ ಹೆಚ್ಚಿನದನ್ನು ಮಾಡಿ"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"ಯಾವಾಗಲೂ ಟಾಸ್ಕ್ಬಾರ್ ಅನ್ನು ತೋರಿಸಿ"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"ಯಾವಾಗಲೂ ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ನ ಕೆಳಭಾಗದಲ್ಲಿ ಟಾಸ್ಕ್ ಬಾರ್ ಅನ್ನು ತೋರಿಸಲು, ಡಿವೈಡರ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳಿ"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ನ ಮೇಲೆ ಏನಿದೆ ಎಂಬುದನ್ನು ಹುಡುಕಲು ಆ್ಯಕ್ಷನ್ ಕೀಯನ್ನು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"ಈ ಉತ್ಪನ್ನವು ಹುಡುಕಲು ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ನ ಆಯ್ದ ಭಾಗವನ್ನು ಬಳಸುತ್ತದೆ. Google ನ <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>ಗೌಪ್ಯತೆ ನೀತಿ<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> ಮತ್ತು <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>ಸೇವಾ ನಿಯಮಗಳು<xliff:g id="END_TOS_LINK"></a></xliff:g> ಅನ್ವಯಿಸುತ್ತವೆ."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"ಮುಚ್ಚಿರಿ"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"ಆಯಿತು"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"ಮುಖಪುಟ"</string> diff --git a/quickstep/res/values-ko/strings.xml b/quickstep/res/values-ko/strings.xml index 90486bde4d..91b99249cc 100644 --- a/quickstep/res/values-ko/strings.xml +++ b/quickstep/res/values-ko/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"태스크 바 최대한 활용하기"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"태스크 바 항상 표시"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"화면 하단에 태스크 바를 항상 표시하려면 구분선을 길게 터치하세요."</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"화면 내용을 검색하려면 작업 키 길게 터치"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"이 제품은 사용자가 화면에서 선택한 부분을 사용하여 검색하며, Google <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>개인정보처리방침<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> 및 <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>서비스 약관<xliff:g id="END_TOS_LINK"></a></xliff:g>이 적용됩니다."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"닫기"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"완료"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"홈"</string> diff --git a/quickstep/res/values-ky/strings.xml b/quickstep/res/values-ky/strings.xml index 00573c38b0..df82b1aab9 100644 --- a/quickstep/res/values-ky/strings.xml +++ b/quickstep/res/values-ky/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Тапшырмалар тактасы менен көбүрөөк иш бүтүрөсүз"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Тапшырмалар панелин ар дайым көрсөтүү"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Тапшырмалар панелин экрандын ылдый жагында ар дайым көрсөтүү үчүн бөлгүчтү коё бербей басыңыз"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Экрандагы нерсени издөө үчүн аракет баскычын коё бербей кармап туруңуз"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Бул кызмат издөө үчүн экранда тандалган бөлүктү колдонот. Google\'дун <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Купуялык эрежелери<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> жана <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Тейлөө шарттары<xliff:g id="END_TOS_LINK"></a></xliff:g> колдонулат."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Жабуу"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Бүттү"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Башкы бет"</string> diff --git a/quickstep/res/values-lo/strings.xml b/quickstep/res/values-lo/strings.xml index c2ec34fb9d..a360a58142 100644 --- a/quickstep/res/values-lo/strings.xml +++ b/quickstep/res/values-lo/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"ເຮັດສິ່ງຕ່າງໆໄດ້ຫຼາຍຂຶ້ນດ້ວຍແຖບໜ້າວຽກ"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"ສະແດງແຖບໜ້າວຽກສະເໝີ"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"ເພື່ອໃຫ້ແຖບໜ້າວຽກສະແດງຢູ່ລຸ່ມໜ້າຈໍຂອງທ່ານຢູ່ສະເໝີ, ໃຫ້ແຕະຕົວແບ່ງຄ້າງໄວ້"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"ແຕະປຸ່ມຄຳສັ່ງຄ້າງໄວ້ເພື່ອຊອກຫາສິ່ງທີ່ຢູ່ເທິງໜ້າຈໍຂອງທ່ານ"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"ສິນຄ້ານີ້ໃຊ້ສ່ວນທີ່ເລືອກຂອງໜ້າຈໍຂອງທ່ານເພື່ອຊອກຫາ. ເປັນໄປຕາມ <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> ແລະ <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>ຂໍ້ກຳນົດບໍລິການ<xliff:g id="END_TOS_LINK"></a></xliff:g> ຂອງ Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"ປິດ"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"ແລ້ວໆ"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"ໜ້າຫຼັກ"</string> diff --git a/quickstep/res/values-lt/strings.xml b/quickstep/res/values-lt/strings.xml index a4ca18787a..b7e63ccb7b 100644 --- a/quickstep/res/values-lt/strings.xml +++ b/quickstep/res/values-lt/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Atlikite daugiau naudodami Užduočių juostą"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Visada rodyti užduočių juostą"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Jei norite, kad užduočių juosta visada būtų rodoma ekrano apačioje, palieskite ir palaikykite daliklį"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Ekrane rodomo turinio paieška palietus ir laikant veiksmų klavišą"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Šis produktas paieškai naudoja pasirinktą ekrano dalį. Taikomos „Google“ <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>privatumo politikos<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> ir <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>paslaugų teikimo sąlygos<xliff:g id="END_TOS_LINK"></a></xliff:g>."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Uždaryti"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Atlikta"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Pagrindinis"</string> diff --git a/quickstep/res/values-lv/strings.xml b/quickstep/res/values-lv/strings.xml index 7fef8806b7..d855f6f339 100644 --- a/quickstep/res/values-lv/strings.xml +++ b/quickstep/res/values-lv/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Plašākas iespējas, izmantojot uzdevumu joslu"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Vienmēr rādīt uzdevumu joslu"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Lai uzdevumu joslu rādītu apakšdaļā, pieskarieties atdalītājam un turiet"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Pieskarieties darbību taustiņam un turiet to, lai meklētu ekrānā redzamo saturu"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Šis produkts meklēšanai izmanto atlasīto ekrāna daļu. Ir spēkā Google <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>konfidencialitātes politika<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> un <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>pakalpojumu sniegšanas noteikumi<xliff:g id="END_TOS_LINK"></a></xliff:g>."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Aizvērt"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Gatavs"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Sākums"</string> diff --git a/quickstep/res/values-mk/strings.xml b/quickstep/res/values-mk/strings.xml index 832bd74b3b..495aaaabcf 100644 --- a/quickstep/res/values-mk/strings.xml +++ b/quickstep/res/values-mk/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Правете сешто со „Лентата со задачи“"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Како секогаш да се прикажува „Лентата со задачи“"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Допрете и задржете го разделникот за да може „Лентата со задачи“ секогаш да се прикажува на дното на екранот"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Допрете и задржете го копчето за дејство за да пребарувате на екранот"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Производов го користи избраниот дел од екранот за пребарување. Важат <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Политиката за приватност<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> и <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Условите за користење<xliff:g id="END_TOS_LINK"></a></xliff:g> на Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Затвори"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Готово"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Дома"</string> diff --git a/quickstep/res/values-ml/strings.xml b/quickstep/res/values-ml/strings.xml index 6432438130..06accba14e 100644 --- a/quickstep/res/values-ml/strings.xml +++ b/quickstep/res/values-ml/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"ടാസ്ക്ബാർ ഉപയോഗിച്ച് കൂടുതൽ ചെയ്യുക"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"എല്ലായ്പ്പോഴും ടാസ്ക്ബാർ കാണിക്കുക"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"ടാസ്ക്ബാർ എല്ലായ്പ്പോഴും നിങ്ങളുടെ സ്ക്രീനിന്റെ ചുവടെ കാണിക്കുന്നതിന് ഡിവൈഡറിൽ സ്പർശിച്ച് പിടിക്കുക"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"നിങ്ങളുടെ സ്ക്രീനിൽ എന്താണ് ഉള്ളതെന്ന് തിരയാൻ ആക്ഷൻ കീ സ്പർശിച്ച് പിടിക്കുക"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"തിരയുന്നതിന് ഈ ഉൽപ്പന്നം സ്ക്രീനിലെ തിരഞ്ഞെടുത്ത ഭാഗം ഉപയോഗിക്കുന്നു. Google-ന്റെ <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>സ്വകാര്യതാ നയവും<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>സേവന നിബന്ധനകളും<xliff:g id="END_TOS_LINK"></a></xliff:g> ബാധകമാണ്."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"അടയ്ക്കുക"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"പൂർത്തിയായി"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"ഹോം"</string> diff --git a/quickstep/res/values-mn/strings.xml b/quickstep/res/values-mn/strings.xml index 4ab619e2d8..79acca3003 100644 --- a/quickstep/res/values-mn/strings.xml +++ b/quickstep/res/values-mn/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Ажлын хэсгийн тусламжтай илүү ихийг хийгээрэй"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Ажлын хэсгийг үргэлж харуулах"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Дэлгэцийнхээ доод талд Ажлын хэсгийг үргэлж харуулахын тулд хуваагч дээр хүрээд удаан дарна уу"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Дэлгэц дээрээ байгаа зүйлийг хайхын тулд тусгай товчлуурыг удаан дарна уу"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Энэ бүтээгдэхүүн хайхын тулд таны дэлгэцийн сонгосон хэсгийг ашигладаг. Google-н <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>нууцлалын бодлого<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> болон <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>үйлчилгээний нөхцөл<xliff:g id="END_TOS_LINK"></a></xliff:g> хэрэгжинэ."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Хаах"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Дууссан"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Гэр"</string> diff --git a/quickstep/res/values-mr/strings.xml b/quickstep/res/values-mr/strings.xml index cae868d791..03cfa5690c 100644 --- a/quickstep/res/values-mr/strings.xml +++ b/quickstep/res/values-mr/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"टास्कबार चा पुरेपूर वापर करा"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"टास्कबार नेहमी दाखवा"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"टास्कबार नेहमी तुमच्या स्क्रीनच्या तळाशी दाखवण्यासाठी, विभाजकाला स्पर्श करून धरून ठेवा"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"तुमच्या स्क्रीनवर काय आहे हे शोधण्यासाठी अॅक्शन की स्पर्श करून धरून ठेवा"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"शोधण्यासाठी हे उत्पादन तुमच्या स्क्रीनचा निवडलेला भाग वापरते. Google चे <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>गोपनीयता धोरण<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> आणि <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>सेवा अटी<xliff:g id="END_TOS_LINK"></a></xliff:g> लागू होतात."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"बंद करा"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"पूर्ण झाले"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"होम"</string> diff --git a/quickstep/res/values-ms/strings.xml b/quickstep/res/values-ms/strings.xml index 92f6a643c5..23204db218 100644 --- a/quickstep/res/values-ms/strings.xml +++ b/quickstep/res/values-ms/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Lakukan lebih banyak perkara dengan Bar Tugas"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Sentiasa paparkan Bar Tugas"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Untuk sentiasa memaparkan Bar Tugas pada bahagian bawah skrin, sentuh & tahan pembahagi"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Sentuh & tahan kekunci tindakan untuk mencari kandungan yang dipaparkan pada skrin anda"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Produk ini menggunakan bahagian yang dipilih pada skrin untuk membuat carian. <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Dasar Privasi<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> dan <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Syarat Perkhidmatan<xliff:g id="END_TOS_LINK"></a></xliff:g> Google digunakan."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Tutup"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Selesai"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Laman Utama"</string> diff --git a/quickstep/res/values-my/strings.xml b/quickstep/res/values-my/strings.xml index f694c394d2..64afeedf81 100644 --- a/quickstep/res/values-my/strings.xml +++ b/quickstep/res/values-my/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Taskbar ဖြင့် ပိုမိုလုပ်ဆောင်နိုင်ခြင်း"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Taskbar ကို အမြဲပြပါ"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Taskbar ကို စခရင်အောက်ခြေတွင် အမြဲပြရန် ခွဲခြားမျဉ်းကို တို့ထိ၍ ဖိထားပါ"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"သင့်စခရင်ပေါ်ရှိအရာကို ရှာရန် လုပ်ဆောင်ချက်ကီးကို ထိ၍ဖိထားပါ"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"ဤကုန်ပစ္စည်းသည် သင့်စခရင်၌ ရွေးထားသောအပိုင်းကိုသုံး၍ ရှာဖွေသည်။ Google ၏ <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>ကိုယ်ရေးအချက်အလက်လုံခြုံမှုဆိုင်ရာ မူဝါဒ<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> နှင့် <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>ဝန်ဆောင်မှုစည်းမျဉ်းများ<xliff:g id="END_TOS_LINK"></a></xliff:g> အကျုံးဝင်သည်။"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"ပိတ်ရန်"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"ပြီးပြီ"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"ပင်မစာမျက်နှာ"</string> diff --git a/quickstep/res/values-nb/strings.xml b/quickstep/res/values-nb/strings.xml index 54f259649b..6c5eed9089 100644 --- a/quickstep/res/values-nb/strings.xml +++ b/quickstep/res/values-nb/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Gjør mer med oppgavelinjen"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Vis alltid oppgavelinjen"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"For å alltid vise oppgavelinjen nederst på skjermen, trykk og hold på skillelinjen"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Trykk og hold på handlingstasten for å søke etter det som er på skjermen"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Dette produktet bruker den merkede delen av skjermen til å søke. Dette er underlagt Googles <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>personvernregler<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> og <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>vilkår for bruk<xliff:g id="END_TOS_LINK"></a></xliff:g>."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Lukk"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Ferdig"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Hjem"</string> diff --git a/quickstep/res/values-ne/strings.xml b/quickstep/res/values-ne/strings.xml index 401e13b8e8..57bc3f943e 100644 --- a/quickstep/res/values-ne/strings.xml +++ b/quickstep/res/values-ne/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"टास्कबार प्रयोग गरेर अझ धेरै कार्य गर्नुहोस्"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"टास्कबार सधैँ देखाउनुहोस्"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"आफ्नो स्क्रिनको पुछारमा टास्कबार सधैँ देखाइराख्न डिभाइडर टच एन्ड होल्ड गर्नुहोस्"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"आफ्नो स्क्रिनमा भएका कुराहरू खोज्न एक्सन कीमा टच एण्ड होल्ड गर्नुहोस्"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"यो उत्पादनले तपाईंले चयन गर्नुभएको स्क्रिनको भाग प्रयोग गरेर खोजी गर्छ। Google को <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>गोपनीयता नीति<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> र <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>सेवाका सर्तहरू<xliff:g id="END_TOS_LINK"></a></xliff:g> लागू हुन्छन्।"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"बन्द गर्नुहोस्"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"सम्पन्न भयो"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"होम"</string> diff --git a/quickstep/res/values-night/styles.xml b/quickstep/res/values-night/styles.xml index ed0bd5bc1b..401351f5bb 100644 --- a/quickstep/res/values-night/styles.xml +++ b/quickstep/res/values-night/styles.xml @@ -25,6 +25,21 @@ <item name="android:windowBackground">@android:color/transparent</item> </style> + <style name="TextAppearance.GestureTutorial.MainTitle.Home" + parent="TextAppearance.GestureTutorial.MainTitle"> + <item name="android:textColor">?attr/onSurfaceHome</item> + </style> + + <style name="TextAppearance.GestureTutorial.MainTitle.Back" + parent="TextAppearance.GestureTutorial.MainTitle"> + <item name="android:textColor">?attr/onSurfaceBack</item> + </style> + + <style name="TextAppearance.GestureTutorial.MainTitle.Overview" + parent="TextAppearance.GestureTutorial.MainTitle"> + <item name="android:textColor">?attr/onSurfaceOverview</item> + </style> + <style name="TextAppearance.GestureTutorial.MenuButton.Home" parent="TextAppearance.GestureTutorial.MenuButton"> <item name="android:textColor">?attr/onSurfaceHome</item> diff --git a/quickstep/res/values-nl/strings.xml b/quickstep/res/values-nl/strings.xml index e2e0dbede4..6e7cff5d06 100644 --- a/quickstep/res/values-nl/strings.xml +++ b/quickstep/res/values-nl/strings.xml @@ -117,8 +117,8 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Doe meer met de taakbalk"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"De taakbalk altijd tonen"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Houd de scheidingslijn ingedrukt als je de taakbalk altijd onderaan je scherm wilt tonen"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Houd je vinger op de actietoets om te zoeken naar wat er op je scherm staat"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Dit product gebruikt het geselecteerde gedeelte van je scherm om te zoeken. Het <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Privacybeleid<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> en de <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Servicevoorwaarden<xliff:g id="END_TOS_LINK"></a></xliff:g> van Google zijn van toepassing."</string> + <string name="taskbar_search_edu_title" msgid="5569194922234364530">"Houd je vinger op de actietoets om te zoeken naar wat er op je scherm staat"</string> + <string name="taskbar_edu_search_disclosure" msgid="8734536088447779686">"Dit product gebruikt het geselecteerde gedeelte van je scherm om te zoeken. Het <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Privacybeleid<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> en de <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Servicevoorwaarden<xliff:g id="END_TOS_LINK"></a></xliff:g> van Google zijn van toepassing."</string> <string name="taskbar_edu_close" msgid="887022990168191073">"Sluiten"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Klaar"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Home"</string> diff --git a/quickstep/res/values-or/strings.xml b/quickstep/res/values-or/strings.xml index d05fe1e199..6f44c703da 100644 --- a/quickstep/res/values-or/strings.xml +++ b/quickstep/res/values-or/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"ଟାସ୍କବାର ମାଧ୍ୟମରେ ଆହୁରି ଅନେକ କିଛି କରନ୍ତୁ"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"ସର୍ବଦା ଟାସ୍କବାର ଦେଖାନ୍ତୁ"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"ଆପଣଙ୍କ ସ୍କ୍ରିନର ନିମ୍ନରେ ସର୍ବଦା ଟାସ୍କବାର ଦେଖାଇବା ପାଇଁ ଡିଭାଇଡରକୁ ସ୍ପର୍ଶ କରି ଧରି ରଖନ୍ତୁ"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"ଆପଣଙ୍କ ସ୍କ୍ରିନରେ କଣ ଅଛି ତାହା ସର୍ଚ୍ଚ କରିବା ପାଇଁ ଆକ୍ସନ କୀ\'କୁ ସ୍ପର୍ଶ କରି ଧରି ରଖନ୍ତୁ"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"ସର୍ଚ୍ଚ କରିବା ପାଇଁ ଏହି ପ୍ରଡକ୍ଟ ଆପଣଙ୍କ ସ୍କ୍ରିନର ଚୟନିତ ଅଂଶକୁ ବ୍ୟବହାର କରେ। Googleର <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>ଗୋପନୀୟତା ନୀତି<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> ଏବଂ <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>ସେବାର ସର୍ତ୍ତାବଳୀ<xliff:g id="END_TOS_LINK"></a></xliff:g> ଲାଗୁ ହୁଏ।"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"ବନ୍ଦ କରନ୍ତୁ"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"ହୋଇଗଲା"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"ହୋମ"</string> diff --git a/quickstep/res/values-pa/strings.xml b/quickstep/res/values-pa/strings.xml index 3256033302..a638d943e2 100644 --- a/quickstep/res/values-pa/strings.xml +++ b/quickstep/res/values-pa/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"ਟਾਸਕਬਾਰ ਦਾ ਹੋਰ ਲਾਹਾ ਲਓ"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"ਹਮੇਸ਼ਾਂ ਟਾਸਕਬਾਰ ਦਿਖਾਉਣਾ"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"ਆਪਣੀ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਹਮੇਸ਼ਾਂ ਟਾਸਕਬਾਰ ਦਿਖਾਉਣ ਲਈ, ਵਿਭਾਜਕ ਨੂੰ ਸਪਰਸ਼ ਕਰ ਕੇ ਰੱਖੋ"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ \'ਤੇ ਮੌਜੂਦ ਸਮੱਗਰੀ ਨੂੰ ਖੋਜਣ ਲਈ, ਕਾਰਵਾਈ ਕੁੰਜੀ ਨੂੰ ਸਪਰਸ਼ ਕਰ ਕੇ ਰੱਖੋ"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"ਇਹ ਉਤਪਾਦ ਖੋਜ ਕਰਨ ਲਈ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਦੇ ਚੁਣੇ ਹੋਏ ਹਿੱਸੇ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। Google ਦੀ <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>ਪਰਦੇਦਾਰੀ ਨੀਤੀ<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> ਅਤੇ <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>ਸੇਵਾ ਦੇ ਨਿਯਮ<xliff:g id="END_TOS_LINK"></a></xliff:g> ਲਾਗੂ ਹੁੰਦੇ ਹਨ।"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"ਬੰਦ ਕਰੋ"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"ਸਮਝ ਲਿਆ"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"ਘਰ"</string> diff --git a/quickstep/res/values-pl/strings.xml b/quickstep/res/values-pl/strings.xml index 479273390a..20ee3a92d7 100644 --- a/quickstep/res/values-pl/strings.xml +++ b/quickstep/res/values-pl/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Wykorzystaj potencjał paska aplikacji"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Zawsze wyświetlaj pasek aplikacji"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Aby zawsze wyświetlać pasek aplikacji u dołu ekranu, naciśnij i przytrzymaj linię dzielenia ekranu"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Aby rozpocząć wyszukiwanie na podstawie zawartości ekranu, naciśnij i przytrzymaj klawisz działania"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Usługa przy wyszukiwaniu używa zaznaczonego fragmentu ekranu. Obowiązują zapisy <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Polityki prywatności<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> i <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Warunków korzystania z usług<xliff:g id="END_TOS_LINK"></a></xliff:g> Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Zamknij"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Gotowe"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Ekran główny"</string> diff --git a/quickstep/res/values-pt-rPT/strings.xml b/quickstep/res/values-pt-rPT/strings.xml index 4f96a38a0c..fa47374762 100644 --- a/quickstep/res/values-pt-rPT/strings.xml +++ b/quickstep/res/values-pt-rPT/strings.xml @@ -117,8 +117,8 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Faça mais com a Barra de tarefas"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Mostre sempre a Barra de tarefas"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Para mostrar sempre a Barra de tarefas no fundo do ecrã, toque sem soltar no divisor"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Toque sem soltar na tecla de ação para pesquisar o que está no ecrã"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Este produto usa a parte selecionada do ecrã para pesquisar. Aplicam-se a <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Política de Privacidade<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> e os <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Termos de Utilização<xliff:g id="END_TOS_LINK"></a></xliff:g> da Google."</string> + <string name="taskbar_search_edu_title" msgid="5569194922234364530">"Toque sem soltar na tecla de ação para pesquisar o que está no ecrã"</string> + <string name="taskbar_edu_search_disclosure" msgid="8734536088447779686">"Este produto usa a parte selecionada do ecrã para pesquisar. Aplicam-se a <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Política de Privacidade<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> e os <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Termos de Utilização<xliff:g id="END_TOS_LINK"></a></xliff:g> da Google."</string> <string name="taskbar_edu_close" msgid="887022990168191073">"Fechar"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Concluir"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Início"</string> diff --git a/quickstep/res/values-pt/strings.xml b/quickstep/res/values-pt/strings.xml index 2530361c8c..5e0a62e7cc 100644 --- a/quickstep/res/values-pt/strings.xml +++ b/quickstep/res/values-pt/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Aproveite ainda mais a Barra de tarefas"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Sempre mostrar a Barra de tarefas"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Toque e pressione o divisor para sempre mostrar a Barra de tarefas na parte de baixo da tela"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Toque e pressione a tecla de ação para pesquisar o que está na tela"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"O produto usa a parte selecionada da tela para pesquisar. O uso desses dados está sujeito à <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Política de Privacidade<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> e aos <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Termos de Serviço<xliff:g id="END_TOS_LINK"></a></xliff:g> do Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Fechar"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Concluído"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Início"</string> diff --git a/quickstep/res/values-ro/strings.xml b/quickstep/res/values-ro/strings.xml index 0d54d0dd64..10b8b957df 100644 --- a/quickstep/res/values-ro/strings.xml +++ b/quickstep/res/values-ro/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Fă mai multe din Bara de activități"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Afișează întotdeauna Bara de activități"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Pentru a afișa mereu Bara de activități în partea de jos a ecranului, atinge lung separatorul"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Atinge lung tasta de acțiuni ca să cauți pe ecran"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Acest produs folosește partea selectată a ecranului pentru a căuta. Se aplică <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Politica de confidențialitate<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> și <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Termenii și condițiile<xliff:g id="END_TOS_LINK"></a></xliff:g> Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Închide"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Gata"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Ecran de pornire"</string> diff --git a/quickstep/res/values-ru/strings.xml b/quickstep/res/values-ru/strings.xml index 41e0f35636..50097b2e31 100644 --- a/quickstep/res/values-ru/strings.xml +++ b/quickstep/res/values-ru/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Используйте все возможности панели задач"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Закрепите панель задач внизу экрана"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Для этого нажмите на разделитель и удерживайте его."</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Чтобы найти информацию об объекте на экране, нажмите и удерживайте клавишу действия"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Этот продукт использует выделенную часть экрана для поиска. При этом действуют <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Политика конфиденциальности<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> и <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Условия использования<xliff:g id="END_TOS_LINK"></a></xliff:g> Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Закрыть"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Готово"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Главный экран"</string> diff --git a/quickstep/res/values-si/strings.xml b/quickstep/res/values-si/strings.xml index f90dd288f0..2aee9118a8 100644 --- a/quickstep/res/values-si/strings.xml +++ b/quickstep/res/values-si/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"කාර්ය තීරුව සමග තවත් කරන්න"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"සෑම විටම කාර්ය තීරුව පෙන්වන්න"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"සෑම විටම ඔබේ තිරයේ පතුලේ ඇති කාර්ය තීරුව පෙන්වීමට, බෙදුම්කරු ස්පර්ශ කර අල්ලාගෙන සිටින්න"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"ඔබේ තිරයෙහි ඇති දේ සෙවීමට ක්රියා යතුර ස්පර්ශ කර සිටින්න"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"මෙම නිෂ්පාදනය සෙවීමට ඔබේ තිරයෙහි තෝරන ලද කොටස භාවිතා කරයි. Google හි <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>පෞද්ගලිකත්ව ප්රතිපත්තිය<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> සහ <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>සේවා නියමයන්<xliff:g id="END_TOS_LINK"></a></xliff:g> අදාළ වේ."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"වසන්න"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"නිමයි"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"මුල් පිටුව"</string> diff --git a/quickstep/res/values-sk/strings.xml b/quickstep/res/values-sk/strings.xml index 3b5639c3cf..9858d95058 100644 --- a/quickstep/res/values-sk/strings.xml +++ b/quickstep/res/values-sk/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Panel aplikácií vám ponúka ďalšie možnosti"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Vždy zobrazovať panel aplikácií"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Ak chcete, aby sa panel aplikácií vždy zobrazoval v dolnej časti obrazovky, pridržte rozdeľovač"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Ak chcete vyhľadávať, čo je na obrazovke, pridržte akčný kláves."</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Táto služba používa na účely vyhľadávania vybranú časť obrazovky. Uplatňujú sa <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>pravidlá ochrany súkromia<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> a <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>zmluvné podmienky<xliff:g id="END_TOS_LINK"></a></xliff:g> spoločnosti Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Zavrieť"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Hotovo"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Plocha"</string> diff --git a/quickstep/res/values-sl/strings.xml b/quickstep/res/values-sl/strings.xml index 6714240f38..d2bc79f2bf 100644 --- a/quickstep/res/values-sl/strings.xml +++ b/quickstep/res/values-sl/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Naredite več z opravilno vrstico"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Stalni prikaz opravilne vrstice"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Če želite, da je opravilna vrstica vedno prikazana na dnu zaslona, pridržite razdelilno črto."</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Za iskanje po zaslonu se dotaknite in pridržite tipko za dejanja"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Ta izdelek za iskanje uporablja izbrani del zaslona. Veljajo Googlov <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>pravilnik o zasebnosti<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> in <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>pogoji storitve<xliff:g id="END_TOS_LINK"></a></xliff:g>."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Zapri"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Končano"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Začetni zaslon"</string> diff --git a/quickstep/res/values-sq/strings.xml b/quickstep/res/values-sq/strings.xml index f67efb66be..b11f413a3b 100644 --- a/quickstep/res/values-sq/strings.xml +++ b/quickstep/res/values-sq/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Bëj më shumë me \"Shiritin e detyrave\""</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Shfaq gjithmonë \"Shiritin e detyrave\""</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Prek e mbaj ndarësin dhe shfaq gjithmonë \"Shiritin e detyrave\" në fund të ekranit"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Prek dhe mbaj shtypur tastin e veprimit për të kërkuar për gjërat në ekran"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Ky produkt përdor pjesën e zgjedhur të ekranit tënd për të kërkuar. Zbatohen <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Politika e privatësisë<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> dhe <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Kushtet e shërbimit<xliff:g id="END_TOS_LINK"></a></xliff:g> të Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Mbyll"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"U krye"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Faqja kryesore"</string> diff --git a/quickstep/res/values-sr/strings.xml b/quickstep/res/values-sr/strings.xml index 5ad5c1f962..950bba8712 100644 --- a/quickstep/res/values-sr/strings.xml +++ b/quickstep/res/values-sr/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Урадите више помоћу траке задатака"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Увек приказуј траку задатака"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Да би трака задатака увек била приказана у дну екрана, додирните и задржите разделник"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Додирните и задржите тастер радњи да бисте претражили оно што је на екрану"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Овај производ користи изабрани део екрана за претрагу. Примењују се Google <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>политика приватности<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> и <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>услови коришћења услуге<xliff:g id="END_TOS_LINK"></a></xliff:g>."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Затвори"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Готово"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Почетна"</string> diff --git a/quickstep/res/values-sv/strings.xml b/quickstep/res/values-sv/strings.xml index 67f7928646..82b0f00dd4 100644 --- a/quickstep/res/values-sv/strings.xml +++ b/quickstep/res/values-sv/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Gör mer med aktivitetsfältet"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Visa alltid aktivitetsfältet"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Tryck länge på avgränsaren för att alltid visa aktivitetsfältet längst ned på skärmen"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Tryck länge på åtgärdstangenten för att söka efter det som finns på skärmen"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Den här produkten använder den valda delen av skärmen för att söka. Googles <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>integritetspolicy<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> och <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>användarvillkor<xliff:g id="END_TOS_LINK"></a></xliff:g> gäller."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Stäng"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Klar"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Startsida"</string> diff --git a/quickstep/res/values-sw/strings.xml b/quickstep/res/values-sw/strings.xml index 8f4d3fd258..2de909e649 100644 --- a/quickstep/res/values-sw/strings.xml +++ b/quickstep/res/values-sw/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Kamilisha mengi kwa kutumia Upauzana huu"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Onyesha Upauzana kila wakati"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Ili uonyeshe Upauzana kila wakati chini ya skrini yako, gusa na ushikilie kitenganishi"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Gusa na ushikilie kitufe cha vitendo ili utafute kilicho kwenye skrini yako"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Bidhaa hii hutumia sehemu uliyochagua kwenye skrini yako kutafuta. <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Sera ya Faragha<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> na <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Sheria na Masharti<xliff:g id="END_TOS_LINK"></a></xliff:g> ya Google yatatumika."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Funga"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Imemaliza"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Mwanzo"</string> diff --git a/quickstep/res/values-ta/strings.xml b/quickstep/res/values-ta/strings.xml index 5a4630ec2b..191b89dc5a 100644 --- a/quickstep/res/values-ta/strings.xml +++ b/quickstep/res/values-ta/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"செயல் பட்டி மூலம் மேலும் பலவற்றைச் செய்யுங்கள்"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"செயல் பட்டியை எப்போதும் காட்டுதல்"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"திரையின் கீழ்ப்பகுதியில் செயல் பட்டியை எப்போதும் காட்டுவதற்கு, பிரிப்பானைத் தொட்டுப் பிடித்திருக்கவும்"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"உங்கள் திரையில் உள்ளவற்றைத் தேடுவதற்கு ஆக்ஷன் பட்டனைத் தொட்டுப் பிடியுங்கள்"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"தேடுவதற்கு உங்கள் திரையின் தேர்ந்தெடுக்கப்பட்ட பகுதியை இந்தத் தயாரிப்பு பயன்படுத்துகிறது. Googleளின் <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>தனியுரிமைக் கொள்கையும்<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>சேவை விதிமுறைகளும்<xliff:g id="END_TOS_LINK"></a></xliff:g> பொருந்தும்."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"மூடுக"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"முடிந்தது"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"முகப்பு"</string> diff --git a/quickstep/res/values-te/strings.xml b/quickstep/res/values-te/strings.xml index ceee6e509b..078df1468f 100644 --- a/quickstep/res/values-te/strings.xml +++ b/quickstep/res/values-te/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"టాస్క్బార్తో మరిన్ని చేయండి"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"టాస్క్బార్ను నిరంతరం చూపండి"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"మీ స్క్రీన్ దిగువున టాస్క్బార్ను నిరంతరం చూపడానికి, డివైడర్ను తాకి, నొక్కి ఉంచండి"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"మీ స్క్రీన్లో ఏం ఉందో సెర్చ్ చేయడానికి యాక్షన్ కీని తాకి ఉంచండి"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"ఈ ప్రోడక్ట్, సెర్చ్ చేయడానికి మీ స్క్రీన్లో ఎంచుకున్న భాగాన్ని ఉపయోగిస్తుంది. Google <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>గోప్యతా పాలసీ<xliff:g id="END_PRIVACY_LINK"></a></xliff:g>, <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>సర్వీస్ నియమాలు<xliff:g id="END_TOS_LINK"></a></xliff:g> వర్తిస్తాయి."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"మూసివేయండి"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"పూర్తయింది"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"మొదటి ట్యాబ్"</string> diff --git a/quickstep/res/values-th/strings.xml b/quickstep/res/values-th/strings.xml index 71f9950952..8f92fc6a79 100644 --- a/quickstep/res/values-th/strings.xml +++ b/quickstep/res/values-th/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"ทำสิ่งต่างๆ ได้มากขึ้นด้วยแถบงาน"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"แสดงแถบงานเสมอ"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"หากต้องการให้แถบงานแสดงที่ด้านล่างหน้าจออยู่เสมอ ให้แตะตัวแบ่งค้างไว้"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"แตะปุ่มดำเนินการค้างไว้เพื่อค้นหาสิ่งที่อยู่บนหน้าจอ"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"ผลิตภัณฑ์นี้ใช้ส่วนที่เลือกของหน้าจอเพื่อค้นหา เป็นไปตาม<xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>นโยบายความเป็นส่วนตัว<xliff:g id="END_PRIVACY_LINK"></a></xliff:g>และ<xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>ข้อกําหนดในการให้บริการ<xliff:g id="END_TOS_LINK"></a></xliff:g>ของ Google"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"ปิด"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"เสร็จ"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"หน้าแรก"</string> diff --git a/quickstep/res/values-tl/strings.xml b/quickstep/res/values-tl/strings.xml index 3c3acc1839..1cbb70d469 100644 --- a/quickstep/res/values-tl/strings.xml +++ b/quickstep/res/values-tl/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Mas maraming magawa gamit ang Taskbar"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Palaging ipakita ang Taskbar"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Para palaging ipakita ang Taskbar sa ibaba ng iyong screen, pindutin nang matagal ang divider"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Pindutin nang matagal ang action key para hanapin kung ano ang nasa iyong screen"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Ginagamit ng produktong ito ang piniling bahagi ng iyong screen para maghanap. Nalalapat ang <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Patakaran sa Privacy<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> at <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Mga Tuntunin ng Serbisyo<xliff:g id="END_TOS_LINK"></a></xliff:g> ng Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Isara"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Tapos na"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Home"</string> diff --git a/quickstep/res/values-tr/strings.xml b/quickstep/res/values-tr/strings.xml index 45d2fc4302..5c7f7e8059 100644 --- a/quickstep/res/values-tr/strings.xml +++ b/quickstep/res/values-tr/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Görev çubuğuyla daha fazla şey yapın"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Görev çubuğunu sabitleyin"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Ayırıcıya dokunup basılı tuttuğunuzda görev çubuğu ekranın alt kısmına sabitlenir"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Ekranınızda bulunan içerikleri aramak için eylem tuşuna dokunup basılı tutun"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Bu ürün, ekranınızın seçilen bölümünü kullanarak arama yapar. Google\'ın <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Gizlilik Politikası<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> ve <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Hizmet Şartları<xliff:g id="END_TOS_LINK"></a></xliff:g> geçerlidir."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Kapat"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Bitti"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Ana ekran"</string> diff --git a/quickstep/res/values-uk/strings.xml b/quickstep/res/values-uk/strings.xml index 4838552771..2c89609e53 100644 --- a/quickstep/res/values-uk/strings.xml +++ b/quickstep/res/values-uk/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Більше можливостей завдяки панелі завдань"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Завжди показувати панель завдань"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Щоб завжди показувати панель завдань унизу екрана, натисніть і втримуйте роздільник"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Для пошуку інформації, що відображається на екрані, натисніть і втримуйте клавішу дії"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Цей продукт використовує для пошуку вибрану частину екрана. Застосовуються <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Політика конфіденційності<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> та <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Загальні положення й умови<xliff:g id="END_TOS_LINK"></a></xliff:g> Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Закрити"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Готово"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Головний екран"</string> diff --git a/quickstep/res/values-ur/strings.xml b/quickstep/res/values-ur/strings.xml index ee96e5c45b..ec4fa9dd9e 100644 --- a/quickstep/res/values-ur/strings.xml +++ b/quickstep/res/values-ur/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"ٹاسک بار سے بہت کچھ کریں"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"ہمیشہ ٹاسک بار دکھائیں"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"ٹاسک بار کو ہمیشہ اپنی اسکرین کے نیچے دکھانے کے لیے، ڈیوائیڈر کو ٹچ کریں اور دبائے رکھیں"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"آپ کی اسکرین پر جو کچھ ہے اسے تلاش کرنے کے لیے ایکشن کلید کو ٹچ کریں اور دبائے رکھیں"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"یہ پروڈکٹ تلاش کرنے کے لیے آپ کی اسکرین کا منتخب حصہ استعمال کرتا ہے۔ Google کی <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>رازداری کی پالیسی<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> اور <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>سروس کی شرائط<xliff:g id="END_TOS_LINK"></a></xliff:g> لاگو ہوتی ہیں۔"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"بند کریں"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"ہو گیا"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"ہوم"</string> diff --git a/quickstep/res/values-uz/strings.xml b/quickstep/res/values-uz/strings.xml index 41e6d24f28..8085195755 100644 --- a/quickstep/res/values-uz/strings.xml +++ b/quickstep/res/values-uz/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Vazifalar panelidan maksimal darajada foydalaning"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Vazifalar paneli doim chiqarilsin"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Vazifalar panelini ekranning pastki qismida doim chiqib turishi uchun ajratkichni bosib turing"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Ekrandagi element haqida maʼlumotni topish uchun amal tugmasini bosib turing"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Bu mahsulot qidirish uchun ekranning tanlangan qismidan foydalanadi. Google <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>maxfiylik siyosati<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> va <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>xizmat shartlari<xliff:g id="END_TOS_LINK"></a></xliff:g> tatbiq qilinadi."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Yopish"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Tayyor"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Bosh ekran"</string> diff --git a/quickstep/res/values-vi/strings.xml b/quickstep/res/values-vi/strings.xml index 709fb10f5f..acc2011605 100644 --- a/quickstep/res/values-vi/strings.xml +++ b/quickstep/res/values-vi/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Làm nhiều việc hơn qua Thanh tác vụ"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Luôn hiện Taskbar"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Để luôn hiện Taskbar ở cuối màn hình, hãy nhấn và giữ đường phân chia"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Hãy chạm và giữ phím hành động để tìm xem trên màn hình của bạn có gì"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Sản phẩm này dùng phần được chọn trên màn hình để tìm kiếm. Có áp dụng <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Chính sách quyền riêng tư<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> và <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Điều khoản dịch vụ<xliff:g id="END_TOS_LINK"></a></xliff:g> của Google."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Đóng"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Xong"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Màn hình chính"</string> diff --git a/quickstep/res/values-zh-rCN/strings.xml b/quickstep/res/values-zh-rCN/strings.xml index d30fdfaeaa..ea721ac21e 100644 --- a/quickstep/res/values-zh-rCN/strings.xml +++ b/quickstep/res/values-zh-rCN/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"体验任务栏的更多功能"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"始终显示任务栏"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"若要始终在屏幕底部显示任务栏,请轻触并按住分隔线"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"轻触并按住操作键,即可根据屏幕上的内容进行搜索"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"此产品会根据您在屏幕上选取的部分进行搜索。Google 的<xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>《隐私权政策》<xliff:g id="END_PRIVACY_LINK"></a></xliff:g>和<xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>《服务条款》<xliff:g id="END_TOS_LINK"></a></xliff:g>在此适用。"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"关闭"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"完成"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"主屏幕"</string> diff --git a/quickstep/res/values-zh-rHK/strings.xml b/quickstep/res/values-zh-rHK/strings.xml index d8e698c9ec..e4be9588de 100644 --- a/quickstep/res/values-zh-rHK/strings.xml +++ b/quickstep/res/values-zh-rHK/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"工作列助你事半功倍"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"一律顯示工作列"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"如要持續在畫面底部顯示工作列,請按住分隔線"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"按住快捷操作鍵即可搜尋畫面上的內容"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"此產品使用螢幕的特定部分進行搜尋。須受 Google 的《<xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>私隱權政策<xliff:g id="END_PRIVACY_LINK"></a></xliff:g>》和《<xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>服務條款<xliff:g id="END_TOS_LINK"></a></xliff:g>》約束。"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"關閉"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"完成"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"住宅"</string> diff --git a/quickstep/res/values-zh-rTW/strings.xml b/quickstep/res/values-zh-rTW/strings.xml index 98465a6a60..b2784b760c 100644 --- a/quickstep/res/values-zh-rTW/strings.xml +++ b/quickstep/res/values-zh-rTW/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"充分發揮工作列的功用"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"一律顯示工作列"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"如要一律在畫面底部顯示工作列,請按住分隔線"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"按住快捷操作鍵即可搜尋畫面上的內容"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"這項產品會搜尋你在畫面上選取的內容 (適用 Google 的《<xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>隱私權政策<xliff:g id="END_PRIVACY_LINK"></a></xliff:g>》和《<xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>服務條款<xliff:g id="END_TOS_LINK"></a></xliff:g>》)。"</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"關閉"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"完成"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"主畫面"</string> diff --git a/quickstep/res/values-zu/strings.xml b/quickstep/res/values-zu/strings.xml index bbb6631125..e9ba580a2a 100644 --- a/quickstep/res/values-zu/strings.xml +++ b/quickstep/res/values-zu/strings.xml @@ -117,8 +117,10 @@ <string name="taskbar_edu_features" msgid="3320337287472848162">"Yenza okwengeziwe nge-Taskbar"</string> <string name="taskbar_edu_pinning_title" msgid="210102174154211712">"Bonisa njalo i-Taskbar"</string> <string name="taskbar_edu_pinning_standalone" msgid="2636919474366410467">"Ukuze ubonise njalo i-Taskbar phansi kwesikrini sakho, thinta bese ubamba isihlukanisi"</string> - <string name="taskbar_edu_circle_to_search_title" msgid="4322780398403949508">"Thinta uphinde ubambe inkinobho yokufinyelela ukuze useshe lokho okukusikrini sakho"</string> - <string name="taskbar_edu_circle_to_search_disclosure" msgid="5841648785867787221">"Lo mkhiqizo usebenzisa ingxenye ekhethiwe yesikrini sakho ukusesha. <xliff:g id="BEGIN_PRIVACY_LINK"><a href="%1$s"></xliff:g>Inqubomgomo Yobumfihlo<xliff:g id="END_PRIVACY_LINK"></a></xliff:g> ye-Google kanye <xliff:g id="BEGIN_TOS_LINK"><a href="%2$s"></xliff:g>Nemigomo Yesevisi<xliff:g id="END_TOS_LINK"></a></xliff:g> iyasebenza."</string> + <!-- no translation found for taskbar_search_edu_title (5569194922234364530) --> + <skip /> + <!-- no translation found for taskbar_edu_search_disclosure (8734536088447779686) --> + <skip /> <string name="taskbar_edu_close" msgid="887022990168191073">"Vala"</string> <string name="taskbar_edu_done" msgid="6880178093977704569">"Kwenziwe"</string> <string name="taskbar_button_home" msgid="2151398979630664652">"Ikhaya"</string> diff --git a/quickstep/res/values/styles.xml b/quickstep/res/values/styles.xml index 16fb6d2ed4..952505a484 100644 --- a/quickstep/res/values/styles.xml +++ b/quickstep/res/values/styles.xml @@ -169,17 +169,17 @@ <style name="TextAppearance.GestureTutorial.MainTitle.Home" parent="TextAppearance.GestureTutorial.MainTitle"> - <item name="android:textColor">?attr/onSurfaceHome</item> + <item name="android:textColor">?attr/secondaryHome</item> </style> <style name="TextAppearance.GestureTutorial.MainTitle.Back" parent="TextAppearance.GestureTutorial.MainTitle"> - <item name="android:textColor">?attr/onSurfaceBack</item> + <item name="android:textColor">?attr/secondaryBack</item> </style> <style name="TextAppearance.GestureTutorial.MainTitle.Overview" parent="TextAppearance.GestureTutorial.MainTitle"> - <item name="android:textColor">?attr/onSurfaceOverview</item> + <item name="android:textColor">?attr/secondaryOverview</item> </style> <style name="TextAppearance.GestureTutorial.MainTitle.Success.Home" diff --git a/quickstep/src/com/android/launcher3/appprediction/AppsDividerView.java b/quickstep/src/com/android/launcher3/appprediction/AppsDividerView.java index 694475ae69..84c2ed252b 100644 --- a/quickstep/src/com/android/launcher3/appprediction/AppsDividerView.java +++ b/quickstep/src/com/android/launcher3/appprediction/AppsDividerView.java @@ -28,14 +28,15 @@ import android.text.StaticLayout; import android.text.TextPaint; import android.util.AttributeSet; import android.view.View; +import android.view.accessibility.AccessibilityManager; import androidx.annotation.ColorInt; import androidx.core.content.ContextCompat; import com.android.launcher3.R; +import com.android.launcher3.Utilities; import com.android.launcher3.allapps.FloatingHeaderRow; import com.android.launcher3.allapps.FloatingHeaderView; -import com.android.launcher3.util.Themes; /** * A view which shows a horizontal divider @@ -54,6 +55,7 @@ public class AppsDividerView extends View implements FloatingHeaderRow { private final @ColorInt int mStrokeColor; private final @ColorInt int mAllAppsLabelTextColor; + private final AccessibilityManager mAccessibilityManager; private Layout mAllAppsLabelLayout; private boolean mShowAllAppsLabel; @@ -87,7 +89,8 @@ public class AppsDividerView extends View implements FloatingHeaderRow { mAllAppsLabelTextColor = ContextCompat.getColor(context, R.color.material_color_on_surface_variant); - mShowAllAppsLabel = !ALL_APPS_VISITED_COUNT.hasReachedMax(context); + mAccessibilityManager = AccessibilityManager.getInstance(context); + setShowAllAppsLabel(!ALL_APPS_VISITED_COUNT.hasReachedMax(context)); } public void setup(FloatingHeaderView parent, FloatingHeaderRow[] rows, boolean tabsHidden) { @@ -99,6 +102,9 @@ public class AppsDividerView extends View implements FloatingHeaderRow { /** {@code true} if all apps label should be shown in place of divider. */ public void setShowAllAppsLabel(boolean showAllAppsLabel) { + if (mAccessibilityManager.isEnabled() && !Utilities.isRunningInTestHarness()) { + showAllAppsLabel = true; + } if (showAllAppsLabel != mShowAllAppsLabel) { mShowAllAppsLabel = showAllAppsLabel; updateDividerType(); @@ -148,6 +154,7 @@ public class AppsDividerView extends View implements FloatingHeaderRow { mDividerType = dividerType; int topPadding; int bottomPadding; + setContentDescription(null); switch (dividerType) { case LINE: topPadding = 0; @@ -161,6 +168,7 @@ public class AppsDividerView extends View implements FloatingHeaderRow { bottomPadding = getResources() .getDimensionPixelSize(R.dimen.all_apps_label_bottom_padding); mPaint.setColor(mAllAppsLabelTextColor); + setContentDescription(mAllAppsLabelLayout.getText()); break; case NONE: default: diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt index 6163dadca6..95c4e25dd8 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarInsetsController.kt @@ -153,6 +153,16 @@ class TaskbarInsetsController(val context: TaskbarActivityContext) : LoggableTas context.deviceProfile.widthPx, windowLayoutParams.height ) + + // if there's an animating bubble add it to the touch region so that it's clickable + val animatingBubbleBounds = + controllers.bubbleControllers + .getOrNull() + ?.bubbleBarViewController + ?.animatingBubbleBounds + if (animatingBubbleBounds != null) { + defaultTouchableRegion.op(animatingBubbleBounds, Region.Op.UNION) + } } // Pre-calculate insets for different providers across different rotations for this gravity diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java index e47640b1c7..3196bfb924 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java @@ -62,6 +62,7 @@ import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; import com.android.launcher3.anim.AnimatorPlaybackController; import com.android.launcher3.statemanager.StatefulActivity; +import com.android.launcher3.taskbar.TaskbarNavButtonController.TaskbarNavButtonCallbacks; import com.android.launcher3.taskbar.unfold.NonDestroyableScopedUnfoldTransitionProgressProvider; import com.android.launcher3.uioverrides.QuickstepLauncher; import com.android.launcher3.util.DisplayController; @@ -70,7 +71,6 @@ import com.android.launcher3.util.SimpleBroadcastReceiver; import com.android.quickstep.AllAppsActionManager; import com.android.quickstep.RecentsActivity; import com.android.quickstep.SystemUiProxy; -import com.android.quickstep.TouchInteractionService; import com.android.quickstep.util.AssistUtils; import com.android.systemui.shared.system.QuickStepContract; import com.android.systemui.unfold.UnfoldTransitionProgressProvider; @@ -209,15 +209,18 @@ public class TaskbarManager { @SuppressLint("WrongConstant") public TaskbarManager( - TouchInteractionService service, AllAppsActionManager allAppsActionManager) { + Context context, + AllAppsActionManager allAppsActionManager, + TaskbarNavButtonCallbacks navCallbacks) { + Display display = - service.getSystemService(DisplayManager.class).getDisplay(DEFAULT_DISPLAY); - mContext = service.createWindowContext(display, + context.getSystemService(DisplayManager.class).getDisplay(DEFAULT_DISPLAY); + mContext = context.createWindowContext(display, ENABLE_TASKBAR_NAVBAR_UNIFICATION ? TYPE_NAVIGATION_BAR : TYPE_NAVIGATION_BAR_PANEL, null); mAllAppsActionManager = allAppsActionManager; mNavigationBarPanelContext = ENABLE_TASKBAR_NAVBAR_UNIFICATION - ? service.createWindowContext(display, TYPE_NAVIGATION_BAR_PANEL, null) + ? context.createWindowContext(display, TYPE_NAVIGATION_BAR_PANEL, null) : null; if (enableTaskbarNoRecreate()) { mWindowManager = mContext.getSystemService(WindowManager.class); @@ -234,8 +237,11 @@ public class TaskbarManager { } }; } - mNavButtonController = new TaskbarNavButtonController(service, - SystemUiProxy.INSTANCE.get(mContext), new Handler(), + mNavButtonController = new TaskbarNavButtonController( + context, + navCallbacks, + SystemUiProxy.INSTANCE.get(mContext), + new Handler(), AssistUtils.newInstance(mContext)); mComponentCallbacks = new ComponentCallbacks() { private Configuration mOldConfig = mContext.getResources().getConfiguration(); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java index 03f55cac84..ade4649dab 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java @@ -31,6 +31,7 @@ import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SY import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_RECENTS; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING; +import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.util.Log; @@ -47,10 +48,8 @@ import com.android.launcher3.statehandlers.DesktopVisibilityController; import com.android.launcher3.testing.TestLogging; import com.android.launcher3.testing.shared.TestProtocol; import com.android.quickstep.LauncherActivityInterface; -import com.android.quickstep.OverviewCommandHelper; import com.android.quickstep.SystemUiProxy; import com.android.quickstep.TaskUtils; -import com.android.quickstep.TouchInteractionService; import com.android.quickstep.util.AssistUtils; import java.io.PrintWriter; @@ -106,7 +105,8 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa private static final int SCREEN_UNPIN_COMBO = BUTTON_BACK | BUTTON_RECENTS; private int mLongPressedButtons = 0; - private final TouchInteractionService mService; + private final Context mContext; + private final TaskbarNavButtonCallbacks mCallbacks; private final SystemUiProxy mSystemUiProxy; private final Handler mHandler; private final AssistUtils mAssistUtils; @@ -114,9 +114,14 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa private final Runnable mResetLongPress = this::resetScreenUnpin; - public TaskbarNavButtonController(TouchInteractionService service, - SystemUiProxy systemUiProxy, Handler handler, AssistUtils assistUtils) { - mService = service; + public TaskbarNavButtonController( + Context context, + TaskbarNavButtonCallbacks callbacks, + SystemUiProxy systemUiProxy, + Handler handler, + AssistUtils assistUtils) { + mContext = context; + mCallbacks = callbacks; mSystemUiProxy = systemUiProxy; mHandler = handler; mAssistUtils = assistUtils; @@ -286,7 +291,7 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa desktopVisibilityController.onHomeActionTriggered(); } - mService.getOverviewCommandHelper().addCommand(OverviewCommandHelper.TYPE_HOME); + mCallbacks.onNavigateHome(); } private void navigateToOverview() { @@ -295,7 +300,7 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa } TestLogging.recordEvent(TestProtocol.SEQUENCE_MAIN, "onOverviewToggle"); TaskUtils.closeSystemWindowsAsync(CLOSE_SYSTEM_WINDOWS_REASON_RECENTS); - mService.getOverviewCommandHelper().addCommand(OverviewCommandHelper.TYPE_TOGGLE); + mCallbacks.onToggleOverview(); } private void executeBack() { @@ -310,7 +315,7 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa if (longClick) { mSystemUiProxy.notifyAccessibilityButtonLongClicked(); } else { - mSystemUiProxy.notifyAccessibilityButtonClicked(mService.getDisplayId()); + mSystemUiProxy.notifyAccessibilityButtonClicked(mContext.getDisplayId()); } } @@ -333,4 +338,13 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa private void showNotifications() { mSystemUiProxy.toggleNotificationPanel(); } + + /** Callbacks for navigation buttons on Taskbar. */ + public interface TaskbarNavButtonCallbacks { + /** Callback invoked when the home button is pressed. */ + default void onNavigateHome() {} + + /** Callback invoked when the overview button is pressed. */ + default void onToggleOverview() {} + } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index 41c0586208..2162a7319a 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -84,7 +84,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba public static final int FLAG_IN_APP = 1 << 0; public static final int FLAG_STASHED_IN_APP_SYSUI = 1 << 1; // shade open, ... public static final int FLAG_STASHED_IN_APP_SETUP = 1 << 2; // setup wizard and AllSetActivity - public static final int FLAG_STASHED_IN_APP_IME = 1 << 3; // IME is visible + public static final int FLAG_STASHED_IME = 1 << 3; // IME is visible public static final int FLAG_IN_STASHED_LAUNCHER_STATE = 1 << 4; public static final int FLAG_STASHED_IN_TASKBAR_ALL_APPS = 1 << 5; // All apps is visible. public static final int FLAG_IN_SETUP = 1 << 6; // In the Setup Wizard @@ -99,21 +99,19 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba // If we're in an app and any of these flags are enabled, taskbar should be stashed. private static final int FLAGS_STASHED_IN_APP = FLAG_STASHED_IN_APP_SYSUI - | FLAG_STASHED_IN_APP_SETUP | FLAG_STASHED_IN_APP_IME - | FLAG_STASHED_IN_TASKBAR_ALL_APPS | FLAG_STASHED_SMALL_SCREEN - | FLAG_STASHED_IN_APP_AUTO; + | FLAG_STASHED_IN_APP_SETUP | FLAG_STASHED_IN_TASKBAR_ALL_APPS + | FLAG_STASHED_SMALL_SCREEN | FLAG_STASHED_IN_APP_AUTO; // If any of these flags are enabled, inset apps by our stashed height instead of our unstashed // height. This way the reported insets are consistent even during transitions out of the app. // Currently any flag that causes us to stash in an app is included, except for IME or All Apps // since those cover the underlying app anyway and thus the app shouldn't change insets. private static final int FLAGS_REPORT_STASHED_INSETS_TO_APP = FLAGS_STASHED_IN_APP - & ~FLAG_STASHED_IN_APP_IME & ~FLAG_STASHED_IN_TASKBAR_ALL_APPS - & ~FLAG_STASHED_IN_APP_SYSUI; + & ~FLAG_STASHED_IME & ~FLAG_STASHED_IN_TASKBAR_ALL_APPS & ~FLAG_STASHED_IN_APP_SYSUI; // If any of these flags are enabled, the taskbar must be stashed. private static final int FLAGS_FORCE_STASHED = FLAG_STASHED_SYSUI | FLAG_STASHED_DEVICE_LOCKED - | FLAG_STASHED_IN_TASKBAR_ALL_APPS | FLAG_STASHED_SMALL_SCREEN; + | FLAG_STASHED_IN_TASKBAR_ALL_APPS | FLAG_STASHED_SMALL_SCREEN | FLAG_STASHED_IME; /** * How long to stash/unstash when manually invoked via long press. @@ -598,7 +596,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba ? stashTranslation : 0) .setDuration(duration)); mAnimator.play(mTaskbarImeBgAlpha.animateToValue( - (hasAnyFlag(FLAG_STASHED_IN_APP_IME) && isStashed) ? 0 : 1).setDuration( + (hasAnyFlag(FLAG_STASHED_IME) && isStashed) ? 0 : 1).setDuration( duration)); mAnimator.addListener(AnimatorListeners.forEndCallback(() -> { mAnimator = null; @@ -901,8 +899,8 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba private void setStashedImeState() { boolean shouldStashForIme = shouldStashForIme(); - if (hasAnyFlag(FLAG_STASHED_IN_APP_IME) != shouldStashForIme) { - updateStateForFlag(FLAG_STASHED_IN_APP_IME, shouldStashForIme); + if (hasAnyFlag(FLAG_STASHED_IME) != shouldStashForIme) { + updateStateForFlag(FLAG_STASHED_IME, shouldStashForIme); applyState(TASKBAR_STASH_DURATION_FOR_IME, getTaskbarStashStartDelayForIme()); } else { applyState(mControllers.taskbarOverlayController.getCloseDuration()); @@ -949,7 +947,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba mIsImeShowing = hasAnyFlag(systemUiStateFlags, SYSUI_STATE_IME_SHOWING); mIsImeSwitcherShowing = hasAnyFlag(systemUiStateFlags, SYSUI_STATE_IME_SWITCHER_SHOWING); - if (updateStateForFlag(FLAG_STASHED_IN_APP_IME, shouldStashForIme())) { + if (updateStateForFlag(FLAG_STASHED_IME, shouldStashForIme())) { animDuration = TASKBAR_STASH_DURATION_FOR_IME; startDelay = getTaskbarStashStartDelayForIme(); } @@ -1158,7 +1156,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba appendFlag(sj, flags, FLAGS_IN_APP, "FLAG_IN_APP"); appendFlag(sj, flags, FLAG_STASHED_IN_APP_SYSUI, "FLAG_STASHED_IN_APP_SYSUI"); appendFlag(sj, flags, FLAG_STASHED_IN_APP_SETUP, "FLAG_STASHED_IN_APP_SETUP"); - appendFlag(sj, flags, FLAG_STASHED_IN_APP_IME, "FLAG_STASHED_IN_APP_IME"); + appendFlag(sj, flags, FLAG_STASHED_IME, "FLAG_STASHED_IN_APP_IME"); appendFlag(sj, flags, FLAG_IN_STASHED_LAUNCHER_STATE, "FLAG_IN_STASHED_LAUNCHER_STATE"); appendFlag(sj, flags, FLAG_STASHED_IN_TASKBAR_ALL_APPS, "FLAG_STASHED_IN_TASKBAR_ALL_APPS"); appendFlag(sj, flags, FLAG_IN_SETUP, "FLAG_IN_SETUP"); diff --git a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarView.java b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarView.java index db069d51f0..52349369ef 100644 --- a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarView.java +++ b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarView.java @@ -104,6 +104,8 @@ public class BubbleBarView extends FrameLayout { * updates the bounds and accounts for translation. */ private final Rect mBubbleBarBounds = new Rect(); + /** The bounds of the animating bubble in the coordinate space of the BubbleBarView. */ + private final Rect mAnimatingBubbleBounds = new Rect(); // The amount the bubbles overlap when they are stacked in the bubble bar private final float mIconOverlapAmount; // The spacing between the bubbles when bubble bar is expanded @@ -460,6 +462,30 @@ public class BubbleBarView extends FrameLayout { return mBubbleBarBounds; } + /** Returns the bounds of the animating bubble, or {@code null} if no bubble is animating. */ + @Nullable + public Rect getAnimatingBubbleBounds() { + if (mIsAnimatingNewBubble) { + return mAnimatingBubbleBounds; + } + return null; + } + + /** + * Updates the animating bubble bounds. This should be called when the bubble is fully animated + * in so that we can include it in taskbar touchable region. + * + * <p>The bounds are adjusted to the coordinate space of BubbleBarView so that it can be used + * by taskbar. + */ + public void updateAnimatingBubbleBounds(int left, int top, int width, int height) { + Rect bubbleBarBounds = getBubbleBarBounds(); + mAnimatingBubbleBounds.left = bubbleBarBounds.left + left; + mAnimatingBubbleBounds.top = bubbleBarBounds.top + top; + mAnimatingBubbleBounds.right = mAnimatingBubbleBounds.left + width; + mAnimatingBubbleBounds.bottom = mAnimatingBubbleBounds.top + height; + } + /** * Set bubble bar relative pivot value for X and Y, applied as a fraction of view width/height * respectively. If the value is not in range of 0 to 1 it will be normalized. @@ -581,6 +607,8 @@ public class BubbleBarView extends FrameLayout { final float ty = (mBubbleBarBounds.height() - mIconSize) / 2f; final boolean animate = getVisibility() == VISIBLE; final boolean onLeft = mBubbleBarLocation.isOnLeft(isLayoutRtl()); + // elevation state is opposite to widthState - when expanded all icons are flat + float elevationState = (1 - widthState); for (int i = 0; i < bubbleCount; i++) { BubbleView bv = (BubbleView) getChildAt(i); bv.setTranslationY(ty); @@ -599,17 +627,20 @@ public class BubbleBarView extends FrameLayout { expandedX = i * (mIconSize + mExpandedBarIconsSpacing); collapsedX = i == 0 ? 0 : mIconOverlapAmount; } - + if (bv == mDraggedBubbleView) { + // if bubble is dragged set the elevation to bubble drag elevation + bv.setZ(mDragElevation); + } else { + // otherwise slowly animate elevation while keeping correct Z ordering + float fullElevationForChild = (MAX_BUBBLES * mBubbleElevation) - i; + bv.setZ(fullElevationForChild * elevationState); + } if (mIsBarExpanded) { // If bar is on the right, account for bubble bar expanding and shifting left final float expandedBarShift = onLeft ? 0 : currentWidth - expandedWidth; // where the bubble will end up when the animation ends final float targetX = expandedX + expandedBarShift; bv.setTranslationX(widthState * (targetX - collapsedX) + collapsedX); - // if we're fully expanded, set the z level to 0 or to bubble elevation if dragged - if (widthState == 1f) { - bv.setZ(bv == mDraggedBubbleView ? mBubbleElevation : 0); - } // When we're expanded, we're not stacked so we're not behind the stack bv.setBehindStack(false, animate); bv.setAlpha(1); @@ -618,7 +649,6 @@ public class BubbleBarView extends FrameLayout { final float collapsedBarShift = onLeft ? 0 : currentWidth - collapsedWidth; final float targetX = collapsedX + collapsedBarShift; bv.setTranslationX(widthState * (expandedX - targetX) + targetX); - bv.setZ((MAX_BUBBLES * mBubbleElevation) - i); // If we're not the first bubble we're behind the stack bv.setBehindStack(i > 0, animate); // If we're fully collapsed, hide all bubbles except for the first 2. If there are @@ -852,10 +882,15 @@ public class BubbleBarView extends FrameLayout { @Override public boolean onInterceptTouchEvent(MotionEvent ev) { - if (!mIsBarExpanded) { + if (!mIsBarExpanded && !mIsAnimatingNewBubble) { // When the bar is collapsed, all taps on it should expand it. return true; } return super.onInterceptTouchEvent(ev); } + + /** Whether a new bubble is currently animating. */ + public boolean isAnimatingNewBubble() { + return mIsAnimatingNewBubble; + } } diff --git a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java index 0e62eafb4b..3c46f32e17 100644 --- a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java @@ -138,6 +138,15 @@ public class BubbleBarViewController { if (bubble == null) { Log.e(TAG, "bubble click listener, bubble was null"); } + + if (mBarView.isAnimatingNewBubble()) { + mBubbleBarViewAnimator.onBubbleClickedWhileAnimating(); + mBubbleStashController.showBubbleBarImmediate(); + setExpanded(true); + mBubbleBarController.showAndSelectBubble(bubble); + return; + } + final String currentlySelected = mBubbleBarController.getSelectedBubbleKey(); if (mBarView.isExpanded() && Objects.equals(bubble.getKey(), currentlySelected)) { // Tapping the currently selected bubble while expanded collapses the view. @@ -213,6 +222,12 @@ public class BubbleBarViewController { return mBarView.getBubbleBarBounds(); } + /** The bounds of the animating bubble, or {@code null} if no bubble is animating. */ + @Nullable + public Rect getAnimatingBubbleBounds() { + return mBarView.getAnimatingBubbleBounds(); + } + /** The horizontal margin of the bubble bar from the edge of the screen. */ public int getHorizontalMargin() { return mBarView.getHorizontalMargin(); @@ -373,7 +388,7 @@ public class BubbleBarViewController { boolean isInApp = mTaskbarStashController.isInApp(); // only animate the new bubble if we're in an app and not auto expanding - if (b instanceof BubbleBarBubble && isInApp && !isExpanding) { + if (b instanceof BubbleBarBubble && isInApp && !isExpanding && !isExpanded()) { mBubbleBarViewAnimator.animateBubbleInForStashed((BubbleBarBubble) b); } } else { diff --git a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleStashController.java b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleStashController.java index 76d86de4e2..bea0af8394 100644 --- a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleStashController.java @@ -347,7 +347,7 @@ public class BubbleStashController { hotseatCellHeight - mUnstashedHeight) / 2; } - float getBubbleBarTranslationY() { + public float getBubbleBarTranslationY() { // If we're on home, adjust the translation so the bubble bar aligns with hotseat. // Otherwise we're either showing in an app or in overview. In either case adjust it so // the bubble bar aligns with the taskbar. @@ -374,4 +374,19 @@ public class BubbleStashController { public PhysicsAnimator<View> getStashedHandlePhysicsAnimator() { return mHandleViewController.getPhysicsAnimator(); } + + /** Notifies taskbar that it should update its touchable region. */ + public void updateTaskbarTouchRegion() { + mTaskbarInsetsController.onTaskbarOrBubblebarWindowHeightOrInsetsChanged(); + } + + /** Shows the bubble bar immediately without animation. */ + public void showBubbleBarImmediate() { + mHandleViewController.setTranslationYForSwipe(0); + mIconTranslationYForStash.updateValue(getBubbleBarTranslationY()); + mIconAlphaForStash.setValue(1); + mIconScaleForStash.updateValue(1); + mIsStashed = false; + onIsStashedChanged(); + } } diff --git a/quickstep/src/com/android/launcher3/taskbar/bubbles/animation/BubbleBarViewAnimator.kt b/quickstep/src/com/android/launcher3/taskbar/bubbles/animation/BubbleBarViewAnimator.kt index 2d8983fca7..da369448da 100644 --- a/quickstep/src/com/android/launcher3/taskbar/bubbles/animation/BubbleBarViewAnimator.kt +++ b/quickstep/src/com/android/launcher3/taskbar/bubbles/animation/BubbleBarViewAnimator.kt @@ -35,6 +35,8 @@ constructor( private val scheduler: Scheduler = HandlerScheduler(bubbleBarView) ) { + private var animatingBubble: AnimatingBubble? = null + private companion object { /** The time to show the flyout. */ const val FLYOUT_DELAY_MS: Long = 2500 @@ -54,26 +56,40 @@ constructor( const val BUBBLE_ANIMATION_STASH_HANDLE_TRANSLATION_Y = -20f } + /** Wrapper around the animating bubble with its show and hide animations. */ + private data class AnimatingBubble( + val bubbleView: BubbleView, + val showAnimation: Runnable, + val hideAnimation: Runnable + ) + /** An interface for scheduling jobs. */ interface Scheduler { /** Schedule the given [block] to run. */ - fun post(block: () -> Unit) + fun post(block: Runnable) /** Schedule the given [block] to start with a delay of [delayMillis]. */ - fun postDelayed(delayMillis: Long, block: () -> Unit) + fun postDelayed(delayMillis: Long, block: Runnable) + + /** Cancel the given [block] if it hasn't started yet. */ + fun cancel(block: Runnable) } /** A [Scheduler] that uses a Handler to run jobs. */ private class HandlerScheduler(private val view: View) : Scheduler { - override fun post(block: () -> Unit) { + override fun post(block: Runnable) { view.post(block) } - override fun postDelayed(delayMillis: Long, block: () -> Unit) { + override fun postDelayed(delayMillis: Long, block: Runnable) { view.postDelayed(block, delayMillis) } + + override fun cancel(block: Runnable) { + view.removeCallbacks(block) + } } private val springConfig = @@ -91,6 +107,7 @@ constructor( // and the second part hides it after a delay. val showAnimation = buildShowAnimation(bubbleView, b.key) val hideAnimation = buildHideAnimation(bubbleView) + animatingBubble = AnimatingBubble(bubbleView, showAnimation, hideAnimation) scheduler.post(showAnimation) scheduler.postDelayed(FLYOUT_DELAY_MS, hideAnimation) } @@ -113,7 +130,7 @@ constructor( private fun buildShowAnimation( bubbleView: BubbleView, key: String, - ): () -> Unit = { + ) = Runnable { bubbleBarView.prepareForAnimatingBubbleWhileStashed(key) // calculate the initial translation x the bubble should have in order to align it with the // stash handle. @@ -140,7 +157,7 @@ constructor( // map the path [0, BUBBLE_ANIMATION_STASH_HANDLE_TRANSLATION_Y] to [0,1] val fraction = ty / BUBBLE_ANIMATION_STASH_HANDLE_TRANSLATION_Y - target.alpha = 1 - fraction / 2 + target.alpha = 1 - fraction } ty >= totalTranslationY -> { // this is the second leg of the animation. the handle should be completely @@ -173,6 +190,16 @@ constructor( } } } + animator.addEndListener { _, _, _, _, _, _, _ -> + // the bubble is now fully settled in. make it touchable + bubbleBarView.updateAnimatingBubbleBounds( + bubbleView.left, + bubbleView.top, + bubbleView.width, + bubbleView.height + ) + bubbleStashController.updateTaskbarTouchRegion() + } animator.start() } @@ -189,7 +216,7 @@ constructor( * 1. In the second part the bubble is fully hidden and the handle animates in. * 1. The third part is the overshoot. The handle is made fully visible. */ - private fun buildHideAnimation(bubbleView: BubbleView): () -> Unit = { + private fun buildHideAnimation(bubbleView: BubbleView) = Runnable { // this is the total distance that both the stashed handle and the bubble will be traveling val totalTranslationY = BUBBLE_ANIMATION_BUBBLE_TRANSLATION_Y + BUBBLE_ANIMATION_STASH_HANDLE_TRANSLATION_Y @@ -230,6 +257,7 @@ constructor( } } animator.addEndListener { _, _, _, _, _, _, _ -> + animatingBubble = null bubbleView.alpha = 0f bubbleView.translationY = 0f bubbleView.scaleY = 1f @@ -237,9 +265,18 @@ constructor( bubbleBarView.alpha = 0f } bubbleBarView.onAnimatingBubbleCompleted() + bubbleStashController.updateTaskbarTouchRegion() } animator.start() } + + /** Handles clicking on the animating bubble while the animation is still playing. */ + fun onBubbleClickedWhileAnimating() { + val hideAnimation = animatingBubble?.hideAnimation ?: return + scheduler.cancel(hideAnimation) + bubbleBarView.onAnimatingBubbleCompleted() + animatingBubble = null + } } /** The X position in screen coordinates of the center of the bubble. */ diff --git a/quickstep/src/com/android/quickstep/DesktopSystemShortcut.kt b/quickstep/src/com/android/quickstep/DesktopSystemShortcut.kt index f26d594dbb..aab6aa159e 100644 --- a/quickstep/src/com/android/quickstep/DesktopSystemShortcut.kt +++ b/quickstep/src/com/android/quickstep/DesktopSystemShortcut.kt @@ -73,7 +73,7 @@ class DesktopSystemShortcut( ) } - override fun showForSplitscreen() = true + override fun showForGroupedTask() = true } } } diff --git a/quickstep/src/com/android/quickstep/LauncherBackAnimationController.java b/quickstep/src/com/android/quickstep/LauncherBackAnimationController.java index 79b09fdbec..225b127d9d 100644 --- a/quickstep/src/com/android/quickstep/LauncherBackAnimationController.java +++ b/quickstep/src/com/android/quickstep/LauncherBackAnimationController.java @@ -220,6 +220,11 @@ public class LauncherBackAnimationController { } }); } + + @Override + public void setTriggerBack(boolean triggerBack) { + // TODO(b/261654570): track touch from the Launcher process. + } } private static class RemoteAnimationRunnerStub extends IRemoteAnimationRunner.Stub { diff --git a/quickstep/src/com/android/quickstep/TaskAnimationManager.java b/quickstep/src/com/android/quickstep/TaskAnimationManager.java index 9d899fcb48..2348f28c62 100644 --- a/quickstep/src/com/android/quickstep/TaskAnimationManager.java +++ b/quickstep/src/com/android/quickstep/TaskAnimationManager.java @@ -54,8 +54,7 @@ import java.io.PrintWriter; import java.util.HashMap; public class TaskAnimationManager implements RecentsAnimationCallbacks.RecentsAnimationListener { - public static final boolean ENABLE_SHELL_TRANSITIONS = - SystemProperties.getBoolean("persist.wm.debug.shell_transit", true); + public static final boolean ENABLE_SHELL_TRANSITIONS = true; public static final boolean SHELL_TRANSITIONS_ROTATION = ENABLE_SHELL_TRANSITIONS && SystemProperties.getBoolean("persist.wm.debug.shell_transit_rotate", false); diff --git a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java index 0d9564d4f8..d32c7a6dc4 100644 --- a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java +++ b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java @@ -16,8 +16,6 @@ package com.android.quickstep; -import static android.view.Surface.ROTATION_0; - import static com.android.quickstep.views.OverviewActionsView.DISABLED_NO_THUMBNAIL; import static com.android.quickstep.views.OverviewActionsView.DISABLED_ROTATED; @@ -33,7 +31,6 @@ import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; import com.android.launcher3.BaseActivity; -import com.android.launcher3.Flags; import com.android.launcher3.R; import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.model.data.WorkspaceItemInfo; @@ -42,6 +39,7 @@ import com.android.launcher3.util.ResourceBasedOverride; import com.android.launcher3.views.ActivityContext; import com.android.launcher3.views.Snackbar; import com.android.quickstep.util.RecentsOrientedState; +import com.android.quickstep.views.DesktopTaskView; import com.android.quickstep.views.GroupedTaskView; import com.android.quickstep.views.OverviewActionsView; import com.android.quickstep.views.RecentsView; @@ -65,9 +63,11 @@ public class TaskOverlayFactory implements ResourceBasedOverride { final ArrayList<SystemShortcut> shortcuts = new ArrayList<>(); final RecentsViewContainer container = RecentsViewContainer.containerFromContext(taskView.getContext()); - boolean hasMultipleTasks = taskView.getTaskIds()[1] != -1; for (TaskShortcutFactory menuOption : MENU_OPTIONS) { - if (hasMultipleTasks && !menuOption.showForSplitscreen()) { + if (taskView instanceof GroupedTaskView && !menuOption.showForGroupedTask()) { + continue; + } + if (taskView instanceof DesktopTaskView && !menuOption.showForDesktopTask()) { continue; } @@ -77,33 +77,6 @@ public class TaskOverlayFactory implements ResourceBasedOverride { } shortcuts.addAll(menuShortcuts); } - RecentsOrientedState orientedState = taskView.getRecentsView().getPagedViewOrientedState(); - boolean canLauncherRotate = orientedState.isRecentsActivityRotationAllowed(); - boolean isInLandscape = orientedState.getTouchRotation() != ROTATION_0; - boolean isTablet = container.getDeviceProfile().isTablet; - - boolean isGridOnlyOverview = isTablet && Flags.enableGridOnlyOverview(); - // Add overview actions to the menu when: - // - single task is showing - // - in in-place rotate landscape mode, or in grid-only overview. - if (!hasMultipleTasks && ((!canLauncherRotate && isInLandscape) || isGridOnlyOverview)) { - // Add screenshot action to task menu. - List<SystemShortcut> screenshotShortcuts = TaskShortcutFactory.SCREENSHOT - .getShortcuts(container, taskContainer); - if (screenshotShortcuts != null) { - shortcuts.addAll(screenshotShortcuts); - } - - // Add modal action only if display orientation is the same as the device orientation, - // or in grid-only overview. - if (orientedState.getDisplayRotation() == ROTATION_0 || isGridOnlyOverview) { - List<SystemShortcut> modalShortcuts = TaskShortcutFactory.MODAL - .getShortcuts(container, taskContainer); - if (modalShortcuts != null) { - shortcuts.addAll(modalShortcuts); - } - } - } return shortcuts; } @@ -140,7 +113,9 @@ public class TaskOverlayFactory implements ResourceBasedOverride { TaskShortcutFactory.FREE_FORM, DesktopSystemShortcut.Companion.createFactory(), TaskShortcutFactory.WELLBEING, - TaskShortcutFactory.SAVE_APP_PAIR + TaskShortcutFactory.SAVE_APP_PAIR, + TaskShortcutFactory.SCREENSHOT, + TaskShortcutFactory.MODAL }; /** diff --git a/quickstep/src/com/android/quickstep/TaskShortcutFactory.java b/quickstep/src/com/android/quickstep/TaskShortcutFactory.java index 94667a4aac..8df4bdd660 100644 --- a/quickstep/src/com/android/quickstep/TaskShortcutFactory.java +++ b/quickstep/src/com/android/quickstep/TaskShortcutFactory.java @@ -18,6 +18,7 @@ package com.android.quickstep; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS; +import static android.view.Surface.ROTATION_0; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_SYSTEM_SHORTCUT_FREE_FORM_TAP; import static com.android.window.flags.Flags.enableDesktopWindowingMode; @@ -39,6 +40,7 @@ import android.window.SplashScreen; import androidx.annotation.Nullable; import com.android.launcher3.DeviceProfile; +import com.android.launcher3.Flags; import com.android.launcher3.R; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.logging.StatsLogManager.LauncherEvent; @@ -50,6 +52,7 @@ import com.android.launcher3.util.InstantAppResolver; import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption; import com.android.launcher3.views.ActivityContext; import com.android.quickstep.orientation.RecentsPagedOrientationHandler; +import com.android.quickstep.util.RecentsOrientedState; import com.android.quickstep.views.GroupedTaskView; import com.android.quickstep.views.RecentsView; import com.android.quickstep.views.RecentsViewContainer; @@ -79,7 +82,17 @@ public interface TaskShortcutFactory { return null; } - default boolean showForSplitscreen() { + /** + * Returns {@code true} if it should be shown for grouped task; {@code false} otherwise. + */ + default boolean showForGroupedTask() { + return false; + } + + /** + * Returns {@code true} if it should be shown for desktop task; {@code false} otherwise. + */ + default boolean showForDesktopTask() { return false; } @@ -107,7 +120,7 @@ public interface TaskShortcutFactory { } @Override - public boolean showForSplitscreen() { + public boolean showForGroupedTask() { return true; } }; @@ -354,7 +367,7 @@ public interface TaskShortcutFactory { } @Override - public boolean showForSplitscreen() { + public boolean showForGroupedTask() { return true; } }; @@ -456,18 +469,53 @@ public interface TaskShortcutFactory { @Override public List<SystemShortcut> getShortcuts(RecentsViewContainer container, TaskIdAttributeContainer taskContainer) { + boolean isTablet = container.getDeviceProfile().isTablet; + boolean isGridOnlyOverview = isTablet && Flags.enableGridOnlyOverview(); + // Extra conditions if it's not grid-only overview + if (!isGridOnlyOverview) { + RecentsOrientedState orientedState = + taskContainer.getTaskView().getRecentsView().getPagedViewOrientedState(); + boolean isFakeLandscape = !orientedState.isRecentsActivityRotationAllowed() + && orientedState.getTouchRotation() != ROTATION_0; + if (!isFakeLandscape) { + return null; + } + } + SystemShortcut screenshotShortcut = taskContainer.getThumbnailView().getTaskOverlay() .getScreenshotShortcut(container, taskContainer.getItemInfo(), taskContainer.getTaskView()); return createSingletonShortcutList(screenshotShortcut); } + + @Override + public boolean showForDesktopTask() { + return true; + } }; TaskShortcutFactory MODAL = new TaskShortcutFactory() { @Override public List<SystemShortcut> getShortcuts(RecentsViewContainer container, TaskIdAttributeContainer taskContainer) { + boolean isTablet = container.getDeviceProfile().isTablet; + boolean isGridOnlyOverview = isTablet && Flags.enableGridOnlyOverview(); + // Extra conditions if it's not grid-only overview + if (!isGridOnlyOverview) { + RecentsOrientedState orientedState = + taskContainer.getTaskView().getRecentsView().getPagedViewOrientedState(); + boolean isFakeLandscape = !orientedState.isRecentsActivityRotationAllowed() + && orientedState.getTouchRotation() != ROTATION_0; + if (!isFakeLandscape) { + return null; + } + // Disallow "Select" when swiping up from landscape due to rotated thumbnail. + if (orientedState.getDisplayRotation() != ROTATION_0) { + return null; + } + } + SystemShortcut modalStateSystemShortcut = taskContainer.getThumbnailView().getTaskOverlay() .getModalStateSystemShortcut( diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index a842b511b2..832f4e1b4d 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -94,6 +94,7 @@ import com.android.launcher3.provider.RestoreDbTask; import com.android.launcher3.statemanager.StatefulActivity; import com.android.launcher3.taskbar.TaskbarActivityContext; import com.android.launcher3.taskbar.TaskbarManager; +import com.android.launcher3.taskbar.TaskbarNavButtonController.TaskbarNavButtonCallbacks; import com.android.launcher3.testing.TestLogging; import com.android.launcher3.testing.shared.ResourceUtils; import com.android.launcher3.testing.shared.TestProtocol; @@ -470,6 +471,18 @@ public class TouchInteractionService extends Service { private final ScreenOnTracker.ScreenOnListener mScreenOnListener = this::onScreenOnChanged; + private final TaskbarNavButtonCallbacks mNavCallbacks = new TaskbarNavButtonCallbacks() { + @Override + public void onNavigateHome() { + mOverviewCommandHelper.addCommand(OverviewCommandHelper.TYPE_HOME); + } + + @Override + public void onToggleOverview() { + mOverviewCommandHelper.addCommand(OverviewCommandHelper.TYPE_TOGGLE); + } + }; + private ActivityManagerWrapper mAM; private OverviewCommandHelper mOverviewCommandHelper; private OverviewComponentObserver mOverviewComponentObserver; @@ -500,7 +513,7 @@ public class TouchInteractionService extends Service { mDeviceState = new RecentsAnimationDeviceState(this, true); mAllAppsActionManager = new AllAppsActionManager( this, UI_HELPER_EXECUTOR, this::createAllAppsPendingIntent); - mTaskbarManager = new TaskbarManager(this, mAllAppsActionManager); + mTaskbarManager = new TaskbarManager(this, mAllAppsActionManager, mNavCallbacks); mRotationTouchHelper = mDeviceState.getRotationTouchHelper(); mInputConsumer = InputConsumerController.getRecentsAnimationInputConsumer(); diff --git a/quickstep/src/com/android/quickstep/util/QuickstepOnboardingPrefs.java b/quickstep/src/com/android/quickstep/util/QuickstepOnboardingPrefs.java index 9df568ec76..2a27dea744 100644 --- a/quickstep/src/com/android/quickstep/util/QuickstepOnboardingPrefs.java +++ b/quickstep/src/com/android/quickstep/util/QuickstepOnboardingPrefs.java @@ -136,21 +136,16 @@ public class QuickstepOnboardingPrefs { }); } - if (!ALL_APPS_VISITED_COUNT.hasReachedMax(launcher)) { + if (!Utilities.isRunningInTestHarness()) { launcher.getStateManager().addStateListener(new StateListener<LauncherState>() { @Override public void onStateTransitionComplete(LauncherState finalState) { if (finalState == ALL_APPS) { ALL_APPS_VISITED_COUNT.increment(launcher); - return; - } - - boolean hasReachedMaxCount = ALL_APPS_VISITED_COUNT.hasReachedMax(launcher); - launcher.getAppsView().getFloatingHeaderView().findFixedRowByType( - AppsDividerView.class).setShowAllAppsLabel(!hasReachedMaxCount); - if (hasReachedMaxCount) { - launcher.getStateManager().removeStateListener(this); } + launcher.getAppsView().getFloatingHeaderView() + .findFixedRowByType(AppsDividerView.class) + .setShowAllAppsLabel(!ALL_APPS_VISITED_COUNT.hasReachedMax(launcher)); } }); } diff --git a/quickstep/src/com/android/quickstep/views/DesktopTaskView.java b/quickstep/src/com/android/quickstep/views/DesktopTaskView.java index 93059b20b1..a0ec525167 100644 --- a/quickstep/src/com/android/quickstep/views/DesktopTaskView.java +++ b/quickstep/src/com/android/quickstep/views/DesktopTaskView.java @@ -18,10 +18,10 @@ package com.android.quickstep.views; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; +import static com.android.launcher3.LauncherState.BACKGROUND_APP; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_UNDEFINED; import android.content.Context; -import android.content.pm.PackageManager; import android.graphics.Point; import android.graphics.PointF; import android.graphics.Rect; @@ -32,7 +32,6 @@ import android.graphics.drawable.shapes.RoundRectShape; import android.util.AttributeSet; import android.util.Log; import android.util.SparseArray; -import android.view.MotionEvent; import android.view.View; import android.widget.FrameLayout; @@ -42,7 +41,6 @@ import androidx.annotation.Nullable; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.desktop.DesktopRecentsTransitionController; -import com.android.launcher3.icons.IconProvider; import com.android.launcher3.util.CancellableTask; import com.android.launcher3.util.RunnableList; import com.android.quickstep.BaseContainerInterface; @@ -132,13 +130,12 @@ public class DesktopTaskView extends TaskView { ShapeDrawable background = new ShapeDrawable(shape); background.setTint(getResources().getColor(android.R.color.system_neutral2_300, getContext().getTheme())); - // TODO(b/244348395): this should be wallpaper mBackgroundView.setBackground(background); Drawable icon = getResources().getDrawable(R.drawable.ic_desktop, getContext().getTheme()); Drawable iconBackground = getResources().getDrawable(R.drawable.bg_circle, getContext().getTheme()); - mIconView.setDrawable(new LayerDrawable(new Drawable[]{iconBackground, icon})); + setIcon(mIconView, new LayerDrawable(new Drawable[]{iconBackground, icon})); mChildCountAtInflation = getChildCount(); } @@ -228,24 +225,10 @@ public class DesktopTaskView extends TaskView { private TaskIdAttributeContainer createAttributeContainer(Task task, TaskThumbnailViewDeprecated thumbnailView) { - return new TaskIdAttributeContainer(task, thumbnailView, createIconView(task), + return new TaskIdAttributeContainer(task, thumbnailView, mIconView, STAGE_POSITION_UNDEFINED); } - private IconView createIconView(Task task) { - IconView iconView = new IconView(mContext); - PackageManager pm = mContext.getApplicationContext().getPackageManager(); - try { - IconProvider provider = new IconProvider(mContext); - Drawable appIcon = provider.getIcon(pm.getActivityInfo(task.topActivity, - PackageManager.ComponentInfoFlags.of(0))); - iconView.setDrawable(appIcon); - } catch (PackageManager.NameNotFoundException e) { - Log.w(TAG, "Package not found: " + task.topActivity.getPackageName(), e); - } - return iconView; - } - @Nullable @Override public Task getTask() { @@ -319,16 +302,6 @@ public class DesktopTaskView extends TaskView { mPendingThumbnailRequests.clear(); } - @Override - public boolean offerTouchToChildren(MotionEvent event) { - return false; - } - - @Override - protected boolean showTaskMenuWithContainer(TaskViewIcon iconView) { - return false; - } - @Nullable @Override public RunnableList launchTaskAnimated() { @@ -479,7 +452,7 @@ public class DesktopTaskView extends TaskView { @Override public void setOverlayEnabled(boolean overlayEnabled) { - // Intentional no-op to prevent setting smart actions overlay on thumbnails + // TODO(b/330685808) support overlay for Screenshot action } @Override @@ -487,6 +460,7 @@ public class DesktopTaskView extends TaskView { // TODO(b/249371338): this copies parent implementation and makes it work for N thumbs progress = Utilities.boundToRange(progress, 0, 1); mFullscreenProgress = progress; + mIconView.setVisibility(progress < 1 ? VISIBLE : INVISIBLE); if (mFullscreenProgress > 0) { // Don't show background while we are transitioning to/from fullscreen mBackgroundView.setVisibility(INVISIBLE); @@ -497,6 +471,12 @@ public class DesktopTaskView extends TaskView { TaskThumbnailViewDeprecated thumbnailView = mSnapshotViewMap.valueAt(i); thumbnailView.getTaskOverlay().setFullscreenProgress(progress); } + // Animate icons and DWB banners in/out, except in QuickSwitch state, when tiles are + // oversized and banner would look disproportionately large. + if (mContainer.<RecentsView<?, ?>>getOverviewPanel().getStateManager().getState() + != BACKGROUND_APP) { + setIconsAndBannersTransitionProgress(progress, true); + } updateSnapshotRadius(); } @@ -513,11 +493,6 @@ public class DesktopTaskView extends TaskView { } @Override - protected void setIconsAndBannersTransitionProgress(float progress, boolean invert) { - // no-op - } - - @Override public void setColorTint(float amount, int tintColor) { for (int i = 0; i < mSnapshotViewMap.size(); i++) { mSnapshotViewMap.valueAt(i).setDimAlpha(amount); diff --git a/quickstep/src/com/android/quickstep/views/TaskMenuView.java b/quickstep/src/com/android/quickstep/views/TaskMenuView.java index 5b0702a766..443f83c797 100644 --- a/quickstep/src/com/android/quickstep/views/TaskMenuView.java +++ b/quickstep/src/com/android/quickstep/views/TaskMenuView.java @@ -193,10 +193,6 @@ public class TaskMenuView extends AbstractFloatingView { /** @return true if successfully able to populate task view menu, false otherwise */ private boolean populateAndLayoutMenu() { - if (mTaskContainer.getTask().icon == null) { - // Icon may not be loaded - return false; - } addMenuOptions(mTaskContainer); orientAroundTaskView(mTaskContainer); return true; diff --git a/quickstep/src/com/android/quickstep/views/TaskMenuViewWithArrow.kt b/quickstep/src/com/android/quickstep/views/TaskMenuViewWithArrow.kt index 1db04a86c4..a138db0d44 100644 --- a/quickstep/src/com/android/quickstep/views/TaskMenuViewWithArrow.kt +++ b/quickstep/src/com/android/quickstep/views/TaskMenuViewWithArrow.kt @@ -83,7 +83,7 @@ class TaskMenuViewWithArrow<T> : ArrowPopup<T> where T : RecentsViewContainer, T private var alignedOptionIndex: Int = 0 private val extraSpaceForRowAlignment: Int get() = optionMeasuredHeight * alignedOptionIndex - private val menuWidth = context.resources.getDimensionPixelSize(R.dimen.task_menu_width_grid) + private val menuPaddingEnd = context.resources.getDimensionPixelSize(R.dimen.task_card_margin) private lateinit var taskView: TaskView private lateinit var optionLayout: LinearLayout @@ -174,10 +174,10 @@ class TaskMenuViewWithArrow<T> : ArrowPopup<T> where T : RecentsViewContainer, T /** @return true if successfully able to populate task view menu, false otherwise */ private fun populateMenu(): Boolean { // Icon may not be loaded - if (taskContainer.task.icon == null) return false + if (taskContainer.iconView.drawable == null) return false addMenuOptions() - return true + return optionLayout.childCount > 0 } private fun addMenuOptions() { @@ -213,7 +213,13 @@ class TaskMenuViewWithArrow<T> : ArrowPopup<T> where T : RecentsViewContainer, T menuOptionView.requireViewById(R.id.text) ) val lp = menuOptionView.layoutParams as LayoutParams - lp.width = menuWidth + lp.width = LayoutParams.MATCH_PARENT + menuOptionView.setPaddingRelative( + menuOptionView.paddingStart, + menuOptionView.paddingTop, + menuPaddingEnd, + menuOptionView.paddingBottom + ) menuOptionView.setOnClickListener { view: View? -> menuOption.onClick(view) } optionLayout.addView(menuOptionView) } diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java index c90e789b3b..8fd99de979 100644 --- a/quickstep/src/com/android/quickstep/views/TaskView.java +++ b/quickstep/src/com/android/quickstep/views/TaskView.java @@ -1380,12 +1380,14 @@ public class TaskView extends FrameLayout implements Reusable { @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); - if (mContainer.getDeviceProfile().isTablet) { + DeviceProfile deviceProfile = mContainer.getDeviceProfile(); + int thumbnailTopMargin = deviceProfile.overviewTaskThumbnailTopMarginPx; + if (deviceProfile.isTablet) { setPivotX(getLayoutDirection() == LAYOUT_DIRECTION_RTL ? 0 : right - left); - setPivotY(getSnapshotView().getTop()); + setPivotY(thumbnailTopMargin); } else { setPivotX((right - left) * 0.5f); - setPivotY(getSnapshotView().getTop() + getSnapshotView().getHeight() * 0.5f); + setPivotY(thumbnailTopMargin + (getHeight() - thumbnailTopMargin) * 0.5f); } SYSTEM_GESTURE_EXCLUSION_RECT.get(0).set(0, 0, getWidth(), getHeight()); setSystemGestureExclusionRects(SYSTEM_GESTURE_EXCLUSION_RECT); diff --git a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarNavButtonControllerTest.java b/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarNavButtonControllerTest.java index 58be345fab..0f06d98740 100644 --- a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarNavButtonControllerTest.java +++ b/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/TaskbarNavButtonControllerTest.java @@ -12,10 +12,10 @@ import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_HO import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_IME_SWITCH; import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_RECENTS; import static com.android.launcher3.taskbar.TaskbarNavButtonController.SCREEN_PIN_LONG_PRESS_THRESHOLD; -import static com.android.quickstep.OverviewCommandHelper.TYPE_HOME; -import static com.android.quickstep.OverviewCommandHelper.TYPE_TOGGLE; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING; +import static com.google.common.truth.Truth.assertThat; + import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doReturn; @@ -31,7 +31,7 @@ import androidx.test.platform.app.InstrumentationRegistry; import androidx.test.runner.AndroidJUnit4; import com.android.launcher3.logging.StatsLogManager; -import com.android.quickstep.OverviewCommandHelper; +import com.android.launcher3.taskbar.TaskbarNavButtonController.TaskbarNavButtonCallbacks; import com.android.quickstep.SystemUiProxy; import com.android.quickstep.TouchInteractionService; import com.android.quickstep.util.AssistUtils; @@ -52,8 +52,6 @@ public class TaskbarNavButtonControllerTest { @Mock TouchInteractionService mockService; @Mock - OverviewCommandHelper mockCommandHelper; - @Mock Handler mockHandler; @Mock AssistUtils mockAssistUtils; @@ -68,13 +66,26 @@ public class TaskbarNavButtonControllerTest { @Mock View mockView; + private int mHomePressCount; + private int mOverviewToggleCount; + private final TaskbarNavButtonCallbacks mCallbacks = new TaskbarNavButtonCallbacks() { + @Override + public void onNavigateHome() { + mHomePressCount++; + } + + @Override + public void onToggleOverview() { + mOverviewToggleCount++; + } + }; + private TaskbarNavButtonController mNavButtonController; @Before public void setup() { MockitoAnnotations.initMocks(this); when(mockService.getDisplayId()).thenReturn(DISPLAY_ID); - when(mockService.getOverviewCommandHelper()).thenReturn(mockCommandHelper); when(mockService.getApplicationContext()) .thenReturn(InstrumentationRegistry.getInstrumentation().getTargetContext() .getApplicationContext()); @@ -82,8 +93,12 @@ public class TaskbarNavButtonControllerTest { when(mockTaskbarControllers.getTaskbarActivityContext()) .thenReturn(mockTaskbarActivityContext); doReturn(mockStatsLogManager).when(mockTaskbarActivityContext).getStatsLogManager(); - mNavButtonController = new TaskbarNavButtonController(mockService, - mockSystemUiProxy, mockHandler, mockAssistUtils); + mNavButtonController = new TaskbarNavButtonController( + mockService, + mCallbacks, + mockSystemUiProxy, + mockHandler, + mockAssistUtils); } @Test @@ -154,20 +169,20 @@ public class TaskbarNavButtonControllerTest { @Test public void testPressHome() { mNavButtonController.onButtonClick(BUTTON_HOME, mockView); - verify(mockCommandHelper, times(1)).addCommand(TYPE_HOME); + assertThat(mHomePressCount).isEqualTo(1); } @Test public void testPressRecents() { mNavButtonController.onButtonClick(BUTTON_RECENTS, mockView); - verify(mockCommandHelper, times(1)).addCommand(TYPE_TOGGLE); + assertThat(mOverviewToggleCount).isEqualTo(1); } @Test - public void testPressRecentsWithScreenPinned() { + public void testPressRecentsWithScreenPinned_noNavigationToOverview() { mNavButtonController.updateSysuiFlags(SYSUI_STATE_SCREEN_PINNING); mNavButtonController.onButtonClick(BUTTON_RECENTS, mockView); - verify(mockCommandHelper, times(0)).addCommand(TYPE_TOGGLE); + assertThat(mOverviewToggleCount).isEqualTo(0); } @Test diff --git a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/bubbles/animation/BubbleBarViewAnimatorTest.kt b/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/bubbles/animation/BubbleBarViewAnimatorTest.kt index d90e0484e5..3d8484d2d1 100644 --- a/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/bubbles/animation/BubbleBarViewAnimatorTest.kt +++ b/quickstep/tests/multivalentTests/src/com/android/launcher3/taskbar/bubbles/animation/BubbleBarViewAnimatorTest.kt @@ -130,18 +130,90 @@ class BubbleBarViewAnimatorTest { assertThat(handle.translationY).isEqualTo(0) } + @Test + fun animateBubbleInForStashed_tapAnimatingBubble() { + lateinit var overflowView: BubbleView + lateinit var bubbleView: BubbleView + lateinit var bubble: BubbleBarBubble + val bubbleBarView = BubbleBarView(context) + InstrumentationRegistry.getInstrumentation().runOnMainSync { + bubbleBarView.layoutParams = FrameLayout.LayoutParams(0, 0) + val inflater = LayoutInflater.from(context) + + val bitmap = ColorDrawable(Color.WHITE).toBitmap(width = 20, height = 20) + overflowView = + inflater.inflate(R.layout.bubblebar_item_view, bubbleBarView, false) as BubbleView + overflowView.setOverflow(BubbleBarOverflow(overflowView), bitmap) + bubbleBarView.addView(overflowView) + + val bubbleInfo = BubbleInfo("key", 0, null, null, 0, context.packageName, null, false) + bubbleView = + inflater.inflate(R.layout.bubblebar_item_view, bubbleBarView, false) as BubbleView + bubble = + BubbleBarBubble(bubbleInfo, bubbleView, bitmap, bitmap, Color.WHITE, Path(), "") + bubbleView.setBubble(bubble) + bubbleBarView.addView(bubbleView) + } + InstrumentationRegistry.getInstrumentation().waitForIdleSync() + + val bubbleStashController = mock<BubbleStashController>() + whenever(bubbleStashController.isStashed).thenReturn(true) + + val handle = View(context) + val handleAnimator = PhysicsAnimator.getInstance(handle) + whenever(bubbleStashController.stashedHandlePhysicsAnimator).thenReturn(handleAnimator) + + val animator = + BubbleBarViewAnimator(bubbleBarView, bubbleStashController, animatorScheduler) + + InstrumentationRegistry.getInstrumentation().runOnMainSync { + animator.animateBubbleInForStashed(bubble) + } + + // let the animation start and wait for it to complete + InstrumentationRegistry.getInstrumentation().waitForIdleSync() + PhysicsAnimatorTestUtils.blockUntilAnimationsEnd(DynamicAnimation.TRANSLATION_Y) + + assertThat(handle.alpha).isEqualTo(0) + assertThat(handle.translationY).isEqualTo(-70) + assertThat(overflowView.visibility).isEqualTo(INVISIBLE) + assertThat(bubbleBarView.visibility).isEqualTo(VISIBLE) + assertThat(bubbleView.visibility).isEqualTo(VISIBLE) + assertThat(bubbleView.alpha).isEqualTo(1) + assertThat(bubbleView.translationY).isEqualTo(-20) + assertThat(bubbleView.scaleY).isEqualTo(1) + + // verify the hide bubble animation is pending + assertThat(animatorScheduler.delayedBlock).isNotNull() + + animator.onBubbleClickedWhileAnimating() + + assertThat(animatorScheduler.delayedBlock).isNull() + assertThat(overflowView.visibility).isEqualTo(VISIBLE) + assertThat(overflowView.alpha).isEqualTo(1) + assertThat(bubbleView.alpha).isEqualTo(1) + assertThat(bubbleView.visibility).isEqualTo(VISIBLE) + assertThat(bubbleBarView.background).isNotNull() + assertThat(bubbleBarView.isAnimatingNewBubble).isFalse() + } + private class TestBubbleBarViewAnimatorScheduler : BubbleBarViewAnimator.Scheduler { - var delayedBlock: (() -> Unit)? = null + var delayedBlock: Runnable? = null private set - override fun post(block: () -> Unit) { - block.invoke() + override fun post(block: Runnable) { + block.run() } - override fun postDelayed(delayMillis: Long, block: () -> Unit) { + override fun postDelayed(delayMillis: Long, block: Runnable) { check(delayedBlock == null) { "there is already a pending block waiting to run" } delayedBlock = block } + + override fun cancel(block: Runnable) { + check(delayedBlock == block) { "the pending block does not match the canceled block" } + delayedBlock = null + } } } diff --git a/quickstep/tests/src/com/android/quickstep/TaplPrivateSpaceTest.java b/quickstep/tests/src/com/android/quickstep/TaplPrivateSpaceTest.java index edc0a6fe86..7708233e0a 100644 --- a/quickstep/tests/src/com/android/quickstep/TaplPrivateSpaceTest.java +++ b/quickstep/tests/src/com/android/quickstep/TaplPrivateSpaceTest.java @@ -123,6 +123,21 @@ public class TaplPrivateSpaceTest extends AbstractQuickStepTest { psContainer.verifyInstalledAppIsPresent(INSTALLED_APP_NAME); } + @Test + @ScreenRecordRule.ScreenRecord // b/334946529 + public void testPrivateSpaceAppLongPressUninstallMenu() throws IOException { + // Ensure that the App is not installed in main user otherwise, it may not be found in + // PS container. + TestUtil.uninstallDummyApp(); + // Install the app in Private Profile + TestUtil.installDummyAppForUser(mProfileUserId); + waitForLauncherUIUpdate(); + // Scroll to the bottom of All Apps + executeOnLauncher(launcher -> launcher.getAppsView().resetAndScrollToPrivateSpaceHeader()); + // Get the "uninstall" menu item. + mLauncher.getAllApps().getAppIcon(INSTALLED_APP_NAME).openMenu().getMenuItem("Uninstall"); + } + private void waitForPrivateSpaceSetup() { waitForLauncherCondition("Private Profile not setup", launcher -> launcher.getAppsView().hasPrivateProfile(), diff --git a/res/layout/widgets_edu.xml b/res/layout/widgets_edu.xml deleted file mode 100644 index 280c095c3c..0000000000 --- a/res/layout/widgets_edu.xml +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- 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. ---> - -<com.android.launcher3.views.WidgetsEduView - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="bottom" - android:gravity="bottom" - android:orientation="vertical"> - - <LinearLayout - android:id="@+id/edu_view" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@drawable/bg_rounded_corner_bottom_sheet" - android:gravity="center_horizontal" - android:orientation="vertical" - android:paddingHorizontal="@dimen/bottom_sheet_edu_padding" - android:paddingTop="@dimen/bottom_sheet_edu_padding"> - - <TextView - style="@style/TextHeadline" - android:id="@+id/edu_header" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center_horizontal" - android:text="@string/widget_education_header" - android:textColor="?android:attr/textColorPrimary" - android:textSize="24sp" - android:layout_marginBottom="16dp"/> - - <TextView - android:id="@+id/edu_content" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center_horizontal" - android:text="@string/widget_education_content" - android:textSize="14sp" - android:textColor="?android:attr/textColorSecondary" - android:layout_marginBottom="24dp"/> - - <Button - android:id="@+id/edu_close_button" - style="@style/Button.Rounded.Colored" - android:layout_width="match_parent" - android:layout_height="56dp" - android:text="@string/widget_education_close_button" - android:textSize="16sp" - android:textColor="@color/button_text" - android:layout_marginBottom="8dp"/> - </LinearLayout> -</com.android.launcher3.views.WidgetsEduView>
\ No newline at end of file diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml index 0227d5116a..d6b6a6226a 100644 --- a/res/values-af/strings.xml +++ b/res/values-af/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Neem notas"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Voeg by"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Voeg <xliff:g id="WIDGET_NAME">%1$s</xliff:g>-legstuk by"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Nuttige inligting binne jou bereik"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Jy kan legstukke by jou tuisskerm voeg om inligting te kry sonder om programme oop te maak"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tik om legstukinstellings te verander"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Het dit"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Verander legstukinstellings"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Deursoek programme"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Laai tans programme …"</string> diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml index a71e8f420b..3f48d38b53 100644 --- a/res/values-am/strings.xml +++ b/res/values-am/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"የማስታወሻ አያያዝ"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"አክል"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"ምግብር <xliff:g id="WIDGET_NAME">%1$s</xliff:g>ን አክል"</string> - <string name="widget_education_header" msgid="4874760613775913787">"በጣቶችዎ ጫፎች ላይ ጠቃሚ መረጃ"</string> - <string name="widget_education_content" msgid="1731667670753497052">"መተግበሪያዎችን ሳይከፍቱ መረጃ ለማግኘት በመነሻ ማያ ገጽዎ ላይ ምግብሮችን ማከል ይችላሉ"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"የምግብር ቅንብሮችን ለመለወጥ መታ ያድርጉ"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"ገባኝ"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"የምግብር ቅንብሮችን ይለውጡ"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"መተግበሪያዎችን ፈልግ"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"መተግበሪያዎችን በመጫን ላይ…"</string> diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index e5a127e4cb..3b6fc7cc51 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"تدوين الملاحظات"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"إضافة"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"إضافة التطبيق المصغّر \"<xliff:g id="WIDGET_NAME">%1$s</xliff:g>\""</string> - <string name="widget_education_header" msgid="4874760613775913787">"معلومات مفيدة في متناول يديك"</string> - <string name="widget_education_content" msgid="1731667670753497052">"للحصول على معلومات بدون فتح التطبيقات، يمكنك إضافة التطبيقات المصغّرة إلى الشاشة الرئيسية."</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"انقر لتغيير إعدادات الأداة"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"حسنًا"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"تغيير إعدادات الأداة"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"بحث في التطبيقات"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"جارٍ تحميل التطبيقات…"</string> diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml index 127a5f3266..8107dd408f 100644 --- a/res/values-as/strings.xml +++ b/res/values-as/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"টোকা গ্ৰহণ কৰা"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"যোগ দিয়ক"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> ৱিজেট যোগ দিয়ক"</string> - <string name="widget_education_header" msgid="4874760613775913787">"আপোনাৰ আঙুলিৰে টিপতে উপযোগী তথ্য পাওক"</string> - <string name="widget_education_content" msgid="1731667670753497052">"এপ্ নোখোলাকৈ তথ্য পাবলৈ আপুনি নিজৰ গৃহ স্ক্ৰীনত ৱিজেট যোগ দিব পাৰে"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"ৱিজেটৰ ছেটিং সলনি কৰিবলৈ টিপক"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"বুজি পালোঁ"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"ৱিজেটৰ ছেটিং সলনি কৰক"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"এপ্সমূহ সন্ধান কৰক"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"এপ্সমূহ ল’ড কৰি থকা হৈছে…"</string> diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index cae443876d..d2d0c2b594 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Qeydgötürmə"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Əlavə edin"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> vidcet əlavə edin"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Faydalı məlumatlar barmaqlarınızın ucunda"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Tətbiqləri açmadan məlumat almaq üçün Əsas ekrana vidcet əlavə edə bilərsiniz"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Vidcet ayarlarını dəyişmək üçün toxunun"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Anladım"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Vidcet ayarlarını dəyişin"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Tətbiqləri axtarın"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Tətbiqlər yüklənir…"</string> diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml index 09796f561e..d37c241b91 100644 --- a/res/values-b+sr+Latn/strings.xml +++ b/res/values-b+sr+Latn/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Pravljenje beležaka"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Dodaj"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Dodajte vidžet <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Korisne informacije nadohvat ruke"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Da biste pronašli informacije bez otvaranja aplikacija, možete da dodate vidžete na početni ekran"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Dodirnite da biste promenili podešavanja vidžeta"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Važi"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Promenite podešavanja vidžeta"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Pretražite aplikacije"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Aplikacije se učitavaju…"</string> diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml index 9e88bb8f26..d52ed4f627 100644 --- a/res/values-be/strings.xml +++ b/res/values-be/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Стварэнне нататак"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Дадаць"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Дадаць віджэт \"<xliff:g id="WIDGET_NAME">%1$s</xliff:g>\""</string> - <string name="widget_education_header" msgid="4874760613775913787">"Карысная інфармацыя ў вас пад рукой"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Каб не адкрываць праграмы для прагляду патрэбнай інфармацыі, дадайце віджэты на галоўны экран"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Націсніце, каб змяніць налады віджэта"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Зразумела"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Змяніць налады віджэта"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Пошук праграм"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Праграмы загружаюцца…"</string> diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index 145e7bc9da..e4f5e5a729 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Водене на бележки"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Добавяне"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Добавяне на приспособлението „<xliff:g id="WIDGET_NAME">%1$s</xliff:g>“"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Лесен достъп до полезна информация"</string> - <string name="widget_education_content" msgid="1731667670753497052">"За да получавате информация, без да отваряте приложенията, можете да добавите приспособления към началния екран"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Докоснете, за да промените настройките на приспособлението"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Разбрах"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Промяна на настройките на приспособлението"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Търсене в приложенията"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Приложенията се зареждат…"</string> diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml index e023ba50ed..3da344d378 100644 --- a/res/values-bn/strings.xml +++ b/res/values-bn/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"নোট নেওয়া"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"যোগ করুন"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> উইজেট যোগ করুন"</string> - <string name="widget_education_header" msgid="4874760613775913787">"সহজেই দরকারি তথ্য পান"</string> - <string name="widget_education_content" msgid="1731667670753497052">"অ্যাপ না খুলেই তথ্য পাওয়ার জন্য, হোম স্ক্রিনে উইজেট যোগ করতে পারবেন"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"উইজেট সেটিংস পরিবর্তন করতে ট্যাপ করুন"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"বুঝেছি"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"উইজেট সেটিংস পরিবর্তন করুন"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"অ্যাপ খুঁজুন"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"অ্যাপ লোড হচ্ছে…"</string> diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml index e4aa0f1ce6..a1504280a7 100644 --- a/res/values-bs/strings.xml +++ b/res/values-bs/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Pisanje bilješki"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Dodaj"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Dodavanje vidžeta <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Korisne informacije nadohvat ruke"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Da dobijete informacije bez otvaranja aplikacija, možete dodati vidžete na početni ekran"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Dodirnite da promijenite postavke vidžeta"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Razumijem"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Promjena postavki vidžeta"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Pretražite aplikacije"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Aplikacije se učitavaju…"</string> diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 7b4e042099..a284738820 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Presa de notes"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Afegeix"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Afegeix el widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Informació útil a l\'abast de la mà"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Per obtenir informació sense obrir les aplicacions, pots afegir widgets a la pantalla d\'inici"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Toca per canviar la configuració del widget"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Entesos"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Canvia la configuració del widget"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Cerca aplicacions"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"S\'estan carregant les aplicacions…"</string> diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index c714b3d818..1b43fe34c3 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Psaní poznámek"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Přidat"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Přidat widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Užitečné informace na dosah"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Pokud chcete mít informace k dispozici bez otevírání aplikací, můžete si na plochu přidat widgety"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Klepnutím změníte nastavení widgetu"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Rozumím"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Změnit nastavení widgetu"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Hledat v aplikacích"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Načítání aplikací…"</string> diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index 73c26184aa..0cc7d2e86e 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Notetagning"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Tilføj"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Tilføj <xliff:g id="WIDGET_NAME">%1$s</xliff:g>-widget"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Nyttige oplysninger lige ved hånden"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Hvis du vil have oplysninger uden at åbne apps, kan du føje widgets til din startskærm"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tryk for at ændre widgetindstillinger"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Skift widgetindstillinger"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Søg efter apps"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Indlæser apps…"</string> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 3ed7253513..88cefc8c8d 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Notizen"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Hinzufügen"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Widget „<xliff:g id="WIDGET_NAME">%1$s</xliff:g>“ hinzufügen"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Praktische Informationen – immer zur Hand"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Wenn du Informationen erhalten möchtest, ohne Apps zu öffnen, kannst du deinem Startbildschirm Widgets hinzufügen"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tippen, um die Widget-Einstellungen zu ändern"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Widget-Einstellungen ändern"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Apps finden"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Apps werden geladen…"</string> diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 586001dd7d..650d814337 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Δημιουργία σημειώσεων"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Προσθήκη"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Προσθήκη του γραφικού στοιχείου <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Χρήσιμες πληροφορίες στη διάθεσή σας"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Για να λάβετε πληροφορίες χωρίς να ανοίξετε εφαρμογές, μπορείτε να προσθέσετε γραφικά στοιχεία στην αρχική οθόνη."</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Πατήστε για αλλαγή των ρυθμίσεων του γραφικού στοιχείου"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Το κατάλαβα"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Αλλαγή ρυθμίσεων γραφικού στοιχείου"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Αναζήτηση εφαρμογών"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Φόρτωση εφαρμογών…"</string> diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml index 1984a69375..90de272c91 100644 --- a/res/values-en-rAU/strings.xml +++ b/res/values-en-rAU/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Note-taking"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Add"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Add <xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Useful info at your fingertips"</string> - <string name="widget_education_content" msgid="1731667670753497052">"To get info without opening apps, you can add widgets to your home screen"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tap to change widget settings"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Change widget settings"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Search apps"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Loading apps…"</string> diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml index 5b6296f335..c06300d406 100644 --- a/res/values-en-rCA/strings.xml +++ b/res/values-en-rCA/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Note-taking"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Add"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Add <xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Useful info at your fingertips"</string> - <string name="widget_education_content" msgid="1731667670753497052">"To get info without opening apps, you can add widgets to your home screen"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tap to change widget settings"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Got it"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Change widget settings"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Search apps"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Loading apps…"</string> diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index 1984a69375..90de272c91 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Note-taking"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Add"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Add <xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Useful info at your fingertips"</string> - <string name="widget_education_content" msgid="1731667670753497052">"To get info without opening apps, you can add widgets to your home screen"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tap to change widget settings"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Change widget settings"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Search apps"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Loading apps…"</string> diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml index 1984a69375..90de272c91 100644 --- a/res/values-en-rIN/strings.xml +++ b/res/values-en-rIN/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Note-taking"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Add"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Add <xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Useful info at your fingertips"</string> - <string name="widget_education_content" msgid="1731667670753497052">"To get info without opening apps, you can add widgets to your home screen"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tap to change widget settings"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Change widget settings"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Search apps"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Loading apps…"</string> diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml index 6649f0365f..36fa1361a6 100644 --- a/res/values-en-rXC/strings.xml +++ b/res/values-en-rXC/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Note-taking"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Add"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Add <xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Useful info at your fingertips"</string> - <string name="widget_education_content" msgid="1731667670753497052">"To get info without opening apps, you can add widgets to your home screen"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tap to change widget settings"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Got it"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Change widget settings"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Search apps"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Loading apps…"</string> diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index ecbe30b408..932fcd8b65 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Tomar notas"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Agregar"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Agregar widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Información útil a tu alcance"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Para recibir información de apps sin abrirlas, puedes agregar widgets a la pantalla principal"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Presiona para cambiar la configuración del widget"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Entendido"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Cambiar la configuración del widget"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Buscar apps"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Cargando apps…"</string> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 5560cf1d40..f7daeb3a69 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Toma de notas"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Añadir"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Añadir widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Información útil al alcance de la mano"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Para ver información sin abrir una aplicación, puedes añadir widgets a la pantalla de inicio"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Toca para cambiar los ajustes del widget"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Entendido"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Cambiar ajustes del widget"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Buscar aplicaciones"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Cargando aplicaciones…"</string> diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml index 6672f12ccf..6ebdff0c03 100644 --- a/res/values-et/strings.xml +++ b/res/values-et/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Märkmete tegemine"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Lisa"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Lisa vidin <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Kasulik teave on teie käeulatuses"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Teabe saamiseks rakendusi avamata võite oma avakuvale lisada vidinaid"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Puudutage vidina seadete muutmiseks"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Selge"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Vidina seadete muutmine"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Otsige rakendusi"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Rakenduste laadimine …"</string> diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index f0c96441d6..9bd26e6c24 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Oharrak idazteko"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Gehitu"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Gehitu <xliff:g id="WIDGET_NAME">%1$s</xliff:g> widgeta"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Informazio erabilgarria beti eskura"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Aplikaziorik ireki beharrik gabe informazioa zuzenean jasotzeko, gehitu widgetak orri nagusian"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Sakatu hau widgeten ezarpenak aldatzeko"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Ados"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Aldatu widgeten ezarpenak"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Bilatu aplikazioetan"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Aplikazioak kargatzen…"</string> diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index d169c4efd8..46f5859d6e 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"یادداشتبرداری"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"افزودن"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"افزودن ابزارک <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"دسترسی آسان به اطلاعات سودمند"</string> - <string name="widget_education_content" msgid="1731667670753497052">"با افزودن ابزارکها به صفحه اصلی میتوانید اطلاعات را بدون باز کردن برنامهها دریافت کنید"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"برای تغییر تنظیمات ابزارک، ضربه بزنید"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"متوجهام"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"تغییر تنظیمات ابزارک"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"جستجوی برنامهها"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"درحال بارگیری برنامهها…"</string> diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index 19a10da15e..b27f654609 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Muistiinpanojen tekeminen"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Lisää"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Lisää widget: <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Hyödyllisiä tietoja käden ulottuvilla"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Jos haluat nähdä tietoja avaamatta sovelluksia, voit lisätä aloitusnäytölle widgetejä"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Napauta, niin voit muuttaa widgetin asetuksia"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Muuta widgetin asetuksia"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Hae sovelluksia"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Ladataan sovelluksia…"</string> diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index 4b31ff075e..c99a0fdc27 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Prise de note"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Ajouter"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Ajoutez le widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Renseignements utiles à portée de main"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Pour obtenir des informations sans ouvrir d\'applications, vous pouvez ajouter des widgets à votre écran d\'accueil"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Touchez pour modifier les paramètres du widget"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Modifier les paramètres du widget"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Rechercher dans les applications"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Chargement des applications en cours…"</string> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index dec9730abd..fa80186e1b 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Prise de notes"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Ajouter"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Ajoutez un widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Infos utiles à portée de main"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Pour obtenir des infos sans ouvrir d\'applis, vous pouvez ajouter des widgets à votre écran d\'accueil"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Appuyez pour modifier les paramètres du widget"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Modifier les paramètres du widget"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Rechercher dans les applications"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Chargement des applications…"</string> diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index 3ec2dab92e..cf50f415c4 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Toma de notas"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Engadir"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Engadir o widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Información útil ao teu alcance"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Se queres obter información sen abrir as aplicacións, podes engadir widgets á pantalla de inicio"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Toca para cambiar a configuración do widget"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Entendido"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Cambiar configuración do widget"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Buscar aplicacións"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Cargando aplicacións…"</string> diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml index 76bd21d9b9..72a8b47502 100644 --- a/res/values-gu/strings.xml +++ b/res/values-gu/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"નોંધ લેવી"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"ઉમેરો"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> વિજેટ ઉમેરો"</string> - <string name="widget_education_header" msgid="4874760613775913787">"ઉપયોગી માહિતી તમારી આંગળીના ટેરવે"</string> - <string name="widget_education_content" msgid="1731667670753497052">"ઍપને ખોલ્યા વિના માહિતી મેળવવા માટે, તમે તમારી હોમ સ્ક્રીનમાં વિજેટ ઉમેરી શકો છો"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"વિજેટના સેટિંગ બદલવા માટે ટૅપ કરો"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"સમજાઈ ગયું"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"વિજેટના સેટિંગ બદલો"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"ઍપ શોધો"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"ઍપ્લિકેશનો લોડ કરી રહ્યું છે…"</string> diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index 5b2f5b1564..2e81ea6c36 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"नोट बनाने से जुड़े विजेट"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"जोड़ें"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> विजेट जोड़ें"</string> - <string name="widget_education_header" msgid="4874760613775913787">"काम की जानकारी आसानी से पाएं"</string> - <string name="widget_education_content" msgid="1731667670753497052">"ऐप्लिकेशन को खोले बिना उनकी जानकारी पाने के लिए, होम स्क्रीन पर विजेट जोड़े जा सकते हैं"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"विजेट की सेटिंग में बदलाव करने के लिए टैप करें"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"ठीक है"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"विजेट की सेटिंग में बदलाव करें"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"ऐप्लिकेशन खोजें"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"ऐप्लिकेशन लोड हो रहे हैं…"</string> diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index 8f82a5b5ac..bf24a1db71 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Pisanje bilježaka"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Dodaj"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Dodaj widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Korisne informacije nadohvat ruke"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Da biste dobili informacije bez otvaranja aplikacija, možete dodati widgete na početni zaslon"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Dodirnite da biste promijenili postavke widgeta"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Shvaćam"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Promijenite postavke widgeta"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Pretraži aplikacije"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Učitavanje aplikacija…"</string> diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 1ebd7097c2..324ccedc2f 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Jegyzetelés"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Hozzáadás"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> modul hozzáadása"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Hasznos információk egy koppintásnyira"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Ha az alkalmazások megnyitása nélkül szeretne információhoz jutni, felvehet modulokat a kezdőképernyőre"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Ide koppintva módosíthatja a modulbeállításokat"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Értem"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"A modulbeállítások módosítása"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Alkalmazások keresése"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Alkalmazások betöltése…"</string> diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml index 46606c582c..f1a3a6c954 100644 --- a/res/values-hy/strings.xml +++ b/res/values-hy/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Նշումների ստեղծում"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Ավելացնել"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Ավելացնել <xliff:g id="WIDGET_NAME">%1$s</xliff:g> վիջեթը"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Բոլոր կարևոր տեղեկությունները՝ ձեռքի տակ"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Ավելացրեք վիջեթներ ձեր հիմնական էկրանին, որպեսզի տեղեկություններ ստանաք՝ առանց հավելվածները բացելու։"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Հպեք՝ վիջեթի կարգավորումները փոփոխելու համար"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Եղավ"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Փոխել վիջեթի կարգավորումները"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Որոնել հավելվածներ"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Հավելվածների բեռնում…"</string> diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index 6417bb527a..acdbc4695c 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Pembuatan catatan"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Tambahkan"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Tambahkan widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Info bermanfaat mudah dilihat"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Untuk mendapatkan info tanpa membuka aplikasi, Anda dapat menambahkan widget ke layar utama"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Ketuk untuk mengubah setelan widget"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Oke"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Ubah setelan widget"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Telusuri aplikasi"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Memuat aplikasi…"</string> diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml index 952d093dfd..a815d7a1ae 100644 --- a/res/values-is/strings.xml +++ b/res/values-is/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Glósugerð"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Bæta við"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Bæta græjunni <xliff:g id="WIDGET_NAME">%1$s</xliff:g> við"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Gagnlegar upplýsingar innan seilingar"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Þú getur bætt við græjum á heimaskjáinn til að fá upplýsingar án þess að opna forrit"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Ýttu til að breyta græjustillingum"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Ég skil"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Breyta græjustillingum"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Leita í forritum"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Hleður forrit…"</string> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 1d2b65ae17..0a76bcf42a 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Aggiunta di note"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Aggiungi"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Aggiungi widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Informazioni utili a portata di mano"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Per ricevere informazioni senza aprire le app, puoi aggiungere dei widget alla schermata Home"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tocca per modificare le impostazioni del widget"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Modifica le impostazioni del widget"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Cerca nelle app"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Caricamento delle app…"</string> diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 25e63f105c..87c8a228a5 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"כתיבת הערות"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"הוספה"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"הוספת הווידג\'ט <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"קבלת מידע שימושי בהקשה"</string> - <string name="widget_education_content" msgid="1731667670753497052">"רוצה לקבל מידע בלי לפתוח אפליקציות? אפשר להוסיף ווידג\'טים למסך הבית"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"אפשר לשנות את הגדרות הווידג\'ט בהקשה"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"הבנתי"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"שינוי הגדרות הווידג\'ט"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"חיפוש אפליקציות"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"טעינת אפליקציות מתבצעת…"</string> diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index e461e6e5fa..d91f0eea45 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"メモ"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"追加"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g>ウィジェットを追加"</string> - <string name="widget_education_header" msgid="4874760613775913787">"ウィジェットで情報を得る"</string> - <string name="widget_education_content" msgid="1731667670753497052">"ホーム画面にウィジェットを追加すると、アプリを開かずに情報を入手できます"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"タップしてウィジェットの設定を変更する"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"ウィジェットの設定を変更します"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"アプリを検索"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"アプリを読み込んでいます…"</string> diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml index 97f79241f5..ef742865fc 100644 --- a/res/values-ka/strings.xml +++ b/res/values-ka/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"ჩანიშვნა"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"დამატება"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> ვიჯეტის დამატება"</string> - <string name="widget_education_header" msgid="4874760613775913787">"ადვილად მისაწვდომი სასარგებლო ინფორმაცია"</string> - <string name="widget_education_content" msgid="1731667670753497052">"იმისთვის, რომ ინფორმაცია აპების გაუხსნელად მიიღოთ, შეგიძლიათ, მთავარ ეკრანზე ვიჯეტები დაამატოთ"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"შეეხეთ ვიჯეტის პარამეტრების შესაცვლელად"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"გასაგებია"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"ვიჯეტის პარამეტრების შეცვლა"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"აპების ძიება"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"აპები იტვირთება…"</string> diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml index cb69879077..ff379c813f 100644 --- a/res/values-kk/strings.xml +++ b/res/values-kk/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Ескертпе жазу"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Қосу"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Виджет (<xliff:g id="WIDGET_NAME">%1$s</xliff:g>) қосу"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Саусақпен түртсеңіз болғаны – пайдалы ақпарат көз алдыңызда"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Қолданбаларды ашпай-ақ ақпарат алу үшін негізгі экранға тиісті виджеттерді қосыңыз."</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Виджет параметрлерін өзгерту үшін түртіңіз."</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Түсінікті"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Виджет параметрлерін өзгерту"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Қолданбаларды іздеу"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Қолданбалар жүктелуде…"</string> diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml index cc1bf43171..e738e6ea11 100644 --- a/res/values-km/strings.xml +++ b/res/values-km/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"ការកត់ត្រា"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"បញ្ចូល"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"បញ្ចូលធាតុក្រាហ្វិក <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"ទទួលបានព័ត៌មានដែលមានប្រយោជន៍យ៉ាងងាយស្រួល"</string> - <string name="widget_education_content" msgid="1731667670753497052">"ដើម្បីទទួលបានព័ត៌មានដោយមិនចាំបាច់បើកកម្មវិធី អ្នកអាចបញ្ចូលធាតុក្រាហ្វិកទៅក្នុងអេក្រង់ដើមរបស់អ្នក"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"ចុចដើម្បីប្ដូរការកំណត់ធាតុក្រាហ្វិក"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"យល់ហើយ"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"ប្ដូរការកំណត់ធាតុក្រាហ្វិក"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"ស្វែងរកកម្មវិធី"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"កំពុងផ្ទុកកម្មវិធី…"</string> diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml index 8017f80c44..7eeae343b3 100644 --- a/res/values-kn/strings.xml +++ b/res/values-kn/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"ಟಿಪ್ಪಣಿ ತೆಗೆದುಕೊಳ್ಳುವುದು"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"ಸೇರಿಸಿ"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> ವಿಜೆಟ್ ಸೇರಿಸಿ"</string> - <string name="widget_education_header" msgid="4874760613775913787">"ನಿಮ್ಮ ಬೆರಳ ತುದಿಯಲ್ಲಿ ಉಪಯುಕ್ತ ಮಾಹಿತಿ"</string> - <string name="widget_education_content" msgid="1731667670753497052">"ಆ್ಯಪ್ಗಳನ್ನು ತೆರೆಯದೆಯೇ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲು, ನಿಮ್ಮ ಹೋಮ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ನೀವು ವಿಜೆಟ್ಗಳನ್ನು ಸೇರಿಸಬಹುದು"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"ವಿಜೆಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"ಅರ್ಥವಾಯಿತು"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"ವಿಜೆಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬದಲಾಯಿಸಿ"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"ಆ್ಯಪ್ಗಳನ್ನು ಹುಡುಕಿ"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ..."</string> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 3a50b5ed46..36724347bf 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"메모"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"추가"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> 위젯 추가"</string> - <string name="widget_education_header" msgid="4874760613775913787">"빠르게 유용한 정보 확인"</string> - <string name="widget_education_content" msgid="1731667670753497052">"앱을 열지 않고 정보를 확인하려면 홈 화면에 위젯을 추가하세요."</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"탭하여 위젯 설정 변경"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"확인"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"위젯 설정 변경"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"앱 검색"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"앱 로드 중…"</string> diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml index eaea6edc12..c9731a5a81 100644 --- a/res/values-ky/strings.xml +++ b/res/values-ky/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Эскертме жазуу"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Кошуу"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> виджетин кошуу"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Керектүү маалымат манжаңыздын учунда"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Бир нерсе билүү үчүн колдонмолорду улам ачып убара болбостон, башкы экранга виджеттерди кошуп коюңуз."</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Виджеттин параметрлерин өзгөртүү үчүн таптап коюңуз"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Түшүндүм"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Виджеттин параметрлерин өзгөртүү"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Колдонмолорду издөө"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Колдонмолор жүктөлүүдө…"</string> diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml index 954075205b..90e3144547 100644 --- a/res/values-lo/strings.xml +++ b/res/values-lo/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"ການຈົດບັນທຶກ"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"ເພີ່ມ"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"ເພີ່ມວິດເຈັດ <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"ຂໍ້ມູນທີ່ເປັນປະໂຫຍດຢູ່ປາຍນິ້ວຂອງທ່ານ"</string> - <string name="widget_education_content" msgid="1731667670753497052">"ເພື່ອຮັບຂໍ້ມູນໂດຍບໍ່ຕ້ອງເປີດແອັບ, ທ່ານສາມາດເພີ່ມວິດເຈັດໃສ່ໂຮມສະກຣີນຂອງທ່ານໄດ້"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"ແຕະເພື່ອປ່ຽນການຕັ້ງຄ່າວິດເຈັດ"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"ເຂົ້າໃຈແລ້ວ"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"ປ່ຽນການຕັ້ງຄ່າວິດເຈັດ"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"ຊອກຫາແອັບ"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"ກໍາລັງໂຫຼດແອັບ…"</string> diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index b108dfbcca..d763891932 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Užrašų kūrimas"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Pridėti"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Pridėti valdiklį: <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Lengvai pasiekiama naudinga informacija"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Jei norite gauti informacijos neatidarę programų, galite pridėti valdiklių pagrindiniame ekrane"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Palieskite, kad pakeistumėte valdiklio nustatymus"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Supratau"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Pakeisti valdiklio nustatymus"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Paieškos programos"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Įkeliamos programos…"</string> diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 824ad5c0b7..919158ccd4 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Piezīmju pierakstīšana"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Pievienot"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Pievienot logrīku <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Ērta piekļuve noderīgai informācijai"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Lai iegūtu informāciju, neatverot lietotnes, varat pievienot sākuma ekrānam logrīkus"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Pieskarieties, lai mainītu logrīka iestatījumus."</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Labi"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Mainīt logrīka iestatījumus"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Meklēt lietotnes"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Notiek lietotņu ielāde…"</string> diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index f762c804bc..4f008197aa 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Фаќање белешки"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Додај"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Додај го виџетот <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Корисни информации на дофат на прстите"</string> - <string name="widget_education_content" msgid="1731667670753497052">"За да добивате информации без да ги отворате апликациите, може да додадете виџети на почетниот екран"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Допрете за да ги промените поставките за виџетот"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Сфатив"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Промени ги поставките за виџетот"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Пребарувајте апликации"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Се вчитуваат апликации…"</string> diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml index 5417b3c6d6..1fc45728b2 100644 --- a/res/values-ml/strings.xml +++ b/res/values-ml/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"കുറിപ്പ് രേഖപ്പെടുത്തൽ"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"ചേർക്കുക"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> വിജറ്റ് ചേർക്കുക"</string> - <string name="widget_education_header" msgid="4874760613775913787">"ഉപകാരപ്രദമായ വിവരങ്ങൾ നിങ്ങളുടെ വിരൽത്തുമ്പിൽ"</string> - <string name="widget_education_content" msgid="1731667670753497052">"ആപ്പുകൾ തുറക്കാതെ വിവരങ്ങൾ ലഭിക്കാൻ, നിങ്ങൾക്ക് ഹോം സ്ക്രീനിലേക്ക് വിജറ്റുകൾ ചേർക്കാം"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"വിജറ്റ് ക്രമീകരണം മാറ്റാൻ ടാപ്പ് ചെയ്യുക"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"മനസ്സിലായി"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"വിജറ്റ് ക്രമീകരണം മാറ്റുക"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"ആപ്പുകൾ തിരയുക"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"ആപ്പുകൾ ലോഡുചെയ്യുന്നു..."</string> diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml index 0f5e6e2b98..33096c0e22 100644 --- a/res/values-mn/strings.xml +++ b/res/values-mn/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Тэмдэглэл хөтлөх"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Нэмэх"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> виджетийг нэмэх"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Хэрэгтэй мэдээллээ хурууныхаа үзүүрээр аваарай"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Аппуудыг нээлгүйгээр мэдээлэл авахын тулд та үндсэн нүүрэндээ виджетүүд нэмэх боломжтой"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Жижиг хэрэгслийн тохиргоог өөрчлөхийн тулд товшино уу"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Ойлголоо"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Жижиг хэрэгслийн тохиргоог өөрчлөх"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Апп хайх"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Аппыг ачаалж байна..."</string> diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml index 1592e4d64a..1108c45dfd 100644 --- a/res/values-mr/strings.xml +++ b/res/values-mr/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"टिपा घेणे"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"जोडा"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> विजेट जोडा"</string> - <string name="widget_education_header" msgid="4874760613775913787">"तुमच्यासाठी सहज उपलब्ध असलेली माहिती"</string> - <string name="widget_education_content" msgid="1731667670753497052">"ॲप्स न उघडता माहिती मिळवण्यासाठी, तुम्ही तुमच्या होम स्क्रीनवर विजेट जोडू शकता"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"विजेट सेटिंग्ज बदलण्यासाठी टॅप करा"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"समजले"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"विजेट सेटिंग्ज बदला"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"अॅप्स शोधा"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"अॅप्स लोड करत आहे…"</string> diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml index 5411f322a5..b0d4fcf3dd 100644 --- a/res/values-ms/strings.xml +++ b/res/values-ms/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Pengambilan nota"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Tambah"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Tambahkan widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Maklumat berguna di hujung jari anda"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Untuk mendapatkan maklumat tanpa membuka apl, anda boleh menambahkan widget pada skrin utama anda"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Ketik untuk menukar tetapan widget"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Tukar tetapan widget"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Cari apl"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Memuatkan apl…"</string> diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml index 9d0eb0fcff..386965f177 100644 --- a/res/values-my/strings.xml +++ b/res/values-my/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"မှတ်စုလိုက်ခြင်း"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"ထည့်ရန်"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> ဝိဂျက်ထည့်ရန်"</string> - <string name="widget_education_header" msgid="4874760613775913787">"အသုံးဝင်သော အချက်အလက်များကို အလွယ်တကူ ရယူလိုက်ပါ"</string> - <string name="widget_education_content" msgid="1731667670753497052">"အက်ပ်မဖွင့်ဘဲ အချက်အလက်များရယူရန် ပင်မစာမျက်နှာတွင် ဝိဂျက်များ ထည့်နိုင်သည်"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"ဝိဂျက် ဆက်တင်များကို ပြောင်းရန် တို့ပါ"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"နားလည်ပြီ"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"ဝိဂျက် ဆက်တင်များကို ပြောင်းပါ"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"ရှာဖွေမှု အက်ပ်များ"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"အက်ပ်များကို ဖွင့်နေသည်…"</string> diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index 48a4464927..86699deb7c 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Notatskriving"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Legg til"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Legg til <xliff:g id="WIDGET_NAME">%1$s</xliff:g>-modulen"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Lett tilgjengelig nyttig informasjon"</string> - <string name="widget_education_content" msgid="1731667670753497052">"For å se informasjon uten å åpne apper kan du legge til moduler på startskjermen"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Trykk for å endre modulinnstillinger"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Greit"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Endre modulinnstillinger"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Søk etter apper"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Laster inn appene …"</string> diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml index 69470509d7..6e8727b721 100644 --- a/res/values-ne/strings.xml +++ b/res/values-ne/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"नोट लेख्ने कार्य"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"हाल्नुहोस्"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> विजेट हाल्नुहोस्"</string> - <string name="widget_education_header" msgid="4874760613775913787">"उपयोगी जानकारी सजिलै प्राप्त गर्नुहोस्"</string> - <string name="widget_education_content" msgid="1731667670753497052">"एपहरू नखोलिकनै जानकारी प्राप्त गर्न तपाईं आफ्नो होम स्क्रिनमा विजेटहरू हाल्न सक्नुहुन्छ"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"विजेटका सेटिङ बदल्न ट्याप गर्नुहोस्"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"बुझेँ"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"विजेटका सेटिङ बदल्नुहोस्"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"एपहरू खोज्नुहोस्"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"एपहरू लोड गर्दै…"</string> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index a06f7799cd..675a1b53d6 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Aantekeningen maken"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Toevoegen"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g> toevoegen"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Nuttige informatie binnen handbereik"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Als je informatie wilt krijgen zonder apps te openen, kun je widgets toevoegen aan je startscherm"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tik om de widgetinstellingen te wijzigen"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Widgetinstellingen wijzigen"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Apps zoeken"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Apps laden…"</string> diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml index 62b1c6f370..5b3791982a 100644 --- a/res/values-or/strings.xml +++ b/res/values-or/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"ନୋଟ-ଟେକିଂ"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"ଯୋଗ କରନ୍ତୁ"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> ୱିଜେଟ ଯୋଗ କରନ୍ତୁ"</string> - <string name="widget_education_header" msgid="4874760613775913787">"ଉପଯୋଗୀ ସୂଚନା ଆପଣଙ୍କ ପାଖରେ ସହଜରେ ଉପଲବ୍ଧ"</string> - <string name="widget_education_content" msgid="1731667670753497052">"ଆପ୍ସକୁ ନଖୋଲି ସୂଚନା ପାଇବା ପାଇଁ, ଆପଣ ଆପଣଙ୍କ ହୋମ ସ୍କ୍ରିନରେ ୱିଜେଟଗୁଡ଼ିକୁ ଯୋଗ କରିପାରିବେ"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"ୱିଜେଟ ସେଟିଂସ ପରିବର୍ତ୍ତନ କରିବାକୁ ଟାପ କରନ୍ତୁ"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"ବୁଝିଗଲି"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"ୱିଜେଟ ସେଟିଂସ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"ଆପ ସର୍ଚ୍ଚ କରନ୍ତୁ"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"ଆପ୍ ଲୋଡ୍ ହେଉଛି..."</string> diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml index c9165ecae1..911b702ffd 100644 --- a/res/values-pa/strings.xml +++ b/res/values-pa/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"ਨੋਟ ਬਣਾਉਣਾ"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"ਸ਼ਾਮਲ ਕਰੋ"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> ਵਿਜੇਟ ਸ਼ਾਮਲ ਕਰੋ"</string> - <string name="widget_education_header" msgid="4874760613775913787">"ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਤੁਰੰਤ ਪ੍ਰਾਪਤ ਕਰੋ"</string> - <string name="widget_education_content" msgid="1731667670753497052">"ਐਪਾਂ ਨੂੰ ਖੋਲ੍ਹੇ ਬਿਨਾਂ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਤੁਸੀਂ ਆਪਣੀ ਹੋਮ ਸਕ੍ਰੀਨ \'ਤੇ ਵਿਜੇਟ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"ਵਿਜੇਟ ਸੈਟਿੰਗਾਂ ਨੂੰ ਬਦਲਣ ਲਈ ਟੈਪ ਕਰੋ"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"ਸਮਝ ਲਿਆ"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"ਵਿਜੇਟ ਸੈਟਿੰਗਾਂ ਬਦਲੋ"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"ਐਪਾਂ ਖੋਜੋ"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"ਐਪਾਂ ਨੂੰ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."</string> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index dd90e44777..578127d81c 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Notatki"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Dodaj"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Dodaj widżet <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Użyteczne informacje w zasięgu ręki"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Możesz dodać widżety do ekranu głównego, aby uzyskiwać informacje bez otwierania aplikacji"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Kliknij, aby zmienić ustawienia widżetu"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Zmień ustawienia widżetu"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Wyszukaj aplikacje"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Ładuję aplikacje…"</string> diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index a88cd5db5d..9dde360160 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Tomar notas"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Adicionar"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Adicione o widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Informações úteis à sua disposição"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Para obter informações sem abrir apps, pode adicionar widgets ao seu ecrã principal"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Toque para alterar as definições do widget"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Alterar definições do widget"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Pesquisar apps"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"A carregar aplicações…"</string> diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 5f2d2ef27a..7932424d9a 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Anotações"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Adicionar"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Adicionar o widget <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Informações úteis ao seu alcance"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Para acessar informações sem precisar abrir os apps, adicione widgets à sua tela inicial"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Toque para mudar as configurações do widget"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Ok"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Mudar as configurações do widget"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Pesquisar apps"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Carregando apps…"</string> diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 0e3426c412..13ae5e393c 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Luare de notițe"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Adaugă"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Adaugă widgetul <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Informații utile la îndemâna ta"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Pentru a primi informații fără să deschizi aplicațiile, poți adăuga widgeturi pe ecranul de pornire"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Atinge ca să schimbi setările pentru widgeturi"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Modifică setările pentru widgeturi"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Caută aplicații"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Se încarcă aplicații…"</string> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 71841c468a..4df4df0a51 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Создание заметок"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Добавить"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Добавить виджет \"<xliff:g id="WIDGET_NAME">%1$s</xliff:g>\""</string> - <string name="widget_education_header" msgid="4874760613775913787">"Вся нужная информация перед глазами"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Чтобы не открывать приложения каждый раз, когда нужна информация, добавьте виджеты на главный экран."</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Нажмите, чтобы изменить настройки виджета"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"ОК"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Изменить настройки виджета"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Поиск приложений"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Загрузка приложений…"</string> diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml index f13b3bdaee..61ca4de3b9 100644 --- a/res/values-si/strings.xml +++ b/res/values-si/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"සටහන් කර ගැනීම"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"එක් කරන්න"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> විජට්ටුව එක් කරන්න"</string> - <string name="widget_education_header" msgid="4874760613775913787">"ප්රයෝජනවත් තොරතුරු ඔබගේ ඇඟිලි තුඩු අග"</string> - <string name="widget_education_content" msgid="1731667670753497052">"යෙදුම් විවෘත නොකර තොරතුරු ලබා ගැනීම සඳහා, ඔබට ඔබගේ මුල් තිරයට විජට් එක් කළ හැකිය"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"විජට් සැකසීම් වෙනස් කිරීමට තට්ටු කරන්න"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"තේරුණා"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"විජට් සැකසීම් වෙනස් කරන්න"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"යෙදුම් සොයන්න"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"යෙදුම් පූරණය වෙමින්…"</string> diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 5e4355d559..2711ec90f8 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Zapisovanie poznámok"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Pridať"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Pridať miniaplikáciu <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Užitočné informácie poruke"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Ak chcete získavať informácie bez otvárania aplikácií, môžete si na plochu pridať miniaplikácie"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Klepnutím zmeňte nastavenia miniaplikácie"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Dobre"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Zmena nastavení miniaplikácie"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Hľadať aplikácie"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Načítavajú sa aplikácie…"</string> diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index c1e66d2d98..7e13ac8c0d 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Ustvarjanje zapiskov"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Dodaj"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Dodajanje pripomočka »<xliff:g id="WIDGET_NAME">%1$s</xliff:g>«"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Koristne informacije na dosegu prstov"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Če si želite podatke ogledati brez odpiranja aplikacij, lahko na začetni zaslon dodate pripomočke."</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Dotaknite se, če želite spremeniti nastavitve pripomočka."</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Razumem"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Spreminjanje nastavitev pripomočka"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Iskanje programov"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Nalaganje aplikacij …"</string> diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml index e194f50f4c..5f3794476e 100644 --- a/res/values-sq/strings.xml +++ b/res/values-sq/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Mbajtja e shënimeve"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Shto"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Shto miniaplikacionin <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Informacione të dobishme në majë të gishtave të tu"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Për të marrë informacione pa i hapur aplikacionet, mund të shtosh miniaplikacione në ekranin bazë"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Trokit për të ndryshuar cilësimet e miniaplikacionit"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"E kuptova"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Ndrysho cilësimet e miniaplikacionit"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Kërko për aplikacione"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Po ngarkon aplikacionet..."</string> diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index d3f3055df5..4a71666eeb 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Прављење бележака"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Додај"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Додајте виџет <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Корисне информације надохват руке"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Да бисте пронашли информације без отварања апликација, можете да додате виџете на почетни екран"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Додирните да бисте променили подешавања виџета"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Важи"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Промените подешавања виџета"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Претражите апликације"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Апликације се учитавају…"</string> diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 52de05c2e8..4dc5365caa 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Anteckna"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Lägg till"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Lägg till widgeten <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Användbar information nära till hands"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Om du vill ha information utan att öppna appar kan du lägga till widgetar på startskärmen"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Tryck för att ändra inställningarna för widgeten"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Ändra inställningarna för widgeten"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Sök efter appar"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Läser in appar …"</string> diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml index 0c96475fc6..7253483b5e 100644 --- a/res/values-sw/strings.xml +++ b/res/values-sw/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Kuandika madokezo"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Weka"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Weka wijeti ya <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Maelezo muhimu, popote ulipo"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Ili upate maelezo bila kufungua programu, unaweza kuweka wijeti kwenye skrini yako ya kwanza"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Gusa ili ubadilishe mipangilio ya wijeti"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Nimeelewa"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Badilisha mipangilio ya wijeti"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Tafuta programu"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Inapakia programu..."</string> diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml index bea7f981a1..ebef2b4b64 100644 --- a/res/values-ta/strings.xml +++ b/res/values-ta/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"குறிப்பெடுத்தல்"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"சேர்"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> விட்ஜெட்டைச் சேர்க்கும்"</string> - <string name="widget_education_header" msgid="4874760613775913787">"விரல்நுனியில் பயனுள்ள தகவல்களைப் பெறுங்கள்"</string> - <string name="widget_education_content" msgid="1731667670753497052">"முகப்புத் திரையில் விட்ஜெட்டுகளைச் சேர்த்து ஆப்ஸைத் திறக்காமலேயே தகவல்களைப் பெறலாம்"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"விட்ஜெட் அமைப்புகளை மாற்றத் தட்டவும்"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"சரி"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"விட்ஜெட் அமைப்புகளை மாற்றும்"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"ஆப்ஸில் தேடுக"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"ஆப்ஸை ஏற்றுகிறது…"</string> diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml index 1a761f206d..3c41daac81 100644 --- a/res/values-te/strings.xml +++ b/res/values-te/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"నోట్-టేకింగ్"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"జోడించండి"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> విడ్జెట్ను జోడించండి"</string> - <string name="widget_education_header" msgid="4874760613775913787">"మీ చేతివేళ్ల మీద ఉపయోగకరమైన సమాచారం"</string> - <string name="widget_education_content" msgid="1731667670753497052">"యాప్లను తెరవకుండా సమాచారాన్ని పొందడానికి, మీరు మీ మొదటి స్క్రీన్కు విడ్జెట్లను జోడించవచ్చు"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"విడ్జెట్ సెట్టింగ్లను మార్చడానికి ట్యాప్ చేయండి"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"అర్థమైంది"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"విడ్జెట్ సెట్టింగ్లను మార్చండి"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"యాప్ల కోసం సెర్చ్ చేయండి"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"అప్లికేషన్లను లోడ్ చేస్తోంది…"</string> diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index 62dbdb9db3..880a58ee56 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"การจดบันทึก"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"เพิ่ม"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"เพิ่มวิดเจ็ต <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"เข้าถึงข้อมูลที่เป็นประโยชน์ได้จากปลายนิ้ว"</string> - <string name="widget_education_content" msgid="1731667670753497052">"หากต้องการรับข้อมูลโดยไม่เปิดแอป ให้เพิ่มวิดเจ็ตลงในหน้าจอหลัก"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"แตะเพื่อเปลี่ยนการตั้งค่าวิดเจ็ต"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"รับทราบ"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"เปลี่ยนการตั้งค่าวิดเจ็ต"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"ค้นหาแอป"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"กำลังโหลดแอป…"</string> diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml index 4c4362a26d..4ae6ee958e 100644 --- a/res/values-tl/strings.xml +++ b/res/values-tl/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Pagtatala"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Idagdag"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Idagdag ang widget na <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Abot-kamay na mahalagang impormasyon"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Para makakuha ng impormasyon nang hindi nagbubukas ng mga app, puwede kang magdagdag ng mga widget sa iyong home screen"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"I-tap para baguhin ang mga setting ng widget"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Baguhin ang mga setting ng widget"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Maghanap ng mga app"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Naglo-load ng mga app…"</string> diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index fd5c866e44..d526fc88af 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Not alma"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Ekle"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> widget\'ı ekle"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Faydalı bilgiler parmaklarınızın ucunda"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Uygulama açmadan bilgi almak için ana ekranınıza widget ekleyebilirsiniz"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Widget ayarlarını değiştirmek için dokunun"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Anladım"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Widget ayarlarını değiştir"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Uygulamalarda ara"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Uygulamalar yükleniyor…"</string> diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 80d182ac68..a81ce31e39 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Створення нотаток"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Додати"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Додати віджет \"<xliff:g id="WIDGET_NAME">%1$s</xliff:g>\""</string> - <string name="widget_education_header" msgid="4874760613775913787">"Корисна інформація завжди під рукою"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Щоб отримувати інформацію, не відкриваючи додатки, ви можете додати на головний екран віджети"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Натисніть, щоб змінити налаштування віджета"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Змінити налаштування віджета"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Пошук додатків"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Завантаження додатків…"</string> diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml index 5eade9529e..7c73caba46 100644 --- a/res/values-ur/strings.xml +++ b/res/values-ur/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"نوٹ لکھنا"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"شامل کریں"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> ویجیٹ شامل کریں"</string> - <string name="widget_education_header" msgid="4874760613775913787">"مفید معلومات کو آسانی سے حاصل کریں"</string> - <string name="widget_education_content" msgid="1731667670753497052">"ایپس کو کھولے بغیر معلومات حاصل کرنے کے لیے آپ اپنی ہوم اسکرین پر ویجیٹس شامل کر سکتے ہیں"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"ویجیٹ ترتیبات تبدیل کرنے کے لیے تھپتھپائیں"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"سمجھ آ گئی"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"ویجیٹ ترتیبات تبدیل کریں"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"ایپس تلاش کریں"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"ایپس لوڈ کی جا رہی ہیں…"</string> diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml index 4126cdd3ca..0ee989edc0 100644 --- a/res/values-uz/strings.xml +++ b/res/values-uz/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Qayd olish"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Chiqarish"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"<xliff:g id="WIDGET_NAME">%1$s</xliff:g> vidjetini chiqarish"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Barcha kerakli axborot doim yoningizda"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Kerakli ilovalarni ochmasdan turib ulardan axborot olish uchun vidjetlarni bosh ekranga chiqaring"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Vidjet sozlamalarini oʻzgartirish uchun bosing"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"OK"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Vidjet sozlamalarini oʻzgartirish"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Ilovalarni qidirish"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Ilovalar yuklanmoqda…"</string> diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index ae4bf17532..86226f058a 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Ghi chú"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Thêm"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Thêm tiện ích <xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Thông tin hữu ích ngay trong tầm tay bạn"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Để nhận thông tin mà không cần mở các ứng dụng, bạn có thể thêm tiện ích vào màn hình chính"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Nhấn để thay đổi chế độ cài đặt tiện ích"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Tôi hiểu"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Thay đổi chế độ cài đặt tiện ích"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Tìm kiếm ứng dụng"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Đang tải ứng dụng…"</string> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 6e1fb12206..40951e9778 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"记事"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"添加"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"添加“<xliff:g id="WIDGET_NAME">%1$s</xliff:g>”微件"</string> - <string name="widget_education_header" msgid="4874760613775913787">"实用信息触手可及"</string> - <string name="widget_education_content" msgid="1731667670753497052">"要想不打开应用就能获取信息,您可以将相应微件添加到主屏幕"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"点按即可更改微件设置"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"知道了"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"更改微件设置"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"搜索应用"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"正在加载应用…"</string> diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index d5f6c8a4da..b6147fdc22 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"做筆記"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"新增"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"加<xliff:g id="WIDGET_NAME">%1$s</xliff:g>小工具"</string> - <string name="widget_education_header" msgid="4874760613775913787">"實用資訊,唾手可得"</string> - <string name="widget_education_content" msgid="1731667670753497052">"只要將小工具新增至主畫面,就可以直接查看資料,無需開啟應用程式"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"輕按即可變更小工具設定"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"知道了"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"變更小工具設定"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"搜尋應用程式"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"正在載入應用程式…"</string> diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 573f633ce2..17573d9a36 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"做筆記"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"新增"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"新增「<xliff:g id="WIDGET_NAME">%1$s</xliff:g>」小工具"</string> - <string name="widget_education_header" msgid="4874760613775913787">"實用資訊隨手可得"</string> - <string name="widget_education_content" msgid="1731667670753497052">"只要將小工具新增到主畫面,就可以直接查看資訊,不必開啟應用程式"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"輕觸即可變更小工具設定"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"我知道了"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"變更小工具設定"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"搜尋應用程式"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"正在載入應用程式…"</string> diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml index 06b8d30acf..a24c0e9ee7 100644 --- a/res/values-zu/strings.xml +++ b/res/values-zu/strings.xml @@ -67,10 +67,7 @@ <string name="widget_category_note_taking" msgid="3469689394504266039">"Ukuthatha amanothi"</string> <string name="widget_add_button_label" msgid="2761267068711937179">"Engeza"</string> <string name="widget_add_button_content_description" msgid="1810530016360039643">"Engeza iwijethi ye-<xliff:g id="WIDGET_NAME">%1$s</xliff:g>"</string> - <string name="widget_education_header" msgid="4874760613775913787">"Ulwazi oluwusizo phambi nje kwakho"</string> - <string name="widget_education_content" msgid="1731667670753497052">"Ukuze uthole ulwazi ngaphandle kokuvula ama-app, ungakwazi ukwengeza amawijethi kusikrini sakho sasekhaya"</string> <string name="reconfigurable_widget_education_tip" msgid="6336962690888067057">"Thepha ukuze ushintshe amasethingi ewijethi"</string> - <string name="widget_education_close_button" msgid="8676165703104836580">"Ngiyezwa"</string> <string name="widget_reconfigure_button_content_description" msgid="8811472721881205250">"Shintsha amasethingi ewijethi"</string> <string name="all_apps_search_bar_hint" msgid="1390553134053255246">"Sesha izinhlelo zokusebenza"</string> <string name="all_apps_loading_message" msgid="5813968043155271636">"Ilayisha izinhlelo zokusebenza..."</string> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index f16c69bada..31def0436b 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -494,7 +494,7 @@ <!-- Private Space parameters --> <dimen name="ps_container_corner_radius">24dp</dimen> - <dimen name="ps_header_height">64dp</dimen> + <dimen name="ps_header_height">72dp</dimen> <dimen name="ps_header_relative_layout_height">48dp</dimen> <dimen name="ps_header_image_height">48dp</dimen> <dimen name="ps_header_text_height">24dp</dimen> diff --git a/res/values/strings.xml b/res/values/strings.xml index da5b70962f..c971223cc9 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -139,20 +139,10 @@ placeholder text is the widget name. [CHAR_LIMIT=none] --> <string name="widget_add_button_content_description">Add <xliff:g id="widget_name" example="Calendar month view">%1$s</xliff:g> widget</string> - <!-- Title of a dialog. This dialog lets a user know how they can use widgets on their phone. - [CHAR_LIMIT=NONE] --> - <string name="widget_education_header">Useful info at your fingertips</string> - <!-- Dialog text. This dialog lets a user know how they can use widgets on their phone. - [CHAR_LIMIT=NONE] --> - <string name="widget_education_content">To get info without opening apps, you can add widgets to your home screen</string> - <!-- Text on an educational tip on widget informing users that they can change widget settings. [CHAR_LIMIT=NONE] --> <string name="reconfigurable_widget_education_tip">Tap to change widget settings</string> - <!-- Text on the button that closes the education dialog about widgets. [CHAR_LIMIT=50] --> - <string name="widget_education_close_button">Got it</string> - <!-- Spoken text for screen readers. This text is for an icon that lets the user change a widget's settings. [CHAR_LIMIT=50] --> <string name="widget_reconfigure_button_content_description">Change widget settings</string> diff --git a/src/com/android/launcher3/AbstractFloatingView.java b/src/com/android/launcher3/AbstractFloatingView.java index 4ccf3dbdfb..876b6436fb 100644 --- a/src/com/android/launcher3/AbstractFloatingView.java +++ b/src/com/android/launcher3/AbstractFloatingView.java @@ -70,7 +70,6 @@ public abstract class AbstractFloatingView extends LinearLayout implements Touch TYPE_ICON_SURFACE, TYPE_OPTIONS_POPUP_DIALOG, TYPE_PIN_WIDGET_FROM_EXTERNAL_POPUP, - TYPE_WIDGETS_EDUCATION_DIALOG, TYPE_TASKBAR_EDUCATION_DIALOG, TYPE_TASKBAR_ALL_APPS, TYPE_ADD_TO_HOME_CONFIRMATION, @@ -98,7 +97,6 @@ public abstract class AbstractFloatingView extends LinearLayout implements Touch public static final int TYPE_OPTIONS_POPUP_DIALOG = 1 << 14; public static final int TYPE_PIN_WIDGET_FROM_EXTERNAL_POPUP = 1 << 15; - public static final int TYPE_WIDGETS_EDUCATION_DIALOG = 1 << 16; public static final int TYPE_TASKBAR_EDUCATION_DIALOG = 1 << 17; public static final int TYPE_TASKBAR_ALL_APPS = 1 << 18; public static final int TYPE_ADD_TO_HOME_CONFIRMATION = 1 << 19; @@ -111,16 +109,16 @@ public abstract class AbstractFloatingView extends LinearLayout implements Touch | TYPE_ON_BOARD_POPUP | TYPE_DISCOVERY_BOUNCE | TYPE_TASK_MENU | TYPE_OPTIONS_POPUP | TYPE_SNACKBAR | TYPE_LISTENER | TYPE_ALL_APPS_EDU | TYPE_ICON_SURFACE | TYPE_DRAG_DROP_POPUP | TYPE_PIN_WIDGET_FROM_EXTERNAL_POPUP - | TYPE_WIDGETS_EDUCATION_DIALOG | TYPE_TASKBAR_EDUCATION_DIALOG | TYPE_TASKBAR_ALL_APPS - | TYPE_OPTIONS_POPUP_DIALOG | TYPE_ADD_TO_HOME_CONFIRMATION - | TYPE_TASKBAR_OVERLAY_PROXY | TYPE_TASKBAR_PINNING_POPUP | TYPE_PIN_IME_POPUP; + | TYPE_TASKBAR_EDUCATION_DIALOG | TYPE_TASKBAR_ALL_APPS | TYPE_OPTIONS_POPUP_DIALOG + | TYPE_ADD_TO_HOME_CONFIRMATION | TYPE_TASKBAR_OVERLAY_PROXY + | TYPE_TASKBAR_PINNING_POPUP | TYPE_PIN_IME_POPUP; // Type of popups which should be kept open during launcher rebind public static final int TYPE_REBIND_SAFE = TYPE_WIDGETS_FULL_SHEET | TYPE_WIDGETS_BOTTOM_SHEET | TYPE_ON_BOARD_POPUP | TYPE_DISCOVERY_BOUNCE - | TYPE_ALL_APPS_EDU | TYPE_ICON_SURFACE | TYPE_WIDGETS_EDUCATION_DIALOG - | TYPE_TASKBAR_EDUCATION_DIALOG | TYPE_TASKBAR_ALL_APPS | TYPE_OPTIONS_POPUP_DIALOG - | TYPE_TASKBAR_OVERLAY_PROXY | TYPE_PIN_IME_POPUP; + | TYPE_ALL_APPS_EDU | TYPE_ICON_SURFACE | TYPE_TASKBAR_EDUCATION_DIALOG + | TYPE_TASKBAR_ALL_APPS | TYPE_OPTIONS_POPUP_DIALOG | TYPE_TASKBAR_OVERLAY_PROXY + | TYPE_PIN_IME_POPUP; /** Type of popups that should get exclusive accessibility focus. */ public static final int TYPE_ACCESSIBLE = TYPE_ALL & ~TYPE_DISCOVERY_BOUNCE & ~TYPE_LISTENER diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java index 83236d14ff..a7284e539c 100644 --- a/src/com/android/launcher3/BubbleTextView.java +++ b/src/com/android/launcher3/BubbleTextView.java @@ -631,7 +631,7 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver, if (!mForceHideDot && (hasDot() || mDotParams.scale > 0)) { getIconBounds(mDotParams.iconBounds); Utilities.scaleRectAboutCenter(mDotParams.iconBounds, - IconShape.getNormalizationScale()); + IconShape.INSTANCE.get(getContext()).getNormalizationScale()); final int scrollX = getScrollX(); final int scrollY = getScrollY(); canvas.translate(scrollX, scrollY); diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java index 72758f2e6c..98dade5d52 100644 --- a/src/com/android/launcher3/CellLayout.java +++ b/src/com/android/launcher3/CellLayout.java @@ -123,7 +123,7 @@ public class CellLayout extends ViewGroup { private OnTouchListener mInterceptTouchListener; private final ArrayList<DelegatedCellDrawing> mDelegatedCellDrawings = new ArrayList<>(); - final PreviewBackground mFolderLeaveBehind = new PreviewBackground(); + final PreviewBackground mFolderLeaveBehind = new PreviewBackground(getContext()); private static final int[] BACKGROUND_STATE_ACTIVE = new int[] { android.R.attr.state_active }; private static final int[] BACKGROUND_STATE_DEFAULT = EMPTY_STATE_SET; diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index dc7c349458..4fe7234cbb 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1261,6 +1261,13 @@ public class Launcher extends StatefulActivity<LauncherState> getAllAppsExitEvent().ifPresent(getStatsLogManager().logger()::log); mAllAppsSessionLogId = null; } + + // Set screen title for Talkback + if (state == ALL_APPS) { + setTitle(R.string.all_apps_label); + } else { + setTitle(R.string.home_screen); + } } /** diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java index d2633e0837..159e17fa8b 100644 --- a/src/com/android/launcher3/LauncherAppState.java +++ b/src/com/android/launcher3/LauncherAppState.java @@ -257,7 +257,7 @@ public class LauncherAppState implements SafeCloseable { @Override public void onSystemIconStateChanged(String iconState) { - IconShape.init(mContext); + IconShape.INSTANCE.get(mContext).pickBestShape(mContext); refreshAndReloadLauncher(); LauncherPrefs.get(mContext).put(ICON_STATE, iconState); } diff --git a/src/com/android/launcher3/LauncherPrefs.kt b/src/com/android/launcher3/LauncherPrefs.kt index b503739f0d..6a5001b37e 100644 --- a/src/com/android/launcher3/LauncherPrefs.kt +++ b/src/com/android/launcher3/LauncherPrefs.kt @@ -320,11 +320,6 @@ class LauncherPrefs(private val encryptedContext: Context) : SafeCloseable { @JvmField val RECONFIGURABLE_WIDGET_EDUCATION_TIP_SEEN = backedUpItem("launcher.reconfigurable_widget_education_tip_seen", false) - @JvmField - val WIDGETS_EDUCATION_DIALOG_SEEN = - backedUpItem("launcher.widgets_education_dialog_seen", false) - @JvmField - val WIDGETS_EDUCATION_TIP_SEEN = backedUpItem("launcher.widgets_education_tip_seen", false) @JvmStatic fun <T> backedUpItem( diff --git a/src/com/android/launcher3/MainProcessInitializer.java b/src/com/android/launcher3/MainProcessInitializer.java index 3d7e11ed78..9944ef6b4a 100644 --- a/src/com/android/launcher3/MainProcessInitializer.java +++ b/src/com/android/launcher3/MainProcessInitializer.java @@ -19,7 +19,6 @@ package com.android.launcher3; import android.content.Context; import com.android.launcher3.graphics.BitmapCreationCheck; -import com.android.launcher3.graphics.IconShape; import com.android.launcher3.logging.FileLog; import com.android.launcher3.util.ResourceBasedOverride; @@ -36,7 +35,6 @@ public class MainProcessInitializer implements ResourceBasedOverride { protected void init(Context context) { FileLog.setDir(context.getApplicationContext().getFilesDir()); - IconShape.init(context); if (BitmapCreationCheck.ENABLED) { BitmapCreationCheck.startTracking(context); diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 1c23644243..cc9f08eadc 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -485,7 +485,10 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou super.onVisibilityAggregated(isVisible); } - protected boolean isPageInTransition() { + /** + * Returns true if the page is in the middle of transition to another page + */ + public boolean isPageInTransition() { return mIsPageInTransition; } diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 0fc3211e54..f03dcab2f7 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -1955,7 +1955,7 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T> // In order to keep everything continuous, we hand off the currently rendered // folder background to the newly created icon. This preserves animation state. fi.setFolderBackground(mFolderCreateBg); - mFolderCreateBg = new PreviewBackground(); + mFolderCreateBg = new PreviewBackground(getContext()); fi.performCreateAnimation(destInfo, v, sourceInfo, d, folderLocation, scale); } else { fi.prepareCreateAnimation(v); @@ -2670,7 +2670,7 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T> boolean userFolderPending = willCreateUserFolder(info, mDragOverView, false); if (mDragMode == DRAG_MODE_NONE && userFolderPending) { - mFolderCreateBg = new PreviewBackground(); + mFolderCreateBg = new PreviewBackground(getContext()); mFolderCreateBg.setup(mLauncher, mLauncher, null, mDragOverView.getMeasuredWidth(), mDragOverView.getPaddingTop()); diff --git a/src/com/android/launcher3/folder/FolderAnimationManager.java b/src/com/android/launcher3/folder/FolderAnimationManager.java index 7a2ec97f4d..7ef3209262 100644 --- a/src/com/android/launcher3/folder/FolderAnimationManager.java +++ b/src/com/android/launcher3/folder/FolderAnimationManager.java @@ -21,7 +21,6 @@ import static android.view.View.ALPHA; import static com.android.launcher3.BubbleTextView.TEXT_ALPHA_PROPERTY; import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY; import static com.android.launcher3.folder.ClippedFolderIconLayoutRule.MAX_NUM_ITEMS_IN_PREVIEW; -import static com.android.launcher3.graphics.IconShape.getShape; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; @@ -45,6 +44,8 @@ import com.android.launcher3.Utilities; import com.android.launcher3.anim.PropertyResetListener; import com.android.launcher3.apppairs.AppPairIcon; import com.android.launcher3.celllayout.CellLayoutLayoutParams; +import com.android.launcher3.graphics.IconShape; +import com.android.launcher3.graphics.IconShape.ShapeDelegate; import com.android.launcher3.util.Themes; import com.android.launcher3.views.BaseDragLayer; @@ -233,8 +234,9 @@ public class FolderAnimationManager { } play(a, getAnimator(mFolder.mFooter, ALPHA, 0, 1f), footerStartDelay, footerAlphaDuration); + ShapeDelegate shapeDelegate = IconShape.INSTANCE.get(mContext).getShape(); // Create reveal animator for the folder background - play(a, getShape().createRevealAnimator( + play(a, shapeDelegate.createRevealAnimator( mFolder, startRect, endRect, finalRadius, !mIsOpening)); // Create reveal animator for the folder content (capture the top 4 icons 2x2) @@ -246,10 +248,9 @@ public class FolderAnimationManager { int left = mContent.getPaddingLeft() + page * lp.width; Rect contentStart = new Rect(left, 0, left + width, height); Rect contentEnd = new Rect(left, 0, left + lp.width, lp.height); - play(a, getShape().createRevealAnimator( + play(a, shapeDelegate.createRevealAnimator( mFolder.getContent(), contentStart, contentEnd, finalRadius, !mIsOpening)); - // Fade in the folder name, as the text can overlap the icons when grid size is small. mFolder.mFolderName.setAlpha(mIsOpening ? 0f : 1f); play(a, getAnimator(mFolder.mFolderName, View.ALPHA, 0, 1), diff --git a/src/com/android/launcher3/folder/FolderIcon.java b/src/com/android/launcher3/folder/FolderIcon.java index 4d88b68d19..00636a30a3 100644 --- a/src/com/android/launcher3/folder/FolderIcon.java +++ b/src/com/android/launcher3/folder/FolderIcon.java @@ -112,7 +112,7 @@ public class FolderIcon extends FrameLayout implements FolderListener, IconLabel @Thunk BubbleTextView mFolderName; - PreviewBackground mBackground = new PreviewBackground(); + PreviewBackground mBackground = new PreviewBackground(getContext()); private boolean mBackgroundIsVisible = true; FolderGridOrganizer mPreviewVerifier; diff --git a/src/com/android/launcher3/folder/PreviewBackground.java b/src/com/android/launcher3/folder/PreviewBackground.java index ec038038ad..df41d4786c 100644 --- a/src/com/android/launcher3/folder/PreviewBackground.java +++ b/src/com/android/launcher3/folder/PreviewBackground.java @@ -19,7 +19,6 @@ package com.android.launcher3.folder; import static com.android.app.animation.Interpolators.ACCELERATE_DECELERATE; import static com.android.app.animation.Interpolators.EMPHASIZED_DECELERATE; import static com.android.launcher3.folder.ClippedFolderIconLayoutRule.ICON_OVERLAP_FACTOR; -import static com.android.launcher3.graphics.IconShape.getShape; import static com.android.launcher3.icons.GraphicsUtils.setColorAlphaBound; import android.animation.Animator; @@ -49,6 +48,8 @@ import com.android.launcher3.CellLayout; import com.android.launcher3.DeviceProfile; import com.android.launcher3.R; import com.android.launcher3.celllayout.DelegatedCellDrawing; +import com.android.launcher3.graphics.IconShape; +import com.android.launcher3.graphics.IconShape.ShapeDelegate; import com.android.launcher3.util.Themes; import com.android.launcher3.views.ActivityContext; @@ -66,6 +67,7 @@ public class PreviewBackground extends DelegatedCellDrawing { @VisibleForTesting protected static final float HOVER_SCALE = 1.1f; @VisibleForTesting protected static final int HOVER_ANIMATION_DURATION = 300; + private final Context mContext; private final PorterDuffXfermode mShadowPorterDuffXfermode = new PorterDuffXfermode(PorterDuff.Mode.DST_OUT); private RadialGradient mShadowShader = null; @@ -138,6 +140,10 @@ public class PreviewBackground extends DelegatedCellDrawing { } }; + public PreviewBackground(Context context) { + mContext = context; + } + /** * Draws folder background under cell layout */ @@ -254,6 +260,10 @@ public class PreviewBackground extends DelegatedCellDrawing { drawShadow(canvas); } + private ShapeDelegate getShape() { + return IconShape.INSTANCE.get(mContext).getShape(); + } + public void drawShadow(Canvas canvas) { if (!DRAW_SHADOW) { return; diff --git a/src/com/android/launcher3/graphics/IconShape.java b/src/com/android/launcher3/graphics/IconShape.java index f82b07ebfa..5f8f2dcf7c 100644 --- a/src/com/android/launcher3/graphics/IconShape.java +++ b/src/com/android/launcher3/graphics/IconShape.java @@ -22,7 +22,6 @@ import android.animation.AnimatorListenerAdapter; import android.animation.FloatArrayEvaluator; import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; -import android.annotation.TargetApi; import android.content.Context; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; @@ -35,7 +34,6 @@ import android.graphics.Region; import android.graphics.Region.Op; import android.graphics.drawable.AdaptiveIconDrawable; import android.graphics.drawable.ColorDrawable; -import android.os.Build; import android.util.AttributeSet; import android.util.Xml; import android.view.View; @@ -45,6 +43,8 @@ import com.android.launcher3.R; import com.android.launcher3.anim.RoundedRectRevealOutlineProvider; import com.android.launcher3.icons.GraphicsUtils; import com.android.launcher3.icons.IconNormalizer; +import com.android.launcher3.util.MainThreadInitializedObject; +import com.android.launcher3.util.SafeCloseable; import com.android.launcher3.views.ClipPathView; import org.xmlpull.v1.XmlPullParser; @@ -57,38 +57,94 @@ import java.util.List; /** * Abstract representation of the shape of an icon shape */ -public abstract class IconShape { +public final class IconShape implements SafeCloseable { - private static IconShape sInstance = new Circle(); - private static float sNormalizationScale = ICON_VISIBLE_AREA_FACTOR; + public static final MainThreadInitializedObject<IconShape> INSTANCE = + new MainThreadInitializedObject<>(IconShape::new); - public static IconShape getShape() { - return sInstance; + + private ShapeDelegate mDelegate = new Circle(); + private float mNormalizationScale = ICON_VISIBLE_AREA_FACTOR; + + private IconShape(Context context) { + pickBestShape(context); } - public static float getNormalizationScale() { - return sNormalizationScale; + public ShapeDelegate getShape() { + return mDelegate; } - public boolean enableShapeDetection(){ - return false; - }; + public float getNormalizationScale() { + return mNormalizationScale; + } + + @Override + public void close() { } + + /** + * Initializes the shape which is closest to the {@link AdaptiveIconDrawable} + */ + public void pickBestShape(Context context) { + // Pick any large size + final int size = 200; - public abstract void drawShape(Canvas canvas, float offsetX, float offsetY, float radius, - Paint paint); + Region full = new Region(0, 0, size, size); + Region iconR = new Region(); + AdaptiveIconDrawable drawable = new AdaptiveIconDrawable( + new ColorDrawable(Color.BLACK), new ColorDrawable(Color.BLACK)); + drawable.setBounds(0, 0, size, size); + iconR.setPath(drawable.getIconMask(), full); - public abstract void addToPath(Path path, float offsetX, float offsetY, float radius); + Path shapePath = new Path(); + Region shapeR = new Region(); - public abstract <T extends View & ClipPathView> Animator createRevealAnimator(T target, - Rect startRect, Rect endRect, float endRadius, boolean isReversed); + // Find the shape with minimum area of divergent region. + int minArea = Integer.MAX_VALUE; + ShapeDelegate closestShape = null; + for (ShapeDelegate shape : getAllShapes(context)) { + shapePath.reset(); + shape.addToPath(shapePath, 0, 0, size / 2f); + shapeR.setPath(shapePath, full); + shapeR.op(iconR, Op.XOR); + + int area = GraphicsUtils.getArea(shapeR); + if (area < minArea) { + minArea = area; + closestShape = shape; + } + } + + if (closestShape != null) { + mDelegate = closestShape; + } + + // Initialize shape properties + mNormalizationScale = IconNormalizer.normalizeAdaptiveIcon(drawable, size, null); + } + + + + public interface ShapeDelegate { + + default boolean enableShapeDetection() { + return false; + } + + void drawShape(Canvas canvas, float offsetX, float offsetY, float radius, Paint paint); + + void addToPath(Path path, float offsetX, float offsetY, float radius); + + <T extends View & ClipPathView> ValueAnimator createRevealAnimator(T target, + Rect startRect, Rect endRect, float endRadius, boolean isReversed); + } /** * Abstract shape where the reveal animation is a derivative of a round rect animation */ - private static abstract class SimpleRectShape extends IconShape { + private static abstract class SimpleRectShape implements ShapeDelegate { @Override - public final <T extends View & ClipPathView> Animator createRevealAnimator(T target, + public final <T extends View & ClipPathView> ValueAnimator createRevealAnimator(T target, Rect startRect, Rect endRect, float endRadius, boolean isReversed) { return new RoundedRectRevealOutlineProvider( getStartRadius(startRect), endRadius, startRect, endRect) { @@ -105,7 +161,7 @@ public abstract class IconShape { /** * Abstract shape which draws using {@link Path} */ - private static abstract class PathShape extends IconShape { + private static abstract class PathShape implements ShapeDelegate { private final Path mTmpPath = new Path(); @@ -121,7 +177,7 @@ public abstract class IconShape { Rect startRect, Rect endRect, float endRadius, Path outPath); @Override - public final <T extends View & ClipPathView> Animator createRevealAnimator(T target, + public final <T extends View & ClipPathView> ValueAnimator createRevealAnimator(T target, Rect startRect, Rect endRect, float endRadius, boolean isReversed) { Path path = new Path(); AnimatorUpdateListener listener = @@ -203,7 +259,7 @@ public abstract class IconShape { } } - public static class RoundedSquare extends SimpleRectShape { + private static class RoundedSquare extends SimpleRectShape { /** * Ratio of corner radius to half size. @@ -237,7 +293,7 @@ public abstract class IconShape { } } - public static class TearDrop extends PathShape { + private static class TearDrop extends PathShape { /** * Radio of short radius to large radius, based on the shape options defined in the config. @@ -289,7 +345,7 @@ public abstract class IconShape { } } - public static class Squircle extends PathShape { + private static class Squircle extends PathShape { /** * Radio of radius to circle radius, based on the shape options defined in the config. @@ -375,14 +431,7 @@ public abstract class IconShape { } } - /** - * Initializes the shape which is closest to the {@link AdaptiveIconDrawable} - */ - public static void init(Context context) { - pickBestShape(context); - } - - private static IconShape getShapeDefinition(String type, float radius) { + private static ShapeDelegate getShapeDefinition(String type, float radius) { switch (type) { case "Circle": return new Circle(); @@ -397,8 +446,8 @@ public abstract class IconShape { } } - private static List<IconShape> getAllShapes(Context context) { - ArrayList<IconShape> result = new ArrayList<>(); + private static List<ShapeDelegate> getAllShapes(Context context) { + ArrayList<ShapeDelegate> result = new ArrayList<>(); try (XmlResourceParser parser = context.getResources().getXml(R.xml.folder_shapes)) { // Find the root tag @@ -416,7 +465,7 @@ public abstract class IconShape { if (type == XmlPullParser.START_TAG) { AttributeSet attrs = Xml.asAttributeSet(parser); TypedArray a = context.obtainStyledAttributes(attrs, radiusAttr); - IconShape shape = getShapeDefinition(parser.getName(), a.getFloat(0, 1)); + ShapeDelegate shape = getShapeDefinition(parser.getName(), a.getFloat(0, 1)); a.recycle(); result.add(shape); @@ -428,42 +477,4 @@ public abstract class IconShape { return result; } - @TargetApi(Build.VERSION_CODES.O) - protected static void pickBestShape(Context context) { - // Pick any large size - final int size = 200; - - Region full = new Region(0, 0, size, size); - Region iconR = new Region(); - AdaptiveIconDrawable drawable = new AdaptiveIconDrawable( - new ColorDrawable(Color.BLACK), new ColorDrawable(Color.BLACK)); - drawable.setBounds(0, 0, size, size); - iconR.setPath(drawable.getIconMask(), full); - - Path shapePath = new Path(); - Region shapeR = new Region(); - - // Find the shape with minimum area of divergent region. - int minArea = Integer.MAX_VALUE; - IconShape closestShape = null; - for (IconShape shape : getAllShapes(context)) { - shapePath.reset(); - shape.addToPath(shapePath, 0, 0, size / 2f); - shapeR.setPath(shapePath, full); - shapeR.op(iconR, Op.XOR); - - int area = GraphicsUtils.getArea(shapeR); - if (area < minArea) { - minArea = area; - closestShape = shape; - } - } - - if (closestShape != null) { - sInstance = closestShape; - } - - // Initialize shape properties - sNormalizationScale = IconNormalizer.normalizeAdaptiveIcon(drawable, size, null); - } } diff --git a/src/com/android/launcher3/icons/LauncherIcons.java b/src/com/android/launcher3/icons/LauncherIcons.java index 513377ae61..7331c6f5e0 100644 --- a/src/com/android/launcher3/icons/LauncherIcons.java +++ b/src/com/android/launcher3/icons/LauncherIcons.java @@ -78,7 +78,8 @@ public class LauncherIcons extends BaseIconFactory implements AutoCloseable { private MonochromeIconFactory mMonochromeIconFactory; protected LauncherIcons(Context context, int fillResIconDpi, int iconBitmapSize, int poolId) { - super(context, fillResIconDpi, iconBitmapSize, IconShape.getShape().enableShapeDetection()); + super(context, fillResIconDpi, iconBitmapSize, + IconShape.INSTANCE.get(context).getShape().enableShapeDetection()); mMonoIconEnabled = Themes.isThemedIconEnabled(context); mPoolId = poolId; } diff --git a/src/com/android/launcher3/keyboard/ItemFocusIndicatorHelper.java b/src/com/android/launcher3/keyboard/ItemFocusIndicatorHelper.java index 456cde8d45..480e8f3e56 100644 --- a/src/com/android/launcher3/keyboard/ItemFocusIndicatorHelper.java +++ b/src/com/android/launcher3/keyboard/ItemFocusIndicatorHelper.java @@ -246,7 +246,8 @@ public abstract class ItemFocusIndicatorHelper<T> implements AnimatorUpdateListe protected void setCurrentItem(T item) { mCurrentItem = item; - mShift = 0; + // Set it to end value directly to skip the animation for outline + mShift = Flags.enableFocusOutline() ? 1 : 0; mTargetItem = null; } diff --git a/src/com/android/launcher3/keyboard/ViewGroupFocusHelper.java b/src/com/android/launcher3/keyboard/ViewGroupFocusHelper.java index 4653bf12f3..21d157a41b 100644 --- a/src/com/android/launcher3/keyboard/ViewGroupFocusHelper.java +++ b/src/com/android/launcher3/keyboard/ViewGroupFocusHelper.java @@ -19,6 +19,7 @@ package com.android.launcher3.keyboard; import android.graphics.Rect; import android.view.View; +import com.android.launcher3.Flags; import com.android.launcher3.PagedView; /** @@ -35,6 +36,28 @@ public class ViewGroupFocusHelper extends FocusIndicatorHelper { } @Override + protected boolean shouldDraw(View item) { + if (Flags.enableFocusOutline()) { + // Not draw outline in page transition because the outline just remains fully + // persistent during the transition and does not look smooth + return super.shouldDraw(item) && !isInPageTransition(item); + } else { + return super.shouldDraw(item); + } + } + + private boolean isInPageTransition(View view) { + if (view == null || !(view.getParent() instanceof View)) { + return false; + } + boolean isInTransition = false; + if (view instanceof PagedView) { + isInTransition = ((PagedView<?>) view).isPageInTransition(); + } + return isInTransition || isInPageTransition((View) view.getParent()); + } + + @Override public void viewToRect(View v, Rect outRect) { // Using FocusedRect here allows views to provide their custom rect for drawing outline, // e.g. making the Rect bigger than the content to leave some padding between view and diff --git a/src/com/android/launcher3/views/ClipIconView.java b/src/com/android/launcher3/views/ClipIconView.java index 5d3fa9bc4e..172f968db0 100644 --- a/src/com/android/launcher3/views/ClipIconView.java +++ b/src/com/android/launcher3/views/ClipIconView.java @@ -18,12 +18,11 @@ package com.android.launcher3.views; import static com.android.app.animation.Interpolators.LINEAR; import static com.android.launcher3.Utilities.boundToRange; import static com.android.launcher3.Utilities.mapToRange; +import static com.android.launcher3.anim.AnimatorListeners.forEndCallback; import static com.android.launcher3.views.FloatingIconView.SHAPE_PROGRESS_DURATION; import static java.lang.Math.max; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; import android.content.Context; import android.graphics.Canvas; @@ -142,14 +141,10 @@ public class ClipIconView extends View implements ClipPathView { if (mIsAdaptiveIcon) { if (!isOpening && progress >= shapeProgressStart) { if (mRevealAnimator == null) { - mRevealAnimator = (ValueAnimator) IconShape.getShape().createRevealAnimator( - this, mStartRevealRect, mOutline, mTaskCornerRadius, !isOpening); - mRevealAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mRevealAnimator = null; - } - }); + mRevealAnimator = IconShape.INSTANCE.get(getContext()).getShape() + .createRevealAnimator(this, mStartRevealRect, + mOutline, mTaskCornerRadius, !isOpening); + mRevealAnimator.addListener(forEndCallback(() -> mRevealAnimator = null)); mRevealAnimator.start(); // We pause here so we can set the current fraction ourselves. mRevealAnimator.pause(); @@ -230,7 +225,8 @@ public class ClipIconView extends View implements ClipPathView { mStartRevealRect.set(0, 0, originalWidth, originalHeight); if (!isFolderIcon) { - Utilities.scaleRectAboutCenter(mStartRevealRect, IconShape.getNormalizationScale()); + Utilities.scaleRectAboutCenter(mStartRevealRect, + IconShape.INSTANCE.get(getContext()).getNormalizationScale()); } if (dp.isLandscape) { diff --git a/src/com/android/launcher3/views/WidgetsEduView.java b/src/com/android/launcher3/views/WidgetsEduView.java deleted file mode 100644 index 53fbd8f33b..0000000000 --- a/src/com/android/launcher3/views/WidgetsEduView.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * 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.views; - -import android.content.Context; -import android.graphics.Rect; -import android.util.AttributeSet; -import android.view.LayoutInflater; - -import com.android.launcher3.BaseActivity; -import com.android.launcher3.DeviceProfile; -import com.android.launcher3.Insettable; -import com.android.launcher3.R; - -/** - * Education view about widgets. - */ -public class WidgetsEduView extends AbstractSlideInView<BaseActivity> implements Insettable { - - private static final int DEFAULT_CLOSE_DURATION = 200; - - private Rect mInsets = new Rect(); - - public WidgetsEduView(Context context, AttributeSet attr) { - this(context, attr, 0); - } - - public WidgetsEduView(Context context, AttributeSet attrs, - int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - @Override - protected void handleClose(boolean animate) { - handleClose(true, DEFAULT_CLOSE_DURATION); - } - - @Override - protected boolean isOfType(int type) { - return (type & TYPE_WIDGETS_EDUCATION_DIALOG) != 0; - } - - @Override - protected void onFinishInflate() { - super.onFinishInflate(); - mContent = findViewById(R.id.edu_view); - findViewById(R.id.edu_close_button) - .setOnClickListener(v -> close(/* animate= */ true)); - setContentBackgroundWithParent(mContent.getBackground(), mContent); - } - - @Override - public void setInsets(Rect insets) { - mInsets.set(insets); - mContent.setPadding(mContent.getPaddingStart(), - mContent.getPaddingTop(), mContent.getPaddingEnd(), insets.bottom); - } - - @Override - protected void onUserSwipeToDismissProgressChanged() { - super.onUserSwipeToDismissProgressChanged(); - setTranslationY(getMeasuredHeight() * (mSwipeToDismissProgress.value / 2)); - } - - private void show() { - attachToContainer(); - animateOpen(); - } - - @Override - protected int getScrimColor(Context context) { - return context.getResources().getColor(R.color.widgets_picker_scrim); - } - - @Override - protected void onLayout(boolean changed, int l, int t, int r, int b) { - int width = r - l; - int height = b - t; - - // Lay out the content as center bottom aligned. - int contentWidth = mContent.getMeasuredWidth(); - int contentLeft = (width - contentWidth - mInsets.left - mInsets.right) / 2 + mInsets.left; - mContent.layout(contentLeft, height - mContent.getMeasuredHeight(), - contentLeft + contentWidth, height); - - setTranslationShift(mTranslationShift); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - DeviceProfile deviceProfile = mActivityContext.getDeviceProfile(); - int widthUsed; - if (mInsets.bottom > 0) { - // Extra space between this view and mContent horizontally when the sheet is shown in - // portrait mode. - widthUsed = mInsets.left + mInsets.right; - } else { - // Extra space between this view and mContent horizontally when the sheet is shown in - // landscape mode. - Rect padding = deviceProfile.workspacePadding; - widthUsed = Math.max(padding.left + padding.right, - 2 * (mInsets.left + mInsets.right)); - } - - int heightUsed = mInsets.top + deviceProfile.edgeMarginPx; - measureChildWithMargins(mContent, widthMeasureSpec, - widthUsed, heightMeasureSpec, heightUsed); - setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), - MeasureSpec.getSize(heightMeasureSpec)); - } - - private void animateOpen() { - if (mIsOpen || mOpenCloseAnimation.getAnimationPlayer().isRunning()) { - return; - } - mIsOpen = true; - setUpDefaultOpenAnimation().start(); - } - - /** Shows widget education dialog. */ - public static WidgetsEduView showEducationDialog(BaseActivity activity) { - LayoutInflater layoutInflater = LayoutInflater.from(activity); - WidgetsEduView v = (WidgetsEduView) layoutInflater.inflate( - R.layout.widgets_edu, activity.getDragLayer(), false); - v.show(); - return v; - } -} diff --git a/src/com/android/launcher3/widget/BaseWidgetSheet.java b/src/com/android/launcher3/widget/BaseWidgetSheet.java index 749554cd0d..8892a18757 100644 --- a/src/com/android/launcher3/widget/BaseWidgetSheet.java +++ b/src/com/android/launcher3/widget/BaseWidgetSheet.java @@ -17,7 +17,6 @@ package com.android.launcher3.widget; import static com.android.app.animation.Interpolators.EMPHASIZED; import static com.android.launcher3.Flags.enableWidgetTapToAdd; -import static com.android.launcher3.LauncherPrefs.WIDGETS_EDUCATION_TIP_SEEN; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WIDGET_ADD_BUTTON_TAP; import android.content.Context; @@ -35,17 +34,14 @@ import android.view.animation.Interpolator; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.Px; -import androidx.core.view.ViewCompat; import com.android.launcher3.BaseActivity; import com.android.launcher3.DeviceProfile; import com.android.launcher3.DeviceProfile.OnDeviceProfileChangeListener; import com.android.launcher3.Insettable; import com.android.launcher3.Launcher; -import com.android.launcher3.LauncherPrefs; import com.android.launcher3.PendingAddItemInfo; import com.android.launcher3.R; -import com.android.launcher3.Utilities; import com.android.launcher3.popup.PopupDataProvider; import com.android.launcher3.testing.TestLogging; import com.android.launcher3.testing.shared.TestProtocol; @@ -53,7 +49,6 @@ import com.android.launcher3.util.SystemUiController; import com.android.launcher3.util.Themes; import com.android.launcher3.util.window.WindowManagerProxy; import com.android.launcher3.views.AbstractSlideInView; -import com.android.launcher3.views.ArrowTipView; import java.util.concurrent.atomic.AtomicBoolean; @@ -366,31 +361,6 @@ public abstract class BaseWidgetSheet extends AbstractSlideInView<BaseActivity> return mActivityContext.getSystemUiController(); } - /** Shows education tip on top center of {@code view} if view is laid out. */ - @Nullable - protected ArrowTipView showEducationTipOnViewIfPossible(@Nullable View view) { - if (view == null || !ViewCompat.isLaidOut(view)) { - return null; - } - int[] coords = new int[2]; - view.getLocationOnScreen(coords); - ArrowTipView arrowTipView = - new ArrowTipView(mActivityContext, /* isPointingUp= */ false).showAtLocation( - getContext().getString(R.string.long_press_widget_to_add), - /* arrowXCoord= */coords[0] + view.getWidth() / 2, - /* yCoord= */coords[1]); - if (arrowTipView != null) { - LauncherPrefs.get(getContext()).put(WIDGETS_EDUCATION_TIP_SEEN, true); - } - return arrowTipView; - } - - /** Returns {@code true} if tip has previously been shown on any of {@link BaseWidgetSheet}. */ - protected boolean hasSeenEducationTip() { - return LauncherPrefs.get(getContext()).get(WIDGETS_EDUCATION_TIP_SEEN) - || Utilities.isRunningInTestHarness(); - } - @Override protected void setTranslationShift(float translationShift) { super.setTranslationShift(translationShift); diff --git a/src/com/android/launcher3/widget/WidgetCell.java b/src/com/android/launcher3/widget/WidgetCell.java index ea167d75ea..6dcaf757b4 100644 --- a/src/com/android/launcher3/widget/WidgetCell.java +++ b/src/com/android/launcher3/widget/WidgetCell.java @@ -23,6 +23,10 @@ import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_WIDGETS import static com.android.launcher3.widget.LauncherAppWidgetProviderInfo.fromProviderInfo; import static com.android.launcher3.widget.util.WidgetSizes.getWidgetItemSizePx; +import android.animation.Animator; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.animation.TimeInterpolator; import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; @@ -45,11 +49,13 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.android.app.animation.Interpolators; import com.android.launcher3.CheckLongPressHelper; import com.android.launcher3.Flags; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; import com.android.launcher3.R; +import com.android.launcher3.anim.AnimatedPropertySetter; import com.android.launcher3.icons.FastBitmapDrawable; import com.android.launcher3.icons.RoundDrawableWrapper; import com.android.launcher3.model.WidgetItem; @@ -77,7 +83,7 @@ public class WidgetCell extends LinearLayout { private static final boolean DEBUG = false; private static final int FADE_IN_DURATION_MS = 90; - private static final int ADD_BUTTON_FADE_DURATION_MS = 300; + private static final int ADD_BUTTON_FADE_DURATION_MS = 100; /** * The requested scale of the preview container. It can be lower than this as well. @@ -538,21 +544,9 @@ public class WidgetCell extends LinearLayout { if (mIsShowingAddButton) return; mIsShowingAddButton = true; - mWidgetAddButton.setAlpha(0F); - mWidgetAddButton.setVisibility(VISIBLE); mWidgetAddButton.setOnClickListener(callback); - mWidgetAddButton.animate().cancel(); - mWidgetAddButton.animate() - .alpha(1F) - .setDuration(ADD_BUTTON_FADE_DURATION_MS); - - mWidgetTextContainer.animate().cancel(); - mWidgetTextContainer.animate() - .alpha(0F) - .setDuration(ADD_BUTTON_FADE_DURATION_MS) - .withEndAction(() -> { - mWidgetTextContainer.setVisibility(INVISIBLE); - }); + fadeThrough(/* hide= */ mWidgetTextContainer, /* show= */ mWidgetAddButton, + ADD_BUTTON_FADE_DURATION_MS, Interpolators.LINEAR); } /** @@ -563,8 +557,6 @@ public class WidgetCell extends LinearLayout { mIsShowingAddButton = false; mWidgetAddButton.setOnClickListener(null); - mWidgetAddButton.animate().cancel(); - mWidgetTextContainer.animate().cancel(); if (!animate) { mWidgetAddButton.setVisibility(INVISIBLE); @@ -573,21 +565,30 @@ public class WidgetCell extends LinearLayout { return; } - mWidgetAddButton.animate() - .alpha(0F) - .setDuration(ADD_BUTTON_FADE_DURATION_MS) - .withEndAction(() -> { - mWidgetAddButton.setVisibility(INVISIBLE); - }); - - mWidgetTextContainer.setAlpha(0F); - mWidgetTextContainer.setVisibility(VISIBLE); - mWidgetTextContainer.animate() - .alpha(1F) - .setDuration(ADD_BUTTON_FADE_DURATION_MS); + fadeThrough(/* hide= */ mWidgetAddButton, /* show= */ mWidgetTextContainer, + ADD_BUTTON_FADE_DURATION_MS, Interpolators.LINEAR); } public boolean isShowingAddButton() { return mIsShowingAddButton; } + + private static void fadeThrough(View hide, View show, int durationMs, + TimeInterpolator interpolator) { + AnimatedPropertySetter setter = new AnimatedPropertySetter(); + + Animator hideAnim = setter.setViewAlpha(hide, 0F, interpolator).setDuration(durationMs); + if (hideAnim instanceof ObjectAnimator anim) { + anim.setAutoCancel(true); + } + + Animator showAnim = setter.setViewAlpha(show, 1F, interpolator).setDuration(durationMs); + if (showAnim instanceof ObjectAnimator anim) { + anim.setAutoCancel(true); + } + + AnimatorSet set = new AnimatorSet(); + set.playSequentially(hideAnim, showAnim); + set.start(); + } } diff --git a/src/com/android/launcher3/widget/WidgetsBottomSheet.java b/src/com/android/launcher3/widget/WidgetsBottomSheet.java index 3be6c68055..b4c4623029 100644 --- a/src/com/android/launcher3/widget/WidgetsBottomSheet.java +++ b/src/com/android/launcher3/widget/WidgetsBottomSheet.java @@ -50,40 +50,10 @@ import java.util.List; */ public class WidgetsBottomSheet extends BaseWidgetSheet { private static final int DEFAULT_CLOSE_DURATION = 200; - private static final long EDUCATION_TIP_DELAY_MS = 300; private ItemInfo mOriginalItemInfo; @Px private int mMaxHorizontalSpan; - private final OnLayoutChangeListener mLayoutChangeListenerToShowTips = - new OnLayoutChangeListener() { - @Override - public void onLayoutChange(View v, int left, int top, int right, int bottom, - int oldLeft, int oldTop, int oldRight, int oldBottom) { - if (hasSeenEducationTip()) { - removeOnLayoutChangeListener(this); - return; - } - // Widgets are loaded asynchronously, We are adding a delay because we only want - // to show the tip when the widget preview has finished loading and rendering in - // this view. - removeCallbacks(mShowEducationTipTask); - postDelayed(mShowEducationTipTask, EDUCATION_TIP_DELAY_MS); - } - }; - - private final Runnable mShowEducationTipTask = () -> { - if (hasSeenEducationTip()) { - removeOnLayoutChangeListener(mLayoutChangeListenerToShowTips); - return; - } - View viewForTip = ((ViewGroup) ((TableLayout) findViewById(R.id.widgets_table)) - .getChildAt(0)).getChildAt(0); - if (showEducationTipOnViewIfPossible(viewForTip) != null) { - removeOnLayoutChangeListener(mLayoutChangeListenerToShowTips); - } - }; - public WidgetsBottomSheet(Context context, AttributeSet attrs) { this(context, attrs, 0); } @@ -91,9 +61,6 @@ public class WidgetsBottomSheet extends BaseWidgetSheet { public WidgetsBottomSheet(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); setWillNotDraw(false); - if (!hasSeenEducationTip()) { - addOnLayoutChangeListener(mLayoutChangeListenerToShowTips); - } } @Override diff --git a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java index 28eeb10a80..6aaa7d21af 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java +++ b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java @@ -17,10 +17,10 @@ package com.android.launcher3.widget.picker; import static com.android.launcher3.Flags.enableCategorizedWidgetSuggestions; import static com.android.launcher3.Flags.enableUnfoldedTwoPanePicker; -import static com.android.launcher3.LauncherPrefs.WIDGETS_EDUCATION_DIALOG_SEEN; import static com.android.launcher3.allapps.ActivityAllAppsContainerView.AdapterHolder.SEARCH; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WIDGETSTRAY_SEARCHED; import static com.android.launcher3.testing.shared.TestProtocol.NORMAL_STATE_ORDINAL; +import static com.android.launcher3.widget.picker.WidgetsListAdapter.VIEW_TYPE_WIDGETS_LIST; import android.animation.Animator; import android.content.Context; @@ -57,19 +57,15 @@ import androidx.recyclerview.widget.RecyclerView; import com.android.launcher3.BaseActivity; import com.android.launcher3.DeviceProfile; import com.android.launcher3.LauncherAppState; -import com.android.launcher3.LauncherPrefs; import com.android.launcher3.R; -import com.android.launcher3.Utilities; import com.android.launcher3.anim.PendingAnimation; import com.android.launcher3.compat.AccessibilityManagerCompat; import com.android.launcher3.model.UserManagerState; import com.android.launcher3.model.WidgetItem; import com.android.launcher3.pm.UserCache; -import com.android.launcher3.views.ArrowTipView; import com.android.launcher3.views.RecyclerViewFastScroller; import com.android.launcher3.views.SpringRelativeLayout; import com.android.launcher3.views.StickyHeaderLayout; -import com.android.launcher3.views.WidgetsEduView; import com.android.launcher3.widget.BaseWidgetSheet; import com.android.launcher3.widget.WidgetCell; import com.android.launcher3.widget.model.WidgetsListBaseEntry; @@ -93,8 +89,6 @@ public class WidgetsFullSheet extends BaseWidgetSheet WidgetsRecyclerView.HeaderViewDimensionsProvider, SearchModeListener { private static final long FADE_IN_DURATION = 150; - private static final long EDUCATION_TIP_DELAY_MS = 200; - private static final long EDUCATION_DIALOG_DELAY_MS = 500; // The widget recommendation table can easily take over the entire screen on devices with small // resolution or landscape on phone. This ratio defines the max percentage of content area that @@ -117,36 +111,6 @@ public class WidgetsFullSheet extends BaseWidgetSheet new HashMap<>(); protected int mRecommendationsCurrentPage = 0; protected final SparseArray<AdapterHolder> mAdapters = new SparseArray(); - @Nullable - private ArrowTipView mLatestEducationalTip; - private final OnLayoutChangeListener mLayoutChangeListenerToShowTips = - new OnLayoutChangeListener() { - @Override - public void onLayoutChange(View v, int left, int top, int right, int bottom, - int oldLeft, int oldTop, int oldRight, int oldBottom) { - if (hasSeenEducationTip()) { - removeOnLayoutChangeListener(this); - return; - } - - // Widgets are loaded asynchronously, We are adding a delay because we only want - // to show the tip when the widget preview has finished loading and rendering in - // this view. - removeCallbacks(mShowEducationTipTask); - postDelayed(mShowEducationTipTask, EDUCATION_TIP_DELAY_MS); - } - }; - - private final Runnable mShowEducationTipTask = () -> { - if (hasSeenEducationTip()) { - removeOnLayoutChangeListener(mLayoutChangeListenerToShowTips); - return; - } - mLatestEducationalTip = showEducationTipOnViewIfPossible(getViewToShowEducationTip()); - if (mLatestEducationalTip != null) { - removeOnLayoutChangeListener(mLayoutChangeListenerToShowTips); - } - }; private final OnAttachStateChangeListener mBindScrollbarInSearchMode = new OnAttachStateChangeListener() { @@ -251,7 +215,6 @@ public class WidgetsFullSheet extends BaseWidgetSheet mHeaderTitle = mSearchScrollView.findViewById(R.id.title); onWidgetsBound(); - setUpEducationViewsIfNeeded(); } protected void setupViews() { @@ -816,10 +779,6 @@ public class WidgetsFullSheet extends BaseWidgetSheet @Override protected void onCloseComplete() { super.onCloseComplete(); - removeCallbacks(mShowEducationTipTask); - if (mLatestEducationalTip != null) { - mLatestEducationalTip.close(true); - } AccessibilityManagerCompat.sendStateEventToTest(getContext(), NORMAL_STATE_ORDINAL); } @@ -959,36 +918,6 @@ public class WidgetsFullSheet extends BaseWidgetSheet return null; } - /** Shows education dialog for widgets. */ - private WidgetsEduView showEducationDialog() { - LauncherPrefs.get(getContext()).put(WIDGETS_EDUCATION_DIALOG_SEEN, true); - return WidgetsEduView.showEducationDialog(mActivityContext); - } - - /** Returns {@code true} if education dialog has previously been shown. */ - protected boolean hasSeenEducationDialog() { - return LauncherPrefs.get(getContext()).get(WIDGETS_EDUCATION_DIALOG_SEEN) - || Utilities.isRunningInTestHarness(); - } - - protected void setUpEducationViewsIfNeeded() { - if (!hasSeenEducationDialog()) { - postDelayed(() -> { - WidgetsEduView eduDialog = showEducationDialog(); - eduDialog.addOnCloseListener(() -> { - if (!hasSeenEducationTip()) { - addOnLayoutChangeListener(mLayoutChangeListenerToShowTips); - // Call #requestLayout() to trigger layout change listener in order to show - // arrow tip immediately if there is a widget to show it on. - requestLayout(); - } - }); - }, EDUCATION_DIALOG_DELAY_MS); - } else if (!hasSeenEducationTip()) { - addOnLayoutChangeListener(mLayoutChangeListenerToShowTips); - } - } - protected boolean isTwoPane() { return false; } @@ -1094,10 +1023,35 @@ public class WidgetsFullSheet extends BaseWidgetSheet default: break; } - mWidgetsListItemAnimator = new DefaultItemAnimator(); + mWidgetsListItemAnimator = new DefaultItemAnimator() { + @Override + public boolean animateChange(RecyclerView.ViewHolder oldHolder, + RecyclerView.ViewHolder newHolder, int fromLeft, int fromTop, int toLeft, + int toTop) { + // As we expand an item, the content / widgets list that appears (with add + // event) also gets change events as its previews load asynchronously. The + // super implementation of animateChange cancels the animations on it - breaking + // the "add animation". Instead, here, we skip "change" animation for content + // list - because we want it to either appear or disappear. And, the previews + // themselves have their own animation when loaded, so, we don't need change + // animations for them anyway. Below, we do-nothing. + if (oldHolder.getItemViewType() == VIEW_TYPE_WIDGETS_LIST) { + dispatchChangeStarting(oldHolder, true); + dispatchChangeFinished(oldHolder, true); + return true; + } + return super.animateChange(oldHolder, newHolder, fromLeft, fromTop, toLeft, + toTop); + } + }; // Disable change animations because it disrupts the item focus upon adapter item // change. mWidgetsListItemAnimator.setSupportsChangeAnimations(false); + // Make the moves a bit faster, so that the amount of time for which user sees the + // bottom-sheet background before "add" animation starts is less making it smoother. + mWidgetsListItemAnimator.setChangeDuration(90); + mWidgetsListItemAnimator.setMoveDuration(90); + mWidgetsListItemAnimator.setAddDuration(300); } private int getEmptySpaceHeight() { diff --git a/src/com/android/launcher3/widget/picker/WidgetsTwoPaneSheet.java b/src/com/android/launcher3/widget/picker/WidgetsTwoPaneSheet.java index 2a2feedadd..79ddadc317 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsTwoPaneSheet.java +++ b/src/com/android/launcher3/widget/picker/WidgetsTwoPaneSheet.java @@ -129,7 +129,6 @@ public class WidgetsTwoPaneSheet extends WidgetsFullSheet { mPrimaryWidgetListView.setClipToOutline(true); onWidgetsBound(); - setUpEducationViewsIfNeeded(); // Set the fast scroller as not visible for two pane layout. mFastScroller.setVisibility(GONE); diff --git a/tests/multivalentTests/src/com/android/launcher3/icons/FastBitmapDrawableTest.java b/tests/multivalentTests/src/com/android/launcher3/icons/FastBitmapDrawableTest.java index fbbfb2af48..7e9b68d231 100644 --- a/tests/multivalentTests/src/com/android/launcher3/icons/FastBitmapDrawableTest.java +++ b/tests/multivalentTests/src/com/android/launcher3/icons/FastBitmapDrawableTest.java @@ -37,11 +37,15 @@ import android.view.animation.DecelerateInterpolator; import android.view.animation.PathInterpolator; import androidx.test.annotation.UiThreadTest; +import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; -import androidx.test.runner.AndroidJUnit4; + +import com.android.launcher3.util.rule.RobolectricUiThreadRule; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TestRule; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -51,11 +55,14 @@ import org.mockito.Spy; * Tests for FastBitmapDrawable. */ @SmallTest -@UiThreadTest @RunWith(AndroidJUnit4.class) +@UiThreadTest public class FastBitmapDrawableTest { private static final float EPSILON = 0.00001f; + @Rule + public final TestRule roboUiThreadRule = new RobolectricUiThreadRule(); + @Spy FastBitmapDrawable mFastBitmapDrawable = spy(new FastBitmapDrawable(Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888))); diff --git a/tests/multivalentTests/src/com/android/launcher3/logging/StartupLatencyLoggerTest.kt b/tests/multivalentTests/src/com/android/launcher3/logging/StartupLatencyLoggerTest.kt index 130dfad2ac..12f6c8cbed 100644 --- a/tests/multivalentTests/src/com/android/launcher3/logging/StartupLatencyLoggerTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/logging/StartupLatencyLoggerTest.kt @@ -4,8 +4,10 @@ import androidx.core.util.isEmpty import androidx.test.annotation.UiThreadTest import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest +import com.android.launcher3.util.rule.RobolectricUiThreadRule import com.google.common.truth.Truth.assertThat import org.junit.Before +import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -14,6 +16,8 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class StartupLatencyLoggerTest { + @get:Rule val roboUiThreadRule = RobolectricUiThreadRule() + private val underTest = ColdRebootStartupLatencyLogger() @Before diff --git a/tests/multivalentTests/src/com/android/launcher3/util/rule/RobolectricUiThreadRule.kt b/tests/multivalentTests/src/com/android/launcher3/util/rule/RobolectricUiThreadRule.kt new file mode 100644 index 0000000000..18cd1e45a7 --- /dev/null +++ b/tests/multivalentTests/src/com/android/launcher3/util/rule/RobolectricUiThreadRule.kt @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.launcher3.util.rule + +import androidx.test.annotation.UiThreadTest +import androidx.test.platform.app.InstrumentationRegistry +import java.util.Locale +import java.util.concurrent.atomic.AtomicReference +import org.junit.rules.TestRule +import org.junit.runner.Description +import org.junit.runners.model.Statement + +/** + * A test rule to add support for @UiThreadTest annotations when running in robolectric until is it + * natively supported by the robolectric runner: + * https://github.com/robolectric/robolectric/issues/9026 + */ +class RobolectricUiThreadRule : TestRule { + + override fun apply(base: Statement, description: Description): Statement = + if (!shouldRunOnUiThread(description)) base else UiThreadStatement(base) + + private fun shouldRunOnUiThread(description: Description): Boolean { + if (!isRunningInRobolectric()) { + // If not running in robolectric, let the default runner handle this + return false + } + var clazz = description.testClass + try { + if ( + clazz + .getDeclaredMethod(description.methodName) + .getAnnotation(UiThreadTest::class.java) != null + ) { + return true + } + } catch (_: Exception) { + // Ignore + } + + while (!clazz.isAnnotationPresent(UiThreadTest::class.java)) { + clazz = clazz.superclass ?: return false + } + return true + } + + private fun isRunningInRobolectric(): Boolean { + if ( + System.getProperty("java.runtime.name") + .lowercase(Locale.getDefault()) + .contains("android") + ) + return false + return try { + // Check if robolectric runner exists + Class.forName("org.robolectric.RobolectricTestRunner") != null + } catch (e: ClassNotFoundException) { + false + } + } + + private class UiThreadStatement(val base: Statement) : Statement() { + + override fun evaluate() { + val exceptionRef = AtomicReference<Throwable>() + InstrumentationRegistry.getInstrumentation().runOnMainSync { + try { + base.evaluate() + } catch (throwable: Throwable) { + exceptionRef.set(throwable) + } + } + exceptionRef.get()?.let { throw it } + } + } +} diff --git a/tests/res/layout/utilities_test_view.xml b/tests/res/layout/utilities_test_view.xml new file mode 100644 index 0000000000..dc2a51573a --- /dev/null +++ b/tests/res/layout/utilities_test_view.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?><!-- + ~ Copyright (C) 2024 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:id="@+id/root_view"> + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical" + android:id="@+id/mid_view"> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/child_view" /> + </LinearLayout> + +</LinearLayout>
\ No newline at end of file diff --git a/tests/src/com/android/launcher3/UtilitiesKtTest.kt b/tests/src/com/android/launcher3/UtilitiesKtTest.kt index dd8387196a..9aa0369d51 100644 --- a/tests/src/com/android/launcher3/UtilitiesKtTest.kt +++ b/tests/src/com/android/launcher3/UtilitiesKtTest.kt @@ -20,15 +20,14 @@ import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest +import androidx.test.platform.app.InstrumentationRegistry import com.android.launcher3.UtilitiesKt.CLIP_CHILDREN_FALSE_MODIFIER import com.android.launcher3.UtilitiesKt.CLIP_TO_PADDING_FALSE_MODIFIER import com.android.launcher3.UtilitiesKt.modifyAttributesOnViewTree import com.android.launcher3.UtilitiesKt.restoreAttributesOnViewTree -import com.android.launcher3.util.ActivityContextWrapper -import com.android.launcher3.views.WidgetsEduView +import com.android.launcher3.tests.R import com.google.common.truth.Truth.assertThat import org.junit.Before import org.junit.Test @@ -38,17 +37,17 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class UtilitiesKtTest { - val context: Context = ActivityContextWrapper(ApplicationProvider.getApplicationContext()) + val context: Context = InstrumentationRegistry.getInstrumentation().context - private lateinit var rootView: WidgetsEduView + private lateinit var rootView: ViewGroup private lateinit var midView: ViewGroup private lateinit var childView: View @Before fun setup() { rootView = - LayoutInflater.from(context).inflate(R.layout.widgets_edu, null) as WidgetsEduView - midView = rootView.requireViewById(R.id.edu_view) - childView = rootView.requireViewById(R.id.edu_header) + LayoutInflater.from(context).inflate(R.layout.utilities_test_view, null) as ViewGroup + midView = rootView.requireViewById(R.id.mid_view) + childView = rootView.requireViewById(R.id.child_view) } @Test diff --git a/tests/src/com/android/launcher3/allapps/PrivateProfileManagerTest.java b/tests/src/com/android/launcher3/allapps/PrivateProfileManagerTest.java index 2a4d21ddf0..b6b2261ccb 100644 --- a/tests/src/com/android/launcher3/allapps/PrivateProfileManagerTest.java +++ b/tests/src/com/android/launcher3/allapps/PrivateProfileManagerTest.java @@ -167,7 +167,6 @@ public class PrivateProfileManagerTest { } @Test - @TestStabilityRule.Stability(flavors = LOCAL | PLATFORM_POSTSUBMIT) // b/320703862 public void transitioningToUnlocked_resetCallsPostUnlock() throws Exception { PrivateProfileManager privateProfileManager = spy(mPrivateProfileManager); doNothing().when(privateProfileManager).resetPrivateSpaceDecorator(anyInt()); @@ -185,7 +184,6 @@ public class PrivateProfileManagerTest { } @Test - @TestStabilityRule.Stability(flavors = LOCAL | PLATFORM_POSTSUBMIT) public void transitioningToLocked_resetCallsExecuteLock() throws Exception { PrivateProfileManager privateProfileManager = spy(mPrivateProfileManager); doNothing().when(privateProfileManager).resetPrivateSpaceDecorator(anyInt()); diff --git a/tests/src/com/android/launcher3/dragging/TaplDragTest.java b/tests/src/com/android/launcher3/dragging/TaplDragTest.java index d64d096c72..1c41ded1b9 100644 --- a/tests/src/com/android/launcher3/dragging/TaplDragTest.java +++ b/tests/src/com/android/launcher3/dragging/TaplDragTest.java @@ -21,8 +21,6 @@ import static com.android.launcher3.util.TestConstants.AppNames.MAPS_APP_NAME; import static com.android.launcher3.util.TestConstants.AppNames.PHOTOS_APP_NAME; import static com.android.launcher3.util.TestConstants.AppNames.STORE_APP_NAME; import static com.android.launcher3.util.TestConstants.AppNames.TEST_APP_NAME; -import static com.android.launcher3.util.rule.TestStabilityRule.LOCAL; -import static com.android.launcher3.util.rule.TestStabilityRule.PLATFORM_POSTSUBMIT; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -43,8 +41,6 @@ import com.android.launcher3.tapl.Workspace; import com.android.launcher3.ui.AbstractLauncherUiTest; import com.android.launcher3.ui.PortraitLandscapeRunner.PortraitLandscape; import com.android.launcher3.util.TestUtil; -import com.android.launcher3.util.rule.ScreenRecordRule.ScreenRecord; -import com.android.launcher3.util.rule.TestStabilityRule; import org.junit.Test; @@ -67,9 +63,6 @@ public class TaplDragTest extends AbstractLauncherUiTest<Launcher> { */ @Test @PortraitLandscape - @ScreenRecord - // Staging; will be promoted to presubmit if stable - @TestStabilityRule.Stability(flavors = LOCAL | PLATFORM_POSTSUBMIT) @PlatinumTest(focusArea = "launcher") public void testDragToFolder() { // TODO: add the use case to drag an icon to an existing folder. Currently it either fails diff --git a/tests/src/com/android/launcher3/dragging/TaplUninstallRemoveTest.java b/tests/src/com/android/launcher3/dragging/TaplUninstallRemoveTest.java index b7933c8aff..70c0333737 100644 --- a/tests/src/com/android/launcher3/dragging/TaplUninstallRemoveTest.java +++ b/tests/src/com/android/launcher3/dragging/TaplUninstallRemoveTest.java @@ -115,7 +115,6 @@ public class TaplUninstallRemoveTest extends AbstractLauncherUiTest<Launcher> { @Test @PortraitLandscape @PlatinumTest(focusArea = "launcher") - @TestStabilityRule.Stability(flavors = LOCAL | PLATFORM_POSTSUBMIT) // b/326130648 public void testUninstallFromAllApps() throws Exception { installDummyAppAndWaitForUIUpdate(); try { diff --git a/tests/src/com/android/launcher3/folder/PreviewBackgroundTest.java b/tests/src/com/android/launcher3/folder/PreviewBackgroundTest.java index 715a1f8c70..7242e9c77a 100644 --- a/tests/src/com/android/launcher3/folder/PreviewBackgroundTest.java +++ b/tests/src/com/android/launcher3/folder/PreviewBackgroundTest.java @@ -30,6 +30,7 @@ import android.view.animation.AccelerateDecelerateInterpolator; import android.view.animation.PathInterpolator; import androidx.test.filters.SmallTest; +import androidx.test.platform.app.InstrumentationRegistry; import com.android.launcher3.CellLayout; @@ -50,7 +51,8 @@ public class PreviewBackgroundTest { @Mock CellLayout mCellLayout; - private final PreviewBackground mPreviewBackground = new PreviewBackground(); + private final PreviewBackground mPreviewBackground = + new PreviewBackground(InstrumentationRegistry.getInstrumentation().getContext()); @Before public void setUp() { diff --git a/tests/src/com/android/launcher3/model/CacheDataUpdatedTaskTest.java b/tests/src/com/android/launcher3/model/CacheDataUpdatedTaskTest.java index d3a63558d8..328558d1a7 100644 --- a/tests/src/com/android/launcher3/model/CacheDataUpdatedTaskTest.java +++ b/tests/src/com/android/launcher3/model/CacheDataUpdatedTaskTest.java @@ -8,8 +8,6 @@ import static com.android.launcher3.util.LauncherModelHelper.TEST_ACTIVITY2; import static com.android.launcher3.util.LauncherModelHelper.TEST_ACTIVITY3; import static com.android.launcher3.util.LauncherModelHelper.TEST_PACKAGE; import static com.android.launcher3.util.TestUtil.runOnExecutorSync; -import static com.android.launcher3.util.rule.TestStabilityRule.LOCAL; -import static com.android.launcher3.util.rule.TestStabilityRule.PLATFORM_POSTSUBMIT; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -98,7 +96,6 @@ public class CacheDataUpdatedTaskTest { } @Test - @TestStabilityRule.Stability(flavors = LOCAL | PLATFORM_POSTSUBMIT) // b/325283522 public void testCacheUpdate_update_apps() { // Run on model executor so that no other task runs in the middle. runOnExecutorSync(MODEL_EXECUTOR, () -> { @@ -129,7 +126,6 @@ public class CacheDataUpdatedTaskTest { } @Test - @TestStabilityRule.Stability(flavors = LOCAL | PLATFORM_POSTSUBMIT) // b/325283522 public void testSessionUpdate_updates_pending_apps() { // Run on model executor so that no other task runs in the middle. runOnExecutorSync(MODEL_EXECUTOR, () -> { diff --git a/tests/src/com/android/launcher3/model/FolderIconLoadTest.kt b/tests/src/com/android/launcher3/model/FolderIconLoadTest.kt index 2e209a48c4..c4a4c9b7b6 100644 --- a/tests/src/com/android/launcher3/model/FolderIconLoadTest.kt +++ b/tests/src/com/android/launcher3/model/FolderIconLoadTest.kt @@ -24,13 +24,11 @@ import com.android.launcher3.util.LauncherLayoutBuilder import com.android.launcher3.util.LauncherModelHelper import com.android.launcher3.util.LauncherModelHelper.* import com.android.launcher3.util.TestUtil -import com.android.launcher3.util.rule.TestStabilityRule import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertWithMessage import java.util.concurrent.CountDownLatch import org.junit.After import org.junit.Before -import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -58,8 +56,6 @@ class FolderIconLoadTest { TEST_ACTIVITY14 ) - @get:Rule(order = 0) val testStabilityRule = TestStabilityRule() - @Before fun setUp() { modelHelper = LauncherModelHelper() @@ -91,9 +87,6 @@ class FolderIconLoadTest { @Test @Throws(Exception::class) - @TestStabilityRule.Stability( - flavors = TestStabilityRule.LOCAL or TestStabilityRule.PLATFORM_POSTSUBMIT - ) // b/319923578 fun folderLoadedWithHighRes_max_3x3() { val idp = LauncherAppState.getIDP(modelHelper.sandboxContext) idp.numFolderColumns = intArrayOf(3, 3, 3, 3) @@ -107,9 +100,6 @@ class FolderIconLoadTest { @Test @Throws(Exception::class) - @TestStabilityRule.Stability( - flavors = TestStabilityRule.LOCAL or TestStabilityRule.PLATFORM_POSTSUBMIT - ) // b/319923578 fun folderLoadedWithHighRes_max_4x4() { val idp = LauncherAppState.getIDP(modelHelper.sandboxContext) idp.numFolderColumns = intArrayOf(4, 4, 4, 4) @@ -123,10 +113,6 @@ class FolderIconLoadTest { @Test @Throws(Exception::class) - // Stress tests are long. We permanently demote them from presubmit to match the presubmit SLO. - @TestStabilityRule.Stability( - flavors = TestStabilityRule.LOCAL or TestStabilityRule.PLATFORM_POSTSUBMIT - ) // b/319923578 fun folderLoadedWithHighRes_differentFolderConfigurations() { val idp = LauncherAppState.getIDP(modelHelper.sandboxContext) idp.numFolderColumns = intArrayOf(4, 3, 4, 4) diff --git a/tests/src/com/android/launcher3/model/LoaderTaskTest.kt b/tests/src/com/android/launcher3/model/LoaderTaskTest.kt index 5731e2a91d..28a001f990 100644 --- a/tests/src/com/android/launcher3/model/LoaderTaskTest.kt +++ b/tests/src/com/android/launcher3/model/LoaderTaskTest.kt @@ -56,7 +56,7 @@ class LoaderTaskTest { @Spy private var userManagerState: UserManagerState? = UserManagerState() - @get:Rule val setFlagsRule = SetFlagsRule().apply { initAllFlagsToReleaseConfigDefault() } + @get:Rule val setFlagsRule = SetFlagsRule() @Before fun setup() { diff --git a/tests/src/com/android/launcher3/model/WorkspaceItemProcessorTest.kt b/tests/src/com/android/launcher3/model/WorkspaceItemProcessorTest.kt index c2e73fcb15..6bbcf85187 100644 --- a/tests/src/com/android/launcher3/model/WorkspaceItemProcessorTest.kt +++ b/tests/src/com/android/launcher3/model/WorkspaceItemProcessorTest.kt @@ -24,18 +24,29 @@ import android.content.pm.LauncherApps import android.content.pm.PackageInstaller import android.content.pm.ShortcutInfo import android.os.UserHandle +import android.platform.test.annotations.EnableFlags import android.util.LongSparseArray +import com.android.dx.mockito.inline.extended.ExtendedMockito +import com.android.launcher3.Flags.FLAG_ENABLE_SUPPORT_FOR_ARCHIVING import com.android.launcher3.LauncherAppState import com.android.launcher3.LauncherSettings.Favorites +import com.android.launcher3.LauncherSettings.Favorites.CONTAINER_DESKTOP import com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_APPLICATION +import com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET import com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT import com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_FOLDER +import com.android.launcher3.Utilities import com.android.launcher3.Utilities.EMPTY_PERSON_ARRAY +import com.android.launcher3.backuprestore.LauncherRestoreEventLogger import com.android.launcher3.backuprestore.LauncherRestoreEventLogger.RestoreError.Companion.MISSING_INFO +import com.android.launcher3.backuprestore.LauncherRestoreEventLogger.RestoreError.Companion.MISSING_WIDGET_PROVIDER import com.android.launcher3.backuprestore.LauncherRestoreEventLogger.RestoreError.Companion.PROFILE_DELETED import com.android.launcher3.model.data.FolderInfo import com.android.launcher3.model.data.IconRequestInfo import com.android.launcher3.model.data.ItemInfo +import com.android.launcher3.model.data.LauncherAppWidgetInfo +import com.android.launcher3.model.data.LauncherAppWidgetInfo.FLAG_RESTORE_STARTED +import com.android.launcher3.model.data.LauncherAppWidgetInfo.FLAG_UI_NOT_READY import com.android.launcher3.model.data.WorkspaceItemInfo import com.android.launcher3.pm.UserCache import com.android.launcher3.shortcuts.ShortcutKey @@ -43,11 +54,14 @@ import com.android.launcher3.util.ComponentKey import com.android.launcher3.util.PackageManagerHelper import com.android.launcher3.util.PackageUserKey import com.android.launcher3.util.UserIconInfo +import com.android.launcher3.widget.LauncherAppWidgetProviderInfo import com.android.launcher3.widget.WidgetInflater +import com.android.launcher3.widget.WidgetSections import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertWithMessage import org.junit.Before import org.junit.Test +import org.mockito.ArgumentCaptor import org.mockito.Mock import org.mockito.Mockito.RETURNS_DEEP_STUBS import org.mockito.Mockito.mock @@ -56,8 +70,10 @@ import org.mockito.Mockito.verify import org.mockito.kotlin.any import org.mockito.kotlin.anyOrNull import org.mockito.kotlin.doAnswer +import org.mockito.kotlin.eq import org.mockito.kotlin.mock import org.mockito.kotlin.whenever +import org.mockito.quality.Strictness class WorkspaceItemProcessorTest { @@ -73,29 +89,31 @@ class WorkspaceItemProcessorTest { @Mock private lateinit var mockUserManagerState: UserManagerState @Mock private lateinit var mockWidgetInflater: WidgetInflater - private lateinit var intent: Intent - private lateinit var userHandle: UserHandle - private lateinit var iconRequestInfos: MutableList<IconRequestInfo<WorkspaceItemInfo>> - private lateinit var componentName: ComponentName - private lateinit var unlockedUsersArray: LongSparseArray<Boolean> - private lateinit var keyToPinnedShortcutsMap: MutableMap<ShortcutKey, ShortcutInfo> - private lateinit var installingPkgs: HashMap<PackageUserKey, PackageInstaller.SessionInfo> - private lateinit var allDeepShortcuts: MutableList<ShortcutInfo> + private var intent: Intent = Intent() + private var mUserHandle: UserHandle = UserHandle(0) + private var mIconRequestInfos: MutableList<IconRequestInfo<WorkspaceItemInfo>> = mutableListOf() + private var mComponentName: ComponentName = ComponentName("package", "class") + private var mUnlockedUsersArray: LongSparseArray<Boolean> = LongSparseArray() + private var mKeyToPinnedShortcutsMap: MutableMap<ShortcutKey, ShortcutInfo> = mutableMapOf() + private var mInstallingPkgs: HashMap<PackageUserKey, PackageInstaller.SessionInfo> = hashMapOf() + private var mAllDeepShortcuts: MutableList<ShortcutInfo> = mutableListOf() + private var mWidgetProvidersMap: MutableMap<ComponentKey, AppWidgetProviderInfo?> = + mutableMapOf() + private var mPendingPackages: MutableSet<PackageUserKey> = mutableSetOf() private lateinit var itemProcessorUnderTest: WorkspaceItemProcessor @Before fun setup() { - userHandle = UserHandle(0) + mUserHandle = UserHandle(0) mockIconRequestInfo = mock<IconRequestInfo<WorkspaceItemInfo>>() - iconRequestInfos = mutableListOf(mockIconRequestInfo) mockWorkspaceInfo = mock<WorkspaceItemInfo>() mockBgDataModel = mock<BgDataModel>() - componentName = ComponentName("package", "class") - unlockedUsersArray = LongSparseArray<Boolean>(1).apply { put(101, true) } + mComponentName = ComponentName("package", "class") + mUnlockedUsersArray = LongSparseArray<Boolean>(1).apply { put(101, true) } intent = Intent().apply { - component = componentName + component = mComponentName `package` = "pkg" putExtra(ShortcutKey.EXTRA_SHORTCUT_ID, "") } @@ -112,17 +130,17 @@ class WorkspaceItemProcessorTest { } mockPmHelper = mock<PackageManagerHelper>().apply { - whenever(getAppLaunchIntent(componentName.packageName, userHandle)) + whenever(getAppLaunchIntent(mComponentName.packageName, mUserHandle)) .thenReturn(intent) } mockLauncherApps = mock<LauncherApps>().apply { - whenever(isPackageEnabled("package", userHandle)).thenReturn(true) - whenever(isActivityEnabled(componentName, userHandle)).thenReturn(true) + whenever(isPackageEnabled("package", mUserHandle)).thenReturn(true) + whenever(isActivityEnabled(mComponentName, mUserHandle)).thenReturn(true) } mockCursor = mock(LoaderCursor::class.java, RETURNS_DEEP_STUBS).apply { - user = userHandle + user = mUserHandle itemType = ITEM_TYPE_APPLICATION id = 1 restoreFlag = 1 @@ -137,15 +155,18 @@ class WorkspaceItemProcessorTest { mockUserCache = mock<UserCache>().apply { val userIconInfo = - mock<UserIconInfo>().apply() { whenever(isPrivate).thenReturn(false) } + mock<UserIconInfo>().apply { whenever(isPrivate).thenReturn(false) } whenever(getUserInfo(any())).thenReturn(userIconInfo) } mockUserManagerState = mock<UserManagerState>() mockWidgetInflater = mock<WidgetInflater>() - keyToPinnedShortcutsMap = mutableMapOf() - installingPkgs = hashMapOf() - allDeepShortcuts = mutableListOf() + mKeyToPinnedShortcutsMap = mutableMapOf() + mInstallingPkgs = hashMapOf() + mAllDeepShortcuts = mutableListOf() + mWidgetProvidersMap = mutableMapOf() + mIconRequestInfos = mutableListOf() + mPendingPackages = mutableSetOf() } /** @@ -159,18 +180,18 @@ class WorkspaceItemProcessorTest { userCache: UserCache = mockUserCache, userManagerState: UserManagerState = mockUserManagerState, launcherApps: LauncherApps = mockLauncherApps, - shortcutKeyToPinnedShortcuts: Map<ShortcutKey, ShortcutInfo> = keyToPinnedShortcutsMap, + shortcutKeyToPinnedShortcuts: Map<ShortcutKey, ShortcutInfo> = mKeyToPinnedShortcutsMap, app: LauncherAppState = mockAppState, bgDataModel: BgDataModel = mockBgDataModel, - widgetProvidersMap: MutableMap<ComponentKey, AppWidgetProviderInfo?> = mutableMapOf(), + widgetProvidersMap: MutableMap<ComponentKey, AppWidgetProviderInfo?> = mWidgetProvidersMap, widgetInflater: WidgetInflater = mockWidgetInflater, pmHelper: PackageManagerHelper = mockPmHelper, - iconRequestInfos: MutableList<IconRequestInfo<WorkspaceItemInfo>> = mutableListOf(), + iconRequestInfos: MutableList<IconRequestInfo<WorkspaceItemInfo>> = mIconRequestInfos, isSdCardReady: Boolean = false, - pendingPackages: MutableSet<PackageUserKey> = mutableSetOf(), - unlockedUsers: LongSparseArray<Boolean> = unlockedUsersArray, - installingPkgs: HashMap<PackageUserKey, PackageInstaller.SessionInfo> = hashMapOf(), - allDeepShortcuts: MutableList<ShortcutInfo> = mutableListOf() + pendingPackages: MutableSet<PackageUserKey> = mPendingPackages, + unlockedUsers: LongSparseArray<Boolean> = mUnlockedUsersArray, + installingPkgs: HashMap<PackageUserKey, PackageInstaller.SessionInfo> = mInstallingPkgs, + allDeepShortcuts: MutableList<ShortcutInfo> = mAllDeepShortcuts ) = WorkspaceItemProcessor( c = cursor, @@ -241,8 +262,8 @@ class WorkspaceItemProcessorTest { fun `When app has empty String target package then mark deleted`() { // Given - componentName = ComponentName("", "") - intent.component = componentName + mComponentName = ComponentName("", "") + intent.component = mComponentName intent.`package` = "" // When @@ -267,7 +288,7 @@ class WorkspaceItemProcessorTest { .isEqualTo(0) // currently gets marked restored twice, although markRestore() has check for restoreFlag verify(mockCursor, times(2)).markRestored() - assertThat(iconRequestInfos).containsExactly(mockIconRequestInfo) + assertThat(mIconRequestInfos).containsExactly(mockIconRequestInfo) verify(mockCursor).checkAndAddItem(mockWorkspaceInfo, mockBgDataModel, null) } @@ -277,12 +298,12 @@ class WorkspaceItemProcessorTest { // Given mockLauncherApps = mock<LauncherApps>().apply { - whenever(isPackageEnabled("package", userHandle)).thenReturn(true) - whenever(isActivityEnabled(componentName, userHandle)).thenReturn(false) + whenever(isPackageEnabled("package", mUserHandle)).thenReturn(true) + whenever(isActivityEnabled(mComponentName, mUserHandle)).thenReturn(false) } mockPmHelper = mock<PackageManagerHelper>().apply { - whenever(getAppLaunchIntent(componentName.packageName, userHandle)) + whenever(getAppLaunchIntent(mComponentName.packageName, mUserHandle)) .thenReturn(intent) } @@ -295,7 +316,7 @@ class WorkspaceItemProcessorTest { .that(mockCursor.restoreFlag) .isEqualTo(0) verify(mockCursor.updater().put(Favorites.INTENT, intent.toUri(0))).commit() - assertThat(iconRequestInfos).containsExactly(mockIconRequestInfo) + assertThat(mIconRequestInfos).containsExactly(mockIconRequestInfo) verify(mockCursor).checkAndAddItem(mockWorkspaceInfo, mockBgDataModel, null) } @@ -305,12 +326,13 @@ class WorkspaceItemProcessorTest { // Given mockLauncherApps = mock<LauncherApps>().apply { - whenever(isPackageEnabled("package", userHandle)).thenReturn(true) - whenever(isActivityEnabled(componentName, userHandle)).thenReturn(false) + whenever(isPackageEnabled("package", mUserHandle)).thenReturn(true) + whenever(isActivityEnabled(mComponentName, mUserHandle)).thenReturn(false) } mockPmHelper = mock<PackageManagerHelper>().apply { - whenever(getAppLaunchIntent(componentName.packageName, userHandle)).thenReturn(null) + whenever(getAppLaunchIntent(mComponentName.packageName, mUserHandle)) + .thenReturn(null) } // When @@ -349,20 +371,20 @@ class WorkspaceItemProcessorTest { whenever(persons).thenReturn(EMPTY_PERSON_ARRAY) } val shortcutKey = ShortcutKey.fromIntent(intent, mockCursor.user) - keyToPinnedShortcutsMap[shortcutKey] = expectedShortcutInfo - iconRequestInfos = mutableListOf() + mKeyToPinnedShortcutsMap[shortcutKey] = expectedShortcutInfo + mIconRequestInfos = mutableListOf() // When itemProcessorUnderTest = - createWorkspaceItemProcessorUnderTest(allDeepShortcuts = allDeepShortcuts) + createWorkspaceItemProcessorUnderTest(allDeepShortcuts = mAllDeepShortcuts) itemProcessorUnderTest.processItem() // Then assertWithMessage("item restoreFlag should be set to 0") .that(mockCursor.restoreFlag) .isEqualTo(0) - assertThat(iconRequestInfos).isEmpty() - assertThat(allDeepShortcuts).containsExactly(expectedShortcutInfo) + assertThat(mIconRequestInfos).isEmpty() + assertThat(mAllDeepShortcuts).containsExactly(expectedShortcutInfo) verify(mockCursor).markRestored() verify(mockCursor).checkAndAddItem(any(), any(), anyOrNull()) } @@ -372,8 +394,8 @@ class WorkspaceItemProcessorTest { // Given mockCursor.itemType = ITEM_TYPE_DEEP_SHORTCUT - iconRequestInfos = mutableListOf() - keyToPinnedShortcutsMap = hashMapOf() + mIconRequestInfos = mutableListOf() + mKeyToPinnedShortcutsMap = hashMapOf() // When itemProcessorUnderTest = createWorkspaceItemProcessorUnderTest() @@ -383,7 +405,7 @@ class WorkspaceItemProcessorTest { assertWithMessage("item restoreFlag should be set to 0") .that(mockCursor.restoreFlag) .isEqualTo(0) - assertThat(iconRequestInfos).isEmpty() + assertThat(mIconRequestInfos).isEmpty() verify(mockCursor, times(0)).checkAndAddItem(any(), any(), anyOrNull()) verify(mockCursor) .markDeleted( @@ -408,25 +430,25 @@ class WorkspaceItemProcessorTest { whenever(disabledReason).thenReturn(0) whenever(persons).thenReturn(EMPTY_PERSON_ARRAY) } - iconRequestInfos = mutableListOf() + mIconRequestInfos = mutableListOf() // Make sure shortcuts map has expected key from expected package - intent.`package` = componentName.packageName + intent.`package` = mComponentName.packageName val shortcutKey = ShortcutKey.fromIntent(intent, mockCursor.user) - keyToPinnedShortcutsMap[shortcutKey] = expectedShortcutInfo + mKeyToPinnedShortcutsMap[shortcutKey] = expectedShortcutInfo // set intent package back to null to test scenario intent.`package` = null // When itemProcessorUnderTest = - createWorkspaceItemProcessorUnderTest(allDeepShortcuts = allDeepShortcuts) + createWorkspaceItemProcessorUnderTest(allDeepShortcuts = mAllDeepShortcuts) itemProcessorUnderTest.processItem() // Then assertWithMessage("item restoreFlag should be set to 0") .that(mockCursor.restoreFlag) .isEqualTo(0) - assertThat(iconRequestInfos).isEmpty() - assertThat(allDeepShortcuts).containsExactly(expectedShortcutInfo) + assertThat(mIconRequestInfos).isEmpty() + assertThat(mAllDeepShortcuts).containsExactly(expectedShortcutInfo) verify(mockCursor).markRestored() verify(mockCursor).checkAndAddItem(any(), any(), anyOrNull()) } @@ -478,4 +500,346 @@ class WorkspaceItemProcessorTest { assertThat(actualFolderInfo.options).isEqualTo(expectedFolderInfo.options) verify(mockCursor).checkAndAddItem(actualFolderInfo, mockBgDataModel, null) } + + @Test + fun `When valid TYPE_REAL App Widget then add item`() { + + // Given + val expectedProvider = "com.google.android.testApp/com.android.testApp.testAppProvider" + val expectedComponentName = + ComponentName.unflattenFromString(expectedProvider)!!.flattenToString() + val expectedRestoreStatus = FLAG_UI_NOT_READY + val expectedAppWidgetId = 0 + mockCursor.apply { + itemType = ITEM_TYPE_APPWIDGET + user = mUserHandle + restoreFlag = FLAG_UI_NOT_READY + container = CONTAINER_DESKTOP + whenever(isOnWorkspaceOrHotseat).thenCallRealMethod() + whenever(appWidgetProvider).thenReturn(expectedProvider) + whenever(appWidgetId).thenReturn(expectedAppWidgetId) + whenever(spanX).thenReturn(2) + whenever(spanY).thenReturn(1) + whenever(options).thenReturn(0) + whenever(appWidgetSource).thenReturn(20) + whenever(applyCommonProperties(any())).thenCallRealMethod() + whenever( + updater() + .put(Favorites.APPWIDGET_PROVIDER, expectedComponentName) + .put(Favorites.APPWIDGET_ID, expectedAppWidgetId) + .put(Favorites.RESTORED, expectedRestoreStatus) + .commit() + ) + .thenReturn(1) + } + val expectedWidgetInfo = + LauncherAppWidgetInfo().apply { + appWidgetId = expectedAppWidgetId + providerName = ComponentName.unflattenFromString(expectedProvider) + restoreStatus = expectedRestoreStatus + } + val expectedWidgetProviderInfo = + mock<LauncherAppWidgetProviderInfo>().apply { + provider = ComponentName.unflattenFromString(expectedProvider) + whenever(user).thenReturn(mUserHandle) + } + val inflationResult = + WidgetInflater.InflationResult( + type = WidgetInflater.TYPE_REAL, + widgetInfo = expectedWidgetProviderInfo + ) + mockWidgetInflater = + mock<WidgetInflater>().apply { + whenever(inflateAppWidget(any())).thenReturn(inflationResult) + } + val packageUserKey = PackageUserKey("com.google.android.testApp", mUserHandle) + mInstallingPkgs[packageUserKey] = PackageInstaller.SessionInfo() + + // When + itemProcessorUnderTest = + createWorkspaceItemProcessorUnderTest(widgetProvidersMap = mWidgetProvidersMap) + itemProcessorUnderTest.processItem() + + // Then + val widgetInfoCaptor = ArgumentCaptor.forClass(LauncherAppWidgetInfo::class.java) + verify(mockCursor).checkAndAddItem(widgetInfoCaptor.capture(), eq(mockBgDataModel)) + val actualWidgetInfo = widgetInfoCaptor.value + with(actualWidgetInfo) { + assertThat(providerName).isEqualTo(expectedWidgetInfo.providerName) + assertThat(restoreStatus).isEqualTo(expectedWidgetInfo.restoreStatus) + assertThat(targetComponent).isEqualTo(expectedWidgetInfo.targetComponent) + assertThat(appWidgetId).isEqualTo(expectedWidgetInfo.appWidgetId) + } + val expectedComponentKey = + ComponentKey(expectedWidgetProviderInfo.provider, expectedWidgetProviderInfo.user) + assertThat(mWidgetProvidersMap[expectedComponentKey]).isEqualTo(expectedWidgetProviderInfo) + } + + @Test + fun `When valid Pending Widget then checkAndAddItem`() { + + // Given + mockCursor = + mock<LoaderCursor>().apply { + itemType = ITEM_TYPE_APPWIDGET + id = 1 + user = UserHandle(1) + restoreFlag = FLAG_UI_NOT_READY + container = CONTAINER_DESKTOP + whenever(isOnWorkspaceOrHotseat).thenCallRealMethod() + whenever(appWidgetProvider) + .thenReturn("com.google.android.testApp/com.android.testApp.testAppProvider") + whenever(appWidgetId).thenReturn(0) + whenever(spanX).thenReturn(2) + whenever(spanY).thenReturn(1) + whenever(options).thenReturn(0) + whenever(appWidgetSource).thenReturn(20) + whenever(applyCommonProperties(any())).thenCallRealMethod() + } + val mockProviderInfo = + mock<LauncherAppWidgetProviderInfo>().apply { + provider = mock() + whenever(user).thenReturn(UserHandle(1)) + } + val inflationResult = + WidgetInflater.InflationResult( + type = WidgetInflater.TYPE_PENDING, + widgetInfo = mockProviderInfo + ) + mockWidgetInflater = + mock<WidgetInflater>().apply { + whenever(inflateAppWidget(any())).thenReturn(inflationResult) + } + itemProcessorUnderTest = + createWorkspaceItemProcessorUnderTest(widgetProvidersMap = mWidgetProvidersMap) + + // When + itemProcessorUnderTest.processItem() + + // Then + verify(mockCursor).checkAndAddItem(any(), any()) + } + + @Test + fun `When Unrestored Pending App Widget then mark deleted`() { + + // Given + val expectedProvider = "com.google.android.testApp/com.android.testApp.testAppProvider" + mockCursor = + mock<LoaderCursor>().apply { + itemType = ITEM_TYPE_APPWIDGET + id = 1 + user = UserHandle(1) + restoreFlag = FLAG_UI_NOT_READY + container = CONTAINER_DESKTOP + whenever(isOnWorkspaceOrHotseat).thenCallRealMethod() + whenever(appWidgetProvider).thenReturn(expectedProvider) + whenever(appWidgetId).thenReturn(0) + whenever(spanX).thenReturn(2) + whenever(spanY).thenReturn(1) + whenever(options).thenReturn(0) + whenever(appWidgetSource).thenReturn(20) + whenever(applyCommonProperties(any())).thenCallRealMethod() + } + mInstallingPkgs = hashMapOf() + val inflationResult = + WidgetInflater.InflationResult(type = WidgetInflater.TYPE_PENDING, widgetInfo = null) + mockWidgetInflater = + mock<WidgetInflater>().apply { + whenever(inflateAppWidget(any())).thenReturn(inflationResult) + } + val expectedComponentName = ComponentName.unflattenFromString(expectedProvider) + + // When + itemProcessorUnderTest = + createWorkspaceItemProcessorUnderTest(widgetProvidersMap = mWidgetProvidersMap) + itemProcessorUnderTest.processItem() + + // Then + verify(mockCursor) + .markDeleted( + "processWidget: Unrestored Pending widget removed: id=1, appWidgetId=0, component=$expectedComponentName, restoreFlag:=4", + LauncherRestoreEventLogger.RestoreError.APP_NOT_INSTALLED + ) + } + + @Test + fun `When Pending App Widget has not started restore then update db and add item`() { + + val mockitoSession = + ExtendedMockito.mockitoSession() + .strictness(Strictness.LENIENT) + .mockStatic(WidgetSections::class.java) + .startMocking() + try { + // Given + val expectedProvider = "com.google.android.testApp/com.android.testApp.testAppProvider" + val expectedComponentName = + ComponentName.unflattenFromString(expectedProvider)!!.flattenToString() + val expectedRestoreStatus = FLAG_UI_NOT_READY or FLAG_RESTORE_STARTED + val expectedAppWidgetId = 0 + mockCursor.apply { + itemType = ITEM_TYPE_APPWIDGET + user = mUserHandle + restoreFlag = FLAG_UI_NOT_READY + container = CONTAINER_DESKTOP + whenever(isOnWorkspaceOrHotseat).thenCallRealMethod() + whenever(appWidgetProvider).thenReturn(expectedProvider) + whenever(appWidgetId).thenReturn(expectedAppWidgetId) + whenever(spanX).thenReturn(2) + whenever(spanY).thenReturn(1) + whenever(options).thenReturn(0) + whenever(appWidgetSource).thenReturn(20) + whenever(applyCommonProperties(any())).thenCallRealMethod() + whenever( + updater() + .put(Favorites.APPWIDGET_PROVIDER, expectedComponentName) + .put(Favorites.APPWIDGET_ID, expectedAppWidgetId) + .put(Favorites.RESTORED, expectedRestoreStatus) + .commit() + ) + .thenReturn(1) + } + val inflationResult = + WidgetInflater.InflationResult( + type = WidgetInflater.TYPE_PENDING, + widgetInfo = null + ) + mockWidgetInflater = + mock<WidgetInflater>().apply { + whenever(inflateAppWidget(any())).thenReturn(inflationResult) + } + val packageUserKey = PackageUserKey("com.google.android.testApp", mUserHandle) + mInstallingPkgs[packageUserKey] = PackageInstaller.SessionInfo() + + // When + itemProcessorUnderTest = + createWorkspaceItemProcessorUnderTest(widgetProvidersMap = mWidgetProvidersMap) + itemProcessorUnderTest.processItem() + + // Then + val expectedWidgetInfo = + LauncherAppWidgetInfo().apply { + appWidgetId = expectedAppWidgetId + providerName = ComponentName.unflattenFromString(expectedProvider) + restoreStatus = expectedRestoreStatus + } + verify( + mockCursor + .updater() + .put(Favorites.APPWIDGET_PROVIDER, expectedProvider) + .put(Favorites.APPWIDGET_ID, expectedAppWidgetId) + .put(Favorites.RESTORED, expectedRestoreStatus) + ) + .commit() + val widgetInfoCaptor = ArgumentCaptor.forClass(LauncherAppWidgetInfo::class.java) + verify(mockCursor).checkAndAddItem(widgetInfoCaptor.capture(), eq(mockBgDataModel)) + val actualWidgetInfo = widgetInfoCaptor.value + with(actualWidgetInfo) { + assertThat(providerName).isEqualTo(expectedWidgetInfo.providerName) + assertThat(restoreStatus).isEqualTo(expectedWidgetInfo.restoreStatus) + assertThat(targetComponent).isEqualTo(expectedWidgetInfo.targetComponent) + assertThat(appWidgetId).isEqualTo(expectedWidgetInfo.appWidgetId) + } + } finally { + mockitoSession.finishMocking() + } + } + + @Test + @EnableFlags(FLAG_ENABLE_SUPPORT_FOR_ARCHIVING) + fun `When Archived Pending App Widget then checkAndAddItem`() { + val mockitoSession = + ExtendedMockito.mockitoSession().mockStatic(Utilities::class.java).startMocking() + try { + // Given + val expectedProvider = "com.google.android.testApp/com.android.testApp.testAppProvider" + val expectedComponentName = ComponentName.unflattenFromString(expectedProvider) + val expectedPackage = expectedComponentName!!.packageName + mockPmHelper = + mock<PackageManagerHelper>().apply { + whenever(isAppArchived(expectedPackage)).thenReturn(true) + } + mockCursor = + mock<LoaderCursor>().apply { + itemType = ITEM_TYPE_APPWIDGET + id = 1 + user = UserHandle(1) + restoreFlag = FLAG_UI_NOT_READY + container = CONTAINER_DESKTOP + whenever(isOnWorkspaceOrHotseat).thenCallRealMethod() + whenever(appWidgetProvider).thenReturn(expectedProvider) + whenever(appWidgetId).thenReturn(0) + whenever(spanX).thenReturn(2) + whenever(spanY).thenReturn(1) + whenever(options).thenReturn(0) + whenever(appWidgetSource).thenReturn(20) + whenever(applyCommonProperties(any())).thenCallRealMethod() + } + mInstallingPkgs = hashMapOf() + val inflationResult = + WidgetInflater.InflationResult( + type = WidgetInflater.TYPE_PENDING, + widgetInfo = null + ) + mockWidgetInflater = + mock<WidgetInflater>().apply { + whenever(inflateAppWidget(any())).thenReturn(inflationResult) + } + itemProcessorUnderTest = + createWorkspaceItemProcessorUnderTest(widgetProvidersMap = mWidgetProvidersMap) + + // When + itemProcessorUnderTest.processItem() + + // Then + verify(mockCursor).checkAndAddItem(any(), any()) + } finally { + mockitoSession.finishMocking() + } + } + + @Test + fun `When widget inflation result is TYPE_DELETE then mark deleted`() { + // Given + val expectedProvider = "com.google.android.testApp/com.android.testApp.testAppProvider" + val expectedComponentName = ComponentName.unflattenFromString(expectedProvider) + val expectedPackage = expectedComponentName!!.packageName + mockPmHelper = + mock<PackageManagerHelper>().apply { + whenever(isAppArchived(expectedPackage)).thenReturn(true) + } + mockCursor = + mock<LoaderCursor>().apply { + itemType = ITEM_TYPE_APPWIDGET + id = 1 + user = UserHandle(1) + container = CONTAINER_DESKTOP + whenever(spanX).thenReturn(2) + whenever(spanY).thenReturn(1) + whenever(appWidgetProvider).thenReturn(expectedProvider) + whenever(isOnWorkspaceOrHotseat).thenCallRealMethod() + whenever(applyCommonProperties(any())).thenCallRealMethod() + } + mInstallingPkgs = hashMapOf() + val inflationResult = + WidgetInflater.InflationResult( + type = WidgetInflater.TYPE_DELETE, + widgetInfo = null, + reason = "test_delete_reason", + restoreErrorType = MISSING_WIDGET_PROVIDER + ) + mockWidgetInflater = + mock<WidgetInflater>().apply { + whenever(inflateAppWidget(any())).thenReturn(inflationResult) + } + itemProcessorUnderTest = + createWorkspaceItemProcessorUnderTest(widgetProvidersMap = mWidgetProvidersMap) + + // When + itemProcessorUnderTest.processItem() + + // Then + verify(mockCursor).markDeleted(inflationResult.reason, inflationResult.restoreErrorType) + } } diff --git a/tests/src/com/android/launcher3/ui/ActivityAllAppsContainerViewTest.java b/tests/src/com/android/launcher3/ui/ActivityAllAppsContainerViewTest.java index 3411fc11db..e49f2b18a6 100644 --- a/tests/src/com/android/launcher3/ui/ActivityAllAppsContainerViewTest.java +++ b/tests/src/com/android/launcher3/ui/ActivityAllAppsContainerViewTest.java @@ -69,13 +69,7 @@ public class ActivityAllAppsContainerViewTest { private WorkProfileManager mWorkManager; private Context mContext; - @Rule public final SetFlagsRule mSetFlagsRule = getFlagsRule(); - - private SetFlagsRule getFlagsRule() { - SetFlagsRule flagsRule = new SetFlagsRule(); - flagsRule.initAllFlagsToReleaseConfigDefault(); - return flagsRule; - } + @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); @Before public void setUp() { diff --git a/tests/src/com/android/launcher3/ui/widget/TaplAddWidgetTest.java b/tests/src/com/android/launcher3/ui/widget/TaplAddWidgetTest.java index 7845dec4a3..9dbd866521 100644 --- a/tests/src/com/android/launcher3/ui/widget/TaplAddWidgetTest.java +++ b/tests/src/com/android/launcher3/ui/widget/TaplAddWidgetTest.java @@ -86,7 +86,6 @@ public class TaplAddWidgetTest extends AbstractLauncherUiTest<Launcher> { * A custom shortcut is a 1x1 widget that launches a specific intent when user tap on it. * Custom shortcuts are replaced by deep shortcuts after api 25. */ - @Stability(flavors = LOCAL | PLATFORM_POSTSUBMIT) @Test @PortraitLandscape public void testDragCustomShortcut() throws Throwable { |