diff --git a/res/layout/more_settings_button.xml b/res/layout/more_settings_button.xml
index 84ef75a519e..7140d79425e 100644
--- a/res/layout/more_settings_button.xml
+++ b/res/layout/more_settings_button.xml
@@ -23,11 +23,13 @@
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index edd9f2667ef..40aa78e057f 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Moenie verifieer nie"
+ - "Versoek sertifikaatstatus"
+ - "Vereis sertifikaatstatus"
+ - "Vereis statusse van alle nievertroude sertifikate"
+
- "Druk knoppie"
- "PIN van eweknietoestel"
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index be8415ac8af..656da914cc7 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "አታረጋግጥ"
+ - "የዕውቅና ማረጋገጫ ሁኔታን ጠይቅ"
+ - "የዕውቅና ማረጋገጫ ሁኔታን ጠይቅ"
+ - "ሁሉንም ያልታመኑ የዕውቅና ማረጋገጫ ሁኔታዎችን ጠይቅ"
+
- "አዝራር ተጫን"
- "ፒን ከአቻ መሣሪያ"
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index debb1125b65..47191cafd9c 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "عدم التحقّق"
+ - "حالة الشهادة مطلوبة"
+ - "حالة الشهادة مطلوبة"
+ - "جميع حالات الشهادات غير الموثوقة مطلوبة"
+
- "زر الدفع"
- "رقم تعريف شخصي من جهاز نظير"
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index eec0a1cf4c4..876a4fb72ec 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "সত্যাপন নকৰিব"
+ - "প্ৰমাণপত্ৰৰ স্থিতিৰ অনুৰোধ কৰক"
+ - "প্ৰমাণপত্ৰৰ স্থিতিৰ প্ৰয়োজন"
+ - "সকলো অবিশ্বাসযোগ্য প্ৰমাণপত্ৰৰ স্থিতিসমূহৰ প্ৰয়োজন"
+
- "পুশ্ব বুটাম"
- "সংযুক্ত ডিভাইচৰ পৰা পিন"
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index 052b495fa47..4c68dbd892c 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Doğrulamayın"
+ - "Sertifikat statusu tələb edin"
+ - "Sertifikat statusu tələb edin"
+ - "Bütün etibarsız sertifikat statuslarını tələb edin"
+
- "Düyməyə basın"
- "Eynisəviyyəli cihazdan PIN"
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index bd3f204db4a..d0dacd4a60e 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Ne verifikuj"
+ - "Zatraži status sertifikata"
+ - "Zahtevaj status sertifikata"
+ - "Zahtevaj statuse svih nepouzdanih sertifikata"
+
- "Pritiskanje dugmeta"
- "PIN sa ravnopravnog uređaja"
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index b8ee1fb0145..fb8cbaa0d6f 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Не спраўджваць"
+ - "Запыт стану сертыфіката"
+ - "Патрэбны стан сертыфіката"
+ - "Патрабуюцца станы ўсіх недавераных сертыфікатаў"
+
- "Націсніце кнопку"
- "PIN-код ад пірынгавай прылады"
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index d2bafc62fa2..5785373f719 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Без потвърждаване"
+ - "Заявка за състоянието на сертификата"
+ - "Изискване на състоянието на сертификата"
+ - "Изискване на състоянията на всички ненадеждни сертификати"
+
- "Бутон"
- "ПИН от съответното устройство"
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index f11f2651236..fb1390a2724 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "যাচাই করবেন না"
+ - "সার্টিফিকেট স্ট্যাটাসের অনুরোধ করুন"
+ - "সার্টিফিকেট স্ট্যাটাসের প্রয়োজন আছে"
+ - "বিশ্বস্ত নয় এমন সব সার্টিফিকেটের স্ট্যাটাসের প্রয়োজন"
+
- "পুশ বোতাম"
- "চেনা ডিভাইস থেকে পিন"
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 3394fec16db..80c81695626 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Nemoj potvrditi"
+ - "Zatraži status certifikata"
+ - "Zahtijevaj status certifikata"
+ - "Zahtijevaj statuse svih nepouzdanih certifikata"
+
- "Pritisnite dugme"
- "PIN ravnopravnog uređaja"
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 4e664ca2924..91e8cd07347 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "No verifiquis"
+ - "Sol·licita l\'estat de certificat"
+ - "Requereix l\'estat de certificat"
+ - "Requereix tots els estats de certificat que no siguin de confiança"
+
- "Botó per prémer"
- "PIN de l\'altre dispositiu"
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 8851ac39de7..c05ef3a583b 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Neověřovat"
+ - "Vyžadovat stav certifikátu"
+ - "Požadovat stav certifikátu"
+ - "Požadovat stav všech nedůvěryhodných certifikátů"
+
- "Stisknutí tlačítka"
- "PIN ze sdíleného zařízení"
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index 03d806333cb..c11e3c99321 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Undlad at bekræfte"
+ - "Anmod om certifikatstatus"
+ - "Kræv certifikatstatus"
+ - "Kræv alle ikke-godkendte certifikatstatusser"
+
- "Trykknap"
- "Pinkode fra din vens enhed"
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index 78870c41696..f80d005f270 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Nicht prüfen"
+ - "Zertifikatstatus auf Anforderung"
+ - "Zertifikatstatus erforderlich"
+ - "Jeder nicht vertrauenswürdige Zertifikatstatus erforderlich"
+
- "Push-Schaltfläche"
- "PIN von Peer-Gerät"
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index f4c1c4b14d7..29823a57c27 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Να μην γίνει επαλήθευση"
+ - "Αίτημα κατάστασης πιστοποιητικού"
+ - "Απαίτηση κατάστασης πιστοποιητικού"
+ - "Απαίτηση των καταστάσεων όλων των μη αξιόπιστων πιστοποιητικών"
+
- "Πάτημα κουμπιού"
- "PIN από ομότιμη συσκευή"
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index fd7d93700f1..3297206281e 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "No verificar"
+ - "Solicitar estado del certificado"
+ - "Exigir estado del certificado"
+ - "Exigir estados de cert. no de confianza"
+
- "Presionar botón"
- "PIN del dispositivo par"
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index 04b9ed5db34..35e668d9de2 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "No verificar"
+ - "Solicitar estado de certificado"
+ - "Pedir estado de certificado"
+ - "Pedir todos los estados de certificado no fiables"
+
- "Botón WPS"
- "PIN del otro dispositivo"
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index b7fac13e69f..068098b1f39 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Ära kinnita"
+ - "Sertifikaadioleku taotlemine"
+ - "Sertifikaadioleku nõudmine"
+ - "Kõigi mitteusaldusväärsete sertifikaadiolekute nõudmine"
+
- "Vajutusnupp"
- "PIN-kood partnerseadmest"
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index cb86c4a8f8b..0332bda0f70 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Ez egiaztatu"
+ - "Eskatu ziurtagirien egoera emateko"
+ - "Behartu ziurtagirien egoera ematera"
+ - "Behartu fidagarritzat jotzen ez diren ziurtagiri guztien egoera ematera"
+
- "Sakatu botoia"
- "Pareko gailuaren PINa"
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index 521eca7ff8a..6d490a36886 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "درستیسنجی نشود"
+ - "درخواست وضعیت گواهی"
+ - "نیاز به وضعیت گواهی"
+ - "نیاز به همه وضعیتهای گواهی غیرقابلاطمینان"
+
- "فشار دکمه"
- "پین از دستگاه مرتبط شده"
@@ -466,7 +471,7 @@
- "دائمی"
- "فعالیت برتر"
- - "مهم (پیشزمینه)"
+ - "مهم (پیشنما)"
- "مهم (پسزمینه)"
- "پشتیبانگیری"
- "سنگین وزن"
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index 58a536302a8..af9e7a6876e 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Älä todenna"
+ - "Pyydä varmenteen status"
+ - "Vaadi varmenteen status"
+ - "Vaadi kaikkien ei-luotettujen varmenteiden status"
+
- "Paina painiketta"
- "Vertaislaitteen PIN-koodi"
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index c718c036db9..8b35f929592 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Ne pas vérifier"
+ - "Demander l\'état du certificat"
+ - "Exiger l\'état du certificat"
+ - "Exiger tous les états de certificats non fiables"
+
- "Bouton de commande"
- "NIP de l\'appareil associé"
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index e30f5f1468e..11690b58398 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Ne pas valider"
+ - "Demander l\'état du certificat"
+ - "Exiger l\'état du certificat"
+ - "Exiger l\'état de tous les certificats non approuvés"
+
- "Appuyer sur le bouton"
- "Code de l\'appareil associé"
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index 89fd779a61e..9893d47b5a0 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Non verificar"
+ - "Solicitar estados de certificados"
+ - "Requirir estados de certificados"
+ - "Pedir todos os estados de certificados non fiables"
+
- "Pulsar o botón"
- "PIN do dispositivo mesmo nivel"
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index 2b3e1dc3174..343fe06cfdc 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "ચકાસણી કરશો નહીં"
+ - "પ્રમાણપત્રના સ્ટેટસ માટે વિનંતી કરો"
+ - "પ્રમાણપત્રનું સ્ટેટસ જરુરી છે"
+ - "બધા અવિશ્વસનીય પ્રમાણપત્રના સ્ટેટસ જરૂરી છે"
+
- "પુશ બટન"
- "પીઅર ઉપકરણ પરથી પિન"
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index 1956810102a..29cb7f8d975 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "पुष्टि न करें"
+ - "प्रमाणपत्र की स्थिति का अनुरोध करें"
+ - "प्रमाणपत्र की स्थिति ज़रूरी है"
+ - "ऐसे सभी प्रमाणपत्र की स्थिति ज़रूरी है जो भरोसेमंद नहीं हैं"
+
- "पुश बटन"
- "साथी डिवाइस से पिन"
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index 456a7d58b3f..72e81df6c1c 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -53,9 +53,9 @@
- "Odmah"
- - "5 s"
- - "15 sekunda"
- - "30 sekunda"
+ - "5 sekundi"
+ - "15 sekundi"
+ - "30 sekundi"
- "1 min"
- "2 minute"
- "5 minuta"
@@ -100,7 +100,12 @@
-
+
+ - "Nemoj potvrditi"
+ - "Zatraži status certifikata"
+ - "Zahtijevaj status certifikata"
+ - "Zahtijevaj statuse svih nepouzdanih certifikata"
+
- "Gumb"
- "PIN s paralelnog uređaja"
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index 6c5d9a0e025..0811a64052d 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Nincs ellenőrzés"
+ - "Tanúsítvány állapotának kérése"
+ - "Tanúsítvány állapotának kötelező kérése"
+ - "Az összes nem megbízható tanúsítvány állapotának kötelező kérése"
+
- "Nyomógomb"
- "Partnereszköztől kapott PIN"
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index fe5aa0f0502..5d2e80fd960 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Չստուգել"
+ - "Հարցնել հավաստագրի կարգավիճակը"
+ - "Պահանջել հավաստագրի կարգավիճակը"
+ - "Պահանջել բոլոր չհաստատված հավաստագրերի կարգավիճակները"
+
- "Սեղմման կոճակ"
- "Հավասարազոր սարքի PIN-ը"
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index cefc2d422c5..99e4bdd5f7d 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Jangan verifikasi"
+ - "Minta status sertifikat"
+ - "Wajibkan status sertifikat"
+ - "Wajibkan semua status sertifikat yang tidak dipercaya"
+
- "Tekan tombol"
- "PIN dari perangkat rekan"
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index f503a1939fd..e3b5da9c262 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Ekki staðfesta"
+ - "Óska eftir stöðu vottorðs"
+ - "Krefjast stöðu vottorðs"
+ - "Krefjast stöðu allra vottorða sem ekki er treystandi"
+
- "Hnappur"
- "PIN-númer úr tengdu tæki"
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index bb0048a8eed..cb2b4030117 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Non verificare"
+ - "Chiedi stato dei certificati"
+ - "Esigi stato dei certificati"
+ - "Esigi stati di tutti i certificati non attendibili"
+
- "Pulsante di comando"
- "PIN del dispositivo peer"
@@ -504,7 +509,7 @@
- "Considera non a consumo"
- - "Usa MAC casuale (predefinito)"
+ - "Usa MAC casuale (opzione predefinita)"
- "Usa MAC del dispositivo"
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index db6bb15154c..dae4ebc9fba 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "אין לאמת"
+ - "יש לבקש סטטוס של אישורים"
+ - "יש לדרוש סטטוס של אישורים"
+ - "יש לדרוש סטטוסים של כל האישורים שאינם מהימנים"
+
- "לחצן דחיפה"
- "קוד גישה ממכשיר עמית"
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index f0d94634f1e..ef189700df3 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -52,7 +52,7 @@
- - "すぐ"
+ - "直後"
- "5秒"
- "15秒"
- "30秒"
@@ -100,7 +100,12 @@
-
+
+ - "検証しない"
+ - "認証ステータスをリクエストする"
+ - "認証ステータスを要求する"
+ - "信頼できない認証ステータスをすべて要求する"
+
- "ボタンを押す"
- "ピアデバイスのPIN"
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index 4902c852781..486ee42cb1d 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "არ დადასტურდეს"
+ - "მოითხოვეთ სერტიფიკატის სტატუსი"
+ - "მოითხოვეთ სერტიფიკატის სტატუსი"
+ - "მოითხოვეთ ყველა არასანდო სერტ. სტატუსები"
+
- "Push ღილაკი"
- "ერთრანგიანი მოწყობილობის პინი"
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index e833cecdf6e..c7c4e620eec 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Растамау"
+ - "Сертификат күйін сұрау"
+ - "Сертификат күйін талап ету"
+ - "Барлық сенімсіз сертификат күйлерін талап ету"
+
- "Итеру түймесі"
- "Басқа құрылғының PIN коды"
@@ -217,7 +222,7 @@
- "Жүйені өзі шешсін"
- - "Орналасу"
+ - "Геодерек"
- "Жеке мағлұмат"
- "Хабар алмасу"
- "Meдиа"
@@ -291,9 +296,9 @@
- "арнайы мүмкіндіктердің дыбыс деңгейі"
- - "Орналасу"
- - "Орналасу"
- - "Орналасу"
+ - "Геодерек"
+ - "Геодерек"
+ - "Геодерек"
- "Діріл"
- "Контактілерді оқу"
- "Контактілерді жөндеу"
@@ -301,9 +306,9 @@
- "Қоңыраулар тіркелімін өзгерту"
- "Күнтізбені оқу"
- "Күнтізбені жөндеу"
- - "Орналасу"
+ - "Геодерек"
- "Пост хабарлары"
- - "Орналасу"
+ - "Геодерек"
- "Қоңырау шалу"
- "SMS/MMS оқу"
- "SMS/MMS жазу"
@@ -332,8 +337,8 @@
- "Хабар дыбысының қаттылығы"
- "Bluetooth дыбысының қаттылығы"
- "Ұйқы бермеу"
- - "Орналасу"
- - "Орналасу"
+ - "Геодерек"
+ - "Локация"
- "Пайдалану статистикасын алу"
- "Микрофон дыбысын өшіру/қосу"
- "Қалқымалы хабарландыру көрсету"
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index 4afbdf7f36a..286cfc775c0 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "កុំផ្ទៀងផ្ទាត់"
+ - "ស្នើស្ថានភាពវិញ្ញាបនបត្រ"
+ - "តម្រូវឱ្យមានស្ថានភាពវិញ្ញាបនបត្រ"
+ - "តម្រូវឱ្យមានស្ថានភាពវិញ្ញាបនបត្រដែលមិនជឿទុកចិត្តទាំងអស់"
+
- "ប៊ូតុងចុច"
- "កូដ PIN ពីឧបករណ៍"
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index 2bb32ed6fe0..db606c1b1c4 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "인증 안함"
+ - "인증서 상태 요청"
+ - "인증서 상태 필요"
+ - "신뢰할 수 없는 모든 인증서 상태 필요"
+
- "누름 버튼"
- "피어 기기 PIN"
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index a22543bc517..25c93edbc74 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Текшерилбесин"
+ - "Тастыктаманын статусун көрсөтүүнү сурануу"
+ - "Тастыктаманын статусун талап кылуу"
+ - "Ишенимсиз тастыктамалардын статустарын талап кылуу"
+
- "Баскычты басыңыз"
- "Туташуучу түзмөктүн PIN\'и"
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index ac9c6ed1373..beb6b38dc52 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "ຢ່າຢັ້ງຢືນ"
+ - "ຂໍສະຖານະໃບຮັບຮອງ"
+ - "ຈຳເປັນຕ້ອງມີສະຖານະໃບຮັບຮອງ"
+ - "ຈຳເປັນຕ້ອງມີສະຖານະໃບຮັບຮອງທີ່ບໍ່ແມ່ນເຊື່ອຖືໄດ້ທັງໝົດ"
+
- "ປຸ່ມ Push"
- "PIN ຈາກອຸປະກອນທີ່ເຊື່ອມຕໍ່ກັນ"
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 9acd9d15151..be2796d2e3b 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Nepatvirtinti"
+ - "Pateikti sertifikato būsenos užklausą"
+ - "Reikalauti sertifikato būsenos"
+ - "Reikalauti visų nepatikimų sertifikatų būsenų"
+
- "Mygtuko paspaudimas"
- "PIN kodas iš susieto įrenginio"
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index 11e79ee1123..c4ba76554c4 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Neverificēt"
+ - "Pieprasīt sertifikāta statusu"
+ - "Pieprasīt sertifikāta statusu"
+ - "Pieprasīt visu neuzticamo sertifikātu statusu"
+
- "Spiedpoga"
- "Vienādranga ierīces PIN kods"
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 9bc06df53d6..bd6f2afeb63 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Не потврдувај"
+ - "Побарај статус на сертификатот"
+ - "Статусот на сертификатот е задолжителен"
+ - "Статусите на сите недоверливи сертификати се задолжителни"
+
- "Копче „Притисни“"
- "PIN од спарен уред"
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index 512953883ac..e3ea6796fc2 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "പരിശോധിച്ചുറപ്പിക്കരുത്"
+ - "സർട്ടിഫിക്കറ്റ് നിലകൾ അഭ്യർത്ഥിക്കുക"
+ - "സർട്ടിഫിക്കറ്റ് നിലകൾ ആവശ്യമാണ്"
+ - "വിശ്വസനീയമല്ലാത്ത എല്ലാ സർട്ടിഫിക്കറ്റുകളുടെയും നിലകൾ ആവശ്യമാണ്"
+
- "പുഷ് ബട്ടൺ"
- "പിയർ ഉപകരണത്തിൽ നിന്നുള്ള പിൻ"
@@ -317,7 +322,7 @@
- "ക്രമീകരണങ്ങൾ പരിഷ്ക്കരിക്കുക"
- "മുകളിൽ ഡ്രോ ചെയ്യുക"
- "ആക്സസ്സ് അറിയിപ്പുകൾ"
- - "Camera"
+ - "ക്യാമറ"
- "ഓഡിയോ റെക്കോർഡുചെയ്യുക"
- "ഓഡിയോ പ്ലേ ചെയ്യുക"
- "ക്ലിപ്പ്ബോർഡ് റീഡുചെയ്യുക"
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index f49ee0ce23c..beab7f26ea0 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Бүү баталгаажуул"
+ - "Сертификатын статусын хүсэлт тавих"
+ - "Сертификатын статус шаардлагатай"
+ - "Бүх итгэмжлэгдээгүй сертификатын статус шаардлагатай"
+
- "Товчлуур"
- "Түнш төхөөрөмжийн PIN"
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index ac004eb62dc..92d4a8bd177 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "पडताळणी करू नका"
+ - "प्रमाणपत्र स्थितीची विनंती करा"
+ - "प्रमाणपत्र स्थिती आवश्यक आहे"
+ - "सर्व विश्वास नसलेल्या प्रमाणपत्रांची स्थिती आवश्यक आहे"
+
- "पुश बटण"
- "पीअर डिव्हाइसवरील पिन"
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index 91a11794db3..ca4ee9d1d7b 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Jangan sahkan"
+ - "Minta status sijil"
+ - "Perlukan status sijil"
+ - "Perlukan semua status sijil yang tidak dipercayai"
+
- "Butang tekan"
- "PIN daripada peranti rakan"
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index e10d6224986..3a1332c4997 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "မစိစစ်ပါနှင့်"
+ - "အသိအမှတ်ပြုလက်မှတ် အခြေအနေ တောင်းဆိုပါ"
+ - "အသိအမှတ်ပြုလက်မှတ် လိုအပ်သည်"
+ - "ယုံကြည်စိတ်ချရခြင်းမရှိသည့် အသိအမှတ်ပြုလက်မှတ် အခြေအနေများအားလုံး လိုအပ်သည်"
+
- "နှိပ်ရန်ခလုတ်"
- "တန်းတူစက်ပစ္စည်းမှပင်နံပါတ်"
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index dd4a823dc7f..b8460f5a9ae 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Ikke bekreft"
+ - "Be om sertifikatstatus"
+ - "Krev sertifikatstatus"
+ - "Krev statuser for alle ikke-klarerte sertifikater"
+
- "Trykk på knappen"
- "Personlig kode fra motpart"
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index 45113783507..a3185a417c3 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -73,7 +73,7 @@
- "स्क्यान गरिँदै..."
- "जडान हुँदै..."
- "प्रमाणित गर्दै ..."
- - "IP ठेगाना पत्ता लगाउँदै ..."
+ - "IP एड्रेस पत्ता लगाउँदै ..."
- "कनेक्ट छ"
- "निलम्बित"
- "विच्छेदन गर्दै..."
@@ -87,7 +87,7 @@
- "स्क्यान गर्दै..."
- "%1$sसँग जडान हुँदै..."
- "%1$sको साथ प्रमाणित गर्दै…"
- - "%1$sबाट IP ठेगाना प्राप्त गर्दै…"
+ - "%1$sबाट IP एड्रेस प्राप्त गर्दै…"
- "%1$s मा जोडिएको छ"
- "निलम्बित"
- "%1$sबाट विच्छेदन गर्दै..."
@@ -466,7 +466,7 @@
- "लगातार"
- "उच्च गतिविधि"
- - "महत्वपूर्ण (अग्रभूमि)"
+ - "महत्वपूर्ण (फोरग्राउन्ड)"
- "महत्वपूर्ण (पृष्ठभूमि)"
- "जगेडा"
- "भारी वजन"
@@ -505,7 +505,7 @@
- "क्रमरहित MAC प्रयोग गर्नुहोस् (पूर्वनिर्धारित)"
- - "यन्त्रको MAC प्रयोग गर्नुहोस्"
+ - "डिभाइसको MAC प्रयोग गर्नुहोस्"
- "होइन"
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index b33aa120397..8d3df92083a 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Niet verifiëren"
+ - "Certificaatstatus opvragen"
+ - "Certificaatstatus vereisen"
+ - "Alle niet-vertrouwde certificaatstatussen vereisen"
+
- "Knop indrukken"
- "Pincode van peerapparaat"
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index 65dcf98e12d..d95ff15e97a 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "ଯାଞ୍ଚ କରନ୍ତୁ ନାହିଁ"
+ - "ସାର୍ଟିଫିକେଟ୍ ସ୍ଥିତି ପାଇଁ ଅନୁରୋଧ କରନ୍ତୁ"
+ - "ସାର୍ଟିଫିକେଟ୍ ସ୍ଥିତିର ଆବଶ୍ୟକତା ଅଛି"
+ - "ସମସ୍ତ ଅବିଶ୍ୱସନୀୟ ସାର୍ଟିଫିକେଟ୍ ସ୍ଥିତିର ଆବଶ୍ୟକତା ଅଛି"
+
- "ପୁଶ୍ ବଟନ୍"
- "ପୀଅର୍ ଡିଭାଇସ୍ରୁ PIN"
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index 10a3aa0d455..827a9cfabaa 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "ਪੁਸ਼ਟੀ ਨਾ ਕਰੋ"
+ - "ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦੀ ਸਥਿਤੀ ਲਈ ਬੇਨਤੀ ਕਰੋ"
+ - "ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦੀ ਸਥਿਤੀ ਦੀ ਲੋੜ ਹੈ"
+ - "ਸਾਰੀਆਂ ਗੈਰ-ਭਰੋਸੇਯੋਗ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦੀਆਂ ਸਥਿਤੀਆਂ ਦੀ ਲੋੜ ਹੈ"
+
- "ਪੁਸ਼ ਬਟਨ"
- "ਪੀਅਰ ਡੀਵਾਈਸ ਤੋਂ ਪਿੰਨ"
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index b4a4e3c9c78..78d56101a30 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Nie weryfikuj"
+ - "Żądaj stanu certyfikatu"
+ - "Wymagaj stanu certyfikatu"
+ - "Wymagaj stanów wszystkich niezaufanych certyfikatów"
+
- "Naciśnij przycisk"
- "Kod PIN z drugiego urządzenia"
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index 00526eb2de2..3ee87a20fdf 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Não verificar"
+ - "Solicitar status de certificados"
+ - "Exigir status de certificados"
+ - "Exigir todos os status de certificados não confiáveis"
+
- "Pressione o botão"
- "PIN do dispositivo pareado"
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index f4e7628bb2c..e20dd3eae36 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Não validar"
+ - "Solicitar estado do certificado"
+ - "Exigir estado do certificado"
+ - "Exigir estados de todos os certificados não fidedignos"
+
- "Premir botão"
- "PIN do aparelho do elemento"
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index 00526eb2de2..3ee87a20fdf 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Não verificar"
+ - "Solicitar status de certificados"
+ - "Exigir status de certificados"
+ - "Exigir todos os status de certificados não confiáveis"
+
- "Pressione o botão"
- "PIN do dispositivo pareado"
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index ad7f052edbe..37975e64a56 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Nu verifica"
+ - "Solicitați starea certificatelor"
+ - "Solicitați obligatoriu starea certificatelor"
+ - "Solicitați toate stările certif. care nu prezintă încredere"
+
- "Buton WPS"
- "Codul PIN de la disp. pereche"
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 8bdff7d87a2..6b46b008033 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -53,14 +53,14 @@
- "Сразу"
- - "Через 5 сек."
- - "Через 15 сек."
- - "Через 30 сек."
- - "Через 1 мин."
- - "Через 2 мин."
- - "Через 5 мин."
- - "Через 10 мин."
- - "Через 30 мин."
+ - "Через 5 секунд"
+ - "Через 15 секунд"
+ - "Через 30 секунд"
+ - "Через 1 минуту"
+ - "Через 2 минуты"
+ - "Через 5 минут"
+ - "Через 10 минут"
+ - "Через 30 минут"
- "Мелкий"
@@ -100,7 +100,12 @@
-
+
+ - "Не проверять"
+ - "Запрашивать статус сертификата"
+ - "Требовать статус сертификата"
+ - "Требовать статусы всех ненадежных сертификатов"
+
- "Push-кнопка"
- "PIN-код с обнаруженного устройства"
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index 604b96590b3..cbe4f30435e 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "සත්යාපනය නොකරන්න"
+ - "සහතික තත්ත්වය ඉල්ලන්න"
+ - "සහතික තත්ත්වය අවශ්යයි"
+ - "සියලු විශ්වාසදායි නොවන සහතික තත්ත්ව අවශ්යයි"
+
- "ඔබන බොත්තම"
- "සමයන්ගේ උපාංග වෙතින් PIN"
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index c70efd432f6..fc32d47c0a7 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Neoverovať"
+ - "Požiadať o stav certifikátu"
+ - "Vyžadovať stav certifikátu"
+ - "Vyžadovať stavy všetkých nedôveryhodných certifikátov"
+
- "Stlačenie tlačidla"
- "PIN zo zdieľaného zariadenia"
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index 26667484f88..608206e27c5 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Brez preverjanja"
+ - "Zahtevaj stanje potrdila"
+ - "Obvezno stanje potrdila"
+ - "Obvezna vsa stanja potrdil, ki niso zaupanja vredna"
+
- "Pritisnite gumb"
- "PIN iz enakovredne naprave"
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index 74888771f4a..48460715e0a 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Mos e verifiko"
+ - "Kërko statusin e certifikatës"
+ - "Kërko detyrimisht statusin e certifikatës"
+ - "Kërko detyrimisht të gjitha statutet e certifikatave të pacertifikuara"
+
- "Shtyp butonin"
- "Kodi PIN nga pajisja homologe"
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index b522928c54a..5dbf56b390e 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Не верификуј"
+ - "Затражи статус сертификата"
+ - "Захтевај статус сертификата"
+ - "Захтевај статусе свих непоузданих сертификата"
+
- "Притискање дугмета"
- "PIN са равноправног уређаја"
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 85f3f14a1ad..9d8d1c53f80 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Verifiera inte"
+ - "Begär certifikatstatus"
+ - "Kräv certifikatstatus"
+ - "Kräv status för alla icke-betrodda certifikat"
+
- "Tryckknapp"
- "PIN-kod från den andra enheten"
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index 331b5fd6cad..0b28c9fbe76 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Usithibitishe"
+ - "Omba hali ya cheti"
+ - "Onyesha hali ya cheti"
+ - "Onyesha hali za vyeti vyote visivyo vya kuaminika"
+
- "Kichupo cha kusukuma"
- "PIN kutoka kwa kifaa cha rika"
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index c8cb5da04f4..e737c9a0ecd 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "சரிபார்க்க வேண்டாம்"
+ - "சான்றிதழ் கோரிக்கை நிலை"
+ - "சான்றிதழ் தேவை நிலை"
+ - "அனைத்து நம்பகத்தன்மை இல்லாத சான்றிதழ்களுக்கான தேவை நிலைகள்"
+
- "புஷ் பட்டன்"
- "பியர் சாதனத்திலிருந்து பின்"
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index 7b25b813501..3434c292820 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "ไม่ต้องยืนยัน"
+ - "ขอสถานะใบรับรอง"
+ - "ต้องมีสถานะใบรับรอง"
+ - "ต้องมีสถานะใบรับรองที่ไม่ใช่ \"เชื่อถือได้\" ทุกสถานะ"
+
- "ปุ่มกด"
- "PIN จากอุปกรณ์เพียร์"
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index 38548009dc8..29bcc697e79 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Huwag i-verify"
+ - "Hilingin ang status ng certificate"
+ - "Hingin ang status ng certificate"
+ - "Hingin ang lahat ng status ng hindi pinagkakatiwalaang certificate"
+
- "button na Push"
- "PIN mula sa device ng kaibigan"
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 6cdeaebe8f2..1ef519606ca 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Doğrulama"
+ - "Sertifika durumunu iste"
+ - "Sertifika durumunu gerektir"
+ - "Tüm güvenilmeyen sertifika durumlarını gerektir"
+
- "Düğme"
- "Eş cihazın PIN\'i"
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index e87a2951552..60f659b711d 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Не перевіряти"
+ - "Запит статусу сертифіката"
+ - "Потрібен статус сертифіката"
+ - "Потрібні статуси всіх несхвалених сертифікатів"
+
- "Кнопка Push"
- "PIN з однорангового пристрою"
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index 9cea63b59e2..9ff889bd3f0 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Tekshirilmasin"
+ - "Sertifikat holatini talab qilish"
+ - "Sertifikat holatini talab qilish"
+ - "Barcha ishonchsiz sertifikat holatlarini talab qilish"
+
- "Bog‘lash tugmasi"
- "ulashma qurilmadagi PIN-kod"
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index 460f0abe54d..dba8acb1b7c 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Không xác minh"
+ - "Yêu cầu trạng thái chứng chỉ"
+ - "Cần có trạng thái chứng chỉ"
+ - "Cần có tất cả trạng thái chứng chỉ không đáng tin cậy"
+
- "Nút bấm"
- "Mã PIN từ thiết bị ngang hàng"
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 23ea7c175a5..2241ba6f810 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "不要验证"
+ - "要求证书状态(非强制)"
+ - "需要证书状态"
+ - "需要所有非信任证书的状态"
+
- "按钮"
- "从对等设备获取的 PIN 码"
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index a0bc67e34ea..9875625ecc5 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "不要驗證"
+ - "要求憑證狀態"
+ - "需要憑證狀態"
+ - "需要所有不受信任的憑證狀態"
+
- "按鈕"
- "來自對端裝置的 PIN"
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 4804f6423bf..6fa22194924 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "不要驗證"
+ - "要求取得憑證狀態"
+ - "需要取得憑證狀態"
+ - "需要取得所有非信任憑證的狀態"
+
- "按鈕"
- "來自對端裝置的 PIN"
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index 1c2c690237c..1091a6b8e89 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -100,7 +100,12 @@
-
+
+ - "Ungaqinisekisi"
+ - "Cela isimo sesitifiketi"
+ - "Kudinga isimo sesitifiketi"
+ - "Kudinga zonke izimo zesitifiketi ezingathembeki"
+
- "Cindezela inkinobho"
- "Iphinikhodi kusuka kudivaysisi yabangani"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 69dc31a5db9..edabf61a806 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7176,9 +7176,9 @@
Not supported by this app
- Always-on active
+ Always on
- not secure VPN
+ Not secure
Block connections without VPN
@@ -7901,7 +7901,7 @@
Notification access is not available for apps in the work profile.
- Passwords and accounts
+ Passwords & accounts
Saved passwords, autofill, synced accounts
Media management apps
- Allow app to manage media files
+ Allow app to manage media
- If allowed, this app can modify or delete media files on this device or connected storage device without asking you. App must have permission to access files and media.
+ If allowed, this app can modify or delete media files created with other apps without asking you. App must have permission to access files and media.
Media, File, Management, Manager, Manage, Edit, Editor, App, Application, Program
diff --git a/res/xml/emergency_settings.xml b/res/xml/emergency_settings.xml
index f8067aa60fd..66c5fd1ef96 100644
--- a/res/xml/emergency_settings.xml
+++ b/res/xml/emergency_settings.xml
@@ -25,7 +25,6 @@
android:layout="@layout/more_settings_button"
android:order="0"
android:selectable="false"
- settings:allowDividerBelow="true"
settings:controller="com.android.settings.emergency.MoreSettingsPreferenceController" />
+
diff --git a/src/com/android/settings/deviceinfo/storage/StorageRenameFragment.java b/src/com/android/settings/deviceinfo/storage/StorageRenameFragment.java
index c67fe338ffa..c6eb0c8ad6f 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageRenameFragment.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageRenameFragment.java
@@ -68,6 +68,7 @@ public class StorageRenameFragment extends InstrumentedDialogFragment {
final View view = dialogInflater.inflate(R.layout.dialog_edittext, null, false);
final EditText nickname = (EditText) view.findViewById(R.id.edittext);
nickname.setText(rec.getNickname());
+ nickname.requestFocus();
return builder.setTitle(R.string.storage_rename_title)
.setView(view)
diff --git a/src/com/android/settings/emergency/MoreSettingsPreferenceController.java b/src/com/android/settings/emergency/MoreSettingsPreferenceController.java
index 34c11c76780..3c9ae6ed106 100644
--- a/src/com/android/settings/emergency/MoreSettingsPreferenceController.java
+++ b/src/com/android/settings/emergency/MoreSettingsPreferenceController.java
@@ -25,9 +25,15 @@ import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.TextUtils;
+import android.util.DisplayMetrics;
import android.util.Log;
+import android.util.TypedValue;
import android.view.View;
import android.widget.Button;
@@ -35,6 +41,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
+import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.widget.LayoutPreference;
@@ -77,7 +84,17 @@ public class MoreSettingsPreferenceController extends BasePreferenceController i
super.displayPreference(screen);
final LayoutPreference pref = screen.findPreference(getPreferenceKey());
final Button button = pref.findViewById(R.id.button);
+ final Drawable icon = getIcon();
button.setText(getButtonText());
+ if (icon != null) {
+ button.setCompoundDrawablesWithIntrinsicBounds(
+ /* left= */ icon,
+ /* top= */null,
+ /* right= */ null,
+ /* bottom= */ null);
+ button.setVisibility(View.VISIBLE);
+ }
+
button.setOnClickListener(this);
}
@@ -100,6 +117,21 @@ public class MoreSettingsPreferenceController extends BasePreferenceController i
mContext.startActivity(intent, bundle);
}
+ private Drawable getIcon() {
+ final String packageName = mContext.getResources().getString(
+ R.string.config_emergency_package_name);
+ try {
+ final PackageManager pm = mContext.getPackageManager();
+ final ApplicationInfo appInfo = pm.getApplicationInfo(
+ packageName, MATCH_DISABLED_COMPONENTS
+ | MATCH_DISABLED_UNTIL_USED_COMPONENTS);
+ return getScaledDrawable(mContext, Utils.getBadgedIcon(mContext, appInfo), 24, 24);
+ } catch (Exception e) {
+ Log.d(TAG, "Failed to get open app button icon", e);
+ return null;
+ }
+ }
+
private CharSequence getButtonText() {
final String packageName = mContext.getResources().getString(
R.string.config_emergency_package_name);
@@ -114,4 +146,29 @@ public class MoreSettingsPreferenceController extends BasePreferenceController i
return "";
}
}
+
+ private static Drawable getScaledDrawable(Context context, Drawable icon, int width,
+ int height) {
+ DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
+ int widthInDp =
+ (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, width, displayMetrics);
+ int heightInDp =
+ (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, height,
+ displayMetrics);
+
+ return new BitmapDrawable(context.getResources(),
+ convertToBitmap(icon, widthInDp, heightInDp));
+ }
+
+ private static Bitmap convertToBitmap(Drawable icon, int width, int height) {
+ if (icon == null) {
+ return null;
+ }
+ Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+ Canvas canvas = new Canvas(bitmap);
+ icon.setBounds(0, 0, width, height);
+ icon.draw(canvas);
+ return bitmap;
+ }
+
}
diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
index ff8ff583034..d0fa8e9f3b8 100644
--- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
@@ -33,6 +33,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.Utils;
@@ -60,6 +61,7 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
private Activity mActivity;
private PreferenceFragmentCompat mHost;
private Lifecycle mLifecycle;
+ private BatteryTip mBatteryTip;
private final PowerManager mPowerManager;
public BatteryHeaderPreferenceController(Context context, String key) {
@@ -109,16 +111,37 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
if (BatteryUtils.isBatteryDefenderOn(info)) {
return null;
} else if (info.remainingLabel == null) {
+ // Present status independently if no remaining time
return info.statusLabel;
+ } else if (info.statusLabel != null && !info.discharging) {
+ // Charging state
+ return mContext.getString(
+ R.string.battery_state_and_duration, info.statusLabel, info.remainingLabel);
+ } else if (mPowerManager.isPowerSaveMode()) {
+ // Power save mode is on
+ final String powerSaverOn = mContext.getString(
+ R.string.battery_tip_early_heads_up_done_title);
+ return mContext.getString(
+ R.string.battery_state_and_duration, powerSaverOn, info.remainingLabel);
+ } else if (mBatteryTip != null
+ && mBatteryTip.getType() == BatteryTip.TipType.LOW_BATTERY) {
+ // Low battery state
+ final String lowBattery = mContext.getString(R.string.low_battery_summary);
+ return mContext.getString(
+ R.string.battery_state_and_duration, lowBattery, info.remainingLabel);
} else {
+ // Discharging state
return info.remainingLabel;
}
}
public void updateHeaderPreference(BatteryInfo info) {
+ if (!mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(this, info)) {
+ mBatteryUsageProgressBarPref.setBottomSummary(generateLabel(info));
+ }
+
mBatteryUsageProgressBarPref.setUsageSummary(
formatBatteryPercentageText(info.batteryLevel));
- mBatteryUsageProgressBarPref.setBottomSummary(generateLabel(info));
mBatteryUsageProgressBarPref.setPercent(info.batteryLevel, BATTERY_MAX_LEVEL);
}
@@ -140,6 +163,17 @@ public class BatteryHeaderPreferenceController extends BasePreferenceController
mBatteryUsageProgressBarPref.setPercent(batteryLevel, BATTERY_MAX_LEVEL);
}
+ /**
+ * Update summary when battery tips changed.
+ */
+ public void updateHeaderByBatteryTips(BatteryTip batteryTip, BatteryInfo batteryInfo) {
+ mBatteryTip = batteryTip;
+
+ if (mBatteryTip != null && batteryInfo != null) {
+ updateHeaderPreference(batteryInfo);
+ }
+ }
+
private CharSequence formatBatteryPercentageText(int batteryLevel) {
return TextUtils.expandTemplate(mContext.getText(R.string.battery_header_title_alternate),
NumberFormat.getIntegerInstance().format(batteryLevel));
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 9e619973122..7dfca22f9c4 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -94,6 +94,8 @@ public class PowerUsageSummary extends PowerUsageBase implements
@Override
public void onLoadFinished(Loader loader, BatteryInfo batteryInfo) {
mBatteryHeaderPreferenceController.updateHeaderPreference(batteryInfo);
+ mBatteryHeaderPreferenceController.updateHeaderByBatteryTips(
+ mBatteryTipPreferenceController.getCurrentBatteryTip(), batteryInfo);
mBatteryInfo = batteryInfo;
}
@@ -115,6 +117,8 @@ public class PowerUsageSummary extends PowerUsageBase implements
public void onLoadFinished(Loader> loader,
List data) {
mBatteryTipPreferenceController.updateBatteryTips(data);
+ mBatteryHeaderPreferenceController.updateHeaderByBatteryTips(
+ mBatteryTipPreferenceController.getCurrentBatteryTip(), mBatteryInfo);
}
@Override
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
index 00b1e874d33..c6afefe9961 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
@@ -16,6 +16,7 @@
package com.android.settings.fuelgauge.batterytip;
+import android.annotation.Nullable;
import android.content.Context;
import android.os.Bundle;
@@ -162,6 +163,19 @@ public class BatteryTipPreferenceController extends BasePreferenceController {
return mNeedUpdate;
}
+ /**
+ * @return current battery tips, null if unavailable.
+ */
+ @Nullable
+ public BatteryTip getCurrentBatteryTip() {
+ if (mBatteryTips == null) {
+ return null;
+ }
+
+ return mBatteryTips.stream().anyMatch(BatteryTip::isVisible)
+ ? mBatteryTips.stream().filter(BatteryTip::isVisible).findFirst().get() : null;
+ }
+
/**
* Listener to give the control back to target fragment
*/
diff --git a/src/com/android/settings/network/SubscriptionUtil.java b/src/com/android/settings/network/SubscriptionUtil.java
index be8f2578a64..4ba7fc90617 100644
--- a/src/com/android/settings/network/SubscriptionUtil.java
+++ b/src/com/android/settings/network/SubscriptionUtil.java
@@ -256,7 +256,7 @@ public class SubscriptionUtil {
.map(i -> {
DisplayInfo info = new DisplayInfo();
info.subscriptionInfo = i;
- info.originalName = i.getDisplayName();
+ info.originalName = i.getDisplayName().toString().trim();
return info;
});
diff --git a/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceController.java b/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceController.java
index 46224315992..cf05ff48cc6 100644
--- a/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceController.java
+++ b/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceController.java
@@ -16,33 +16,47 @@
package com.android.settings.privacy;
+import android.content.ClipboardManager;
import android.content.Context;
+import android.provider.DeviceConfig;
import android.provider.Settings;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.OnLifecycleEvent;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
import com.android.settings.core.TogglePreferenceController;
/**
* Controller for preference to toggle whether clipboard access notifications should be shown.
*/
-public class ShowClipAccessNotificationPreferenceController extends TogglePreferenceController {
+public class ShowClipAccessNotificationPreferenceController
+ extends TogglePreferenceController implements LifecycleObserver {
private static final String KEY_SHOW_CLIP_ACCESS_NOTIFICATION = "show_clip_access_notification";
+ private final DeviceConfig.OnPropertiesChangedListener mDeviceConfigListener =
+ properties -> updateConfig();
+ private boolean mDefault;
+ private Preference mPreference;
+
public ShowClipAccessNotificationPreferenceController(Context context) {
super(context, KEY_SHOW_CLIP_ACCESS_NOTIFICATION);
+ updateConfig();
}
@Override
public boolean isChecked() {
- // TODO(b/182349993) Retrieve default value from DeviceConfig.
return Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.CLIPBOARD_SHOW_ACCESS_NOTIFICATIONS, 1) != 0;
+ Settings.Secure.CLIPBOARD_SHOW_ACCESS_NOTIFICATIONS, (mDefault ? 1 : 0)) != 0;
}
@Override
public boolean setChecked(boolean isChecked) {
Settings.Secure.putInt(mContext.getContentResolver(),
- Settings.Secure.CLIPBOARD_SHOW_ACCESS_NOTIFICATIONS, isChecked ? 1 : 0);
+ Settings.Secure.CLIPBOARD_SHOW_ACCESS_NOTIFICATIONS, (isChecked ? 1 : 0));
return true;
}
@@ -51,4 +65,35 @@ public class ShowClipAccessNotificationPreferenceController extends TogglePrefer
return AVAILABLE;
}
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+
+ mPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ /**
+ * Registers a DeviceConfig listener on start.
+ */
+ @OnLifecycleEvent(Lifecycle.Event.ON_START)
+ public void onStart() {
+ DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_CLIPBOARD,
+ mContext.getMainExecutor(), mDeviceConfigListener);
+ }
+
+ /**
+ * Removes the DeviceConfig listener on stop.
+ */
+ @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
+ public void onStop() {
+ DeviceConfig.removeOnPropertiesChangedListener(mDeviceConfigListener);
+ }
+
+ private void updateConfig() {
+ mDefault = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_CLIPBOARD,
+ ClipboardManager.DEVICE_CONFIG_SHOW_ACCESS_NOTIFICATIONS,
+ ClipboardManager.DEVICE_CONFIG_DEFAULT_SHOW_ACCESS_NOTIFICATIONS);
+ updateState(mPreference);
+ }
+
}
diff --git a/src/com/android/settings/vpn2/ManageablePreference.java b/src/com/android/settings/vpn2/ManageablePreference.java
index c65073f2d60..b7851864da7 100644
--- a/src/com/android/settings/vpn2/ManageablePreference.java
+++ b/src/com/android/settings/vpn2/ManageablePreference.java
@@ -107,21 +107,20 @@ public abstract class ManageablePreference extends GearPreference {
final Resources res = getContext().getResources();
final String[] states = res.getStringArray(R.array.vpn_states);
String summary = (mState == STATE_NONE ? "" : states[mState]);
- if (mIsAlwaysOn) {
- final String alwaysOnString = res.getString(R.string.vpn_always_on_summary_active);
- summary = TextUtils.isEmpty(summary) ? alwaysOnString : res.getString(
- R.string.join_two_unrelated_items, summary, alwaysOnString);
- }
if (mIsInsecureVpn) {
final String insecureString = res.getString(R.string.vpn_insecure_summary);
- summary = TextUtils.isEmpty(summary) ? insecureString : res.getString(
- R.string.join_two_unrelated_items, summary, insecureString);
+ summary = TextUtils.isEmpty(summary) ? insecureString : summary + " / "
+ + insecureString;
SpannableString summarySpan = new SpannableString(summary);
final int colorError = Utils.getColorErrorDefaultColor(getContext());
summarySpan.setSpan(new ForegroundColorSpan(colorError), 0, summary.length(),
SPAN_EXCLUSIVE_INCLUSIVE);
setSummary(summarySpan);
+ } else if (mIsAlwaysOn) {
+ final String alwaysOnString = res.getString(R.string.vpn_always_on_summary_active);
+ summary = TextUtils.isEmpty(summary) ? alwaysOnString : summary + " / "
+ + alwaysOnString;
} else {
setSummary(summary);
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
index ad10fa8c975..f6c292dea82 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
@@ -27,6 +27,7 @@ import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import android.app.Activity;
@@ -44,6 +45,9 @@ import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
+import com.android.settings.fuelgauge.batterytip.tips.LowBatteryTip;
+import com.android.settings.fuelgauge.batterytip.tips.SmartBatteryTip;
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.widget.EntityHeaderController;
@@ -58,7 +62,9 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowPowerManager;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowEntityHeaderController.class, ShadowUtils.class})
@@ -82,9 +88,11 @@ public class BatteryHeaderPreferenceControllerTest {
private EntityHeaderController mEntityHeaderController;
@Mock
private UsageProgressBarPreference mBatteryUsageProgressBarPref;
+ @Mock
+ private BatteryStatusFeatureProvider mBatteryStatusFeatureProvider;
private BatteryHeaderPreferenceController mController;
private Context mContext;
- private PowerManager mPowerManager;
+ private ShadowPowerManager mShadowPowerManager;
private Intent mBatteryIntent;
private LifecycleOwner mLifecycleOwner;
private Lifecycle mLifecycle;
@@ -109,7 +117,7 @@ public class BatteryHeaderPreferenceControllerTest {
mBatteryInfo.batteryLevel = BATTERY_LEVEL;
- mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+ mShadowPowerManager = Shadows.shadowOf(mContext.getSystemService(PowerManager.class));
mController = spy(new BatteryHeaderPreferenceController(mContext, PREF_KEY));
mLifecycle.addObserver(mController);
@@ -117,6 +125,7 @@ public class BatteryHeaderPreferenceControllerTest {
mController.setFragment(mPreferenceFragment);
mController.setLifecycle(mLifecycle);
mController.mBatteryUsageProgressBarPref = mBatteryUsageProgressBarPref;
+ mController.mBatteryStatusFeatureProvider = mBatteryStatusFeatureProvider;
}
@After
@@ -144,9 +153,7 @@ public class BatteryHeaderPreferenceControllerTest {
@Test
public void updatePreference_updateBatteryInfo() {
- mBatteryInfo.remainingLabel = TIME_LEFT;
- mBatteryInfo.batteryLevel = BATTERY_LEVEL;
- mBatteryInfo.discharging = true;
+ setChargingState(/* isDischarging */ true, /* updatedByStatusFeature */ false);
mController.updateHeaderPreference(mBatteryInfo);
@@ -165,6 +172,108 @@ public class BatteryHeaderPreferenceControllerTest {
verify(mBatteryUsageProgressBarPref).setBottomSummary(BATTERY_STATUS);
}
+ @Test
+ public void updatePreference_charging_showFullText() {
+ setChargingState(/* isDischarging */ false, /* updatedByStatusFeature */ false);
+
+ mController.updateHeaderPreference(mBatteryInfo);
+
+ final String expectedResult = BATTERY_STATUS + " • " + TIME_LEFT;
+ verify(mBatteryUsageProgressBarPref).setBottomSummary(expectedResult);
+ }
+
+ @Test
+ public void updatePreference_powerSaverOn_showPowerSaverOn() {
+ setChargingState(/* isDischarging */ true, /* updatedByStatusFeature */ false);
+ mShadowPowerManager.setIsPowerSaveMode(true);
+
+ mController.updateHeaderPreference(mBatteryInfo);
+
+ final String expectedResult = "Battery Saver is on • " + TIME_LEFT;
+ verify(mBatteryUsageProgressBarPref).setBottomSummary(expectedResult);
+ }
+
+ @Test
+ public void updatePreference_triggerBatteryStatusUpdateTrue_updatePercentageAndUsageOnly() {
+ setChargingState(/* isDischarging */ true, /* updatedByStatusFeature */ true);
+
+ mController.updateHeaderPreference(mBatteryInfo);
+
+ verify(mBatteryUsageProgressBarPref).setUsageSummary(formatBatteryPercentageText());
+ verify(mBatteryUsageProgressBarPref).setPercent(BATTERY_LEVEL, BATTERY_MAX_LEVEL);
+ }
+
+ @Test
+ public void updatePreference_triggerBatteryStatusUpdateFalse_updateBatteryInfo() {
+ setChargingState(/* isDischarging */ true, /* updatedByStatusFeature */ false);
+
+ mController.updateHeaderPreference(mBatteryInfo);
+
+ verify(mBatteryUsageProgressBarPref).setUsageSummary(formatBatteryPercentageText());
+ verify(mBatteryUsageProgressBarPref).setBottomSummary(mBatteryInfo.remainingLabel);
+ verify(mBatteryUsageProgressBarPref).setPercent(BATTERY_LEVEL, BATTERY_MAX_LEVEL);
+ }
+
+ @Test
+ public void updateBatteryStatus_nullLabel_updateSummaryOnly() {
+ setChargingState(/* isDischarging */ true, /* updatedByStatusFeature */ false);
+
+ mController.updateBatteryStatus(null, mBatteryInfo);
+
+ verify(mBatteryUsageProgressBarPref).setBottomSummary(mBatteryInfo.remainingLabel);
+ }
+
+ @Test
+ public void updateBatteryStatus_withLabel_showLabelText() {
+ setChargingState(/* isDischarging */ true, /* updatedByStatusFeature */ false);
+
+ final String label = "Update by battery status • " + TIME_LEFT;
+ mController.updateBatteryStatus(label, mBatteryInfo);
+
+ verify(mBatteryUsageProgressBarPref).setBottomSummary(label);
+ }
+
+ @Test
+ public void updateHeaderByBatteryTips_lowBatteryTip_showLowBattery() {
+ setChargingState(/* isDischarging */ true, /* updatedByStatusFeature */ false);
+ BatteryTip lowBatteryTip = new LowBatteryTip(
+ BatteryTip.StateType.NEW, /* powerSaveModeOn */false);
+
+ mController.updateHeaderByBatteryTips(lowBatteryTip, mBatteryInfo);
+
+ final String expectedResult = "Low battery • " + TIME_LEFT;
+ verify(mBatteryUsageProgressBarPref).setBottomSummary(expectedResult);
+ }
+
+ @Test
+ public void updateHeaderByBatteryTips_notLowBatteryTip_showRemainingLabel() {
+ setChargingState(/* isDischarging */ true, /* updatedByStatusFeature */ false);
+ BatteryTip lowBatteryTip = new SmartBatteryTip(BatteryTip.StateType.NEW);
+
+ mController.updateHeaderByBatteryTips(lowBatteryTip, mBatteryInfo);
+
+ verify(mBatteryUsageProgressBarPref).setBottomSummary(mBatteryInfo.remainingLabel);
+ }
+
+ @Test
+ public void updateHeaderByBatteryTips_noTip_noAction() {
+ setChargingState(/* isDischarging */ true, /* updatedByStatusFeature */ false);
+
+ mController.updateHeaderByBatteryTips(null, mBatteryInfo);
+
+ verifyZeroInteractions(mBatteryUsageProgressBarPref);
+ }
+
+ @Test
+ public void updateHeaderByBatteryTips_noBatteryInfo_noAction() {
+ BatteryTip lowBatteryTip = new LowBatteryTip(
+ BatteryTip.StateType.NEW, /* powerSaveModeOn */false);
+
+ mController.updateHeaderByBatteryTips(lowBatteryTip, null);
+
+ verifyZeroInteractions(mBatteryUsageProgressBarPref);
+ }
+
@Test
public void updatePreference_isOverheat_showEmptyText() {
mBatteryInfo.isOverheated = true;
@@ -203,4 +312,13 @@ public class BatteryHeaderPreferenceControllerTest {
return TextUtils.expandTemplate(mContext.getText(R.string.battery_header_title_alternate),
NumberFormat.getIntegerInstance().format(BATTERY_LEVEL));
}
+
+ private void setChargingState(boolean isDischarging, boolean updatedByStatusFeature) {
+ mBatteryInfo.remainingLabel = TIME_LEFT;
+ mBatteryInfo.statusLabel = BATTERY_STATUS;
+ mBatteryInfo.discharging = isDischarging;
+
+ when(mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(
+ mController, mBatteryInfo)).thenReturn(updatedByStatusFeature);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java
index e9192889cd9..dbde3a7ed28 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java
@@ -127,6 +127,25 @@ public class BatteryTipPreferenceControllerTest {
BatteryTip.StateType.NEW);
}
+ @Test
+ public void testGetCurrentBatteryTip_noTips_isNull() {
+ assertThat(mBatteryTipPreferenceController.getCurrentBatteryTip()).isNull();
+ }
+
+ @Test
+ public void testGetCurrentBatteryTip_tipsInvisible_isNull() {
+ mBatteryTipPreferenceController.updateBatteryTips(mNewBatteryTips);
+ assertThat(mBatteryTipPreferenceController.getCurrentBatteryTip()).isNull();
+ }
+
+ @Test
+ public void testGetCurrentBatteryTip_tipsVisible_returnTips() {
+ mBatteryTipPreferenceController.updateBatteryTips(mOldBatteryTips);
+
+ assertThat(mBatteryTipPreferenceController.getCurrentBatteryTip().getType()).isEqualTo(
+ BatteryTip.TipType.SUMMARY);
+ }
+
@Test
public void testSaveAndRestore() {
mBatteryTipPreferenceController.updateBatteryTips(mOldBatteryTips);
diff --git a/tests/robotests/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceControllerTest.java
index c707cd600ae..fdf81e733ce 100644
--- a/tests/robotests/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/privacy/ShowClipAccessNotificationPreferenceControllerTest.java
@@ -18,8 +18,10 @@ package com.android.settings.privacy;
import static com.google.common.truth.Truth.assertThat;
+import android.content.ClipboardManager;
import android.content.ContentResolver;
import android.content.Context;
+import android.provider.DeviceConfig;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
@@ -27,14 +29,18 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
+import com.android.settings.testutils.shadow.ShadowDeviceConfig;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowDeviceConfig.class})
public class ShowClipAccessNotificationPreferenceControllerTest {
@Mock
@@ -54,19 +60,47 @@ public class ShowClipAccessNotificationPreferenceControllerTest {
}
@Test
- public void isChecked_settingIsOff_shouldReturnFalse() throws Exception {
+ public void isChecked_settingIsOff_shouldReturnFalse() {
setProperty(0);
assertThat(mController.isChecked()).isFalse();
}
@Test
- public void isChecked_settingIsOn_shouldReturnTrue() throws Exception {
+ public void isChecked_settingIsOn_shouldReturnTrue() {
setProperty(1);
assertThat(mController.isChecked()).isTrue();
}
+ @Test
+ public void isChecked_settingIsUnset_deviceConfigProvidesDefaultOfTrue() {
+ clearProperty();
+
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_CLIPBOARD,
+ ClipboardManager.DEVICE_CONFIG_SHOW_ACCESS_NOTIFICATIONS,
+ "true", false);
+
+ ShowClipAccessNotificationPreferenceController controller =
+ new ShowClipAccessNotificationPreferenceController(mContext);
+
+ assertThat(controller.isChecked()).isTrue();
+ }
+
+ @Test
+ public void isChecked_settingIsUnset_deviceConfigProvidesDefaultOfFalse() {
+ clearProperty();
+
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_CLIPBOARD,
+ ClipboardManager.DEVICE_CONFIG_SHOW_ACCESS_NOTIFICATIONS,
+ "false", false);
+
+ ShowClipAccessNotificationPreferenceController controller =
+ new ShowClipAccessNotificationPreferenceController(mContext);
+
+ assertThat(controller.isChecked()).isFalse();
+ }
+
@Test
public void onPreferenceChange_turnOn_shouldChangeSettingTo1() throws Exception {
setProperty(0);
@@ -93,6 +127,12 @@ public class ShowClipAccessNotificationPreferenceControllerTest {
contentResolver, Settings.Secure.CLIPBOARD_SHOW_ACCESS_NOTIFICATIONS, newValue);
}
+ private void clearProperty() {
+ final ContentResolver contentResolver = mContext.getContentResolver();
+ Settings.Secure.putString(
+ contentResolver, Settings.Secure.CLIPBOARD_SHOW_ACCESS_NOTIFICATIONS, null);
+ }
+
private void assertProperty(int expectedValue) throws SettingNotFoundException {
final ContentResolver contentResolver = mContext.getContentResolver();
assertThat(Settings.Secure.getInt(
diff --git a/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java b/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java
index c0e5205a77b..3d192cf5456 100644
--- a/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java
+++ b/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java
@@ -48,7 +48,8 @@ public class SubscriptionUtilTest {
private static final int SUBID_1 = 1;
private static final int SUBID_2 = 2;
private static final int SUBID_3 = 3;
- private static final CharSequence CARRIER_1 = "carrier1111111";
+ private static final CharSequence CARRIER_1 = "carrier1";
+ private static final CharSequence CARRIER_1_SPACE = " carrier1 ";
private static final CharSequence CARRIER_2 = "carrier2";
private Context mContext;
@@ -195,6 +196,35 @@ public class SubscriptionUtilTest {
assertEquals(CARRIER_1 + " 4444", idNames.get(SUBID_2));
}
+ @Test
+ public void getUniqueDisplayNames_identicalCarriersAfterTrim_fourDigitsUsed() {
+ // Both subscriptoins have the same display name.
+ final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
+ final SubscriptionInfo info2 = mock(SubscriptionInfo.class);
+ when(info1.getSubscriptionId()).thenReturn(SUBID_1);
+ when(info2.getSubscriptionId()).thenReturn(SUBID_2);
+ when(info1.getDisplayName()).thenReturn(CARRIER_1);
+ when(info2.getDisplayName()).thenReturn(CARRIER_1_SPACE);
+ when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(
+ Arrays.asList(info1, info2));
+
+ // Each subscription has a unique last 4 digits of the phone number.
+ TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
+ TelephonyManager sub2Telmgr = mock(TelephonyManager.class);
+ when(sub1Telmgr.getLine1Number()).thenReturn("1112223333");
+ when(sub2Telmgr.getLine1Number()).thenReturn("2223334444");
+ when(mTelMgr.createForSubscriptionId(SUBID_1)).thenReturn(sub1Telmgr);
+ when(mTelMgr.createForSubscriptionId(SUBID_2)).thenReturn(sub2Telmgr);
+
+ final Map idNames =
+ SubscriptionUtil.getUniqueSubscriptionDisplayNames(mContext);
+
+ assertThat(idNames).isNotNull();
+ assertThat(idNames).hasSize(2);
+ assertEquals(CARRIER_1 + " 3333", idNames.get(SUBID_1));
+ assertEquals(CARRIER_1 + " 4444", idNames.get(SUBID_2));
+ }
+
@Test
public void getUniqueDisplayNames_phoneNumberBlocked_subscriptoinIdFallback() {
// Both subscriptoins have the same display name.