diff options
62 files changed, 265 insertions, 278 deletions
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml index 9207dde7b..8aa65a4fe 100644 --- a/res/values-af/strings.xml +++ b/res/values-af/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"Program is nie geïnstalleer nie."</string> <string name="activity_not_available" msgid="7456344436509528827">"Program is nie beskikbaar nie"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Afgelaaide program in veiligmodus gedeaktiveer"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Legstukke"</string> <string name="widget_adder" msgid="3201040140710381657">"Legstukke"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Wys Mem"</string> diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml index 82765c231..032610965 100644 --- a/res/values-am/strings.xml +++ b/res/values-am/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"መተግበሪያ አልተጫነም።"</string> <string name="activity_not_available" msgid="7456344436509528827">"መተግበሪያ አይገኝም"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"የወረደው መተግበሪያ ደህንነቱ በተጠበቀ ሁኔታ ውስጥ ተሰናክሏል"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"ምግብሮች በደህንነቱ የተጠበቀ ሁኔታ ተሰናክለዋል"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"ፍርግሞች"</string> <string name="widget_adder" msgid="3201040140710381657">"ፍርግሞች"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"ማህደረ ማስታወሻ አሳይ"</string> diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 5d4ae420e..919f0d020 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"لم يتم تثبيت التطبيق."</string> <string name="activity_not_available" msgid="7456344436509528827">"التطبيق ليس متاحًا"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"تم تعطيل التطبيق الذي تم تنزيله في الوضع الآمن"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"الأدوات معطلة في الوضع الآمن"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"الأدوات"</string> <string name="widget_adder" msgid="3201040140710381657">"الأدوات"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"عرض الذاكرة"</string> diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index 1bdbb9c39..6654f1dc0 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Приложението не е инсталирано."</string> <string name="activity_not_available" msgid="7456344436509528827">"Приложението не е налично"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Изтегленото приложение е деактивирано в безопасния режим"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Приспособленията са деактивирани в безопасния режим"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Приспособления"</string> <string name="widget_adder" msgid="3201040140710381657">"Приспособления"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Показване на паметта"</string> diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 9cb31d75b..019e82f88 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"L\'aplicació no s\'ha instal·lat."</string> <string name="activity_not_available" msgid="7456344436509528827">"L\'aplicació no està disponible."</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"L\'aplicació que has baixat està desactivada al mode segur."</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"En Mode segur, els widgets estan desactivats."</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgets"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgets"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Mostra la memòria"</string> diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index f5a055496..4b05436d4 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"Aplikace není nainstalována."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplikace není k dispozici."</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Stažená aplikace je v nouzovém režimu zakázána"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgety"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgety"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Zobrazit Mem"</string> diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index a9ded74ca..d5352f20e 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"Appen er ikke installeret."</string> <string name="activity_not_available" msgid="7456344436509528827">"Appen er ikke tilgængelig"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Downloadet app er deaktiveret i sikker tilstand"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgets"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgets"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Vis Mem"</string> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 5bf1a7c00..7e4ae4773 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"App ist nicht installiert."</string> <string name="activity_not_available" msgid="7456344436509528827">"App nicht verfügbar"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Heruntergeladene App im abgesicherten Modus deaktiviert"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widgets im abgesicherten Modus deaktiviert"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgets"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgets"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Speicher anzeigen"</string> diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 49163379e..5a3633261 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Η εφαρμογή δεν έχει εγκατασταθεί."</string> <string name="activity_not_available" msgid="7456344436509528827">"Η εφαρμογή δεν είναι διαθέσιμη"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Η λήψη εφαρμογών απενεργοποήθηκε στην Ασφαλή λειτουργία"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Τα γραφικά στοιχεία απενεργοποιήθηκαν στην ασφαλή λειτουργία"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Γραφικά στοιχεία"</string> <string name="widget_adder" msgid="3201040140710381657">"Γραφικά στοιχεία"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Εμφάνιση Mem"</string> diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index 53b4620bb..7e212224c 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"App isn\'t installed."</string> <string name="activity_not_available" msgid="7456344436509528827">"App isn\'t available"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Downloaded app disabled in Safe mode"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widgets disabled in Safe mode"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgets"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgets"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Show Mem"</string> diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml index 53b4620bb..7e212224c 100644 --- a/res/values-en-rIN/strings.xml +++ b/res/values-en-rIN/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"App isn\'t installed."</string> <string name="activity_not_available" msgid="7456344436509528827">"App isn\'t available"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Downloaded app disabled in Safe mode"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widgets disabled in Safe mode"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgets"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgets"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Show Mem"</string> diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index dd5575b80..dc43f2d82 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"No se instaló la aplicación."</string> <string name="activity_not_available" msgid="7456344436509528827">"La aplicación no está disponible."</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Aplicación descargada inhabilitada en modo seguro"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgets"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgets"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Mostrar memoria"</string> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index e66b79e14..67c283a02 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"La aplicación no está instalada."</string> <string name="activity_not_available" msgid="7456344436509528827">"La aplicación no está disponible"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Aplicación descargada inhabilitada en modo seguro"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widgets inhabilitados en modo seguro"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgets"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgets"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Mostrar memoria"</string> diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml index bd70aa4a7..1b9f1b793 100644 --- a/res/values-et-rEE/strings.xml +++ b/res/values-et-rEE/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Rakendus pole installitud."</string> <string name="activity_not_available" msgid="7456344436509528827">"Rakendus ei ole saadaval"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Allalaetud rakendus on turvarežiimis keelatud"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Turvarežiimis on vidinad keelatud"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Vidinad"</string> <string name="widget_adder" msgid="3201040140710381657">"Vidinad"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Mälu kuvamine"</string> diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 5b428ccfa..c765d8fa0 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"برنامه نصب نشده است."</string> <string name="activity_not_available" msgid="7456344436509528827">"برنامه در دسترس نیست"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"برنامه دانلود شده در حالت ایمن غیرفعال شد"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"ابزارکها"</string> <string name="widget_adder" msgid="3201040140710381657">"ابزارکها"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"نمایش Mem"</string> diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index 63eb3f575..0004501c3 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Sovellusta ei ole asennettu."</string> <string name="activity_not_available" msgid="7456344436509528827">"Sovellus ei ole käytettävissä"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Ladattu sovellus poistettiin käytöstä suojatussa tilassa"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widgetit poistettu käytöstä vikasietotilassa"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgetit"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgetit"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Näytä muisti"</string> diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index fb78002b1..c1070f2ea 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"L\'application n\'est pas installée."</string> <string name="activity_not_available" msgid="7456344436509528827">"Application indisponible"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"L\'application téléchargée est désactivée en mode sécurisé."</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgets"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgets"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Afficher la mémoire"</string> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index ce657b9cd..064d751ae 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"L\'application n\'est pas installée."</string> <string name="activity_not_available" msgid="7456344436509528827">"Application indisponible"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"L\'application téléchargée est désactivée en mode sécurisé."</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgets"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgets"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Afficher la mémoire"</string> diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index 7bf9c85f8..f14eff7cf 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"एप्लिकेशन इंस्टॉल नहीं है."</string> <string name="activity_not_available" msgid="7456344436509528827">"ऐप्स उपलब्ध नहीं है"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"डाउनलोड किए गए ऐप्स सुरक्षित मोड में अक्षम है"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"विजेट सुरक्षित मोड में अक्षम हैं"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"शॉर्टकट"</string> <string name="widget_adder" msgid="3201040140710381657">"शॉर्टकट"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"मेमोरी दिखाएं"</string> diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index 62c19165e..aa016484f 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Aplikacija nije instalirana."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplikacija nije dostupna"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Preuzeta aplikacija onemogućena je u Sigurnom načinu rada"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widgeti su onemogućeni u Sigurnom načinu rada"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgeti"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgeti"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Prikaži mem"</string> diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 0dcd5df2b..4416ab0aa 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Az alkalmazás nincs telepítve."</string> <string name="activity_not_available" msgid="7456344436509528827">"Az alkalmazás nem érhető el"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"A letöltött alkalmazás Csökkentett módban ki van kapcsolva"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"A modulok ki vannak kapcsolva Csökkentett módban"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Modulok"</string> <string name="widget_adder" msgid="3201040140710381657">"Modulok"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Mem. megjelenítése"</string> diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml index bae306d56..9402a4265 100644 --- a/res/values-hy-rAM/strings.xml +++ b/res/values-hy-rAM/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"Ծրագիրը տեղադրված չէ:"</string> <string name="activity_not_available" msgid="7456344436509528827">"Հավելվածը հասանելի չէ"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Ներբեռնված ծրագիրն անջատված է Անվտանգ ռեժիմում"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Վիջեթներ"</string> <string name="widget_adder" msgid="3201040140710381657">"Վիջեթներ"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Ցուցադրել մեմը"</string> diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index b8f6d9642..2eb88c712 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Aplikasi tidak dipasang."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplikasi tidak tersedia"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Aplikasi yang diunduh dinonaktifkan dalam mode Aman"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widget dinonaktifkan dalam mode Aman"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widget"</string> <string name="widget_adder" msgid="3201040140710381657">"Widget"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Tampilkan Memori"</string> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 7cd03a8e0..aaddcfc13 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"App non installata."</string> <string name="activity_not_available" msgid="7456344436509528827">"App non disponibile"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"L\'app scaricata è stata disattivata in modalità provvisoria"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widget disabilitati in modalità provvisoria"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widget"</string> <string name="widget_adder" msgid="3201040140710381657">"Widget"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Mostra Mem"</string> diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 44dfac752..fc059e05e 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"האפליקציה לא מותקנת."</string> <string name="activity_not_available" msgid="7456344436509528827">"האפליקציה אינה זמינה"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"אפליקציה שהורדת הושבתה במצב בטוח"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"ווידג\'טים מושבתים במצב בטוח"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"רכיבי ווידג\'ט"</string> <string name="widget_adder" msgid="3201040140710381657">"רכיבי ווידג\'ט"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"הצג זכרון"</string> diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index e52a4ab05..d8ee943be 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"このアプリはインストールされていません。"</string> <string name="activity_not_available" msgid="7456344436509528827">"このアプリは使用できません"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"ダウンロードしたアプリは、セーフモードでは無効です"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"セーフモードではウィジェットは無効です"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"ウィジェット"</string> <string name="widget_adder" msgid="3201040140710381657">"ウィジェット"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"メモリーを表示"</string> diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml index 5ac936c1c..809233195 100644 --- a/res/values-ka-rGE/strings.xml +++ b/res/values-ka-rGE/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"აპი არ არის დაყენებული."</string> <string name="activity_not_available" msgid="7456344436509528827">"აპი მიუწვდომელია"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"უსაფრთხო რეჟიმში ჩამოტვირთული აპი გაუქმებულია"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"ვიჯეტები"</string> <string name="widget_adder" msgid="3201040140710381657">"ვიჯეტები"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Mem-ის ჩვენება"</string> diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml index 0aec2b02d..390f0ee7b 100644 --- a/res/values-km-rKH/strings.xml +++ b/res/values-km-rKH/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"មិនបានដំឡើងកម្មវិធី។"</string> <string name="activity_not_available" msgid="7456344436509528827">"មិនមានកម្មវិធី"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"បានបិទកម្មវិធីដែលបានទាញយកក្នុងរបៀបសុវត្ថិភាព"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"បានបិទធាតុក្រាហ្វិកក្នុងរបៀបសុវត្ថិភាព"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"ធាតុក្រាហ្វិក"</string> <string name="widget_adder" msgid="3201040140710381657">"ធាតុក្រាហ្វិក"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"បង្ហាញ Mem"</string> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 88c4dedea..d4702838c 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"앱이 설치되지 않았습니다."</string> <string name="activity_not_available" msgid="7456344436509528827">"앱을 사용할 수 없음"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"다운로드한 앱은 안전 모드에서 사용할 수 없습니다."</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"안전 모드에서 위젯 사용 중지됨"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"위젯"</string> <string name="widget_adder" msgid="3201040140710381657">"위젯"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"메모리 표시"</string> diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml index 41e41cef1..935e99768 100644 --- a/res/values-lo-rLA/strings.xml +++ b/res/values-lo-rLA/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"ແອັບຯບໍ່ໄດ້ຖືກຕິດຕັ້ງ."</string> <string name="activity_not_available" msgid="7456344436509528827">"ແອັບຯໃຊ້ບໍ່ໄດ້"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"ແອັບຯທີ່ດາວໂຫລດແລ້ວຖືກປິດການນຳໃຊ້ໃນ Safe mode"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"ວິດເຈັດ"</string> <string name="widget_adder" msgid="3201040140710381657">"ວິດເຈັດ"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"ສະແດງຄວາມຈຳ"</string> diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index 145b70018..6e47f677d 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Programa neįdiegta."</string> <string name="activity_not_available" msgid="7456344436509528827">"Programa nepasiekiama"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Atsisiųsta programa išjungta Saugos režimu"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Valdikliai išjungti Saugiame režime"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Valdikliai"</string> <string name="widget_adder" msgid="3201040140710381657">"Valdikliai"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Rodyti atmintinę"</string> diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index af591e012..4079331ee 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Lietotne nav instalēta."</string> <string name="activity_not_available" msgid="7456344436509528827">"Lietotne nav pieejama."</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Lejupielādētā lietotne ir atspējota drošajā režīmā."</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Logrīki atspējoti drošajā režīmā"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Logrīki"</string> <string name="widget_adder" msgid="3201040140710381657">"Logrīki"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Rādīt atmiņu"</string> diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml index faa52764d..a22b8fc28 100644 --- a/res/values-mn-rMN/strings.xml +++ b/res/values-mn-rMN/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Апп суугаагүй байна."</string> <string name="activity_not_available" msgid="7456344436509528827">"Апп-г ашиглах боломжгүй"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Татаж авсан апп-г Аюулгүй горим дотроос идэвхгүйжүүлсэн"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Safe горимд виджетүүдийг идэвхгүйжүүлсэн"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Виджет"</string> <string name="widget_adder" msgid="3201040140710381657">"Виджет"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Мем харуулах"</string> diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml index d80feb9c3..1770e891f 100644 --- a/res/values-ms-rMY/strings.xml +++ b/res/values-ms-rMY/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"Apl tidak dipasang."</string> <string name="activity_not_available" msgid="7456344436509528827">"Apl tidak tersedia"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Apl yang dimuat turun dilumpuhkan dalam mod Selamat"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Widget"</string> <string name="widget_adder" msgid="3201040140710381657">"Widget"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Papar Mem"</string> diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index d0580a7bf..6211361b3 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"Appen er ikke installert."</string> <string name="activity_not_available" msgid="7456344436509528827">"Appen er ikke tilgjengelig"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"En nedlastet app er deaktivert i sikker modus"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Moduler"</string> <string name="widget_adder" msgid="3201040140710381657">"Moduler"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Vis minne"</string> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index be588b211..3e0f6408f 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"App is niet geïnstalleerd."</string> <string name="activity_not_available" msgid="7456344436509528827">"App is niet beschikbaar"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Gedownloade app uitgeschakeld in veilige modus"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widgets uitgeschakeld in Veilige modus"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgets"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgets"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Geheugen weergeven"</string> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 793a37190..ee48b2441 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Aplikacja nie jest zainstalowana."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplikacja niedostępna"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Pobrana aplikacja została wyłączona w trybie awaryjnym"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widżety są wyłączone w trybie bezpiecznym"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widżety"</string> <string name="widget_adder" msgid="3201040140710381657">"Widżety"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Pokaż pamięć"</string> diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 11acb47db..e19fceac1 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"A aplicação não está instalada."</string> <string name="activity_not_available" msgid="7456344436509528827">"A aplicação não está disponível"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Aplicação transferida desativada no Modo de segurança"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widgets desativados no Modo de segurança"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgets"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgets"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Mostrar mem"</string> diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 64b9bb12f..355e71a49 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"O app não está instalado."</string> <string name="activity_not_available" msgid="7456344436509528827">"O app não está disponível"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"App transferido por download desativado no modo de segurança"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgets"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgets"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Mostrar memória"</string> diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 4e36a66bc..a50939930 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Aplicația nu este instalată."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplicația nu este disponibilă"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Aplicația descărcată este dezactivată în modul de siguranță"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widgeturile sunt dezactivate în modul de siguranță"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgeturi"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgeturi"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Afișați memoria"</string> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index c0ee48cea..7cbd9fa83 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"Приложение удалено"</string> <string name="activity_not_available" msgid="7456344436509528827">"Приложение недоступно"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Скачанное приложение отключено в безопасном режиме"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Виджеты"</string> <string name="widget_adder" msgid="3201040140710381657">"Виджеты"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Сведения о памяти"</string> diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index e984278c3..e3c242d05 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"Aplikácia nie je nainštalovaná."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplikácia nie je k dispozícii"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Stiahnutá aplikácia je v núdzovom režime zakázaná"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Miniaplikácie"</string> <string name="widget_adder" msgid="3201040140710381657">"Miniaplikácie"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Zobraziť pamäť"</string> diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index 804779166..807b1b436 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"Aplikacija ni nameščena."</string> <string name="activity_not_available" msgid="7456344436509528827">"Aplikacija ni na voljo"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Prenesena aplikacija je onemogočena v Varnem načinu"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Pripomočki"</string> <string name="widget_adder" msgid="3201040140710381657">"Pripomočki"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Pokaži pomnilnik"</string> diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index 31430fe4a..3509252e7 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Апликација није инсталирана."</string> <string name="activity_not_available" msgid="7456344436509528827">"Апликација није доступна"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Преузета апликација је онемогућена у Безбедном режиму"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Виџети су онемогућени у Безбедном режиму"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Виџети"</string> <string name="widget_adder" msgid="3201040140710381657">"Виџети"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Прикажи меморију"</string> diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 7f2af8a74..572309da3 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Appen är inte installerad."</string> <string name="activity_not_available" msgid="7456344436509528827">"Appen är inte tillgänglig"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Den hämtade appen inaktiverades i säkert läge"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Widgets är inaktiverade i felsäkert läge"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Widgetar"</string> <string name="widget_adder" msgid="3201040140710381657">"Widgetar"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Visa Mem"</string> diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml index 485157b6a..0284679c9 100644 --- a/res/values-sw/strings.xml +++ b/res/values-sw/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"Programu haijasakinishwa."</string> <string name="activity_not_available" msgid="7456344436509528827">"Programu haipatikani"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Programu iliyopakuliwa imezimwa katika Hali Salama"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Wijeti"</string> <string name="widget_adder" msgid="3201040140710381657">"Wijeti"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Onyesha Kumbukumbu"</string> diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index 26c72f42c..bc9ddfb79 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"ไม่ได้ติดตั้งแอป"</string> <string name="activity_not_available" msgid="7456344436509528827">"แอปไม่พร้อมใช้งาน"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"แอปที่ดาวน์โหลดถูกปิดในโหมดปลอดภัย"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"มีการปิดใช้งานวิดเจ็ตในเซฟโหมด"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"วิดเจ็ต"</string> <string name="widget_adder" msgid="3201040140710381657">"วิดเจ็ต"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"แสดง Mem"</string> diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml index 27481be93..9078d159c 100644 --- a/res/values-tl/strings.xml +++ b/res/values-tl/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Hindi naka-install ang app."</string> <string name="activity_not_available" msgid="7456344436509528827">"Hindi available ang app"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Naka-disable ang na-download na app sa Safe mode"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Naka-disable ang mga widget sa Safe mode"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Mga Widget"</string> <string name="widget_adder" msgid="3201040140710381657">"Mga Widget"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Ipakita ang Mem"</string> diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 3bea49669..b71748ef1 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"Uygulama yüklü değil."</string> <string name="activity_not_available" msgid="7456344436509528827">"Uygulama kullanılamıyor"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"İndirilen uygulama Güvenli modda devre dışı bırakıldı"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"Widget\'lar"</string> <string name="widget_adder" msgid="3201040140710381657">"Widget\'lar"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Belleği Göster"</string> diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 86ca01b3c..78cda535f 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Додаток видалено."</string> <string name="activity_not_available" msgid="7456344436509528827">"Додаток недоступний"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Завантажений додаток вимкнено в безпечному режимі"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"У безпечному режимі віджети вимкнено"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Віджети"</string> <string name="widget_adder" msgid="3201040140710381657">"Віджети"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Показати пам’ять"</string> diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index b8d006386..61715c834 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Ứng dụng chưa được cài đặt."</string> <string name="activity_not_available" msgid="7456344436509528827">"Ứng dụng không có sẵn"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Ứng dụng đã tải xuống bị tắt ở chế độ An toàn"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Tiện ích con bị vô hiệu hóa ở chế độ an toàn"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Tiện ích con"</string> <string name="widget_adder" msgid="3201040140710381657">"Tiện ích con"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Hiển thị bộ nhớ"</string> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index a0982359a..30e34b901 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -26,6 +26,8 @@ <string name="activity_not_found" msgid="8071924732094499514">"未安装该应用。"</string> <string name="activity_not_available" msgid="7456344436509528827">"应用不可用"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"安全模式下不允许使用下载的此应用"</string> + <!-- no translation found for safemode_widget_error (4863470563535682004) --> + <skip /> <string name="widgets_tab_label" msgid="2921133187116603919">"小部件"</string> <string name="widget_adder" msgid="3201040140710381657">"小部件"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"显示内存空间"</string> diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index 796c72e53..3656e2e22 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"尚未安裝應用程式。"</string> <string name="activity_not_available" msgid="7456344436509528827">"目前無法使用這個應用程式"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"在安全模式中無法使用「已下載的應用程式」功能"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"在安全模式下無法使用小工具"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"小工具"</string> <string name="widget_adder" msgid="3201040140710381657">"小工具"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"顯示記憶體"</string> diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index ff3fa8c18..f9fdaa490 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"應用程式未安裝。"</string> <string name="activity_not_available" msgid="7456344436509528827">"應用程式目前無法使用"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"在安全模式中無法使用「已下載的應用程式」功能"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"在安全模式下無法使用小工具"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"小工具"</string> <string name="widget_adder" msgid="3201040140710381657">"小工具"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"顯示記憶體"</string> diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml index 891f6723a..79f8b5407 100644 --- a/res/values-zu/strings.xml +++ b/res/values-zu/strings.xml @@ -26,6 +26,7 @@ <string name="activity_not_found" msgid="8071924732094499514">"Uhlelo lokusebenza alufakiwe."</string> <string name="activity_not_available" msgid="7456344436509528827">"Uhlelo lokusebenza alutholakali"</string> <string name="safemode_shortcut_error" msgid="9160126848219158407">"Uhlelo lokusebenza olulandiwe lukhutshaziwe kumodi ephephile"</string> + <string name="safemode_widget_error" msgid="4863470563535682004">"Amawijethi akhutshaziwe kwimodi yokuphepha"</string> <string name="widgets_tab_label" msgid="2921133187116603919">"Amawijethi"</string> <string name="widget_adder" msgid="3201040140710381657">"Amawijethi"</string> <string name="toggle_weight_watcher" msgid="5645299835184636119">"Bonisa i-Mem"</string> diff --git a/src/com/android/launcher3/AppsCustomizePagedView.java b/src/com/android/launcher3/AppsCustomizePagedView.java index 1bd290777..7f3b7fb35 100644 --- a/src/com/android/launcher3/AppsCustomizePagedView.java +++ b/src/com/android/launcher3/AppsCustomizePagedView.java @@ -728,7 +728,8 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen !(target instanceof DeleteDropTarget) && !(target instanceof Folder))) { // Exit spring loaded mode if we have not successfully dropped or have not handled the // drop in Workspace - mLauncher.exitSpringLoadedDragMode(); + mLauncher.exitSpringLoadedDragModeDelayed(true, + Launcher.EXIT_SPRINGLOADED_MODE_SHORT_TIMEOUT, null); mLauncher.unlockScreenOrientation(false); } else { mLauncher.unlockScreenOrientation(false); diff --git a/src/com/android/launcher3/DeleteDropTarget.java b/src/com/android/launcher3/DeleteDropTarget.java index 05e8906cb..ea058ea71 100644 --- a/src/com/android/launcher3/DeleteDropTarget.java +++ b/src/com/android/launcher3/DeleteDropTarget.java @@ -21,8 +21,6 @@ import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; import android.content.ComponentName; import android.content.Context; -import android.content.Intent; -import android.content.pm.ResolveInfo; import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; @@ -41,12 +39,8 @@ import android.view.animation.AnimationUtils; import android.view.animation.DecelerateInterpolator; import android.view.animation.LinearInterpolator; -import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.UserHandleCompat; -import java.util.List; -import java.util.Set; - public class DeleteDropTarget extends ButtonDropTarget { private static int DELETE_ANIMATION_DURATION = 285; private static int FLING_DELETE_ANIMATION_DURATION = 350; @@ -266,7 +260,7 @@ public class DeleteDropTarget extends ButtonDropTarget { public void run() { completeDrop(d); mSearchDropTargetBar.onDragEnd(); - mLauncher.exitSpringLoadedDragMode(); + mLauncher.exitSpringLoadedDragModeDelayed(true, 0, null); } }; dragLayer.animateView(d.dragView, from, to, scale, 1f, 1f, 0.1f, 0.1f, diff --git a/src/com/android/launcher3/DragController.java b/src/com/android/launcher3/DragController.java index 6d0a2be63..480dce999 100644 --- a/src/com/android/launcher3/DragController.java +++ b/src/com/android/launcher3/DragController.java @@ -26,10 +26,16 @@ import android.graphics.Rect; import android.os.Handler; import android.os.IBinder; import android.util.Log; -import android.view.*; +import android.view.HapticFeedbackConstants; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.VelocityTracker; +import android.view.View; +import android.view.ViewConfiguration; import android.view.inputmethod.InputMethodManager; import java.util.ArrayList; +import java.util.HashSet; /** * Class for initiating a drag within a view or across multiple views. @@ -318,18 +324,17 @@ public class DragController { } endDrag(); } - public void onAppsRemoved(final ArrayList<String> packageNames, ArrayList<AppInfo> appInfos) { + public void onAppsRemoved(final ArrayList<String> packageNames, HashSet<ComponentName> cns) { // Cancel the current drag if we are removing an app that we are dragging if (mDragObject != null) { Object rawDragInfo = mDragObject.dragInfo; if (rawDragInfo instanceof ShortcutInfo) { ShortcutInfo dragInfo = (ShortcutInfo) rawDragInfo; - for (AppInfo info : appInfos) { + for (ComponentName componentName : cns) { // Added null checks to prevent NPE we've seen in the wild - if (dragInfo != null && - dragInfo.intent != null && info != null) { + if (dragInfo != null && dragInfo.intent != null) { ComponentName cn = dragInfo.intent.getComponent(); - boolean isSameComponent = cn != null && (cn.equals(info.componentName) || + boolean isSameComponent = cn != null && (cn.equals(componentName) || packageNames.contains(cn.getPackageName())); if (isSameComponent) { cancelDrag(); diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index f0129683a..309837fe6 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -126,6 +126,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; @@ -2153,7 +2154,6 @@ public class Launcher extends Activity mWorkspace = null; mDragController = null; - PackageInstallerCompat.getInstance(this).onStop(); LauncherAnimUtils.onDestroyActivity(); if (mLauncherCallbacks != null) { @@ -4945,33 +4945,54 @@ public class Launcher extends Activity return; } - if (mWorkspace != null) { - mWorkspace.updateShortcutsAndWidgets(apps); - } - if (!LauncherAppState.isDisableAllApps() && mAppsCustomizeContent != null) { mAppsCustomizeContent.updateApps(apps); } } + @Override + public void bindWidgetsRestored(final ArrayList<LauncherAppWidgetInfo> widgets) { + Runnable r = new Runnable() { + public void run() { + bindWidgetsRestored(widgets); + } + }; + if (waitUntilResume(r)) { + return; + } + mWorkspace.widgetsRestored(widgets); + } + /** * Some shortcuts were updated in the background. * * Implementation of the method from LauncherModel.Callbacks. */ - public void bindShortcutsUpdated(final ArrayList<ShortcutInfo> shortcuts) { + @Override + public void bindShortcutsChanged(final ArrayList<ShortcutInfo> updated, + final ArrayList<ShortcutInfo> removed, final UserHandleCompat user) { Runnable r = new Runnable() { public void run() { - bindShortcutsUpdated(shortcuts); + bindShortcutsChanged(updated, removed, user); } }; if (waitUntilResume(r)) { return; } - if (mWorkspace != null) { - mWorkspace.updateShortcuts(shortcuts); + if (!updated.isEmpty()) { + mWorkspace.updateShortcuts(updated); + } + + if (!removed.isEmpty()) { + HashSet<ComponentName> removedComponents = new HashSet<ComponentName>(); + for (ShortcutInfo si : removed) { + removedComponents.add(si.getTargetComponent()); + } + mWorkspace.removeItemsByComponentName(removedComponents, user); + // Notify the drag controller + mDragController.onAppsRemoved(new ArrayList<String>(), removedComponents); } } @@ -5022,19 +5043,23 @@ public class Launcher extends Activity } if (reason == 0) { + HashSet<ComponentName> removedComponents = new HashSet<ComponentName>(); + for (AppInfo info : appInfos) { + removedComponents.add(info.componentName); + } if (!packageNames.isEmpty()) { mWorkspace.removeItemsByPackageName(packageNames, user); } - if (!appInfos.isEmpty()) { - mWorkspace.removeItemsByApplicationInfo(appInfos, user); + if (!removedComponents.isEmpty()) { + mWorkspace.removeItemsByComponentName(removedComponents, user); } + // Notify the drag controller + mDragController.onAppsRemoved(packageNames, removedComponents); + } else { mWorkspace.disableShortcutsByPackageName(packageNames, user, reason); } - // Notify the drag controller - mDragController.onAppsRemoved(packageNames, appInfos); - // Update AllApps if (!LauncherAppState.isDisableAllApps() && mAppsCustomizeContent != null) { diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java index 893d49fcc..03ab94bab 100644 --- a/src/com/android/launcher3/LauncherAppState.java +++ b/src/com/android/launcher3/LauncherAppState.java @@ -29,6 +29,7 @@ import android.os.Handler; import android.util.Log; import com.android.launcher3.compat.LauncherAppsCompat; +import com.android.launcher3.compat.PackageInstallerCompat; import com.android.launcher3.compat.PackageInstallerCompat.PackageInstallInfo; import java.lang.ref.WeakReference; @@ -134,6 +135,7 @@ public class LauncherAppState implements DeviceProfile.DeviceProfileCallbacks { sContext.unregisterReceiver(mModel); final LauncherAppsCompat launcherApps = LauncherAppsCompat.getInstance(sContext); launcherApps.removeOnAppsChangedCallback(mModel); + PackageInstallerCompat.getInstance(sContext).onStop(); ContentResolver resolver = sContext.getContentResolver(); resolver.unregisterContentObserver(mFavoritesObserver); diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index f0899a852..17670d25d 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -198,7 +198,9 @@ public class LauncherModel extends BroadcastReceiver ArrayList<ItemInfo> addAnimated, ArrayList<AppInfo> addedApps); public void bindAppsUpdated(ArrayList<AppInfo> apps); - public void bindShortcutsUpdated(ArrayList<ShortcutInfo> shortcuts); + public void bindShortcutsChanged(ArrayList<ShortcutInfo> updated, + ArrayList<ShortcutInfo> removed, UserHandleCompat user); + public void bindWidgetsRestored(ArrayList<LauncherAppWidgetInfo> widgets); public void updatePackageState(ArrayList<PackageInstallInfo> installInfo); public void updatePackageBadge(String packageName); public void bindComponentsRemoved(ArrayList<String> packageNames, @@ -373,15 +375,6 @@ public class LauncherModel extends BroadcastReceiver return; } - final ArrayList<AppInfo> restoredAppsFinal = new ArrayList<AppInfo>(); - Iterator<AppInfo> iter = allAppsApps.iterator(); - while (iter.hasNext()) { - ItemInfo a = iter.next(); - if (LauncherModel.appWasPromise(ctx, a.getIntent(), a.user)) { - restoredAppsFinal.add((AppInfo) a); - } - } - // Process the newly added applications and add them to the database first Runnable r = new Runnable() { public void run() { @@ -389,16 +382,6 @@ public class LauncherModel extends BroadcastReceiver public void run() { Callbacks cb = mCallbacks != null ? mCallbacks.get() : null; if (callbacks == cb && cb != null) { - if (!restoredAppsFinal.isEmpty()) { - for (AppInfo info : restoredAppsFinal) { - final Intent intent = info.getIntent(); - if (intent != null) { - mIconCache.deletePreloadedIcon(intent.getComponent(), - info.user); - } - } - callbacks.bindAppsUpdated(restoredAppsFinal); - } callbacks.bindAppsAdded(null, null, null, allAppsApps); } } @@ -423,7 +406,6 @@ public class LauncherModel extends BroadcastReceiver public void run() { final ArrayList<ItemInfo> addedShortcutsFinal = new ArrayList<ItemInfo>(); final ArrayList<Long> addedWorkspaceScreensFinal = new ArrayList<Long>(); - final ArrayList<AppInfo> restoredAppsFinal = new ArrayList<AppInfo>(); // Get the list of workspace screens. We need to append to this list and // can not use sBgWorkspaceScreens because loadWorkspace() may not have been @@ -443,12 +425,7 @@ public class LauncherModel extends BroadcastReceiver final Intent launchIntent = a.getIntent(); // Short-circuit this logic if the icon exists somewhere on the workspace - if (LauncherModel.shortcutExists(context, name, launchIntent)) { - // Only InstallShortcutReceiver sends us shortcutInfos, ignore them - if (a instanceof AppInfo && - LauncherModel.appWasPromise(context, launchIntent, a.user)) { - restoredAppsFinal.add((AppInfo) a); - } + if (shortcutExists(context, name, launchIntent)) { continue; } @@ -524,9 +501,6 @@ public class LauncherModel extends BroadcastReceiver } callbacks.bindAppsAdded(addedWorkspaceScreensFinal, addNotAnimated, addAnimated, null); - if (!restoredAppsFinal.isEmpty()) { - callbacks.bindAppsUpdated(restoredAppsFinal); - } } } }); @@ -902,17 +876,6 @@ public class LauncherModel extends BroadcastReceiver } /** - * Returns true if the promise shortcuts with the same package name exists on the workspace. - */ - static boolean appWasPromise(Context context, Intent intent, UserHandleCompat user) { - final ComponentName component = intent.getComponent(); - if (component == null) { - return false; - } - return !getItemsByPackageName(component.getPackageName(), user).isEmpty(); - } - - /** * Returns an ItemInfo array containing all the items in the LauncherModel. * The ItemInfo.id is not set through this function. */ @@ -1111,7 +1074,7 @@ public class LauncherModel extends BroadcastReceiver * @param context * @param item */ - static void deleteItemsFromDatabase(Context context, final ArrayList<ItemInfo> items) { + static void deleteItemsFromDatabase(Context context, final ArrayList<? extends ItemInfo> items) { final ContentResolver cr = context.getContentResolver(); Runnable r = new Runnable() { @@ -3048,6 +3011,9 @@ public class LauncherModel extends BroadcastReceiver return; } + final HashMap<ComponentName, AppInfo> addedOrUpdatedApps = + new HashMap<ComponentName, AppInfo>(); + if (added != null) { // Ensure that we add all the workspace applications to the db if (LauncherAppState.isDisableAllApps()) { @@ -3056,23 +3022,15 @@ public class LauncherModel extends BroadcastReceiver } else { addAppsToAllApps(context, added); } + for (AppInfo ai : added) { + addedOrUpdatedApps.put(ai.componentName, ai); + } } if (modified != null) { final ArrayList<AppInfo> modifiedFinal = modified; - - // Update the launcher db to reflect the changes - for (AppInfo a : modifiedFinal) { - ArrayList<ItemInfo> infos = - getItemInfoForComponentName(a.componentName, mUser); - for (ItemInfo i : infos) { - if (i instanceof ShortcutInfo && isShortcutAppTarget((ShortcutInfo) i)) { - ShortcutInfo info = (ShortcutInfo) i; - info.title = a.title.toString(); - info.contentDescription = a.contentDescription; - updateItemInDatabase(context, info); - } - } + for (AppInfo ai : modified) { + addedOrUpdatedApps.put(ai.componentName, ai); } mHandler.post(new Runnable() { @@ -3085,37 +3043,128 @@ public class LauncherModel extends BroadcastReceiver }); } - // Update shortcuts which use an iconResource + // Update shortcut infos if (mOp == OP_ADD || mOp == OP_UPDATE) { - final ArrayList<ShortcutInfo> iconsChanged = new ArrayList<ShortcutInfo>(); + final ArrayList<ShortcutInfo> updatedShortcuts = new ArrayList<ShortcutInfo>(); + final ArrayList<ShortcutInfo> removedShortcuts = new ArrayList<ShortcutInfo>(); + final ArrayList<LauncherAppWidgetInfo> widgets = new ArrayList<LauncherAppWidgetInfo>(); + HashSet<String> packageSet = new HashSet<String>(Arrays.asList(packages)); - // We need to iterate over the items here, so that we can avoid new Bitmap - // creation on the UI thread. synchronized (sBgLock) { - for (ItemInfo info : sBgWorkspaceItems) { + for (ItemInfo info : sBgItemsIdMap.values()) { if (info instanceof ShortcutInfo && mUser.equals(info.user)) { ShortcutInfo si = (ShortcutInfo) info; + boolean infoUpdated = false; + boolean shortcutUpdated = false; + + // Update shortcuts which use iconResource. if ((si.iconResource != null) - && packageSet.contains(si.getTargetComponent().getPackageName())){ + && packageSet.contains(si.iconResource.packageName)) { Bitmap icon = Utilities.createIconBitmap(si.iconResource.packageName, si.iconResource.resourceName, mIconCache, context); if (icon != null) { si.setIcon(icon); si.usingFallbackIcon = false; - iconsChanged.add(si); - updateItemInDatabase(context, si); + infoUpdated = true; } } + + ComponentName cn = si.getTargetComponent(); + if (cn != null && packageSet.contains(cn.getPackageName())) { + AppInfo appInfo = addedOrUpdatedApps.get(cn); + + if (si.isPromise()) { + mIconCache.deletePreloadedIcon(cn, mUser); + if (si.hasStatusFlag(ShortcutInfo.FLAG_AUTOINTALL_ICON)) { + // Auto install icon + PackageManager pm = context.getPackageManager(); + ResolveInfo matched = pm.resolveActivity( + new Intent(Intent.ACTION_MAIN) + .setComponent(cn).addCategory(Intent.CATEGORY_LAUNCHER), + PackageManager.MATCH_DEFAULT_ONLY); + if (matched == null) { + // Try to find the best match activity. + Intent intent = pm.getLaunchIntentForPackage( + cn.getPackageName()); + if (intent != null) { + cn = intent.getComponent(); + appInfo = addedOrUpdatedApps.get(cn); + } + + if ((intent == null) || (appInfo == null)) { + removedShortcuts.add(si); + continue; + } + si.promisedIntent = intent; + } + } + + // Restore the shortcut. + si.intent = si.promisedIntent; + si.promisedIntent = null; + si.status &= ~ShortcutInfo.FLAG_RESTORED_ICON + & ~ShortcutInfo.FLAG_AUTOINTALL_ICON + & ~ShortcutInfo.FLAG_INSTALL_SESSION_ACTIVE; + + infoUpdated = true; + si.updateIcon(mIconCache); + } + + if (appInfo != null && Intent.ACTION_MAIN.equals(si.intent.getAction()) + && si.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION) { + si.updateIcon(mIconCache); + si.title = appInfo.title.toString(); + si.contentDescription = appInfo.contentDescription; + infoUpdated = true; + } + + if ((si.isDisabled & ShortcutInfo.FLAG_DISABLED_NOT_AVAILABLE) != 0) { + // Since package was just updated, the target must be available now. + si.isDisabled &= ~ShortcutInfo.FLAG_DISABLED_NOT_AVAILABLE; + shortcutUpdated = true; + } + } + + if (infoUpdated || shortcutUpdated) { + updatedShortcuts.add(si); + } + if (infoUpdated) { + updateItemInDatabase(context, si); + } + } else if (info instanceof LauncherAppWidgetInfo) { + LauncherAppWidgetInfo widgetInfo = (LauncherAppWidgetInfo) info; + if (mUser.equals(widgetInfo.user) + && widgetInfo.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY) + && packageSet.contains(widgetInfo.providerName.getPackageName())) { + widgetInfo.restoreStatus &= ~LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY; + widgets.add(widgetInfo); + updateItemInDatabase(context, widgetInfo); + } } } } - if (!iconsChanged.isEmpty()) { + if (!updatedShortcuts.isEmpty() || !removedShortcuts.isEmpty()) { mHandler.post(new Runnable() { + public void run() { Callbacks cb = mCallbacks != null ? mCallbacks.get() : null; if (callbacks == cb && cb != null) { - callbacks.bindShortcutsUpdated(iconsChanged); + callbacks.bindShortcutsChanged( + updatedShortcuts, removedShortcuts, mUser); + } + } + }); + if (!removedShortcuts.isEmpty()) { + deleteItemsFromDatabase(context, removedShortcuts); + } + } + if (!widgets.isEmpty()) { + mHandler.post(new Runnable() { + public void run() { + Callbacks cb = mCallbacks != null ? mCallbacks.get() : null; + if (callbacks == cb && cb != null) { + callbacks.bindWidgetsRestored(widgets); } } }); @@ -3415,20 +3464,6 @@ public class LauncherModel extends BroadcastReceiver } /** - * @return true if the ShortcutInfo points to an app shortcut target, i.e. it has been added by - * dragging from AllApps list. - */ - public static boolean isShortcutAppTarget(ShortcutInfo info) { - // We need to check for ACTION_MAIN otherwise getComponent() might - // return null for some shortcuts (for instance, for shortcuts to - // web pages.) - Intent intent = info.promisedIntent != null ? info.promisedIntent : info.intent; - ComponentName name = intent.getComponent(); - return info.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION && - Intent.ACTION_MAIN.equals(intent.getAction()) && name != null; - } - - /** * Make an ShortcutInfo object for a shortcut that isn't an application. */ private ShortcutInfo getShortcutInfo(Cursor c, Context context, diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 8ddb837de..518ee97b4 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -4744,20 +4744,11 @@ public class Workspace extends SmoothPagedView removeItemsByComponentName(cns, user); } - // Removes items that match the application info specified, when applications are removed - // as a part of an update, this is called to ensure that other widgets and application - // shortcuts are not removed. - void removeItemsByApplicationInfo(final ArrayList<AppInfo> appInfos, UserHandleCompat user) { - // Just create a hash table of all the specific components that this will affect - HashSet<ComponentName> cns = new HashSet<ComponentName>(); - for (AppInfo info : appInfos) { - cns.add(info.componentName); - } - - // Remove all the things - removeItemsByComponentName(cns, user); - } - + /** + * Removes items that match the item info specified. When applications are removed + * as a part of an update, this is called to ensure that other widgets and application + * shortcuts are not removed. + */ void removeItemsByComponentName(final HashSet<ComponentName> componentNames, final UserHandleCompat user) { ArrayList<CellLayout> cellLayouts = getWorkspaceAndHotseatCellLayouts(); @@ -4878,7 +4869,6 @@ public class Workspace extends SmoothPagedView } } - void updateShortcuts(ArrayList<ShortcutInfo> shortcuts) { final HashSet<ShortcutInfo> updates = new HashSet<ShortcutInfo>(shortcuts); mapOverItems(MAP_RECURSE, new ItemOperator() { @@ -4886,9 +4876,12 @@ public class Workspace extends SmoothPagedView public boolean evaluate(ItemInfo info, View v, View parent) { if (info instanceof ShortcutInfo && v instanceof BubbleTextView && updates.contains(info)) { - ShortcutInfo shortcutInfo = (ShortcutInfo) info; + ShortcutInfo si = (ShortcutInfo) info; BubbleTextView shortcut = (BubbleTextView) v; - shortcut.applyFromShortcutInfo(shortcutInfo, mIconCache, true, false); + boolean oldPromiseState = shortcut.getCompoundDrawables()[1] + instanceof PreloadIconDrawable; + shortcut.applyFromShortcutInfo(si, mIconCache, true, + si.isPromise() != oldPromiseState); if (parent != null) { parent.invalidate(); @@ -4900,125 +4893,6 @@ public class Workspace extends SmoothPagedView }); } - void updateShortcutsAndWidgets(ArrayList<AppInfo> apps) { - // Break the appinfo list per user - final HashMap<UserHandleCompat, ArrayList<AppInfo>> appsPerUser = - new HashMap<UserHandleCompat, ArrayList<AppInfo>>(); - for (AppInfo info : apps) { - ArrayList<AppInfo> filtered = appsPerUser.get(info.user); - if (filtered == null) { - filtered = new ArrayList<AppInfo>(); - appsPerUser.put(info.user, filtered); - } - filtered.add(info); - } - - for (Map.Entry<UserHandleCompat, ArrayList<AppInfo>> entry : appsPerUser.entrySet()) { - updateShortcutsAndWidgetsPerUser(entry.getValue(), entry.getKey()); - } - } - - private void updateShortcutsAndWidgetsPerUser(ArrayList<AppInfo> apps, - final UserHandleCompat user) { - // Create a map of the apps to test against - final HashMap<ComponentName, AppInfo> appsMap = new HashMap<ComponentName, AppInfo>(); - final HashSet<String> pkgNames = new HashSet<String>(); - for (AppInfo ai : apps) { - appsMap.put(ai.componentName, ai); - pkgNames.add(ai.componentName.getPackageName()); - } - final HashSet<ComponentName> iconsToRemove = new HashSet<ComponentName>(); - - mapOverItems(MAP_RECURSE, new ItemOperator() { - @Override - public boolean evaluate(ItemInfo info, View v, View parent) { - if (info instanceof ShortcutInfo && v instanceof BubbleTextView) { - ShortcutInfo shortcutInfo = (ShortcutInfo) info; - ComponentName cn = shortcutInfo.getTargetComponent(); - AppInfo appInfo = appsMap.get(cn); - if (user.equals(shortcutInfo.user) && cn != null - && pkgNames.contains(cn.getPackageName())) { - boolean promiseStateChanged = false; - boolean infoUpdated = false; - if (shortcutInfo.isPromise()) { - if (shortcutInfo.hasStatusFlag(ShortcutInfo.FLAG_AUTOINTALL_ICON)) { - // Auto install icon - PackageManager pm = getContext().getPackageManager(); - ResolveInfo matched = pm.resolveActivity( - new Intent(Intent.ACTION_MAIN) - .setComponent(cn).addCategory(Intent.CATEGORY_LAUNCHER), - PackageManager.MATCH_DEFAULT_ONLY); - if (matched == null) { - // Try to find the best match activity. - Intent intent = pm.getLaunchIntentForPackage( - cn.getPackageName()); - if (intent != null) { - cn = intent.getComponent(); - appInfo = appsMap.get(cn); - } - - if ((intent == null) || (appsMap == null)) { - // Could not find a default activity. Remove this item. - iconsToRemove.add(shortcutInfo.getTargetComponent()); - - // process next shortcut. - return false; - } - shortcutInfo.promisedIntent = intent; - } - } - - // Restore the shortcut. - shortcutInfo.intent = shortcutInfo.promisedIntent; - shortcutInfo.promisedIntent = null; - shortcutInfo.status &= ~ShortcutInfo.FLAG_RESTORED_ICON - & ~ShortcutInfo.FLAG_AUTOINTALL_ICON - & ~ShortcutInfo.FLAG_INSTALL_SESSION_ACTIVE; - - promiseStateChanged = true; - infoUpdated = true; - shortcutInfo.updateIcon(mIconCache); - LauncherModel.updateItemInDatabase(getContext(), shortcutInfo); - } - - if ((shortcutInfo.isDisabled & ShortcutInfo.FLAG_DISABLED_NOT_AVAILABLE) != 0) { - // Since package was just updated, the target must be available now. - shortcutInfo.isDisabled &= ~ShortcutInfo.FLAG_DISABLED_NOT_AVAILABLE; - infoUpdated = true; - } - - // Only update the icon and labels if the shortcuts points to an app target - if ((appInfo != null) && LauncherModel.isShortcutAppTarget(shortcutInfo)) { - shortcutInfo.updateIcon(mIconCache); - shortcutInfo.title = appInfo.title.toString(); - shortcutInfo.contentDescription = appInfo.contentDescription; - infoUpdated = true; - } - - if (infoUpdated) { - BubbleTextView shortcut = (BubbleTextView) v; - shortcut.applyFromShortcutInfo(shortcutInfo, - mIconCache, true, promiseStateChanged); - - if (parent != null) { - parent.invalidate(); - } - } - } - } - // process all the shortcuts - return false; - } - }); - - if (!iconsToRemove.isEmpty()) { - removeItemsByComponentName(iconsToRemove, user); - } - if (user.equals(UserHandleCompat.myUserHandle())) { - restorePendingWidgets(pkgNames); - } - } - public void removeAbandonedPromise(String packageName, UserHandleCompat user) { ArrayList<String> packages = new ArrayList<String>(1); packages.add(packageName); @@ -5059,9 +4933,11 @@ public class Workspace extends SmoothPagedView } public void updatePackageState(ArrayList<PackageInstallInfo> installInfos) { - HashSet<String> completedPackages = new HashSet<String>(); - for (final PackageInstallInfo installInfo : installInfos) { + if (installInfo.state == PackageInstallerCompat.STATUS_INSTALLED) { + continue; + } + mapOverItems(MAP_RECURSE, new ItemOperator() { @Override public boolean evaluate(ItemInfo info, View v, View parent) { @@ -5089,42 +4965,10 @@ public class Workspace extends SmoothPagedView return false; } }); - - if (installInfo.state == PackageInstallerCompat.STATUS_INSTALLED) { - completedPackages.add(installInfo.packageName); - } - } - - // Note that package states are sent only for myUser - if (!completedPackages.isEmpty()) { - restorePendingWidgets(completedPackages); } } - private void restorePendingWidgets(final Set<String> installedPackaged) { - final ArrayList<LauncherAppWidgetInfo> changedInfo = new ArrayList<LauncherAppWidgetInfo>(); - - // Iterate non recursively as widgets can't be inside a folder. - mapOverItems(MAP_NO_RECURSE, new ItemOperator() { - - @Override - public boolean evaluate(ItemInfo info, View v, View parent) { - if (info instanceof LauncherAppWidgetInfo) { - LauncherAppWidgetInfo widgetInfo = (LauncherAppWidgetInfo) info; - if (widgetInfo.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY) - && installedPackaged.contains(widgetInfo.providerName.getPackageName())) { - - changedInfo.add(widgetInfo); - - // Remove the provider not ready flag - widgetInfo.restoreStatus &= ~LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY; - LauncherModel.updateItemInDatabase(getContext(), widgetInfo); - } - } - // process all the widget - return false; - } - }); + void widgetsRestored(ArrayList<LauncherAppWidgetInfo> changedInfo) { if (!changedInfo.isEmpty()) { DeferredWidgetRefresh widgetRefresh = new DeferredWidgetRefresh(changedInfo, mLauncher.getAppWidgetHost()); @@ -5134,6 +4978,13 @@ public class Workspace extends SmoothPagedView widgetRefresh.run(); } else { // widgetRefresh will automatically run when the packages are updated. + // For now just update the progress bars + for (LauncherAppWidgetInfo info : changedInfo) { + if (info.hostView instanceof PendingAppWidgetHostView) { + info.installProgress = 100; + ((PendingAppWidgetHostView) info.hostView).applyState(); + } + } } } } |