Merge "Remove defaultToDeviceProtectedStorage" into udc-qpr-dev am: dd2ce4b70f
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Car/Launcher/+/24906757
Change-Id: I1ca4077cfad9b10fc061178a08dffc91fd53ec76
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/Android.bp b/Android.bp
index 25d5c44..a14e9e3 100644
--- a/Android.bp
+++ b/Android.bp
@@ -84,10 +84,4 @@
dex_preopt: {
enabled: false,
},
-
- product_variables: {
- pdk: {
- enabled: false,
- },
- },
}
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index b1d194e..8497941 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Alle programme"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Mediaprogramme"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Stop program"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Appinligting"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> is gestop."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Stop program?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"As jy ’n program dwing om te stop, kan dit sleg optree."</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index d2d3df0..d2ecb6c 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"ሁሉም መተግበሪያዎች"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"የሚዲያ መተግበሪያዎች"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"መተግበሪያን አቁም"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"የመተግበሪያ መረጃ"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> እንዲያቆም ተደርጓል።"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"መተግበሪያ ይቁም?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"አንድ መተግበሪያን በኃይል እንዲቆም ካደረጉት በትክክል ላይሰራ ይችላል።"</string>
@@ -40,7 +39,7 @@
<string name="projection_devices" msgid="916314090031116598">"{count,plural, =1{# መሣሪያ}one{# መሣሪያዎች}other{# መሣሪያዎች}}"</string>
<string name="weather_app_name" msgid="8048146303519139993">"የአየር ሁኔታ"</string>
<string name="fake_weather_main_text" msgid="8117240999340284429">"--° በአብዛኛው ጸሐያማ"</string>
- <string name="fake_weather_footer_text" msgid="4570172025869749926">"የተራራ ዕይታ • ከ፦ --° ዝ፦ --°"</string>
+ <string name="fake_weather_footer_text" msgid="4570172025869749926">"የተራራ እይታ • ከ፦ --° ዝ፦ --°"</string>
<string name="hide_debug_apps" msgid="6128313544379622475">"የአራሚ መተግበሪያዎችን ደብቅ"</string>
<string name="show_debug_apps" msgid="4521073121286325786">"የአራሚ መተግበሪያዎችን አሳይ"</string>
<string name="times_separator" msgid="6180368193321715816">"/"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index cadd3e0..b2ecb13 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"جميع التطبيقات"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"تطبيقات الوسائط"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"إيقاف التطبيق"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"معلومات عن التطبيقات"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"تم إيقاف <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"هل تريد إيقاف التطبيق؟"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"في حال فرض إيقاف التطبيق، قد لا يعمل بشكل صحيح."</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 7ece385..7bcd915 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"আটাইবোৰ এপ্"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"মিডিয়া এপ্"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"এপ্ বন্ধ কৰক"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"এপৰ তথ্য"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> বন্ধ কৰা হৈছে।"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"এপ্ বন্ধ কৰিবনে?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"আপুনি কোনো এপ্ বলেৰে বন্ধ কৰিবলৈ চেষ্টা কৰিলে, ই অস্বাভাৱিক আচৰণ কৰিব পাৰে।"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 98a8ad1..918e624 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Bütün tətbiqlər"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Media tətbiqləri"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Tətbiqi dayandırın"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Tətbiq haqqında"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> dayandırılıb."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Tətbiq dayandırılsın?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Tətbiqi dayanmağa məcbur etsəniz, o, səhv işləyə bilər."</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index f3c3c0a..1b23639 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Sve aplikacije"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Aplikacije za medije"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Zaustavi aplikaciju"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informacije o aplikaciji"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> je zaustavljena."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Zaustavljate aplikaciju?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Ako prinudno zaustavite aplikaciju, možda će se ponašati neočekivano."</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index cadc04d..2c2fc3d 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Усе праграмы"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Мультымедыйныя праграмы"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Спыніць праграму"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Звесткі пра праграму"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Праграма \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" спынена."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Спыніць праграму?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Прымусовае спыненне праграмы можа прывесці да збою."</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 9b24291..bb3e106 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Всички приложения"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Медийни приложения"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Спиране на приложението"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Информация за приложенията"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Приложението <xliff:g id="APP_NAME">%1$s</xliff:g> е спряно."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Да се спре ли приложението?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Ако принудително спрете приложение, то може да не функционира правилно."</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 4dad8a0..7508eed 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"সব অ্যাপ"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"মিডিয়া অ্যাপ"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"অ্যাপ বন্ধ করুন"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"অ্যাপের তথ্য"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> বন্ধ করা হয়েছে।"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"অ্যাপটি বন্ধ করবেন?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"আপনি কোনও অ্যাপকে জোর করে বন্ধ করলে, তা সঠিক ভাবে কাজ নাও করতে পারে।"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 292d142..f3a7a96 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Sve aplikacije"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Medijske aplikacije"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Zaustavi aplikaciju"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informacije o aplikaciji"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> je zaustavljena."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Zaustaviti aplikaciju?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Ako prisilno zaustavite aplikaciju, moguće je da će se ponašati nepredviđeno."</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 1c1834f..d3d2fca 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Totes les aplicacions"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Aplicacions multimèdia"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Atura l\'aplicació"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informació de les aplicacions"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> s\'ha aturat."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Vols aturar l\'aplicació?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Si forces l\'aturada d\'una aplicació, és possible que no funcioni correctament."</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index b38905b..fa5c0b2 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Všechny aplikace"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Mediální aplikace"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Zastavit aplikaci"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informace o aplikaci"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Aplikace <xliff:g id="APP_NAME">%1$s</xliff:g> byla zastavena."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Zastavit aplikaci?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Vynucené zastavení může způsobit nepředvídatelné chování aplikace."</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 8787b4e..fecd3dc 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Alle apps"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Medieapps"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Stands app"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Appoplysninger"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> er blevet standset."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Vil du standse appen?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Hvis du tvinger en app til at standse, kan det medføre, at den ikke fungerer korrekt."</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 3e63515..c31aa08 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Alle Apps"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Medien-Apps"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"App beenden"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"App-Info"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> wurde beendet."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"App beenden?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Das Beenden der App zu erzwingen kann zu unerwünschtem Verhalten führen."</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 8a3b252..af034e2 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Όλες οι εφαρμογές"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Εφαρμογές μέσων"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Διακοπή εφαρμογής"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Πληροφορίες εφαρμογής"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> διακόπηκε."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Διακοπή εφαρμογής;"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Αν κάνετε αναγκαστική διακοπή μιας εφαρμογής, ενδέχεται να μην λειτουργεί σωστά."</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 9242fcb..c76b6eb 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"All apps"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Media apps"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Stop app"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"App info"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> has been stopped."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Stop app?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"If you force stop an app, it may misbehave."</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index f78d103..f4c9c54 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -25,8 +25,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"All apps"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Media apps"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Stop app"</string>
- <!-- no translation found for app_launcher_app_info_action (6388181061002827660) -->
- <skip />
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> has been stopped."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Stop app?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"If you force stop an app, it may misbehave."</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 9242fcb..c76b6eb 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"All apps"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Media apps"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Stop app"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"App info"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> has been stopped."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Stop app?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"If you force stop an app, it may misbehave."</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 9242fcb..c76b6eb 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"All apps"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Media apps"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Stop app"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"App info"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> has been stopped."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Stop app?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"If you force stop an app, it may misbehave."</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 4f20cd5..8c0fc2e 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"All apps"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Media apps"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Stop app"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"App info"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> has been stopped."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Stop app?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"If you force stop an app, it may misbehave."</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index b750bcf..945dfb1 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Todas las apps"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Apps multimedia"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Detener la app"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Información de la app"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Se detuvo <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"¿Quieres detener la app?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Si fuerzas la detención de una app, es posible que funcione incorrectamente."</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index abed86f..487dd3c 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Todas las aplicaciones"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Aplicaciones multimedia"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Detener aplicación"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Información de las aplicaciones"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> se ha detenido."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"¿Detener la aplicación?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Si fuerzas la detención de una aplicación, puede que no funcione correctamente."</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 0702bdb..ab68532 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Kõik rakendused"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Meediarakendused"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Peata rakendus"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Rakenduse teave"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> peatati."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Kas peatada rakendus?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Kui sundpeatate rakenduse, võib see toimida valesti."</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 0062fbb..cd283ab 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Aplikazio guztiak"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Multimedia-aplikazioak"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Gelditu aplikazioa"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Aplikazioari buruzko informazioa"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Gelditu da <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Aplikazioa gelditu nahi duzu?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Aplikazioak gelditzera behartzen badituzu, baliteke behar bezala ez funtzionatzea."</string>
@@ -31,12 +30,12 @@
<string name="default_media_song_title" msgid="2970305231647817808"></string>
<string name="driving_toast_text" msgid="149483091947120092">"<xliff:g id="APP_NAME">%1$s</xliff:g> ezin da erabili gidatu bitartean."</string>
<string name="tap_for_more_info_text" msgid="2043549383814415585">"Informazio gehiago lortzeko, sakatu txartela"</string>
- <string name="tap_to_launch_text" msgid="6910695705119260847">"Sakatu txartela exekutatzeko"</string>
+ <string name="tap_to_launch_text" msgid="6910695705119260847">"Sakatu txartela abiarazteko"</string>
<string name="ongoing_call_duration_text_separator" msgid="6019453854809413561">" • "</string>
<string name="ongoing_call_text" msgid="2394626676478708070">"Deia abian da"</string>
<string name="dialing_call_text" msgid="415326503409745490">"Markatzen…"</string>
- <string name="projected_launch_text" msgid="5809132353957907500">"Exekutatu Android Auto"</string>
- <string name="projected_onclick_launch_error_toast_text" msgid="7462478007773137082">"Ezin da exekutatu Android Auto. Ez da jarduerarik aurkitu."</string>
+ <string name="projected_launch_text" msgid="5809132353957907500">"Abiarazi Android Auto"</string>
+ <string name="projected_onclick_launch_error_toast_text" msgid="7462478007773137082">"Ezin da abiarazi Android Auto. Ez da jarduerarik aurkitu."</string>
<string name="projection_devices" msgid="916314090031116598">"{count,plural, =1{# gailu}other{# gailu}}"</string>
<string name="weather_app_name" msgid="8048146303519139993">"Eguraldia"</string>
<string name="fake_weather_main_text" msgid="8117240999340284429">"-- ° Gehienbat eguzkitsua"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 52638a3..7536431 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"همه برنامهها"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"برنامههای رسانه"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"متوقف کردن برنامه"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"اطلاعات برنامه"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> متوقف شده است."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"برنامه متوقف شود؟"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"توقف اجباری برنامه ممکن است باعث عملکرد نادرست آن شود."</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 0a8b253..db6c88b 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Kaikki sovellukset"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Mediasovellukset"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Sulje sovellus"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Sovelluksen tiedot"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> on suljettu."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Suljetaanko sovellus?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Jos pakotat sovelluksen sulkeutumaan, se ei välttämättä toimi oikein."</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index d3c6242..328922d 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Toutes les applications"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Applications multimédias"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Arrêter l\'application"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Détails de l\'application"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> s\'est arrêté."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Arrêter l\'application?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Si vous forcez l\'arrêt d\'une application, son fonctionnement peut en être affecté."</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index cba3d87..d6c799d 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Toutes les applications"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Applications multimédias"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Arrêter l\'appli"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Infos sur les applis"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"L\'appli <xliff:g id="APP_NAME">%1$s</xliff:g> a été arrêtée."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Arrêter l\'appli ?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"L\'arrêt forcé d\'une appli peut provoquer un fonctionnement instable."</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index f4f26d9..6e59a5f 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Todas as aplicacións"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Aplicacións multimedia"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Deter aplicación"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Información da aplicación"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Detívose a aplicación <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Queres deter a aplicación?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Se forzas a parada dunha aplicación, é posible que non funcione correctamente."</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 52f5d7e..8f2e135 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"બધી ઍપ"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"મીડિયા ઍપ"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"ઍપ બંધ કરો"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"ઍપની માહિતી"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> બંધ કરવામાં આવી છે."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"ઍપ બંધ કરીએ?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"જો તમે કોઈ ઍપને ફરજિયાત બંધ કરો, તો તે અયોગ્ય વર્તન કરી શકે છે."</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 4356f13..ffb7e03 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"सभी ऐप्लिकेशन"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"मीडिया ऐप्लिकेशन"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"ऐप्लिकेशन रोकें"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"ऐप्लिकेशन की जानकारी"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> को रोका गया है."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"क्या आपको ऐप्लिकेशन रोकना है?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"अगर किसी ऐप्लिकेशन को ज़बरदस्ती रोका जाता है, तो हो सकता है कि वह ठीक तरह से काम न करें."</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 0792e43..7af1fe1 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Sve aplikacije"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Aplikacije za medijske sadržaje"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Zaustavi aplikaciju"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informacije o aplikaciji"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> je zaustavljena."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Zaustaviti aplikaciju?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Ako silom zaustavite aplikaciju, možda će se ponašati nepredviđeno."</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index d8ce05c..06fa659 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Összes alkalmazás"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Médiaalkalmazások"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Alkalmazás leállítása"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Alkalmazásadatok"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> leállítva."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Leállítja az alkalmazást?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Ha egy alkalmazást leállásra kényszerít, lehetséges, hogy hibásan fog működni."</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 5f45ced..5cfa2d7 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Բոլոր հավելվածները"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Մեդիա հավելվածներ"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Կանգնեցնել հավելվածը"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Հավելվածի մասին"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածը կանգնեցվեց։"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Կանգնեցնե՞լ հավելվածը"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Հավելվածի ստիպողական կանգնեցումը կարող է ազդել դրա աշխատանքի վրա։"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 1bd4efb..2cb7a4f 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Semua aplikasi"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Aplikasi media"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Hentikan aplikasi"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Info aplikasi"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> telah dihentikan."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Hentikan aplikasi?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Jika aplikasi dihentikan paksa, fungsinya mungkin akan terganggu."</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 557db9d..9153c50 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Öll forrit"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Margmiðlunarforrit"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Stöðva forrit"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Upplýsingar um forrit"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> var stöðvað."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Stöðva forritið?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Ef þú þvingar fram lokun forrits gæti það látið illa."</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 7ddb2b7..9ac3d52 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Tutte le app"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"App multimediali"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Interrompi l\'app"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informazioni app"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"L\'app <xliff:g id="APP_NAME">%1$s</xliff:g> è stata interrotta."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Interrompere l\'app?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Se forzi l\'interruzione di un\'app, questa potrebbe funzionare in modo anomalo."</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 753f263..0f711d1 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"כל האפליקציות"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"אפליקציות מדיה"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"עצירת האפליקציה"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"פרטי האפליקציה"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"עצרת את האפליקציה <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"לעצור את האפליקציה?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"אם סוגרים אפליקציה באופן ידני, ייתכן שהיא לא תפעל כהלכה."</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 9294f8a..1266df8 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"すべてのアプリ"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"メディアアプリ"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"アプリを停止"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"アプリ情報"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g>を停止しました。"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"アプリを停止しますか?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"アプリを強制停止すると、アプリが正常に機能しないことがあります。"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index e2bbc03..5242836 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"ყველა აპი"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"მედია აპები"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"აპის შეჩერება"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"აპის ინფორმაცია"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> შეჩერებულია."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"გსურთ აპის შეჩერება?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"თუ აპს შეწყვეტას აიძულებთ, შესაძლოა, მან ცუდად განაგრძოს მუშაობა."</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 861240c..c99cec2 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Барлық қолданба"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Мультимедиа қолданбалары"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Қолданбаны тоқтату"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Қолданба туралы ақпарат"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> тоқтатылды."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Қолданба тоқтатылсын ба?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Қолданбаны қолмен тоқтату оның жұмысына кері әсерін тигізуі мүмкін."</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 18ffe92..b80c44a 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"កម្មវិធីទាំងអស់"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"កម្មវិធីមេឌៀ"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"បញ្ឈប់កម្មវិធី"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"ព័ត៌មានកម្មវិធី"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> ត្រូវបានបញ្ឈប់។"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"បញ្ឈប់កម្មវិធីឬ?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"ប្រសិនបើអ្នកបង្ខំឱ្យបញ្ឈប់កម្មវិធី កម្មវិធីអាចនឹងដំណើរការមិនត្រឹមត្រូវ។"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 23f04ed..97bc3fc 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"ಎಲ್ಲಾ ಆ್ಯಪ್ಗಳು"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"ಮಾಧ್ಯಮ ಆ್ಯಪ್ಗಳು"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"ಆ್ಯಪ್ ಅನ್ನು ನಿಲ್ಲಿಸಿ"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"ಆ್ಯಪ್ ಮಾಹಿತಿ"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> ಅನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"ಆ್ಯಪ್ ಅನ್ನು ನಿಲ್ಲಿಸಬೇಕೆ?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"ನೀವು ಆ್ಯಪ್ ಅನ್ನು ಬಲವಂತವಾಗಿ ನಿಲ್ಲಿಸಿದರೆ, ಅದು ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದಿರಬಹುದು."</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 6267718..43b11ea 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"모든 앱"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"미디어 앱"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"앱 종료"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"앱 정보"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> 앱이 종료되었습니다."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"앱을 종료하시겠습니까?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"강제로 앱을 종료하면 예기치 않은 오류가 발생할 수 있습니다."</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 7fd9458..ea02405 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Бардык колдонмолор"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Медиа колдонмолору"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Колдонмону токтотуу"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Колдонмо маалыматы"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> токтотулду."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Колдонмону токтотосузбу?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Колдонмону токтотсоңуз, ал туура эмес иштеп калышы мүмкүн."</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index a6ac33c..ed0ba72 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"ແອັບທັງໝົດ"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"ແອັບມີເດຍ"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"ຢຸດແອັບ"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"ຂໍ້ມູນແອັບ"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"ຢຸດ <xliff:g id="APP_NAME">%1$s</xliff:g> ແລ້ວ."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"ຢຸດແອັບໄວ້ບໍ?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"ຫານທ່ານບັງຄັບປິດແອັບໃດໜຶ່ງ, ມັນອາດເຮັດວຽກຜິດປົກກະຕິໄດ້."</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index d8ec66c..2b05166 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Visos programos"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Medijos programos"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Sustabdyti programą"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Programos informacija"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Programa „<xliff:g id="APP_NAME">%1$s</xliff:g>“ sustabdyta."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Sustabdyti programą?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Jei priverstinai sustabdysite programą, ji gali neveikti tinkamai."</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 54cc907..234a49b 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Visas lietotnes"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Multivides lietotnes"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Apturēt lietotnes darbību"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informācija par lietotni"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Lietotnes <xliff:g id="APP_NAME">%1$s</xliff:g> darbība ir apturēta."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Vai apturēt lietotnes darbību?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Piespiedu kārtā apturot lietotnes darbību, var rasties šīs lietotnes darbības traucējumi."</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 2159717..f12230c 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Сите апликации"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Апликации за аудиовизуелни содржини"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Запри ја апликацијата"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Информации за апликацијата"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> е запрена."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Да се запре апликацијата?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Ако присилно запрете апликација, таа може да не се однесува правилно."</string>
@@ -41,7 +40,7 @@
<string name="weather_app_name" msgid="8048146303519139993">"Временска прогноза"</string>
<string name="fake_weather_main_text" msgid="8117240999340284429">"-- ° Претежно сончево"</string>
<string name="fake_weather_footer_text" msgid="4570172025869749926">"Маунтин Вју • В: -- ° Н: -- °"</string>
- <string name="hide_debug_apps" msgid="6128313544379622475">"Скриј апликации за отстранување грешки"</string>
+ <string name="hide_debug_apps" msgid="6128313544379622475">"Сокриј апликации за отстранување грешки"</string>
<string name="show_debug_apps" msgid="4521073121286325786">"Прикажи апликации за отстранување грешки"</string>
<string name="times_separator" msgid="6180368193321715816">"/"</string>
<string name="recents_empty_state_text" msgid="6703106170272215731">"Нема неодамнешни ставки"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 2683207..2235e7e 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"എല്ലാ ആപ്പുകളും"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"മീഡിയ ആപ്പുകൾ"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"ആപ്പിന്റെ പ്രവർത്തനം നിർത്തുക"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"ആപ്പ് വിവരങ്ങൾ"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> എന്നതിന്റെ പ്രവർത്തനം നിർത്തി."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"ആപ്പിന്റെ പ്രവർത്തനം നിർത്തണോ?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"ഒരു ആപ്പിന്റെ പ്രവർത്തനം നിർബന്ധിതമായി നിർത്തിയാൽ, അത് ശരിയായി പ്രവർത്തിക്കാനിടയില്ല."</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index f6a49e8..3636c27 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Бүх апп"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Медиа аппууд"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Аппыг зогсоох"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Аппын мэдээлэл"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> зогссон."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Аппыг зогсоох уу?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Хэрэв аппыг хүчээр зогсоовол буруу ажиллаж магадгүй."</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index f3da6b6..2751aca 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"सर्व अॅप्स"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"मीडिया अॅप्स"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"अॅप थांबवा"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"अॅपची माहिती"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> थांबवले आहे."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"अॅप थांबवायचे आहे का?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"तुम्ही अॅप सक्तीने थांबवल्यास, ते गैरवर्तन करू शकते."</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 89e39f3..1ebb30c 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Semua apl"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Apl media"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Hentikan apl"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Maklumat apl"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> telah dihentikan."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Hentikan apl?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Jika anda menghentikan apl secara paksa, mungkin fungsi apl akan terganggu."</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 986cdf7..e9a10a8 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"အက်ပ်အားလုံး"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"မီဒီယာ အက်ပ်များ"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"အက်ပ်ကို ရပ်ဆိုင်းရန်"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"အက်ပ်အချက်အလက်"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> ရပ်ဆိုင်းသွားပြီ။"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"အက်ပ်ကို ရပ်ဆိုင်းမလား။"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"အက်ပ်ကို မဖြစ်မနေ ရပ်ခိုင်းလျှင် အမှားအယွင်းဖြစ်နိုင်သည်။"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index bef1344..7b0dcd7 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Alle apper"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Medieapper"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Stopp appen"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Appinformasjon"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> er stoppet."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Vil du stoppe appen?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Hvis du tvinger en app til å avslutte, kan det oppstå problemer."</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 8dd1234..a992df8 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"सबै एपहरू"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"मिडिया एपहरू"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"एपलाई रोक्नुहोस्"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"एपसम्बन्धी जानकारी"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> रोकिएको छ।"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"एपलाई रोक्ने हो?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"तपाईंले कुनै एपलाई जबरजस्ती रोक्नुभयो भने त्यसले सही तरिकाले काम नगर्न सक्छ।"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index debc3b1..62886da 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Alle apps"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Media-apps"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"App stoppen"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"App-info"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> is gestopt."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"App stoppen?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Als je een app gedwongen stopt, kan deze onverwacht gedrag vertonen."</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 226ce1b..b4d85e0 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"ସମସ୍ତ ଆପ୍"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"ମିଡିଆ ଆପ୍ସ"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"ଆପକୁ ବନ୍ଦ କରନ୍ତୁ"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"ଆପ ସୂଚନା"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g>କୁ ବନ୍ଦ କରାଯାଇଛି।"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"ଆପକୁ ବନ୍ଦ କରିବେ?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"ଯଦି ଆପଣ ଏକ ଆପକୁ ବାଧ୍ୟତାର ସହ ବନ୍ଦ କରନ୍ତି, ତେବେ ଏହା ଠିକ୍ ଭାବେ କାମ ନକରିପାରେ।"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index fbde6b5..bb2e14d 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"ਸਾਰੀਆਂ ਐਪਾਂ"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"ਮੀਡੀਆ ਐਪਾਂ"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"ਐਪ ਬੰਦ ਕਰੋ"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"ਐਪ ਜਾਣਕਾਰੀ"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਬੰਦ ਕਰ ਦਿੱਤੀ ਗਈ ਹੈ।"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"ਕੀ ਐਪ ਬੰਦ ਕਰਨੀ ਹੈ?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"ਜੇ ਤੁਸੀਂ ਕਿਸੇ ਐਪ ਨੂੰ ਜ਼ਬਰਦਸਤੀ ਬੰਦ ਕਰਦੇ ਹੋ, ਤਾਂ ਹੋ ਸਕਦਾ ਹੈ ਇਹ ਠੀਕ ਤਰ੍ਹਾਂ ਕੰਮ ਨਾ ਕਰੇ।"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 6fd33e9..d596e81 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Wszystkie aplikacje"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Aplikacje multimedialne"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Zatrzymaj aplikację"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informacje o aplikacji"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Aplikacja <xliff:g id="APP_NAME">%1$s</xliff:g> została zatrzymana."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Zatrzymać aplikację?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Jeśli wymusisz zatrzymanie aplikacji, może ona zadziałać nieprawidłowo."</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 9cbe2db..a704184 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Todas as apps"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Apps de multimédia"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Parar a app"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informações da app"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"A app <xliff:g id="APP_NAME">%1$s</xliff:g> foi parada."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Parar a app?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Se forçar a paragem de uma app, esta pode apresentar um comportamento anormal."</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 5704ce3..606d31e 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Todos os apps"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Apps de mídia"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Parar o app"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informações do app"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"O app <xliff:g id="APP_NAME">%1$s</xliff:g> foi parado."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Parar o app?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Se você forçar o fechamento de um app, ele pode apresentar mau funcionamento."</string>
@@ -45,6 +44,6 @@
<string name="show_debug_apps" msgid="4521073121286325786">"Mostrar apps de depuração"</string>
<string name="times_separator" msgid="6180368193321715816">"/"</string>
<string name="recents_empty_state_text" msgid="6703106170272215731">"Nenhum item recente"</string>
- <string name="recents_clear_all_text" msgid="2088678071417053923">"Remover tudo"</string>
+ <string name="recents_clear_all_text" msgid="2088678071417053923">"Limpar tudo"</string>
<string name="failure_opening_recent_task_message" msgid="9097595793150874357">"O app não está disponível"</string>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 8f5856c..2d2fd39 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Toate aplicațiile"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Aplicații media"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Oprește aplicația"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informații despre aplicație"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> a fost oprită."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Oprești aplicația?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Dacă forțezi oprirea unei aplicații, aceasta se poate comporta necorespunzător."</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 2fa309b..9b43573 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Все приложения"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Мультимедийные приложения"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Остановить"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Сведения о приложении"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Приложение \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" остановлено."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Остановить приложение?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Принудительное закрытие приложения может отразиться на его функциональности."</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 1a23879..503eb20 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"සියලු යෙදුම්"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"මාධ්ය යෙදුම්"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"යෙදුම නවත්වන්න"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"යෙදුම් තතු"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> නතර කර ඇත."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"යෙදුම නවත්වන්න ද?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"ඔබ යෙදුමක් බලෙන් නැවත වුවහොත්, එය වැරදි ලෙස ක්රියා කරනු ඇත."</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 7509410..a1b7285 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Všetky aplikácie"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Mediálne aplikácie"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Zastaviť aplikáciu"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informácie o aplikácii"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Aplikácia <xliff:g id="APP_NAME">%1$s</xliff:g> bola zastavená."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Chcete zastaviť aplikáciu?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Ak vynútite zastavenie aplikácie, môže sa správať zvláštne."</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index f5be194..7a6fea1 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Vse aplikacije"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Aplikacije za predstavnost"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Ustavi aplikacijo"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Podatki o aplikacijah"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> je ustavljena."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Želite ustaviti aplikacijo?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Če boste vsilili zaustavitev aplikacije, morda ne bo pravilno delovala."</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 4bc78c8..f03d6fb 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Të gjitha aplikacionet"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Aplikacionet e medias"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Ndalo aplikacionin"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Informacione mbi aplikacionin"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> është ndaluar."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Të ndalohet aplikacioni?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Nëse e ndalon me forcë një aplikacion, ai mund të përjetojë çrregullime në funksionim."</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index de500cc..dd7ddc2 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Све апликације"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Апликације за медије"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Заустави апликацију"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Информације о апликацији"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Апликација <xliff:g id="APP_NAME">%1$s</xliff:g> је заустављена."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Заустављате апликацију?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Ако принудно зауставите апликацију, можда ће се понашати неочекивано."</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 5593043..28bbb1c 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Alla appar"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Medieappar"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Avsluta appen"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Appinformation"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> har avslutats."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Vill du avsluta appen?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Om du tvingar appen att avsluta kanske den inte fungerar som den ska."</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index e29e97c..659b644 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Programu zote"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Programu za muziki"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Zima programu"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Maelezo ya programu"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Umezima programu ya <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Ungependa kuzima programu?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Huenda programu isifanye kazi ipasavyo, iwapo utalazimisha kuizima."</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 5a37855..54d57be 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"அனைத்து ஆப்ஸும்"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"மீடியா ஆப்ஸ்"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"ஆப்ஸை நிறுத்து"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"ஆப்ஸ் தகவல்கள்"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> ஆப்ஸ் நிறுத்தப்பட்டது."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"ஆப்ஸை நிறுத்தவா?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"ஆப்ஸை உடனே நிறுத்தினால் அது சரியாகச் செயல்படாமல் போகக்கூடும்."</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 8dfa4bc..181eb9b 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"అన్ని యాప్లు"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"మీడియా యాప్లు"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"యాప్ను ఆపివేయండి"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"యాప్ సమాచారం"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> ఆపివేయబడింది."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"యాప్ను ఆపివేయాలా?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"మీరు యాప్ను ఫోర్స్ ఆపివేస్తే, అది సరిగ్గా పని చేయకపోవచ్చు."</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index b9f5cf5..251bc13 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"แอปทั้งหมด"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"แอปสื่อ"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"หยุดแอป"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"ข้อมูลแอป"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"หยุด <xliff:g id="APP_NAME">%1$s</xliff:g> แล้ว"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"หยุดแอปไหม"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"หากคุณบังคับปิดแอปพลิเคชัน อาจทำให้การทำงานผิดพลาดได้"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index e8ac644..a77a06a 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Lahat ng app"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Mga media app"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Ihinto ang app"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Impormasyon ng app"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Ihininto ang <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Ihinto ang app?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Kung sapilitan mong ihihinto ang isang app, posible itong kumilos nang hindi tama."</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 063f8da..0d9965a 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Tüm uygulamalar"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Medya uygulamaları"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Uygulamayı durdur"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Uygulama bilgileri"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> durduruldu."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Uygulama durdurulsun mu?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Uygulamayı zorla durdurursanız hatalı davranabilir."</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 65deb84..f5c67fd 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Усі додатки"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Мультимедійні додатки"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Припинити роботу додатка"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Про додаток"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"Роботу додатка <xliff:g id="APP_NAME">%1$s</xliff:g> припинено."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Припинити роботу додатка?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Примусове вимкнення додатка може призвести до збою в його роботі."</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index cc609a1..cc8aa77 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"سبھی ایپس"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"میڈیا ایپس"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"ایپ بند کریں"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"ایپ کی معلومات"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> کو بند کر دیا گیا ہے۔"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"ایپ بند کریں؟"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"اگر آپ کسی ایپ کو زبردستی روک دیتے ہیں تو یہ غلط برتاؤ کر سکتی ہے۔"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index b805f71..2ea50ba 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Barcha ilovalar"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Media ilovalari"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Ilovani toʻxtatish"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Ilova haqida"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasi toʻxtatildi."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Ilova toʻxtatilsinmi?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Ilovani majburan toʻxtatish uning ishlashiga taʼsir koʻrsatishi mumkin."</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index e8b31ac..d500b30 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Tất cả ứng dụng"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Ứng dụng đa phương tiện"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Dừng ứng dụng"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Thông tin ứng dụng"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"<xliff:g id="APP_NAME">%1$s</xliff:g> đã bị dừng."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Dừng ứng dụng?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Nếu bạn buộc một ứng dụng dừng lại, ứng dụng đó có thể hoạt động không đúng cách."</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 10c72c6..1ccee54 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"所有应用"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"媒体应用"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"停止应用"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"应用信息"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"已停止“<xliff:g id="APP_NAME">%1$s</xliff:g>”。"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"要停止应用吗?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"强行停止某个应用可能会导致其出现异常。"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 3c1d91c..1db6cab 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -19,11 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_title" msgid="1995858460392177468">"Car Launcher"</string>
<string name="reset_appgrid_title" msgid="814562055108028366">"將應用程式網格重設為按字母排序"</string>
- <string name="reset_appgrid_dialogue_message" msgid="8275758912490987735">"此功能會移除所有自訂順序。你要繼續嗎?"</string>
+ <string name="reset_appgrid_dialogue_message" msgid="8275758912490987735">"此功能會移除所有自訂順序。您要繼續嗎?"</string>
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"所有應用程式"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"媒體應用程式"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"停止應用程式"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"應用程式資料"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"已停止「<xliff:g id="APP_NAME">%1$s</xliff:g>」。"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"要停止應用程式嗎?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"強制停止應用程式,可能會導致操作不正常。"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index e9fffbd..48ba2ba 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"所有應用程式"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"媒體應用程式"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"停止應用程式"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"應用程式資訊"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」已停止。"</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"要停止應用程式嗎?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"如果你強制停止應用程式,應用程式可能出現異常行為。"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 135c2aa..75c90c0 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -23,7 +23,6 @@
<string name="app_launcher_title_all_apps" msgid="3215107396036838217">"Zonke izinhlelo zokusebenza"</string>
<string name="app_launcher_title_media_only" msgid="4400886555907422816">"Izinhlelo zokusebenza zemidiya"</string>
<string name="app_launcher_stop_app_action" msgid="1081680842410279692">"Misa i-app"</string>
- <string name="app_launcher_app_info_action" msgid="6388181061002827660">"Ulwazi lwe-app"</string>
<string name="app_launcher_stop_app_success_toast_text" msgid="2117271772351005349">"I-<xliff:g id="APP_NAME">%1$s</xliff:g> imisiwe."</string>
<string name="app_launcher_stop_app_dialog_title" msgid="8276889322638001144">"Misa i-app?"</string>
<string name="app_launcher_stop_app_dialog_text" msgid="3264059639436254372">"Uma uphoqelela ukumisa i-app, kungenzeka ukuthi ingasebenzi kahle."</string>
diff --git a/src/com/android/car/carlauncher/AppGridActivity.java b/src/com/android/car/carlauncher/AppGridActivity.java
index 1c5f4c8..18c814d 100644
--- a/src/com/android/car/carlauncher/AppGridActivity.java
+++ b/src/com/android/car/carlauncher/AppGridActivity.java
@@ -109,6 +109,7 @@
private boolean mShowAllApps = true;
private boolean mShowToolbar = true;
private final Set<String> mHiddenApps = new HashSet<>();
+ private final Set<String> mCustomMediaComponents = new HashSet<>();
private PackageManager mPackageManager;
private UsageStatsManager mUsageStatsManager;
private AppInstallUninstallReceiver mInstallUninstallReceiver;
@@ -255,11 +256,13 @@
Set<String> appsToHide = mShowAllApps ? Collections.emptySet() : mHiddenApps;
mAppsInfo = AppLauncherUtils.getLauncherApps(getApplicationContext(),
appsToHide,
+ mCustomMediaComponents,
mMode.mAppTypes,
mMode.mOpenMediaCenter,
getSystemService(LauncherApps.class),
mCarPackageManager,
mPackageManager,
+ new AppLauncherUtils.VideoAppPredicate(mPackageManager),
mCarMediaManager,
AppGridActivity.this,
mMirroringPackageName,
@@ -300,6 +303,8 @@
);
mCar = Car.createCar(this, mCarConnectionListener);
mHiddenApps.addAll(Arrays.asList(getResources().getStringArray(R.array.hidden_apps)));
+ mCustomMediaComponents.addAll(
+ Arrays.asList(getResources().getStringArray(R.array.custom_media_packages)));
setContentView(R.layout.app_grid_activity);
updateMode();
diff --git a/src/com/android/car/carlauncher/AppLauncherUtils.java b/src/com/android/car/carlauncher/AppLauncherUtils.java
index ce0cf40..2983615 100644
--- a/src/com/android/car/carlauncher/AppLauncherUtils.java
+++ b/src/com/android/car/carlauncher/AppLauncherUtils.java
@@ -37,8 +37,9 @@
import android.content.pm.LauncherApps;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.content.res.Resources;
+import android.content.res.XmlResourceParser;
import android.net.Uri;
-import android.os.Bundle;
import android.os.Process;
import android.os.UserHandle;
import android.os.UserManager;
@@ -53,12 +54,16 @@
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
import com.android.car.ui.shortcutspopup.CarUiShortcutsPopup;
-import com.google.common.collect.Sets;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import java.io.IOException;
import java.lang.annotation.Retention;
+import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -69,13 +74,13 @@
import java.util.Objects;
import java.util.Set;
import java.util.function.Consumer;
+import java.util.function.Predicate;
/**
* Util class that contains helper method used by app launcher classes.
*/
public class AppLauncherUtils {
private static final String TAG = "AppLauncherUtils";
- private static final String ANDROIDX_CAR_APP_LAUNCHABLE = "androidx.car.app.launchable";
@Retention(SOURCE)
@IntDef({APP_TYPE_LAUNCHABLES, APP_TYPE_MEDIA_SERVICES})
@@ -84,6 +89,10 @@
static final int APP_TYPE_LAUNCHABLES = 1;
static final int APP_TYPE_MEDIA_SERVICES = 2;
+ private static final String TAG_AUTOMOTIVE_APP = "automotiveApp";
+ private static final String TAG_USES = "uses";
+ private static final String ATTRIBUTE_NAME = "name";
+ private static final String TYPE_VIDEO = "video";
static final String PACKAGES_DISABLED_ON_RESOURCE_OVERUSE_SEPARATOR = ";";
// Max no. of uses tags in automotiveApp XML. This is an arbitrary limit to be defensive
@@ -191,12 +200,17 @@
* launcher activities and media services.
*
* @param appsToHide A (possibly empty) list of apps (package names) to hide
+ * @param customMediaComponents A (possibly empty) list of media components (component names)
+ * that shouldn't be shown in Launcher because their applications'
+ * launcher activities will be shown
* @param appTypes Types of apps to show (e.g.: all, or media sources only)
* @param openMediaCenter Whether launcher should navigate to media center when the
* user selects a media source.
* @param launcherApps The {@link LauncherApps} system service
* @param carPackageManager The {@link CarPackageManager} system service
* @param packageManager The {@link PackageManager} system service
+ * @param videoAppPredicate Predicate that checks if a given {@link ResolveInfo} resolves
+ * to a video app. See {@link #VideoAppPredicate}. Media-services
* of such apps are always excluded.
* @param carMediaManager The {@link CarMediaManager} system service
* @return a new {@link LauncherAppsInfo}
@@ -205,11 +219,13 @@
static LauncherAppsInfo getLauncherApps(
Context context,
@NonNull Set<String> appsToHide,
+ @NonNull Set<String> customMediaComponents,
@AppTypes int appTypes,
boolean openMediaCenter,
LauncherApps launcherApps,
CarPackageManager carPackageManager,
PackageManager packageManager,
+ @NonNull Predicate<ResolveInfo> videoAppPredicate,
CarMediaManager carMediaManager,
ShortcutsListener shortcutsListener,
String mirroringAppPkgName,
@@ -226,6 +242,9 @@
packageManager.queryIntentServices(
new Intent(MediaBrowserService.SERVICE_INTERFACE),
PackageManager.GET_RESOLVED_FILTER));
+ // Exclude Media Services from Video apps from being considered. These apps should offer a
+ // normal Launcher Activity as an entry point.
+ mediaServices.removeIf(videoAppPredicate);
List<LauncherActivityInfo> availableActivities =
launcherApps.getActivityList(null, Process.myUserHandle());
@@ -235,10 +254,6 @@
Map<ComponentName, ResolveInfo> mediaServicesMap = new HashMap<>(mediaServices.size());
Set<String> mEnabledPackages = new ArraySet<>(launchablesSize);
- Set<String> customMediaComponents = Sets.newHashSet(
- context.getResources().getStringArray(
- com.android.car.media.common.R.array.custom_media_packages));
-
// Process media services
if ((appTypes & APP_TYPE_MEDIA_SERVICES) != 0) {
for (ResolveInfo info : mediaServices) {
@@ -247,8 +262,8 @@
ComponentName componentName = new ComponentName(packageName, className);
mediaServicesMap.put(componentName, info);
mEnabledPackages.add(packageName);
- if (shouldAddToLaunchables(packageManager, componentName, appsToHide,
- customMediaComponents, appTypes, APP_TYPE_MEDIA_SERVICES)) {
+ if (shouldAddToLaunchables(componentName, appsToHide, customMediaComponents,
+ appTypes, APP_TYPE_MEDIA_SERVICES)) {
final boolean isDistractionOptimized = true;
Intent intent = new Intent(Car.CAR_INTENT_ACTION_MEDIA_TEMPLATE);
@@ -281,8 +296,8 @@
ComponentName componentName = info.getComponentName();
String packageName = componentName.getPackageName();
mEnabledPackages.add(packageName);
- if (shouldAddToLaunchables(packageManager, componentName, appsToHide,
- customMediaComponents, appTypes, APP_TYPE_LAUNCHABLES)) {
+ if (shouldAddToLaunchables(componentName, appsToHide, customMediaComponents,
+ appTypes, APP_TYPE_LAUNCHABLES)) {
boolean isDistractionOptimized =
isActivityDistractionOptimized(carPackageManager, packageName,
info.getName());
@@ -319,8 +334,8 @@
String packageName = info.activityInfo.packageName;
String className = info.activityInfo.name;
ComponentName componentName = new ComponentName(packageName, className);
- if (!shouldAddToLaunchables(packageManager, componentName, appsToHide,
- customMediaComponents, appTypes, APP_TYPE_LAUNCHABLES)) {
+ if (!shouldAddToLaunchables(componentName, appsToHide, customMediaComponents,
+ appTypes, APP_TYPE_LAUNCHABLES)) {
continue;
}
boolean isDistractionOptimized =
@@ -362,52 +377,6 @@
return new LauncherAppsInfo(launchablesMap, mediaServicesMap);
}
- /**
- * Determine if the given media browse service is supported through media templates
- */
- public static boolean isMediaTemplate(PackageManager pm, ComponentName mbsComponentName) {
- Bundle metaData = null;
- try {
- metaData = pm.getServiceInfo(
- mbsComponentName,
- PackageManager.GET_META_DATA)
- .metaData;
- } catch (PackageManager.NameNotFoundException e) {
- Log.e(TAG, "Service for Component " + mbsComponentName + " was not found");
- return false;
- }
-
- if (metaData != null && metaData.containsKey(ANDROIDX_CAR_APP_LAUNCHABLE)) {
- boolean launchable = metaData.getBoolean(ANDROIDX_CAR_APP_LAUNCHABLE);
- if (Log.isLoggable(TAG, Log.DEBUG)) {
- Log.d(TAG, "MBS for " + mbsComponentName
- + " is opted " + (launchable ? "in" : "out"));
- }
- return launchable;
- }
-
- // No explicit declaration. For backward compatibility, keep MBS only for media apps
- String packageName = mbsComponentName.getPackageName();
- try {
- if (isLegacyMediaApp(pm, packageName)) {
- Log.d(TAG, "Including " + mbsComponentName + " for media app " + packageName);
- return true;
- }
- } catch (PackageManager.NameNotFoundException e) {
- Log.e(TAG, "Package " + packageName + " was not found");
- }
- Log.d(TAG, "Skipping MBS for " + mbsComponentName
- + " belonging to non media app " + packageName);
- return false;
- }
-
- /** Determine if it's a legacy media app that doesn't have a launcher activity*/
- private static boolean isLegacyMediaApp(
- PackageManager pm, String packageName) throws PackageManager.NameNotFoundException {
- // a media app doesn't have a launcher activity
- return pm.getLaunchIntentForPackage(packageName) == null;
- }
-
private static Consumer<Pair<Context, View>> buildShortcuts(String packageName,
CharSequence displayName, ShortcutsListener shortcutsListener) {
return pair -> {
@@ -588,6 +557,150 @@
return false;
}
+ /**
+ * Predicate that can be used to check if a given {@link ResolveInfo} resolves to a Video app.
+ */
+ static class VideoAppPredicate implements Predicate<ResolveInfo> {
+ private final PackageManager mPackageManager;
+
+ VideoAppPredicate(PackageManager packageManager) {
+ mPackageManager = packageManager;
+ }
+
+ @Override
+ public boolean test(ResolveInfo resolveInfo) {
+ String packageName = resolveInfo != null ? getPackageName(resolveInfo) : null;
+ if (packageName == null) {
+ Log.w(TAG, "Unable to determine packageName from resolveInfo");
+ return false;
+ }
+ List<String> automotiveAppTypes =
+ getAutomotiveAppTypes(mPackageManager, getPackageName(resolveInfo));
+ return automotiveAppTypes.contains(TYPE_VIDEO);
+ }
+
+ protected String getPackageName(ResolveInfo resolveInfo) {
+ // A valid ResolveInfo should have exactly one of these set.
+ if (resolveInfo.activityInfo != null) {
+ return resolveInfo.activityInfo.packageName;
+ }
+ if (resolveInfo.serviceInfo != null) {
+ return resolveInfo.serviceInfo.packageName;
+ }
+ if (resolveInfo.providerInfo != null) {
+ return resolveInfo.providerInfo.packageName;
+ }
+ // Unexpected case.
+ return null;
+ }
+ }
+
+
+ /**
+ * Returns whether app identified by {@code packageName} declares itself as a video app.
+ */
+ public static boolean isVideoApp(PackageManager packageManager, String packageName) {
+ return getAutomotiveAppTypes(packageManager, packageName).contains(TYPE_VIDEO);
+ }
+
+ /**
+ * Queries an app manifest and resources to determine the types of AAOS app it declares itself
+ * as.
+ *
+ * @param packageManager {@link PackageManager} to query.
+ * @param packageName App package.
+ * @return List of AAOS app-types from XML resources.
+ */
+ public static List<String> getAutomotiveAppTypes(PackageManager packageManager,
+ String packageName) {
+ ApplicationInfo appInfo;
+ Resources appResources;
+ try {
+ appInfo = packageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA);
+ appResources = packageManager.getResourcesForApplication(appInfo);
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.w(TAG, "Unexpected package not found for: " + packageName, e);
+ return new ArrayList<>();
+ }
+
+ int resourceId =
+ appInfo.metaData != null
+ ? appInfo.metaData.getInt("com.android.automotive", -1) : -1;
+ if (resourceId == -1) {
+ return new ArrayList<>();
+ }
+ try (XmlResourceParser parser = appResources.getXml(resourceId)) {
+ return parseAutomotiveAppTypes(parser);
+ }
+ }
+
+ @VisibleForTesting
+ static List<String> parseAutomotiveAppTypes(XmlPullParser parser) {
+ try {
+ // This pattern for parsing can be seen in Javadocs for XmlPullParser.
+ List<String> appTypes = new ArrayList<>();
+ ArrayDeque<String> tagStack = new ArrayDeque<>();
+ int eventType = parser.getEventType();
+ while (eventType != XmlPullParser.END_DOCUMENT) {
+ if (eventType == XmlPullParser.START_TAG) {
+ String tag = parser.getName();
+ if (Log.isLoggable(TAG, Log.VERBOSE)) {
+ Log.v(TAG, "Start tag " + tag);
+ }
+ tagStack.addFirst(tag);
+ if (!validTagStack(tagStack)) {
+ Log.w(TAG, "Invalid XML; tagStack: " + tagStack);
+ return new ArrayList<>();
+ }
+ if (TAG_USES.equals(tag)) {
+ String nameValue =
+ parser.getAttributeValue(/* namespace= */ null, ATTRIBUTE_NAME);
+ if (TextUtils.isEmpty(nameValue)) {
+ Log.w(TAG, "Invalid XML; uses tag with missing/empty name attribute");
+ return new ArrayList<>();
+ }
+ appTypes.add(nameValue);
+ if (appTypes.size() > MAX_APP_TYPES) {
+ Log.w(TAG, "Too many uses tags in automotiveApp tag");
+ return new ArrayList<>();
+ }
+ if (Log.isLoggable(TAG, Log.VERBOSE)) {
+ Log.v(TAG, "Found appType: " + nameValue);
+ }
+ }
+ } else if (eventType == XmlPullParser.END_TAG) {
+ if (Log.isLoggable(TAG, Log.VERBOSE)) {
+ Log.v(TAG, "End tag " + parser.getName());
+ }
+ tagStack.removeFirst();
+ }
+ eventType = parser.next();
+ }
+ return appTypes;
+ } catch (XmlPullParserException | IOException e) {
+ Log.w(TAG, "Unexpected exception whiling parsing XML resource", e);
+ return new ArrayList<>();
+ }
+ }
+
+ private static boolean validTagStack(ArrayDeque<String> tagStack) {
+ // Expected to be called after a new tag is pushed on this stack.
+ // Ensures that XML is of form:
+ // <automotiveApp>
+ // <uses/>
+ // <uses/>
+ // ....
+ // </automotiveApp>
+ switch (tagStack.size()) {
+ case 1:
+ return TAG_AUTOMOTIVE_APP.equals(tagStack.peekFirst());
+ case 2:
+ return TAG_USES.equals(tagStack.peekFirst());
+ default:
+ return false;
+ }
+ }
+
private static List<ResolveInfo> getDisabledActivities(Context context,
PackageManager packageManager, Set<String> enabledPackages) {
ContentResolver contentResolverForUser = context.createContextAsUser(
@@ -618,8 +731,7 @@
return disabledActivities;
}
- private static boolean shouldAddToLaunchables(PackageManager packageManager,
- @NonNull ComponentName componentName,
+ private static boolean shouldAddToLaunchables(@NonNull ComponentName componentName,
@NonNull Set<String> appsToHide,
@NonNull Set<String> customMediaComponents,
@AppTypes int appTypesToShow,
@@ -633,23 +745,11 @@
// For a media service in customMediaComponents, if its application's launcher
// activity will be shown in the Launcher, don't show the service's icon in the
// Launcher.
- if (customMediaComponents.contains(componentName.flattenToString())) {
- if ((appTypesToShow & APP_TYPE_LAUNCHABLES) != 0) {
- if (Log.isLoggable(TAG, Log.DEBUG)) {
- Log.d(TAG, "MBS for custom media app " + componentName
- + " is skipped in app launcher");
- }
- return false;
- }
- // Media switcher use case should still show
- if (Log.isLoggable(TAG, Log.DEBUG)) {
- Log.d(TAG, "MBS for custom media app " + componentName
- + " is included in media switcher");
- }
- return true;
+ if (customMediaComponents.contains(componentName.flattenToString())
+ && (appTypesToShow & APP_TYPE_LAUNCHABLES) != 0) {
+ return false;
}
- // Only Keep MBS that is a media template
- return isMediaTemplate(packageManager, componentName);
+ return true;
// Process activities
case APP_TYPE_LAUNCHABLES:
return true;
diff --git a/src/com/android/car/carlauncher/homescreen/audio/MediaViewModel.java b/src/com/android/car/carlauncher/homescreen/audio/MediaViewModel.java
index 2aafd60..21c347a 100644
--- a/src/com/android/car/carlauncher/homescreen/audio/MediaViewModel.java
+++ b/src/com/android/car/carlauncher/homescreen/audio/MediaViewModel.java
@@ -21,7 +21,6 @@
import android.app.Application;
import android.car.media.CarMediaIntents;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
@@ -49,9 +48,6 @@
import com.android.car.media.common.source.MediaSourceViewModel;
import com.android.internal.annotations.VisibleForTesting;
-import java.util.Arrays;
-import java.util.List;
-
/**
* ViewModel for media. Uses both a {@link MediaSourceViewModel} and a {@link PlaybackViewModel}
@@ -136,7 +132,6 @@
super(application);
mSourceViewModel = sourceViewModel;
mPlaybackViewModel = playbackViewModel;
-
}
@Override
@@ -247,8 +242,13 @@
private void updateModel() {
MediaSource mediaSource = mSourceViewModel.getPrimaryMediaSource().getValue();
if (mediaSourceChanged()) {
+ // Video apps are not surfaced here, even if they happen to offer MediaBrowse.
+ // Rationale is that very few apps do this and users might be confused why some
+ // apps can be controlled via widget while others can't. For Video apps, the card
+ // will switch to showing "no media playing" case.
if (mediaSource != null
- && supportsMediaWidget(mediaSource.getBrowseServiceComponentName())) {
+ && !AppLauncherUtils.isVideoApp(mContext.getPackageManager(),
+ mediaSource.getPackageName())) {
if (Log.isLoggable(TAG, Log.INFO)) {
Log.i(TAG, "Setting Media view to source "
+ mediaSource.getDisplayName(mContext));
@@ -259,11 +259,10 @@
updateMetadata();
updateProgress();
updateMediaSourceColor();
-
mOnModelUpdateListener.onModelUpdate(/* model = */ this);
} else {
- if (Log.isLoggable(TAG, Log.DEBUG)) {
- Log.d(TAG, "Not resetting media widget for apps "
+ if (Log.isLoggable(TAG, Log.INFO)) {
+ Log.i(TAG, "Not resetting media widget for video apps or apps "
+ "that do not support media browse");
}
}
@@ -271,17 +270,6 @@
}
/**
- * Ensure the app is supported in media widget. This should either be a media templated
- * app or a custom media component
- */
- private boolean supportsMediaWidget(ComponentName componentName) {
- List<String> customMediaComponents = Arrays.asList(
- mContext.getResources().getStringArray(R.array.custom_media_packages));
- return AppLauncherUtils.isMediaTemplate(getApplication().getPackageManager(), componentName)
- || customMediaComponents.contains(componentName.flattenToString());
- }
-
- /**
* Callback for the observer of the PlaybackViewModel
*/
private void updateModelMetadata() {
diff --git a/tests/src/com/android/car/carlauncher/AppLauncherUtilsTest.java b/tests/src/com/android/car/carlauncher/AppLauncherUtilsTest.java
index ad31b23..3e5d2f3 100644
--- a/tests/src/com/android/car/carlauncher/AppLauncherUtilsTest.java
+++ b/tests/src/com/android/car/carlauncher/AppLauncherUtilsTest.java
@@ -17,8 +17,6 @@
package com.android.car.carlauncher;
import static android.car.settings.CarSettings.Secure.KEY_PACKAGES_DISABLED_ON_RESOURCE_OVERUSE;
-import static android.content.pm.ApplicationInfo.CATEGORY_AUDIO;
-import static android.content.pm.ApplicationInfo.CATEGORY_VIDEO;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
import static android.content.pm.PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS;
@@ -28,6 +26,8 @@
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
@@ -49,13 +49,11 @@
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
-import android.content.pm.LauncherActivityInfo;
import android.content.pm.LauncherApps;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.content.res.Resources;
-import android.os.Bundle;
import android.os.UserHandle;
import android.provider.Settings;
import android.service.media.MediaBrowserService;
@@ -63,6 +61,7 @@
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
import org.junit.After;
import org.junit.Before;
@@ -70,16 +69,19 @@
import org.junit.runner.RunWith;
import org.mockito.ArgumentMatchers;
import org.mockito.Mock;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlPullParserFactory;
+import java.io.StringReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.function.Consumer;
-import java.util.stream.Collectors;
+import java.util.function.Predicate;
@RunWith(AndroidJUnit4.class)
@SmallTest
@@ -87,34 +89,19 @@
private static final String TEST_DISABLED_APP_1 = "com.android.car.test.disabled1";
private static final String TEST_DISABLED_APP_2 = "com.android.car.test.disabled2";
private static final String TEST_ENABLED_APP = "com.android.car.test.enabled";
- // Default media app
- private static final String TEST_MEDIA_TEMPLATE_MBS = "com.android.car.test.mbs";
- // Video app that has a MBS defined but has its own launch activity
- private static final String TEST_VIDEO_MBS = "com.android.car.test.video.mbs";
- // NDO App that has opted in its MBS to launch in car
- private static final String TEST_NDO_MBS_LAUNCHABLE = "com.android.car.test.mbs.launchable";
- // NDO App that has opted out its MBS to launch in car
- private static final String TEST_NDO_MBS_NOT_LAUNCHABLE =
- "com.android.car.test.mbs.notlaunchable";
-
- private static final String CUSTOM_MEDIA_PACKAGE = "com.android.car.radio";
- private static final String CUSTOM_MEDIA_CLASS = "com.android.car.radio.service";
- private static final String CUSTOM_MEDIA_COMPONENT = CUSTOM_MEDIA_PACKAGE
- + "/" + CUSTOM_MEDIA_CLASS;
-
+ private static final String TEST_VIDEO_APP = "com.android.car.test.video";
private static final String TEST_MIRROR_APP_PKG = "com.android.car.test.mirroring";
+ private static final Predicate<ResolveInfo> MATCH_NO_APP = (resolveInfo) -> false;
+
@Mock private Context mMockContext;
@Mock private LauncherApps mMockLauncherApps;
@Mock private PackageManager mMockPackageManager;
@Mock private AppLauncherUtils.ShortcutsListener mMockShortcutsListener;
- @Mock private Resources mResources;
-
- @Mock private LauncherActivityInfo mRadioLauncherActivityInfo;
-
private CarMediaManager mCarMediaManager;
private CarPackageManager mCarPackageManager;
+ private XmlPullParserFactory mParserFactory;
private Car mCar;
@Before
@@ -130,6 +117,9 @@
mCarMediaManager = (CarMediaManager) car.getCarManager(Car.CAR_MEDIA_SERVICE);
when(mMockContext.getPackageManager()).thenReturn(mMockPackageManager);
});
+
+ mParserFactory = XmlPullParserFactory.newInstance();
+ mParserFactory.setNamespaceAware(true);
}
@After
@@ -146,93 +136,22 @@
}
@Test
- public void testGetLauncherApps_MediaCenterAppSwitcher() {
+ public void testGetLauncherAppsWithEnableAndLaunchDisabledApps() {
mockSettingsStringCalls();
mockPackageManagerQueries();
- when(mMockContext.getResources()).thenReturn(mResources);
- when(mResources.getStringArray(eq(
- com.android.car.media.common.R.array.custom_media_packages)))
- .thenReturn(new String[]{CUSTOM_MEDIA_COMPONENT});
-
- // Setup custom media component
- when(mMockLauncherApps.getActivityList(any(), any()))
- .thenReturn(List.of(mRadioLauncherActivityInfo));
- when(mRadioLauncherActivityInfo.getComponentName())
- .thenReturn(new ComponentName(CUSTOM_MEDIA_PACKAGE, CUSTOM_MEDIA_CLASS));
- when(mRadioLauncherActivityInfo.getName())
- .thenReturn(CUSTOM_MEDIA_CLASS);
-
AppLauncherUtils.LauncherAppsInfo launcherAppsInfo = AppLauncherUtils.getLauncherApps(
mMockContext, /* appsToHide= */ new ArraySet<>(),
- /* appTypes= */ APP_TYPE_MEDIA_SERVICES,
- /* openMediaCenter= */ false, mMockLauncherApps, mCarPackageManager,
- mMockPackageManager, mCarMediaManager, mMockShortcutsListener,
- TEST_MIRROR_APP_PKG, /* mirroringAppRedirect= */ null);
-
- List<AppMetaData> appMetaData = launcherAppsInfo.getLaunchableComponentsList();
-
- // Only media apps should be present
- assertEquals(Set.of(
- TEST_MEDIA_TEMPLATE_MBS,
- TEST_NDO_MBS_LAUNCHABLE,
- CUSTOM_MEDIA_PACKAGE),
- appMetaData.stream()
- .map(am -> am.getComponentName().getPackageName())
- .collect(Collectors.toSet()));
-
- // This should include all MBS discovered
- assertEquals(5, launcherAppsInfo.getMediaServices().size());
-
- mockPmGetApplicationEnabledSetting(COMPONENT_ENABLED_STATE_ENABLED, TEST_DISABLED_APP_1,
- TEST_DISABLED_APP_2);
-
- launchAllApps(appMetaData);
-
- // Media apps should do only switching and not launch activity
- verify(mMockContext, never()).startActivity(any(), any());
- }
- @Test
- public void testGetLauncherApps_Launcher() {
- mockSettingsStringCalls();
- mockPackageManagerQueries();
-
- when(mMockContext.getResources()).thenReturn(mResources);
- when(mResources.getStringArray(eq(
- com.android.car.media.common.R.array.custom_media_packages)))
- .thenReturn(new String[]{CUSTOM_MEDIA_COMPONENT});
-
- // Setup custom media component
- when(mMockLauncherApps.getActivityList(any(), any()))
- .thenReturn(List.of(mRadioLauncherActivityInfo));
- when(mRadioLauncherActivityInfo.getComponentName())
- .thenReturn(new ComponentName(CUSTOM_MEDIA_PACKAGE, CUSTOM_MEDIA_CLASS));
- when(mRadioLauncherActivityInfo.getName())
- .thenReturn(CUSTOM_MEDIA_CLASS);
-
- AppLauncherUtils.LauncherAppsInfo launcherAppsInfo = AppLauncherUtils.getLauncherApps(
- mMockContext, /* appsToHide= */ new ArraySet<>(),
+ /* customMediaComponents= */ new ArraySet<>(),
/* appTypes= */ APP_TYPE_LAUNCHABLES + APP_TYPE_MEDIA_SERVICES,
- /* openMediaCenter= */ true, mMockLauncherApps, mCarPackageManager,
- mMockPackageManager, mCarMediaManager, mMockShortcutsListener,
+ /* openMediaCenter= */ false, mMockLauncherApps, mCarPackageManager,
+ mMockPackageManager, MATCH_NO_APP, mCarMediaManager, mMockShortcutsListener,
TEST_MIRROR_APP_PKG, /* mirroringAppRedirect= */ null);
List<AppMetaData> appMetaData = launcherAppsInfo.getLaunchableComponentsList();
+
// mMockLauncherApps is never stubbed, only services & disabled activities are expected.
-
- assertEquals(Set.of(
- TEST_MEDIA_TEMPLATE_MBS,
- TEST_NDO_MBS_LAUNCHABLE,
- CUSTOM_MEDIA_PACKAGE,
- TEST_DISABLED_APP_1,
- TEST_DISABLED_APP_2),
- appMetaData.stream()
- .map(am -> am.getComponentName().getPackageName())
- .collect(Collectors.toSet()));
-
-
- // This should include all MBS discovered
- assertEquals(5, launcherAppsInfo.getMediaServices().size());
+ assertEquals(3, appMetaData.size());
mockPmGetApplicationEnabledSetting(COMPONENT_ENABLED_STATE_ENABLED, TEST_DISABLED_APP_1,
TEST_DISABLED_APP_2);
@@ -245,13 +164,111 @@
verify(mMockPackageManager).setApplicationEnabledSetting(
eq(TEST_DISABLED_APP_2), eq(COMPONENT_ENABLED_STATE_ENABLED), eq(0));
- verify(mMockContext, times(5)).startActivity(any(), any());
+ verify(mMockContext, times(2)).startActivity(any(), any());
+ }
+
+ @Test
+ public void testGetLauncherAppsWithNotEnablingEnabledApps() {
+ mockSettingsStringCalls();
+ mockPackageManagerQueries();
+
+ AppLauncherUtils.LauncherAppsInfo launcherAppsInfo = AppLauncherUtils.getLauncherApps(
+ mMockContext, /* appsToHide= */ new ArraySet<>(),
+ /* customMediaComponents= */ new ArraySet<>(),
+ /* appTypes= */ APP_TYPE_LAUNCHABLES + APP_TYPE_MEDIA_SERVICES,
+ /* openMediaCenter= */ false, mMockLauncherApps, mCarPackageManager,
+ mMockPackageManager, MATCH_NO_APP, mCarMediaManager, mMockShortcutsListener,
+ TEST_MIRROR_APP_PKG, /* mirroringAppRedirect= */ null);
+
+ List<AppMetaData> appMetaData = launcherAppsInfo.getLaunchableComponentsList();
+
+ // mMockLauncherApps is never stubbed, only services & disabled activities are expected.
+ assertEquals(3, appMetaData.size());
+
+ mockPmGetApplicationEnabledSetting(COMPONENT_ENABLED_STATE_ENABLED, TEST_DISABLED_APP_1,
+ TEST_DISABLED_APP_2);
+
+ launchAllApps(appMetaData);
verify(mMockPackageManager, never()).setApplicationEnabledSetting(
eq(TEST_ENABLED_APP), anyInt(), eq(0));
}
+ @Test
+ public void testGetLauncherAppsWithEnabledAndVideoApps() {
+ mockSettingsStringCalls();
+ mockPackageManagerQueriesForVideo();
+ AppLauncherUtils.LauncherAppsInfo launcherAppsInfo = AppLauncherUtils.getLauncherApps(
+ mMockContext, /* appsToHide= */ new ArraySet<>(),
+ /* customMediaComponents= */ new ArraySet<>(),
+ /* appTypes= */ APP_TYPE_LAUNCHABLES + APP_TYPE_MEDIA_SERVICES,
+ /* openMediaCenter= */ false, mMockLauncherApps, mCarPackageManager,
+ mMockPackageManager, new TestVideoAppPredicate(), mCarMediaManager,
+ mMockShortcutsListener, TEST_MIRROR_APP_PKG, /* mirroringAppRedirect= */ null);
+
+
+ // mMockLauncherApps is never stubbed, only services & disabled activities are expected.
+ List<AppMetaData> appMetaData = launcherAppsInfo.getLaunchableComponentsList();
+
+ // TEST_VIDEO_APP should be filtered by TestVideoAppPredicate above.
+ assertEquals(1, appMetaData.size());
+ assertEquals(TEST_ENABLED_APP, appMetaData.get(0).getPackageName());
+ }
+
+ @Test
+ public void getAutomotiveAppTypes() {
+ // This test relies on test app's manifest & xml resources.
+ Context testContext =
+ InstrumentationRegistry.getInstrumentation().getContext();
+ assertEquals(
+ Arrays.asList("video", "media"),
+ AppLauncherUtils.getAutomotiveAppTypes(
+ testContext.getPackageManager(),
+ testContext.getPackageName()));
+ }
+
+ @Test
+ public void videoAppPredicate() {
+ // This test relies on test app's manifest & xml resources.
+ Context testContext =
+ InstrumentationRegistry.getInstrumentation().getContext();
+ Predicate<ResolveInfo> predicate =
+ new AppLauncherUtils.VideoAppPredicate(testContext.getPackageManager());
+
+ assertTrue(predicate.test(constructServiceResolveInfo(testContext.getPackageName())));
+ }
+
+ @Test
+ public void invalidAutomotiveXml() {
+ StringBuilder hugeInvalidXml = new StringBuilder("<automotiveApp>");
+ for (int i = 0; i < 65; i++) {
+ hugeInvalidXml.append("<uses name=\"video\"/>");
+ }
+ hugeInvalidXml.append("</automotiveApp>");
+
+ String[] invalidXmls = {
+ "NoTagsHere",
+ // Unknown tag.
+ "<foo/>",
+ // Manifest tag not expected.
+ "<automotiveApp><manifest/></automotiveApp>",
+ // Uses tag has missing name attribute.
+ "<automotiveApp><uses/></automotiveApp>",
+ // Uses tag has empty name attribute.
+ "<automotiveApp><uses name=\"\"/></automotiveApp>",
+ // Uses tag nested inside uses tag.
+ "<automotiveApp><uses name=\"video\"><uses name=\"media\"/></uses></automotiveApp>",
+ // Too many uses tags
+ hugeInvalidXml.toString()
+ };
+
+ for (String invalidXml : invalidXmls) {
+ List<String> appTypes =
+ AppLauncherUtils.parseAutomotiveAppTypes(createPullParser(invalidXml));
+ assertEquals(0, appTypes.size());
+ }
+ }
private void forceStopInit(ActivityManager activityManager, CarMediaManager carMediaManager,
ComponentName currentMediaComponentName, ComponentName previousMediaComponentName,
@@ -350,8 +367,7 @@
verify(activityManager).forceStopPackage(packageName);
verify(mMockShortcutsListener).onStopAppSuccess(nullable(String.class));
- verify(carMediaManager, times(2))
- .setMediaSource(eq(otherMediaComponentName), anyInt());
+ verify(carMediaManager, times(2)).setMediaSource(eq(otherMediaComponentName), anyInt());
}
@Test
@@ -376,100 +392,37 @@
verify(carMediaManager, never()).setMediaSource(any(ComponentName.class), anyInt());
}
- private void mockPackageManagerQueries() {
- // setup a media template app that uses media service
- ApplicationInfo mbsAppInfo = new ApplicationInfo();
- mbsAppInfo.category = CATEGORY_AUDIO;
- ResolveInfo mbs = constructServiceResolveInfo(TEST_MEDIA_TEMPLATE_MBS);
+ private XmlPullParser createPullParser(String xmlText) {
try {
- when(mMockPackageManager.getApplicationInfo(mbs.getComponentInfo().packageName, 0))
- .thenReturn(mbsAppInfo);
- when(mMockPackageManager.getServiceInfo(mbs.getComponentInfo().getComponentName(),
- PackageManager.GET_META_DATA))
- .thenReturn(new ServiceInfo());
- when(mMockPackageManager.getLaunchIntentForPackage(mbs.getComponentInfo().packageName))
- .thenReturn(null);
- } catch (PackageManager.NameNotFoundException e) {
- throw new RuntimeException(e);
+ XmlPullParser parser = mParserFactory.newPullParser();
+ parser.setInput(new StringReader(xmlText));
+ return parser;
+ } catch (XmlPullParserException e) {
+ fail("Unexpected failure");
+ return null;
}
+ }
- // setup a NDO Video app that has MBS but also its own activity, MBS won't be surfaced
- ApplicationInfo videoAppInfo = new ApplicationInfo();
- videoAppInfo.category = CATEGORY_VIDEO;
- ResolveInfo videoApp = constructServiceResolveInfo(TEST_VIDEO_MBS);
- try {
- when(mMockPackageManager.getApplicationInfo(videoApp.getComponentInfo().packageName,
- 0))
- .thenReturn(videoAppInfo);
- when(mMockPackageManager.getServiceInfo(videoApp.getComponentInfo().getComponentName(),
- PackageManager.GET_META_DATA))
- .thenReturn(new ServiceInfo());
- when(mMockPackageManager.getLaunchIntentForPackage(
- videoApp.getComponentInfo().packageName))
- .thenReturn(new Intent());
- } catch (PackageManager.NameNotFoundException e) {
- throw new RuntimeException(e);
- }
-
- // setup a NDO app that has MBS opted in to launch in car
- ApplicationInfo launchableMBSInfo = new ApplicationInfo();
- launchableMBSInfo.category = CATEGORY_VIDEO;
- ResolveInfo launchableMBSApp = constructServiceResolveInfo(TEST_NDO_MBS_LAUNCHABLE);
- try {
- when(mMockPackageManager.getApplicationInfo(
- launchableMBSApp.getComponentInfo().packageName,
- 0))
- .thenReturn(launchableMBSInfo);
- ServiceInfo value = new ServiceInfo();
- value.metaData = new Bundle();
-
- value.metaData.putBoolean("androidx.car.app.launchable", true);
-
- when(mMockPackageManager.getServiceInfo(
- launchableMBSApp.getComponentInfo().getComponentName(),
- PackageManager.GET_META_DATA))
- .thenReturn(value);
- when(mMockPackageManager.getLaunchIntentForPackage(
- launchableMBSApp.getComponentInfo().packageName))
- .thenReturn(new Intent());
- } catch (PackageManager.NameNotFoundException e) {
- throw new RuntimeException(e);
- }
-
- // setup a NDO app that has MBS opted out of launch in car
- ApplicationInfo notlaunchableMBSInfo = new ApplicationInfo();
- notlaunchableMBSInfo.category = CATEGORY_VIDEO;
- ResolveInfo notlaunchableMBSApp = constructServiceResolveInfo(TEST_NDO_MBS_NOT_LAUNCHABLE);
- try {
- when(mMockPackageManager.getApplicationInfo(
- notlaunchableMBSApp.getComponentInfo().packageName, 0))
- .thenReturn(notlaunchableMBSInfo);
- ServiceInfo value = new ServiceInfo();
- value.metaData = new Bundle();
-
- value.metaData.putBoolean("androidx.car.app.launchable", false);
-
- when(mMockPackageManager.getServiceInfo(
- notlaunchableMBSApp.getComponentInfo().getComponentName(),
- PackageManager.GET_META_DATA))
- .thenReturn(value);
- when(mMockPackageManager.getLaunchIntentForPackage(
- notlaunchableMBSApp.getComponentInfo().packageName))
- .thenReturn(new Intent());
- } catch (PackageManager.NameNotFoundException e) {
- throw new RuntimeException(e);
- }
-
+ private void mockPackageManagerQueriesForVideo() {
when(mMockPackageManager.queryIntentServices(any(), anyInt())).thenAnswer(args -> {
Intent intent = args.getArgument(0);
if (intent.getAction().equals(MediaBrowserService.SERVICE_INTERFACE)) {
- return Arrays.asList(mbs, videoApp, notlaunchableMBSApp, launchableMBSApp,
- constructServiceResolveInfo(CUSTOM_MEDIA_PACKAGE));
+ return Arrays.asList(
+ constructServiceResolveInfo(TEST_ENABLED_APP),
+ constructServiceResolveInfo(TEST_VIDEO_APP));
}
return new ArrayList<>();
});
+ }
- // setup activities
+ private void mockPackageManagerQueries() {
+ when(mMockPackageManager.queryIntentServices(any(), anyInt())).thenAnswer(args -> {
+ Intent intent = args.getArgument(0);
+ if (intent.getAction().equals(MediaBrowserService.SERVICE_INTERFACE)) {
+ return Collections.singletonList(constructServiceResolveInfo(TEST_ENABLED_APP));
+ }
+ return new ArrayList<>();
+ });
when(mMockPackageManager.queryIntentActivities(any(), any())).thenAnswer(args -> {
Intent intent = args.getArgument(0);
PackageManager.ResolveInfoFlags flags = args.getArgument(1);
@@ -479,14 +432,8 @@
resolveInfoList.add(constructActivityResolveInfo(TEST_DISABLED_APP_1));
resolveInfoList.add(constructActivityResolveInfo(TEST_DISABLED_APP_2));
}
- // Keep custom media component in both MBS and Activity with Launch Intent
- resolveInfoList.add(constructActivityResolveInfo(CUSTOM_MEDIA_PACKAGE));
- // Add apps which will have their own Launcher Activity
- resolveInfoList.add(constructActivityResolveInfo(TEST_VIDEO_MBS));
- resolveInfoList.add(constructActivityResolveInfo(TEST_NDO_MBS_LAUNCHABLE));
- resolveInfoList.add(constructActivityResolveInfo(TEST_NDO_MBS_NOT_LAUNCHABLE));
+ resolveInfoList.add(constructActivityResolveInfo(TEST_ENABLED_APP));
}
-
return resolveInfoList;
});
}
@@ -536,4 +483,16 @@
info.serviceInfo.applicationInfo = new ApplicationInfo();
return info;
}
+
+ /** Test sub-class of VideoAppPredicate that only matches TEST_VIDEO_APP package-name */
+ static class TestVideoAppPredicate extends AppLauncherUtils.VideoAppPredicate {
+ TestVideoAppPredicate() {
+ super(/* packageManager= */ null);
+ }
+
+ @Override
+ public boolean test(ResolveInfo resolveInfo) {
+ return TEST_VIDEO_APP.equals(super.getPackageName(resolveInfo));
+ }
+ }
}
diff --git a/tests/src/com/android/car/carlauncher/homescreen/audio/MediaViewModelTest.java b/tests/src/com/android/car/carlauncher/homescreen/audio/MediaViewModelTest.java
index 450f4bc..14252b0 100644
--- a/tests/src/com/android/car/carlauncher/homescreen/audio/MediaViewModelTest.java
+++ b/tests/src/com/android/car/carlauncher/homescreen/audio/MediaViewModelTest.java
@@ -18,23 +18,19 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
-import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.any;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.car.test.mocks.AbstractExtendedMockitoTestCase;
-import android.content.ComponentName;
import android.graphics.drawable.Drawable;
import androidx.lifecycle.MutableLiveData;
import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.car.apps.common.testutils.InstantTaskExecutorRule;
-import com.android.car.carlauncher.AppLauncherUtils;
import com.android.car.carlauncher.homescreen.HomeCardInterface;
import com.android.car.carlauncher.homescreen.ui.CardHeader;
import com.android.car.carlauncher.homescreen.ui.DescriptiveTextWithControlsView;
@@ -45,18 +41,18 @@
import com.android.car.media.common.source.MediaSource;
import com.android.car.media.common.source.MediaSourceColors;
import com.android.car.media.common.source.MediaSourceViewModel;
-import com.android.dx.mockito.inline.extended.ExtendedMockito;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-@RunWith(AndroidJUnit4.class)
-public class MediaViewModelTest extends AbstractExtendedMockitoTestCase {
+@RunWith(JUnit4.class)
+public class MediaViewModelTest {
private static final CharSequence APP_NAME = "test app name";
private static final Drawable APP_ICON = null;
@@ -105,12 +101,6 @@
public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
private int mSeekBarMax;
- @Override
- protected void onSessionBuilder(
- AbstractExtendedMockitoTestCase.CustomMockitoSessionBuilder session) {
- session.spyStatic(AppLauncherUtils.class);
- }
-
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
@@ -152,13 +142,6 @@
when(mMetadata.getSubtitle()).thenReturn(ARTIST_NAME);
when(mMetadata.getTitle()).thenReturn(SONG_TITLE);
- when(mMediaSource.getBrowseServiceComponentName())
- .thenReturn(ComponentName.createRelative("com.test", ".mbs"));
-
- // ensure media source is considered a legacy media app
- ExtendedMockito.doReturn(Boolean.TRUE)
- .when(() -> AppLauncherUtils.isMediaTemplate(any(), any()));
-
mLiveMediaSource.setValue(mMediaSource);
mLiveMetadata.setValue(mMetadata);
@@ -179,61 +162,9 @@
when(mMediaSource.getDisplayName(any())).thenReturn(APP_NAME);
when(mMediaSource.getIcon()).thenReturn(APP_ICON);
- when(mMediaSource.getBrowseServiceComponentName())
- .thenReturn(ComponentName.createRelative("com.test", ".mbs"));
-
- // ensure media source is considered a legacy media app
- ExtendedMockito.doReturn(Boolean.TRUE)
- .when(() -> AppLauncherUtils.isMediaTemplate(any(), any()));
-
mLiveMediaSource.setValue(mMediaSource);
- verify(mOnModelUpdateListener).onModelUpdate(mMediaViewModel);
- CardHeader header = mMediaViewModel.getCardHeader();
- assertEquals(header.getCardTitle(), APP_NAME);
- assertNull(header.getCardIcon());
- DescriptiveTextWithControlsView content =
- (DescriptiveTextWithControlsView) mMediaViewModel.getCardContent();
- assertEquals(content.getTitle().toString(), "");
- assertEquals(content.getTitle().toString(), "");
-
- }
-
- @Test
- public void changeSourceOnlyNonLegacyMediaApp_doesNotCallPresenter() {
- when(mMediaSource.getDisplayName(any())).thenReturn(APP_NAME);
- when(mMediaSource.getIcon()).thenReturn(APP_ICON);
-
- when(mMediaSource.getBrowseServiceComponentName())
- .thenReturn(ComponentName.createRelative("com.test", ".mbs"));
-
- // not a legacy media app
- ExtendedMockito.doReturn(Boolean.FALSE)
- .when(() -> AppLauncherUtils.isMediaTemplate(any(), any()));
-
- mLiveMediaSource.setValue(mMediaSource);
-
- verify(mOnModelUpdateListener, never()).onModelUpdate(any());
- // Card does not get updated.
- assertNull(mMediaViewModel.getCardHeader());
-
- }
- @Test
- public void changeSourceToCustomMediaComponentApp_updatesModel() {
- when(mMediaSource.getDisplayName(any())).thenReturn(APP_NAME);
- when(mMediaSource.getIcon()).thenReturn(APP_ICON);
-
- // Radio is a custom component app
- when(mMediaSource.getBrowseServiceComponentName())
- .thenReturn(ComponentName.createRelative("com.android.car.radio", ".service"));
-
- // not legacy media app
- ExtendedMockito.doReturn(Boolean.TRUE)
- .when(() -> AppLauncherUtils.isMediaTemplate(any(), any()));
-
- mLiveMediaSource.setValue(mMediaSource);
-
- verify(mOnModelUpdateListener).onModelUpdate(mMediaViewModel);
+ verify(mOnModelUpdateListener, times(2)).onModelUpdate(mMediaViewModel);
CardHeader header = mMediaViewModel.getCardHeader();
assertEquals(header.getCardTitle(), APP_NAME);
assertNull(header.getCardIcon());
@@ -293,4 +224,3 @@
assertEquals(seekBarViewModel.getSeekBarColor(), COLORS);
}
}
-