diff --git a/res/layout/choose_sim_activity.xml b/res/layout/choose_sim_activity.xml
index 693c6e1914d..6e5393a4a74 100644
--- a/res/layout/choose_sim_activity.xml
+++ b/res/layout/choose_sim_activity.xml
@@ -20,30 +20,4 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:entries="@xml/items_multiple_carrier"
- android:icon="@drawable/ic_network_signal_blue">
-
-
-
-
-
-
-
-
-
-
-
+ android:icon="@drawable/ic_network_signal_blue" />
diff --git a/res/layout/face_enroll_introduction.xml b/res/layout/face_enroll_introduction.xml
index c9c4d23f578..c1c9ac6ad85 100644
--- a/res/layout/face_enroll_introduction.xml
+++ b/res/layout/face_enroll_introduction.xml
@@ -107,6 +107,28 @@
style="@style/BiometricEnrollIntroMessage" />
+
+
+
+
+
+
+
"Maak kleiner"
"Maak groter"
"Gebruik outodraai"
- "Gesigbespeuring gebruik die voorste kamera om die akkuraatheid van outodraai te verbeter. Prente word nooit geberg of na Google toe gestuur nie.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Kom meer te wete oor outodraaiskerm</a>"
+ "Gesigbespeuring gebruik die voorste kamera om die akkuraatheid van outodraai te verbeter. Prente word nooit geberg of na Google toe gestuur nie."
"Voorbeeldteks"
"Die Wonderlike Towenaar van Oz"
"Hoofstuk 11: Die Wonderlike Smaragstad van Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"GAAN VOORT"
"NEE, DANKIE"
"Ligging"
- "Jou diensverskaffer kan dalk jou ligging verkry om hierdie diens te verskaf.\n\nGaan jou diensverskaffer se privaatheidsbeleid na."
+ "Jou diensverskaffer kan jou ligging bepaal wanneer jy hierdie diens vir noodoproepe gebruik.\n\nKry besonderhede op jou diensverskaffer se privaatheidsbeleid."
"Jy kan toegang tot enige oorblywende tyd of data verloor. Vra jou verskaffer voordat jy dit verwyder."
"inhoudvaslegging, programinhoud"
"Programinhoud"
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 82b1a01b25e..0fae2654f8a 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -53,7 +53,7 @@
"አነስ አድርግ"
"ተለቅ አድርግ"
"ራስ-አዙርን ይጠቀሙ"
- "የራስ-አዙርን ትክክለኝነትን ለማሻሻል መልክ ማወቂያ የፊት ለፊቱን ካሜራ ይጠቀማል። ምስሎች በጭራሽ Google ላይ አይከማቹም ወይም አይላኩም።<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>ስለ ራስ-አዙር ማያ ገጽ የበለጠ ይረዱ</a>"
+ "የራስ-አዙርን ትክክለኝነትን ለማሻሻል መልክ ማወቂያ የፊት ለፊቱን ካሜራ ይጠቀማል። ምስሎች በጭራሽ አይከማቹም ወይም ወደ Google አይላኩም።"
"የናሙና ጽሑፍ"
"አስደናቂው የኦዝ ምትሃተኛ"
"ምዕራፍ 11፦ ኦዝ፣ አስደናቂዋ የኤምራልድ ከተማ"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"ቀጥል"
"አይ አመሰግናለሁ"
"መገኛ አካባቢ"
- "የእርስዎ አገልግሎት አቅራቢ ይህን አገልግሎት ለመስጠት እንዲቻል የእርስዎን መገኛ አካባቢ ሊሰበስብ ይችል ይሆናል።\n\nየእርስዎን አገልግሎት አቅራቢ መመሪያ እባክዎ ይገምግሙ።"
+ "ለአደጋ ጥሪዎች ይህንን አገልግሎት ሲጠቀሙ አገልግሎት አቅራቢዎ አካባቢዎን ሊሰበስብ ይችላል።\n\nለዝርዝሮች የአገልግሎት አቅራቢዎን የግላዊነት መመሪያ ይጎብኙ።"
"ማናቸውንም ቀሪ ጊዜ ወይም ውሂብ መዳረሻ ሊያጡ ይችሉ ይሆናል። ከማስወገድዎ በፊት ከእርስዎ አገልግሎት አቅራቢ ጋር ይፈትሹ።"
"ይዘትን መቅረጽ፣ የመተግበሪያ ይዘት"
"የመተግበሪያ ይዘት"
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index c01cdc3ea18..2fe910ec699 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -57,7 +57,7 @@
"تصغير"
"تكبير"
"استخدام \"التدوير التلقائي\""
- "تستخدم ميزة \"التعرّف على الوجوه\" الكاميرا الأمامية لتحسين دقة \"التدوير التلقائي\". لا يتم مطلقًا تخزين الصور أو إرسالها إلى Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>مزيد من المعلومات حول \"التدوير التلقائي للشاشة\"</a>"
+ "تستخدم ميزة \"التعرّف على الوجوه\" الكاميرا الأمامية لتحسين دقة \"التدوير التلقائي\". لا يتم تخزين الصور أو إرسالها إلى Google مطلقًا."
"نموذج نص"
"ساحر أوز العجيب"
"الفصل ۱۱: مدينة أوز الزمردية العجيبة"
@@ -368,6 +368,8 @@
+
+
@@ -2789,7 +2791,7 @@
"عرض التطبيقات ذات أعلى معدّل استخدام للبطارية"
"الشحن محدود مؤقتًا"
"للحفاظ على عمر البطارية. مزيد من المعلومات"
- "بسبب استخدام هاتفك أكثر من الطبيعي، قد ينفد شحن بطاريتك أسرع من المعتاد.\n\nالتطبيقات التي تستخدم أكبر قدر من البطارية:"
+ "بسبب استخدام هاتفك بمعدل أكثر من الطبيعي، قد ينفد شحن بطاريتك أسرع من المعتاد.\n\nالتطبيقات التي تستخدم أكبر قدر من البطارية:"
"بسبب استخدام جهازك اللوحي أكثر من الطبيعي، قد ينفد شحن بطاريتك أسرع من المعتاد.\n\nالتطبيقات التي تستخدم أكبر قدر من البطارية:"
"بسبب استخدام جهازك أكثر من الطبيعي، قد ينفد شحن بطاريتك أسرع من المعتاد.\n\nالتطبيقات التي تستخدم أكبر قدر من البطارية:"
"يشمل النشاط الكثيف لطاقة البطارية في الخلفية"
@@ -5711,7 +5713,7 @@
"متابعة"
"لا، شكرًا"
"الموقع الجغرافي"
- "يجوز لمقدّم الخدمة جمع بيانات موقعك الجغرافي لتوفير هذه الخدمة.\n\nيُرجى الاطّلاع على سياسة الخصوصية المتّبعة لدى مقدّم الخدمة."
+ "يمكن أن يجمع مشغّل شبكة الجوّال بيانات موقعك الجغرافي عندما تستخدم هذه الخدمة لإجراء مكالمات الطوارئ.\n\nيمكنك الاطّلاع على سياسة خصوصية مشغّل شبكة الجوّال للحصول على مزيد من التفاصيل."
"قد تفقد إمكانية الوصول إلى أي وقت أو بيانات متبقية. يُرجى مراجعة ذلك مع مقدّم الخدمة قبل الإزالة."
"تسجيل المحتوى، محتوى التطبيق"
"محتوى التطبيق"
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 341e3cbb52f..6001e398e07 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -53,7 +53,7 @@
"সৰু কৰক"
"ডাঙৰ কৰক"
"স্বয়ং-ঘূৰ্ণনৰ সুবিধা ব্যৱহাৰ কৰক"
- "মুখাৱয়ব চিনাক্তকৰণ সুবিধাটোৱে স্বয়ং-ঘূৰ্ণনৰ সঠিকতা উন্নত কৰিবলৈ সন্মুখৰ কেমেৰা ব্যৱহাৰ কৰে। প্ৰতিচ্ছবি কেতিয়াও ষ্ট’ৰ কৰা নহয় অথবা Googleলৈ পঠিওৱা নহয়।<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>স্বয়ং-ঘূৰ্ণন স্ক্ৰীনৰ বিষয়ে অধিক জানক</a>"
+ "মুখাৱয়ব চিনাক্তকৰণ সুবিধাটোৱে স্বয়ং-ঘূৰ্ণনৰ সঠিকতা উন্নত কৰিবলৈ সন্মুখৰ কেমেৰা ব্যৱহাৰ কৰে। প্ৰতিচ্ছবি কেতিয়াও ষ্ট’ৰ কৰা নহয় অথবা Googleলৈ পঠিওৱা নহয়।"
"পাঠৰ নমুনা"
"অষ্ট্ৰেলিয়াৰ বিস্ময়কৰ যাদুকৰ"
"অধ্যায় ১১: অষ্ট্ৰেলিয়াৰ বিস্ময়কৰ পান্নাৰ মহানগৰ"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"অব্যাহত ৰাখক"
"নালাগে, ধন্যবাদ"
"অৱস্থান"
- "আপোনাৰ সেৱা প্ৰদানকাৰীয়ে এই সেৱা প্ৰদান কৰিবলৈ আপোনাৰ অৱস্থানৰ তথ্য সংগ্ৰহ কৰিব পাৰে।\n\nঅনুগ্ৰহ কৰি আপোনাৰ সেৱা প্ৰদানকাৰীৰ গোপনীয়তা নীতিৰ পৰ্যালোচনা কৰক।"
+ "আপুনি জৰুৰীকালীন কলৰ বাবে এই সেৱাটো ব্যৱহাৰ কৰোঁতে আপোনাৰ বাহকে হয়তো আপোনাৰ অৱস্থানৰ তথ্য সংগ্ৰহ কৰিব পাৰে।\n\nসবিশেষৰ বাবে আপোনাৰ বাহকৰ গোপনীয়তাৰ নীতি চাওক।"
"আপুনি বাকী থকা সময় অথবা ডেটাৰ এক্সেছ হেৰুৱাব পাৰে। আঁতৰোৱাৰ আগতে আপোনাৰ সেৱা প্ৰদানকাৰীৰ সৈতে যোগাযোগ কৰক।"
"সমলৰ কেপচাৰ, এপৰ সমল"
"এপৰ সমল"
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 4676e850283..0549b30b856 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -53,7 +53,7 @@
"Kiçildin"
"Böyüdün"
"Ekran avtomatik dönsün"
- "Üzün tanınması funksiyası ön kamera vasitəsilə avtomatik dönmənin dəqiqliyini artırır. Şəkillər yadda saxlanılmır və cihazdan kənara çıxmır.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Ekranın avtomatik dönməsi haqqında</a>"
+ "Üz Aşkarlanması, Avtodönüş dəqiqliyini yaxşılaşdırmaq üçün ön kameranı istifadə edir. Şəkillər heç vaxt saxlanılmır, yaxud Google\'a göndərilmir."
"Mətn nümunəsi"
"Ozlu Heyrətamiz Sehrbaz"
"Fəsil 11: Məftunedici Zümrüd Şəhəri Oz"
@@ -356,6 +356,8 @@
+
+
@@ -2665,7 +2667,7 @@
"Ən çox istifadə edilən tətbiqlərə baxın"
"Şarj müvəqqəti məhdudlaşdırılıb"
"Enerjiyə qənaət etmək üçün. Ətraflı məlumat."
- "Telefonunuzu həmişəkindən çox istifadə etdiyiniz üçün enerji normaldan daha tez tükənə bilər.\n\nƏn çox enerji istifadə edən tətbiqlər:"
+ "Telefonu çox işlətdiyiniz üçün enerji nisbətən tez qurtara bilər.\n\nEnerji sərfiyyatı yüksək tətbiqlər:"
"Planşetinizi həmişəkindən çox istifadə etdiyiniz üçün enerji normaldan daha tez tükənə bilər.\n\nƏn çox enerji istifadə edən tətbiqlər:"
"Cihazınızı həmişəkindən çox istifadə etdiyiniz üçün enerji normaldan daha tez tükənə bilər.\n\nƏn çox enerji istifadə edən tətbiqlər:"
"Batareyadan çox istifadə edən arxa fon fəaliyyəti daxildir"
@@ -2720,7 +2722,7 @@
- %1$d tətbiq məhdudlaşdırılıb
"^1"" ""%"""
- "Batareya ölçüsünü oxuyarkən problem yarandı."
+ "Şarj səviyyəsini öyrənmək olmur."
"Bu xəta haqqında əlavə məlumat üçün toxunun"
"Tətbiq dayandırılsın?"
@@ -5355,7 +5357,7 @@
"DAVAM EDİN"
"XEYR, TƏŞƏKKÜRLƏR"
"Məkan"
- "Provayder bu xidməti təmin etmək üçün məkan datasını toplaya bilər.\n\nXidmət provayderinin məxfilik siyasətini nəzərdən keçirin."
+ "Fövqəladə zənglər üçün bu xidmətdən istifadə etdiyiniz zaman operatorunuz məkan məlumatınızı toplaya bilər.\n\nƏtraflı məlumat üçün operatorunuzun məxfilik siyasətini ziyarət edin."
"Qalan vaxt və ya dataya girişi itirə bilərsiniz. Silməzdən əvvəl provayder ilə yoxlayın."
"kontentin əldə edilməsi, tətbiq kontenti"
"Tətbiq kontenti"
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 83031555f2e..2956fd58d40 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -54,7 +54,7 @@
"Umanji"
"Uvećaj"
"Koristi automatsko rotiranje"
- "Prepoznavanje lica koristi prednju kameru za poboljšanje preciznosti automatskog rotiranja. Slike se nikad ne čuvaju niti šalju Google-u.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Saznajte više o automatskom rotiranju ekrana</a>"
+ "Prepoznavanje lica koristi prednju kameru za poboljšanje preciznosti automatskog rotiranja. Slike se nikada ne čuvaju niti šalju Google-u."
"Primer teksta"
"Čarobnjak iz Oza"
"Poglavlje 11: Čudesni Smaragdni grad Oza"
@@ -359,6 +359,8 @@
+
+
@@ -5444,7 +5446,7 @@
"NASTAVI"
"NE, HVALA"
"Lokacija"
- "Dobavljač usluge može da prikuplja informacije o lokaciji da bi pružao ovu uslugu.\n\nPregledajte politiku privatnosti dobavljača usluge."
+ "Mobilni operater može da prikuplja podatke o lokaciji kada koristite ovu uslugu za hitne pozive.\n\nPotražite detalje u politici privatnosti mobilnog operatera."
"Možete da izgubite pristup preostalom vremenu ili podacima. Proverite sa dobavljačem usluge pre uklanjanja."
"snimanje sadržaja, sadržaj aplikacije"
"Sadržaj aplikacije"
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 2cb778a7e65..df31a5ac2e8 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -55,7 +55,7 @@
"Паменшыць"
"Павялічыць"
"Выкарыстоўваць аўтапаварот"
- "Функцыя \"Выяўленне твару\" выкарыстоўвае франтальную камеру для паляпшэння дакладнасці аўтапавароту. Відарысы ніколі не адпраўляюцца ў Google і не захоўваюцца там.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Даведацца больш пра экран аўтапавароту</a>"
+ "Функцыя \"Выяўленне твару\" выкарыстоўвае франтальную камеру для паляпшэння дакладнасці аўтапавароту. Відарысы ніколі не захоўваюцца і не адпраўляюцца ў Google."
"Прыклад тэксту"
"Чараўнік краіны Оз"
"Раздзел 11. Цудоўны Смарагдавы Горад у краіне Оз"
@@ -362,6 +362,8 @@
+
+
@@ -5535,7 +5537,7 @@
"ПРАЦЯГНУЦЬ"
"НЕ, ДЗЯКУЙ"
"Месцазнаходжанне"
- "Аператар мабільнай сувязі можа збіраць даныя пра ваша месцазнаходжанне, каб забяспечваць якаснае абслугоўванне.\n\nАзнаёмцеся з палітыкай прыватнасці вашага аператара"
+ "Аператар можа збіраць даныя пра ваша месцазнаходжанне, калі вы выкарыстоўваеце гэты сэрвіс для экстранных выклікаў.\n\nПадрабязнасці глядзіце ў палітыцы прыватнасці вашага аператара."
"Вы можаце страціць доступ да нявыкарыстаных хвілін і трафіка. Перш чым выдаляць, звярніцеся да свайго аператара."
"захаванне змесціва, змесціва праграмы"
"Змесціва праграмы"
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 894cd03c40b..cffedfd27ae 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -53,8 +53,7 @@
"Намаляване на размера"
"Увеличаване на размера"
"Използване на автоматичното завъртане"
-
+ "Функцията за лицево разпознаване използва предната камера, за да подобри точността на автоматичното завъртане. Изображенията никога не се съхраняват и не се изпращат до Google."
"Примерен текст"
"Вълшебникът от Оз"
"Глава 11: Удивителният изумруден град на Оз"
@@ -357,6 +356,8 @@
+
+
@@ -2044,7 +2045,7 @@
"Премахване на достъпа"
"Контроли"
- "Принудително спиране"
+ "Принудител­но спиране"
"Общо"
"Размер на приложението"
"Приложение за USB хранилище"
@@ -2054,7 +2055,7 @@
"Деинсталиране"
"Деинсталиране за всички потребители"
"Инсталиране"
- "Деактивиране"
+ "Деактиви­ране"
"Активиране"
"Изчистване на данните"
"Деинсталиране на актуализации"
@@ -5360,7 +5361,7 @@
"НАПРЕД"
"НЕ, БЛАГОДАРЯ"
"Местоположение"
- "Доставчикът ви на услуги може да събира данни за местоположението ви, за да предоставя тази услуга.\n\nМоля, прегледайте декларацията му за поверителност."
+ "Операторът ви може да събира данни за местоположението ви, когато използвате тази услуга за спешни обаждания.\n\nЗа подробности разгледайте декларацията му за поверителност."
"Възможно е да загубите достъп до остатъка от времето или данните. Преди премахване се свържете с доставчика си."
"заснемане на съдържание, съдържание на приложението"
"Съдържание на приложението"
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index e3590643445..03e590aecb8 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -53,7 +53,8 @@
"আরো ছোট করুন"
"আরো বড় করুন"
"অটো রোটেট ব্যবহার করুন"
- "অটো-রোটেট যাতে আরও সঠিক হয়, সেজন্য \'ফেস ডিটেকশন\' সামনের ক্যামেরা ব্যবহার করে। ছবি কখনও স্টোর করা বা Google-এ পাঠানো হয়না।<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>নিজে থেকে ঘুরবে এমন স্ক্রিনের বিষয়ে আরও জানুন</a>"
+
+
"স্যাম্পেল টেক্সট"
"দ্যা ওয়ান্ডারফুল উইজার্ড অফ অজ"
"অধ্যায় ১১: দ্যা ওয়ান্ডারফুল এমারল্ড সিটি অফ ওজ"
@@ -356,6 +357,8 @@
+
+
@@ -2980,12 +2983,9 @@
"কোনওটিই নয়"
"আপনি নিচের অ্যাপ এবং URL-গুলি ব্যবহার করার সময় সার্টিফিকেট ম্যানেজমেন্ট অ্যাপ আপনাকে যাচাই করবে"
"সার্টিফিকেট আনইনস্টল করুন"
-
-
-
-
-
-
+ "অ্যাপটি সরিয়ে দিন"
+ "এই অ্যাপটি সরিয়ে দেবেন?"
+ "এই অ্যাপটি সার্টিফিকেট ম্যানেজ করতে পারবে না তবে এগুলি আপনার ডিভাইসে থেকে যাবে। অ্যাপটির মাধ্যমে ইনস্টল করা যেকোনও সার্টিফিকেট আনইনস্টল হয়ে যাবে।"
- %dটি ইউআরএল
- %dটি ইউআরএল
@@ -3262,8 +3262,7 @@
"ব্যবহারকারী"
"বন্ধ করুন"
"সক্ষম করুন"
-
-
+ "আনইনস্টল করুন"
"বিশ্বাস"
"সিস্টেমের CA সার্টিফিকেট সক্ষম করবেন?"
"সিস্টেমের CA সার্টিফিকেট অক্ষম করবেন?"
@@ -4187,10 +4186,8 @@
"প্রশাসকের পিন লিখুন"
"চালু করুন"
"বন্ধ আছে"
-
-
-
-
+ "চালু আছে"
+ "বন্ধ আছে"
"চালু আছে"
"বন্ধ আছে"
"অ্যাপ পিন করার ফিচার"
@@ -4781,10 +4778,8 @@
"উইনস্কোপ ট্রেস"
"সেন্সর বন্ধ করা আছে"
"অফিস প্রোফাইলের সেটিংস"
-
-
-
-
+ "অফিস ডিরেক্টরি ব্যবহার করে ব্যক্তিগত অ্যাপগুলিকে পরিচিতি সন্ধান করার অনুমতি দিন"
+ "আপনার আইটি অ্যাডমিন হয়ত সার্চ এবং ইনকামিং কলের তথ্য দেখতে পারেন"
"ক্রস প্রোফাইল ক্যালেন্ডার"
"ব্যক্তিগত ক্যালেন্ডারে আপনার অফিসের ইভেন্ট দেখুন"
@@ -5120,8 +5115,7 @@
"যেমন আছে থাক"
"কম্পন"
"মিউট"
-
-
+ "চালু করতে, আগে পাওয়ার মেনু থেকে \"পাওয়ার বোতাম প্রেস করে ধরে রাখুন\" বিকল্পটি পরিবর্তন করুন।"
"নেটওয়ার্কের বিবরণ"
"আপনার ফোনের অ্যাপে আপনার ডিভাইসের নাম দেখা যাবে। আপনি ব্লুটুথ ডিভাইসে বা ওয়াই-ফাই নেটওয়ার্কে কানেক্ট করলে অথবা ওয়াই-ফাই হটস্পট সেট আপ করলে এটি অন্যরাও হয়ত দেখতে পাবেন।"
"ডিভাইস"
@@ -5364,7 +5358,7 @@
"চালিয়ে যান"
"না থাক"
"লোকেশন"
- "এই পরিষেবা প্রদান করতে পরিষেবা প্রদানকারী আপনার লোকেশনের তথ্য সংগ্রহ করতে পারে।\n\nআপনার পরিষেবা প্রদানকারীর গোপনীয়তা নীতি দেখুন।"
+ "জরুরি কলের জন্য আপনি এই পরিষেবা ব্যবহার করলে, আপনার পরিষেবা প্রদানকারী লোকেশন সম্পর্কিত তথ্য ব্যবহার করতে পারে।\n\nআরও বিশদ বিবরণের জন্য পরিষেবা প্রদানকারীর গোপনীয়তা নীতি দেখুন।"
"বাকি সময় বা ডেটাতে আপনি অ্যাক্সেস হারাতে পারেন। সরানোর আগে প্রদানকারীর সাথে যোগাযোগ করুন।"
"কন্টেন্ট ক্যাপচার, অ্যাপের কন্টেন্ট"
"অ্যাপের কন্টেন্ট"
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index e782b81b8c9..930f1950358 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -54,7 +54,7 @@
"Napravi manji"
"Napravi veći"
"Koristi automatsko rotiranje"
- "Prepoznavanje lica koristi prednju kameru da poboljša preciznost automatskog rotiranja. Slike se nikada ne pohranjuju niti šalju Googleu.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Saznajte više o automatskom rotiranju ekrana</a>"
+ "Prepoznavanje lica koristi prednju kameru da poboljša preciznost automatskog rotiranja. Slike se nikad ne pohranjuju niti šalju Googleu."
"Uzorak teksta"
"Čarobnjak iz Oza"
"Poglavlje 11: Smaragdni grad Oz"
@@ -359,6 +359,8 @@
+
+
@@ -4898,7 +4900,7 @@
"Za odlazak na početni ekran, prevucite prema gore s dna ekrana. Da prebacite aplikacije, prevucite prema gore s dna, zadržite, a zatim otpustite. Za vraćanje, prevucite s lijevog ili desnog ruba ekrana."
"Navigacija pomoću 3 dugmeta"
"Za vraćanje, otvaranje početnog ekrana i promjenu aplikacije, koristite dugmad u dnu ekrana."
- "navigiranje za sistem, navigiranje pomoću 2 dugmeta, navigiranje pomoću 3 dugmeta, navigiranje pokretima, prevlačenje"
+ "navigacija za sistem, navigacija pomoću 2 dugmeta, navigacija pomoću 3 dugmeta, navigacija pokretima, prevlačenje"
"Nije podržano u vašoj zadanoj aplikaciji početnog ekrana, %s"
"Promijeni zadanu aplik. početnog ekrana"
"Digitalni asistent"
@@ -4912,7 +4914,7 @@
"Veća osjetljivost može izazvati probleme prilikom korištenja pokreta aplikacija uz ivice ekrana."
"Osjetljivost pokreta za povratak"
"Postavke pokreta"
- "navigiranje pokretima, osjetljivost pokreta za povratak, pokret za povratak"
+ "navigacija pokretima, osjetljivost pokreta za povratak, pokret za povratak"
"Dodirnite dvaput da provjerite telefon"
"Provjera tableta dvostrukim dodirom"
"Provjera uređaja dvostrukim dodirom"
@@ -4921,7 +4923,7 @@
"mogućnost dosega"
"Prevucite dolje za:"
"Koristite prečicu za"
- "Da koristite način rada jednom rukom, prevucite prema dolje s gornjeg ruba ekrana. Da koristite ovu funkciju, provjerite je li navigiranje pokretima uključeno u postavkama navigacije sistema."
+ "Da koristite način rada jednom rukom, prevucite prema dolje s gornjeg ruba ekrana. Da koristite ovu funkciju, provjerite je li navigacija pokretima uključena u postavkama navigacije sistema."
"Prevucite ekran nadohvat palca"
"Vrh ekrana će se pomjeriti nadohvat vašeg palca."
"Prikaži obavještenja"
@@ -5444,7 +5446,7 @@
"NASTAVI"
"NE, HVALA"
"Lokacija"
- "Vaš pružalac usluga može prikupljati podatke o vašoj lokaciji u cilju pružanja ove usluge.\n\nPregledajte pravila privatnosti svog pružaoca usluga."
+ "Vaš mobilni operater može prikupiti informacije o vašoj lokaciji prilikom korištenja ove usluge za hitne pozive.\n\nDetalje potražite u pravilima privatnosti mobilnog operatera."
"Možete izgubiti pristup preostalom vremenu ili podacima. Prije uklanjanja, provjerite s pružaocem usluga."
"snimanje sadržaja, sadržaj aplikacije"
"Sadržaj aplikacije"
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index f51a9d8fa93..e0fba10fc93 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -53,7 +53,7 @@
"Redueix"
"Amplia"
"Gira automàticament"
- "La detecció facial utilitza la càmera frontal per millorar la precisió del gir automàtic. Les imatges mai s\'emmagatzemen ni s\'envien a Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Més informació sobre l\'opció Gira la pantalla automàticament</a>"
+ "La detecció facial utilitza la càmera frontal per millorar la precisió del gir automàtic. Les imatges mai no s\'emmagatzemen ni s\'envien a Google."
"Text de mostra"
"El meravellós mag d\'Oz"
"Capítol 11: La meravellosa Ciutat Maragda d\'Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"CONTINUA"
"NO, GRÀCIES"
"Ubicació"
- "És possible que el proveïdor de serveis reculli la teva ubicació per oferir-te aquest servei.\n\nConsulta la política de privadesa del proveïdor de serveis."
+ "És possible que l\'operador reculli la teva ubicació quan utilitzis aquest servei per fer trucades d\'emergència.\n\nVisita la política de privadesa de l\'operador per obtenir més detalls."
"És possible que perdis l\'accés al temps o a les dades restants. Contacta amb el proveïdor abans de suprimir res."
"captura de contingut, contingut d\'aplicació"
"Contingut de l\'aplicació"
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 96e46c49254..4aba20e95ba 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -55,7 +55,7 @@
"Zmenšit"
"Zvětšit"
"Automaticky otáčet obrazovku"
- "Funkce rozpoznání obličeje zvyšuje přesnost automatického otáčení pomocí předního fotoaparátu. Fotky se neukládají ani neodesílají do Googlu.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Další informace o automatickém otáčení obrazovky</a>"
+ "Rozpoznání obličeje používá přední fotoaparát ke zvýšení přesnosti automatického otáčení. Fotky se neukládají ani neodesílají do Googlu."
"Ukázkový text"
"Čaroděj ze země Oz"
"Kapitola 11: Smaragdové město v zemi Oz"
@@ -362,6 +362,8 @@
+
+
@@ -5533,7 +5535,7 @@
"POKRAČOVAT"
"NE, DĚKUJI"
"Místo"
- "Poskytovatel služeb může za účelem plnění své role shromažďovat údaje o vaší poloze.\n\nProstudujte si zásady ochrany soukromí poskytovatele."
+ "Při používání této služby k tísňovým voláním může váš operátor shromažďovat údaje o vaší poloze.\n\nPodrobnosti naleznete v zásadách ochrany soukromí operátora."
"Ke zbývajícímu času nebo datům můžete ztratit přístup. Před odstraněním se informujte u operátora."
"zachycení obsahu, obsah aplikace"
"Obsah aplikace"
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 0047d7058fb..f77a5c115d9 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -53,7 +53,7 @@
"Formindsk"
"Forstør"
"Brug automatisk rotation"
- "Ansigtsgenkendelse bruger kameraet på forsiden for at forbedre nøjagtigheden af funktionen Roter automatisk. Billeder gemmes ikke, og de sendes ikke til Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Få flere oplysninger om Roter skærm automatisk</a>"
+ "Ansigtsgenkendelse bruger kameraet på forsiden for at forbedre nøjagtigheden af funktionen Roter automatisk. Billeder gemmes ikke, og de sendes aldrig til Google."
"Eksempeltekst"
"Den vidunderlige troldmand fra Oz"
"Kapitel 11: Den vidunderlige smaragdby i Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"FORTSÆT"
"NEJ TAK"
"Placering"
- "Din tjenesteudbyder kan indsamle din placering med henblik på at levere denne tjeneste.\n\nGennemse din tjenesteudbyders privatlivspolitik."
+ "Dit mobilselskab registrerer muligvis din placering, når du bruger denne tjeneste til nødopkald.\n\nGå til dit mobilselskabs privatlivspolitik for at få flere oplysninger."
"Du kan miste adgangen til resterende tid eller data. Kontakt din udbyder, før du fjerner det."
"indholdsregistrering, appindhold"
"Appindhold"
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index fbf12536c63..ce643c715ef 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -53,7 +53,7 @@
"Verkleinern"
"Vergrößern"
"„Automatisch drehen“ verwenden"
- "Bei der Gesichtserkennung wird die Kamera auf der Vorderseite genutzt, um beim automatischen Drehen möglichst gute Ergebnisse zu erzielen. Bilder werden nicht gespeichert oder an Google gesendet.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Weitere Informationen zum automatischen Drehen des Bildschirms</a>"
+ "Bei der Gesichtserkennung wird die Kamera auf der Vorderseite verwendet, um die Genauigkeit beim automatischen Drehen zu verbessern. Bilder weder gespeichert noch an Google gesendet."
"Beispieltext"
"Der Zauberer von Oz"
"Kapitel 11: Die wundervolle Smaragdstadt von Oz"
@@ -356,6 +356,8 @@
+
+
@@ -4413,7 +4415,7 @@
"Dateien auf ein anderes Gerät übertragen"
"PTP"
"Videos zu AVC konvertieren"
- "Die Videos sind mit mehr Mediaplayern kompatibel, die Qualität kann jedoch beeinträchtigt werden"
+ "Die Videos sind mit einer größeren Zahl von Mediaplayern kompatibel, es kann jedoch zu Qualitätseinbußen kommen"
"Fotos oder Dateien übertragen, falls MTP nicht unterstützt wird (PTP)"
"USB-Tethering"
"MIDI"
@@ -5358,7 +5360,7 @@
"WEITER"
"NEIN DANKE"
"Ort"
- "Dein Dienstanbieter erfasst möglicherweise deinen Standort, um diesen Dienst bereitzustellen.\n\nBitte lies die Datenschutzrichtlinie deines Dienstanbieters."
+ "Dein Mobilfunkanbieter kann deinen Standort erfassen, wenn du diesen Dienst für Notrufe verwendest.\n\nSieh dir für Details die Datenschutzerklärung deines Mobilfunkanbieters an."
"Möglicherweise verlierst du den Zugriff auf ggf. verbliebene Zeit- oder Datenkontingente. Wende dich deswegen vor dem Entfernen an deinen Anbieter."
"inhaltserfassung, app-Inhalte"
"App-Inhalte"
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index d57bb0b9e90..14b1daa8f1a 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -53,7 +53,7 @@
"Να γίνουν μικρότερα"
"Να γίνουν μεγαλύτερα"
"Χρήση αυτόματης περιστροφής"
- "Η ανίχνευση προσώπων χρησιμοποιεί την μπροστινή κάμερα για βελτίωση της ακρίβειας αυτόματης περιστροφής. Οι εικόνες δεν αποθηκεύονται και δεν αποστέλλονται ποτέ στην Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Μάθετε περισσότερα σχετικά με την αυτόματη περιστροφή</a>"
+ "Η ανίχνευση προσώπων χρησιμοποιεί την μπροστινή κάμερα για βελτίωση της ακρίβειας αυτόματης περιστροφής. Οι εικόνες δεν αποθηκεύονται ούτε αποστέλλονται ποτέ στην Google."
"Δείγμα κειμένου"
"Ο Θαυμάσιος Μάγος του Οζ"
"Κεφάλαιο 11: Η Θαυμάσια Πόλη Έμεραλντ του Οζ"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"ΣΥΝΕΧΕΙΑ"
"ΟΧΙ, ΕΥΧΑΡΙΣΤΩ"
"Τοποθεσία"
- "Ο πάροχος υπηρεσιών σας μπορεί να συλλέγει πληροφορίες για την τοποθεσία σας για την παροχή αυτής της υπηρεσίας.\n\nΕλέγξτε την πολιτική απορρήτου του παρόχου υπηρεσιών σας."
+ "Η εταιρεία κινητής τηλεφωνίας ενδέχεται να συλλέγει πληροφορίες για την τοποθεσία σας κατά τη χρήση της υπηρεσίας για κλήσεις έκτακτης ανάγκης.\n\nΑνατρέξτε στην πολιτική απορρήτου της εταιρείας κινητής τηλεφωνίας για λεπτομέρειες."
"Μπορεί να χάσετε την πρόσβαση σε τυχόν υπόλοιπο χρόνο ή δεδομένα. Επικοινωνήστε με τον πάροχο της υπηρεσίας πριν από την κατάργηση."
"λήψη περιεχομένου, περιεχόμενο εφαρμογής"
"Περιεχόμενο εφαρμογής"
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 59796921352..bec8c754807 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -53,7 +53,7 @@
"Make smaller"
"Make larger"
"Use auto-rotate"
- "Face detection uses the front-facing camera to improve auto-rotate accuracy. Images are never stored or sent to Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Learn more about auto-rotate screen</a>"
+ "Face detection uses the front-facing camera to improve auto-rotate accuracy. Images are never stored or sent to Google."
"Sample text"
"The Wonderful Wizard of Oz"
"Chapter 11: The Wonderful Emerald City of Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"CONTINUE"
"NO THANKS"
"Location"
- "Your service provider may collect your location in order to provide this service.\n\nPlease review your service provider’s privacy policy."
+ "Your operator may collect your location when you use this service for emergency calls.\n\nVisit your operator\'s privacy policy for details."
"You may lose access to any remaining time or data. Check with your provider before removing."
"content capture, app content"
"App content"
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index d71d1ec71b3..8bdb9e2c345 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -53,7 +53,7 @@
"Make smaller"
"Make larger"
"Use auto-rotate"
- "Face detection uses the front-facing camera to improve auto-rotate accuracy. Images are never stored or sent to Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Learn more about auto-rotate screen</a>"
+ "Face detection uses the front-facing camera to improve auto-rotate accuracy. Images are never stored or sent to Google."
"Sample text"
"The Wonderful Wizard of Oz"
"Chapter 11: The Wonderful Emerald City of Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"CONTINUE"
"NO THANKS"
"Location"
- "Your service provider may collect your location in order to provide this service.\n\nPlease review your service provider’s privacy policy."
+ "Your operator may collect your location when you use this service for emergency calls.\n\nVisit your operator\'s privacy policy for details."
"You may lose access to any remaining time or data. Check with your provider before removing."
"content capture, app content"
"App content"
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 545f7baf78d..ec6883d3559 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -53,7 +53,7 @@
"Make smaller"
"Make larger"
"Use auto-rotate"
- "Face detection uses the front-facing camera to improve auto-rotate accuracy. Images are never stored or sent to Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Learn more about auto-rotate screen</a>"
+ "Face detection uses the front-facing camera to improve auto-rotate accuracy. Images are never stored or sent to Google."
"Sample text"
"The Wonderful Wizard of Oz"
"Chapter 11: The Wonderful Emerald City of Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"CONTINUE"
"NO THANKS"
"Location"
- "Your service provider may collect your location in order to provide this service.\n\nPlease review your service provider’s privacy policy."
+ "Your operator may collect your location when you use this service for emergency calls.\n\nVisit your operator\'s privacy policy for details."
"You may lose access to any remaining time or data. Check with your provider before removing."
"content capture, app content"
"App content"
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 342e12c0508..369e118ef7b 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -53,7 +53,7 @@
"Make smaller"
"Make larger"
"Use auto-rotate"
- "Face detection uses the front-facing camera to improve auto-rotate accuracy. Images are never stored or sent to Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Learn more about auto-rotate screen</a>"
+ "Face detection uses the front-facing camera to improve auto-rotate accuracy. Images are never stored or sent to Google."
"Sample text"
"The Wonderful Wizard of Oz"
"Chapter 11: The Wonderful Emerald City of Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"CONTINUE"
"NO THANKS"
"Location"
- "Your service provider may collect your location in order to provide this service.\n\nPlease review your service provider’s privacy policy."
+ "Your operator may collect your location when you use this service for emergency calls.\n\nVisit your operator\'s privacy policy for details."
"You may lose access to any remaining time or data. Check with your provider before removing."
"content capture, app content"
"App content"
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 427ea92dc1e..0f4eea57e3a 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -53,7 +53,7 @@
"Make smaller"
"Make larger"
"Use Auto-rotate"
- "Face Detection uses the front-facing camera to improve Auto-rotate accuracy. Images are never stored or sent to Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Learn more about Auto-rotate screen</a>"
+ "Face Detection uses the front-facing camera to improve Auto-rotate accuracy. Images are never stored or sent to Google."
"Sample text"
"The Wonderful Wizard of Oz"
"Chapter 11: The Wonderful Emerald City of Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"CONTINUE"
"NO THANKS"
"Location"
- "Your service provider may collect your location in order to provide this service.\n\nPlease review your service provider’s privacy policy."
+ "Your carrier may collect your location when you use this service for emergency calls.\n\nVisit your carrier’s privacy policy for details."
"You may lose access to any remaining time or data. Check with your provider before removing."
"content capture, app content"
"App content"
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 824103caf41..be535a8e242 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -53,7 +53,7 @@
"Reducir el tamaño"
"Aumentar el tamaño"
"Girar automáticamente"
- "La detección de rostro usa la cámara frontal a fin de mejorar la exactitud de la opción para girar automáticamente. Las imágenes no se almacenan ni se envían a Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Más información sobre el giro automático de pantalla</a>"
+ "La detección de rostro usa la cámara frontal para mejorar la exactitud de la opción girar automáticamente. Las imágenes nunca se almacenan ni se envían a Google."
"Texto de muestra"
"El maravilloso mago de Oz"
"Capítulo 11: La maravillosa Ciudad Esmeralda de Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5357,7 +5359,7 @@
"CONTINUAR"
"NO, GRACIAS"
"Ubicación"
- "Es posible que tu proveedor de servicios recopile información sobre tu ubicación para brindar este servicio.\n\nRevisa su política de privacidad."
+ "Es posible que tu proveedor obtenga tu ubicación cuando uses este servicio para llamadas de emergencia.\n\nConsulta la Política de Privacidad de tu proveedor para obtener más detalles."
"Es posible que pierdas acceso a los datos o al tiempo restantes. Consúltalo con tu proveedor antes de quitarlo."
"captura de contenido, contenido de app"
"Contenido de la app"
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index ad167f6ba1f..cd12eeba9c0 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -53,7 +53,7 @@
"Reducir el tamaño"
"Aumentar el tamaño"
"Girar automáticamente"
- "Detección de caras usa la cámara frontal para mejorar la precisión del giro automático. Las imágenes nunca se almacenan ni se envían a Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Más información sobre Girar pantalla automáticamente</a>"
+ "Detección de caras usa la cámara frontal para mejorar la precisión de Girar automáticamente. Las imágenes nunca se almacenan ni se envían a Google."
"Texto de ejemplo"
"El maravilloso mago de Oz"
"Capítulo 11: La maravillosa Ciudad Esmeralda de Oz"
@@ -356,6 +356,8 @@
+
+
@@ -431,7 +433,7 @@
"Desbloqueo con huella digital crea un modelo único de la huella digital de tu hijo/a para verificar su identidad. Para crear este modelo de huella digital durante la configuración, se toman imágenes de su huella desde diferentes posiciones."
"Cuando usas Pixel Imprint, se utilizan imágenes para actualizar el modelo de tu huella digital. Las imágenes usadas para crear el modelo no se guardan nunca, pero el modelo en sí se almacena de manera segura en tu teléfono y nunca sale de él. Todos los procesos se llevan a cabo de forma segura en el teléfono."
"Cuando usa Pixel Imprint, se utilizan imágenes para actualizar el modelo de su huella digital. Las imágenes usadas para crear el modelo de huella digital de tu hijo/a nunca se guardan, pero el modelo en sí se almacena de manera segura en el teléfono y nunca sale de él. Todos los procesos se llevan a cabo de forma segura en el teléfono."
- "Puedes eliminar las imágenes y el modelo de tu huella digital, o desactivar Desbloqueo con huella digital en cualquier momento desde Ajustes. Las imágenes y los modelos de huellas digitales se almacenan en el teléfono hasta que los eliminas."
+ "Puedes eliminar las imágenes y el modelo de tu huella digital, o desactivar Desbloqueo con Huella Digital en cualquier momento desde Ajustes. Las imágenes y los modelos de huellas digitales se almacenan en el teléfono hasta que los eliminas."
"Tú y tu hijo/a podéis eliminar el modelo y las imágenes de su huella digital, así como desactivar Desbloqueo con huella digital en cualquier momento desde Ajustes. Los modelos y las imágenes de la huella digital se almacenan en el teléfono hasta que se eliminan."
"Tu teléfono puede desbloquearse aunque no sea tu intención (por ejemplo, si alguien lo acerca a tu dedo)."
"El teléfono de tu hijo/a puede desbloquearse sin que quiera, por ejemplo, porque alguien se lo ha acercado al dedo."
@@ -830,7 +832,7 @@
"Actualizar"
"Buscando…"
"Ajustes del dispositivo"
- "Dispositivo vinculado"
+ "Dispositivo emparejado"
"Conexión a Internet"
"Teclado"
"Contactos e historial de llamadas"
@@ -5357,7 +5359,7 @@
"CONTINUAR"
"NO, GRACIAS"
"Ubicación"
- "Tu proveedor de servicios puede guardar tu ubicación para proporcionar este servicio.\n\nRevisa la política de privacidad de tu proveedor de servicios."
+ "Puede que tu operador recoja tu ubicación cuando llamas a emergencias con este servicio.\n\nPara obtener más información, consulta la política de privacidad de tu operador."
"Es posible que dejes de tener acceso al tiempo o datos restantes. Antes de eliminarlo, consulta con tu proveedor."
"obtención de contenido, contenido de la aplicación"
"Contenido de la aplicación"
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 7accfeff6a3..a32c5c42ab4 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -53,7 +53,7 @@
"Vähendamine"
"Suurendamine"
"Kasuta automaatset pööramist"
- "Näotuvastus kasutab esikaamerat, et parandada automaatse pööramise täpsust. Pilte ei salvestata ega saadeta mitte kunagi Google\'ile.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Lisateave ekraanikuva automaatse pööramise kohta</a>"
+ "Näotuvastus kasutab esikaamerat, et parandada automaatse pööramise täpsust. Pilte ei salvestata ega saadeta kunagi Google\'ile."
"Näidistekst"
"Võlur Oz"
"11. peatükk: Ozi imeline smaragdlinn"
@@ -356,6 +356,8 @@
+
+
@@ -5357,7 +5359,7 @@
"JÄTKA"
"EI, TÄNAN"
"Asukoht"
- "Teenusepakkuja võib selle teenuse pakkumiseks koguda teie asukohateavet.\n\nVaadake oma teenusepakkuja privaatsuseeskirju."
+ "Kui kasutate seda teenust hädaabikõnedeks, võib operaator koguda teavet teie asukoha kohta.\n\nLisateavet leiate oma operaatori privaatsuseeskirjadest."
"Järelejäänud aeg või andmemaht võib kaotsi minna. Enne eemaldamist pidage nõu operaatoriga."
"sisu jäädvustamine, rakenduse sisu"
"Rakenduse sisu"
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 234b3412e79..7a12f5f1d5b 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -53,7 +53,7 @@
"Txikitu"
"Handitu"
"Erabili automatikoki biratzeko aukera"
- "Aurpegi-hautematea eginbideak aurreko kamera erabiltzen du automatikoki biratzeko aukeraren zehaztasuna hobetzeko. Irudiak ez dira inoiz gordetzen, ez eta Google-ra bidaltzen ere.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Lortu informazio gehiago pantaila automatikoki biratzeari buruz</a>"
+ "Aurpegi-hautematea eginbideak aurreko kamera erabiltzen du automatikoki biratzeko ezarpenaren zehaztasuna hobetzeko. Irudiak ez dira inoiz gordetzen, ez eta Google-ra bidaltzen ere."
"Testu-lagina"
"Ozeko azti miragarria"
"11. kapitulua: Esmeraldazko Oz hiri harrigarria"
@@ -356,6 +356,8 @@
+
+
@@ -3835,7 +3837,7 @@
"Profileko jakinarazpenak"
"Jakinarazpenak"
"Aplikazioen jakinarazpenak"
- "Jakinarazpen-kategoria"
+ "Jakinarazpen-kategoria"
"Jakinarazpen-kategorien taldea"
"Jokabidea"
"Baimendu soinua egitea"
@@ -5355,7 +5357,7 @@
"AURRERA"
"EZ, ESKERRIK ASKO"
"Kokapena"
- "Baliteke zerbitzu-hornitzaileak zure kokapena biltzea, zerbitzua ematearren.\n\nBerrikusi zerbitzu-hornitzailearen pribatutasun-gidalerroak."
+ "Litekeena da operadoreak zure kokapena biltzea zerbitzu hau larrialdi-deietarako erabiltzen duzunean.\n\nIrakurri operadorearen pribatutasun-gidalerroak xehetasunak ikusteko."
"Denbora edo daturik geldituz gero, baliteke haiek galtzea. Kendu aurretik, galdetu hornitzaileari."
"eduki-bilketa, aplikazioko edukia"
"Aplikazioko edukia"
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 4e4ea15b2ce..2e63b2c093e 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -53,7 +53,7 @@
"کوچکتر کردن"
"بزرگتر کردن"
"استفاده از چرخش خودکار"
- "«تشخیص چهره» برای بهبود دقت «چرخش خودکار» از دوربین جلو استفاده میکند. تصاویر هرگز ذخیره نمیشود یا به Google ارسال نمیشود.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>درباره «چرخش خودکار صفحه» بیشتر بدانید</a>"
+ "«تشخیص چهره» برای بهبود دقت «چرخش خودکار» از دوربین جلو استفاده میکند. تصاویر هرگز ذخیره یا به Google ارسال نمیشوند."
"نوشتار نمونه"
"جادوگر شهر اوز"
"فصل ۱۱: شهر زمردی شگفتانگیز اوز"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"ادامه"
"نه متشکرم"
"مکان"
- "ممکن است ارائهدهنده خدمات، برای ارائه این سرویس، موقعیتهای مکانیتان را جمعآوری کند.\n\nلطفاً خطمشی رازداری ارائهدهنده خدمات را مرور کنید."
+ "هنگامی که از این سرویس برای تماسهای اضطراری استفاده میکنید، ممکن است شرکت مخابراتیتان اطلاعات مکان شما را جمعآوری کند.\n\nبرای دریافت جزئیات، به خطمشی رازداری شرکت مخابراتیتان مراجعه کنید."
"ممکن است دسترسی به زمان یا دادههای باقیمانده را از دست بدهید. پیش از برداشتن، با ارائهدهنده تماس بگیرید."
"ضبط محتوا، محتوای برنامه"
"محتوای برنامه"
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index d826bcde33f..ca8f8ac141e 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -53,7 +53,7 @@
"Pienennä"
"Suurenna"
"Käytä automaattista kääntöä"
- "Kasvojentunnistus käyttää etukameraa automaattisen kääntämisen tarkkuuden parantamiseksi. Kuvia ei koskaan tallenneta eikä lähetetä Googlelle.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Lue lisää näytön automaattisesta käännöstä</a>"
+ "Kasvojentunnistus käyttää etukameraa automaattisen kääntämisen tarkkuuden parantamiseksi. Kuvia ei koskaan tallenneta tai lähetetä Googlelle."
"Esimerkkiteksti"
"Ihmemaa Oz"
"Luku 11: Ozin ihastuttava smaragdikaupunki"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"JATKA"
"EI KIITOS"
"Sijainti"
- "Palveluntarjoaja voi kerätä sijaintitietoja palvelun tarjoamiseksi.\n\nTutustu palveluntarjoajan tietosuojakäytäntöön."
+ "Operaattori voi selvittää sijaintisi, kun käytät ominaisuutta hätäpuheluihin.\n\nKatso lisätietoja operaattorin tietosuojakäytännöstä."
"Voit menettää jäljellä olevan ajan tai datan. Tarkista asia operaattorilta ennen poistamista."
"sisällön tallennus, sovelluksen sisältö"
"Sovelluksen sisältö"
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index f5f9c33ca7b..72c9d22009f 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -53,7 +53,7 @@
"Rapetisser"
"Agrandir"
"Utiliser la rotation automatique"
- "La technologie de détection du visage utilise l\'appareil photo avant pour améliorer la précision de la rotation automatique. Les images ne sont jamais conservées ni envoyées à Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>En savoir plus à propos de l\'écran à rotation automatique</a>"
+ "La technologie de détection du visage utilise l\'appareil photo avant pour améliorer la précision de la rotation automatique. Les images sont jamais stockées ni envoyées à Google."
"Exemple de texte"
"Le Magicien d\'Oz"
"Chapitre 11 : La merveilleuse cité d\'émeraude d\'Oz"
@@ -203,7 +203,7 @@
"Recherche de fichiers multimédia sur la carte SD…"
"Mémoire USB en lecture seule"
"Carte SD installée en lecture seule"
- "Passer"
+ "Ignorer"
"Suivant"
"Langues"
"Supprimer"
@@ -356,6 +356,8 @@
+
+
@@ -916,19 +918,19 @@
"Autoriser ART à vérifier le code à octets pour les applications débogables"
"Afficher le taux d\'actualisation"
"Afficher le taux d\'actualisation actuel"
- "NFC"
- "Autoriser l\'échange de données lorsque la tablette touche un appareil NFC"
- "Autoriser l\'échange de données lorsque le téléphone touche un appareil NFC"
- "Activer la fonction NFC"
- "La technologie NFC échange des données entre cet appareil et d\'autres appareils ou cibles à proximité, tels que les terminaux de paiement, les lecteurs d\'accès et les annonces ou les balises interactifs"
- "Déverrouillage de l\'appareil requis pour utiliser la fonctionnalité NFC"
- "Autoriser l\'utilisation de la technologie NFC uniquement lorsque l\'écran est déverrouillé"
+ "CCP"
+ "Autoriser l\'échange de données lorsque la tablette touche un appareil CCP"
+ "Autoriser l\'échange de données lorsque le téléphone touche un appareil CCP"
+ "Activer la technologie CCP"
+ "La technologie CCP échange des données entre cet appareil et d\'autres appareils ou cibles à proximité, tels que les terminaux de paiement, les lecteurs d\'accès et les annonces ou les balises interactifs"
+ "Déverrouillage de l\'appareil requis pour utiliser la fonctionnalité CCP"
+ "Autoriser l\'utilisation de la technologie CCP uniquement lorsque l\'écran est déverrouillé"
"Android Beam"
- "Prêt à partager le contenu de l\'application par NFC"
+ "Prêt à partager le contenu de l\'application par CCP"
"Désactivé"
- "Non accessible, car la NFC est désactivée"
+ "Non accessible, car la CCP est désactivée"
"Android Beam"
- "Lorsque cette fonctionnalité est activée, vous pouvez partager le contenu d\'une application avec un appareil compatible NFC en rapprochant les appareils. Vous pouvez, par exemple, partager des pages Web, des vidéos YouTube, des contacts et plus encore.\n\nIl vous suffit de rapprocher les appareils (en les plaçant généralement dos à dos), puis de toucher votre écran. L\'application détermine le contenu à transférer."
+ "Lorsque cette fonctionnalité est activée, vous pouvez partager le contenu d\'une application avec un appareil compatible CCP en rapprochant les appareils. Vous pouvez, par exemple, partager des pages Web, des vidéos YouTube, des contacts et plus encore.\n\nIl vous suffit de rapprocher les appareils (en les plaçant généralement dos à dos), puis de toucher votre écran. L\'application détermine le contenu à transférer."
"Wi-Fi"
"Activer le Wi-Fi"
"Wi-Fi"
@@ -2642,7 +2644,7 @@
"Utilisation de la pile"
"Détails de l\'historique"
"Autonomie de la pile"
- "Voyez l\'utilisation des 24 dernières heures"
+ "Voir utilisation des dernières 24 heures"
"Voir utilisation depuis dernière recharge"
"Utilisation de la pile"
"Détails d\'utilisation"
@@ -3424,8 +3426,8 @@
"Autoriser les modifications des paramètres du Wi‑Fi et des données cellulaires"
"Bluetooth"
"Autoriser les modifications des associations et des paramètres Bluetooth"
- "NFC"
- "Autoriser l\'échange de données lorsque cet appareil (%1$s) touche un autre appareil NFC"
+ "CCP"
+ "Autoriser l\'échange de données lorsque cet appareil (%1$s) touche un autre appareil CCP"
"Autoriser l\'échange de données lorsque la tablette est en contact avec un autre appareil"
"Autoriser l\'échange de données lorsque le téléphone est en contact avecun autre appareil"
"Position"
@@ -3483,15 +3485,15 @@
"Wi-Fi, point d\'accès"
"Appareils connectés"
"Bluetooth, association"
- "Bluetooth, mode Voiture, NFC"
+ "Bluetooth, mode Voiture, CCP"
"Bluetooth, mode Voiture"
- "Bluetooth, NFC"
+ "Bluetooth, CCP"
"Bluetooth"
- "Bluetooth, Android Auto, mode Voiture, NFC"
+ "Bluetooth, Android Auto, mode Voiture, CCP"
"Bluetooth, Android Auto, mode Voiture"
- "Bluetooth, Android Auto, NFC"
+ "Bluetooth, Android Auto, CCP"
"Bluetooth, Android Auto"
- "Non accessible parce que la fonctionnalité NFC est désactivée"
+ "Non accessible parce que la technologie CCP est désactivée"
"Pour l\'utiliser, installez d\'abord une application de paiement"
"Applis et notifications"
"Applications récentes, applications par défaut"
@@ -4257,7 +4259,7 @@
"Ajouter"
"S\'ouvre dans %s"
- "%1$s utilisé dans %2$s"
+ "%1$s utilisé(s) dans %2$s"
"stockage interne"
"stockage externe"
"%1$s utilisés depuis %2$s"
@@ -4409,7 +4411,7 @@
"Transfert de fichiers"
"Transférer des fichiers vers un autre appareil"
"PTP"
- "Convertir des vidéos en format AVC"
+ "Convertir des vidéos au format AVC"
"Les vidéos joueront sur un plus grand nombre de lecteurs multimédias, mais la qualité peut être réduite"
"Transferer des photos ou des fichiers si MTP n\'est pas pris en charge (PTP)"
"Partage de connexion par USB"
@@ -5355,7 +5357,7 @@
"CONTINUER"
"NON MERCI"
"Lieu"
- "Il se peut que votre fournisseur de services recueille votre position pour vous fournir ce service.\n\nVeuillez consulter la politique de confidentialité de votre fournisseur de services."
+ "Votre fournisseur de services peut collecter les données relatives à votre position lorsque vous utilisez ce service en lien avec les appels d\'urgence.\n\nConsultez la politique de confidentialité de votre fournisseur de services pour obtenir plus de détails."
"Vous risquez de perdre l\'accès au temps ou aux données restants. Communiquez avec votre fournisseur de services avant de procéder au retrait."
"capture de contenu, contenu de l\'application"
"Contenu de l\'application"
@@ -5508,7 +5510,7 @@
"Désactiver maintenant"
"Activer maintenant"
"Utiliser le mode Éclairage nocturne"
- "Utiliser la connectivité NFC"
+ "Utiliser la technologie CCP"
"Utiliser le gestionnaire de pile adaptatif"
"Utiliser la luminosité adaptative"
"Utiliser les appels Wi-Fi"
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 9a30b395fc4..ab196a85c7c 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -53,7 +53,7 @@
"Réduire"
"Agrandir"
"Utiliser la rotation automatique"
- "La détection de visages utilise l\'appareil photo frontal pour améliorer la précision de la rotation automatique. Les images ne sont jamais enregistrées ni envoyées à Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>En savoir plus sur la rotation automatique de l\'écran</a>"
+ "La détection de visages utilise l\'appareil photo frontal pour améliorer la précision de la rotation automatique. Les images ne sont jamais stockées ni envoyées à Google."
"Exemple de texte"
"Le Magicien d\'Oz"
"Chapitre 11 : La merveilleuse cité d\'émeraude"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"CONTINUER"
"NON MERCI"
"Position"
- "Il se peut que votre fournisseur de services recueille votre position pour vous fournir ce service.\n\nVeuillez consulter les règles de confidentialité de votre fournisseur de services."
+ "Il se peut que votre opérateur recueille votre position lorsque vous utilisez ce service pour les appels d\'urgence.\n\nPour en savoir plus, consultez les règles de confidentialité de votre opérateur."
"Vous risquez de perdre l\'accès au temps ou aux données restants. Contactez votre opérateur avant de procéder au retrait."
"capture de contenu, contenu de l\'application"
"Contenu des applications"
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index a9368ee410f..8b77ee9c144 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -53,7 +53,7 @@
"Reducir"
"Ampliar"
"Usar Xirar automaticamente"
- "A función Detección facial utiliza a cámara frontal para mellorar a precisión da opción Xirar automaticamente. As imaxes nunca se almacenan nin se envían a Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Máis información sobre a opción Xirar pantalla automaticamente</a>"
+ "A función Detección facial utiliza a cámara frontal para mellorar a precisión da opción Xirar automaticamente. As imaxes nunca se almacenan nin se envían a Google."
"Texto de mostra"
"O marabilloso mago de Oz"
"Capítulo 11: A marabillosa Cidade Esmeralda de Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5352,7 +5354,7 @@
"CONTINUAR"
"NON, GRAZAS"
"Localización"
- "O teu fornecedor de servizo pode recoller a túa localización para proporcionarche este servizo.\n\nRevisa a política de privacidade do fornecedor de servizo."
+ "O teu operador pode recompilar a túa localización cando uses este servizo para realizar chamadas de emerxencia.\n\nConsulta a súa política de privacidade para obter máis información."
"Podes perder ao acceso ao tempo ou aos datos restantes. Consulta o teu fornecedor antes de quitar nada."
"captura de contido, contido das aplicacións"
"Contido das aplicacións"
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 02f6b040790..9d662eb3b4e 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -53,7 +53,8 @@
"વધુ નાનું બનાવો"
"વધુ મોટું બનાવો"
"ઑટો રોટેટનો ઉપયોગ કરો"
- "ચહેરા ઓળખવાની ટેક્નોલોજી ઑટો રોટેટ (સ્ક્રીનની ઑટોમૅટિક રીતે ફરવાની ક્રિયા)ને બહેતર બનાવવા માટે ફ્રન્ટ ફેસિંગ કૅમેરાનો ઉપયોગ કરે છે. છબીઓ ક્યારેય સ્ટોર કરવામાં આવતી નથી કે Googleને મોકલવામાં આવતી નથી.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>સ્ક્રીનને ઑટો રોટેટ (સ્ક્રીનની ઑટોમૅટિક રીતે ફરવાની ક્રિયા) કરવાની સુવિધા વિશે વધુ જાણો</a>"
+
+
"ટેક્સ્ટની સાઇઝનો નમૂનો"
"ધ વન્ડરફૂલ વિઝાર્ડ ઓફ ઓઝ"
"પ્રકરણ 11: ધ વન્ડરફૂલ એમરલ્ડ સીટી ઓફ ઓઝ"
@@ -356,6 +357,8 @@
+
+
@@ -2980,12 +2983,9 @@
"એકપણ નહીં"
"જ્યારે તમે નીચે આપેલી ઍપ અને URLsનો ઉપયોગ કરશો, ત્યારે પ્રમાણપત્રો તમારી ચકાસણી કરશે"
"પ્રમાણપત્રો અનઇન્સ્ટૉલ કરો"
-
-
-
-
-
-
+ "ઍપ કાઢી નાખો"
+ "આ ઍપ કાઢી નાખીએ?"
+ "ઍપ દ્વારા પ્રમાણપત્રો મેનેજ નહીં કરવામાં આવે, પણ તે તમારા ડિવાઇસમાં રહેશે. ઍપ દ્વારા ઇન્સ્ટૉલ કરવામાં આવેલું કોઈપણ પ્રમાણપત્ર અનઇન્સ્ટૉલ કરવામાં આવશે."
- %d URL
- %d URLs
@@ -3262,8 +3262,7 @@
"વપરાશકર્તા"
"બંધ કરો"
"સક્ષમ કરો"
-
-
+ "અનઇન્સ્ટૉલ કરો"
"વિશ્વાસ કરો"
"સિસ્ટમ CA પ્રમાણપત્રને સક્ષમ કરીએ?"
"સિસ્ટમ CA પ્રમાણપત્રને અક્ષમ કરીએ?"
@@ -4187,10 +4186,8 @@
"વ્યવસ્થાપક પિન દાખલ કરો"
"ચાલુ"
"બંધ"
-
-
-
-
+ "ચાલુ છે"
+ "બંધ છે"
"ચાલુ છે"
"બંધ છે"
"ઍપ પિનિંગ"
@@ -4781,10 +4778,8 @@
"Winscope ટ્રેસ"
"સેન્સર બંધ છે"
"ઑફિસની પ્રોફાઇલના સેટિંગ"
-
-
-
-
+ "વ્યક્તિગત ઍપને ઑફિસની ડિરેક્ટરીનો ઉપયોગ કરીને સંપર્કો ઓળખવાની મંજૂરી આપો"
+ "તમારી શોધ અને ઇનકમિંગ કૉલ કદાચ તમારા IT વ્યવસ્થાપકને દેખાઈ શકે છે"
"ક્રૉસ-પ્રોફાઇલ કૅલેન્ડર"
"તમારા વ્યક્તિગત કૅલેન્ડર પર કાર્યાલયની ઇવેન્ટ બતાવો"
@@ -5120,8 +5115,7 @@
"કંઈ કરતા નહીં"
"વાઇબ્રેટ"
"મ્યૂટ કરો"
-
-
+ "ચાલુ કરવા માટે, પહેલાં \"પાવર બટનને દબાવી રાખો\" વિકલ્પને બદલીને પાવર મેનૂ કરો."
"નેટવર્કની વિગતો"
"તમારા ડિવાઇસનું નામ તમારા ફોનની ઍપ પર જોઈ શકાય છે. તમે બ્લૂટૂથ ડિવાઇસથી કનેક્ટ કરો, વાઇ-ફાઇ નેટવર્કથી કનેક્ટ કરો અથવા વાઇ-ફાઇ હૉટસ્પૉટને સેટ કરો ત્યારે તે અન્ય લોકોને પણ દેખાઈ શકે છે."
"ઉપકરણો"
@@ -5364,7 +5358,7 @@
"ચાલુ રાખો"
"ના, આભાર"
"સ્થાન"
- "તમારા સેવા પ્રદાતા આ સેવા પ્રદાન કરવા માટે તમારા સ્થાનની માહિતી એકત્ર કરી શકે છે.\n\n કૃપા કરીને તમારા સેવા પ્રદાતાની પ્રાઇવસી પૉલિસીની સમીક્ષા કરો."
+ "ઇમર્જન્સી કૉલ માટે તમે આ સેવાનો ઉપયોગ કરો, ત્યારે તમારા મોબાઇલ ઑપરેટર તમારા સ્થાનની માહિતી એકત્રિત કરી શકે છે.\n\nવિગતો માટે તમારા મોબાઇલ ઑપરેટરની પ્રાઇવસી પૉલિસી જુઓ."
"તમે બાકી રહેલા કોઈપણ સમય અથવા ડેટાનો ઍક્સેસ ગુમાવી શકો છો. કાઢી નાખતા પહેલાં તમારા પ્રદાતાનો સંપર્ક કરો."
"કન્ટેન્ટ કૅપ્ચર, ઍપનું કન્ટેન્ટ"
"ઍપનું કન્ટેન્ટ"
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 236eb4b0af2..c46827e21ce 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -53,7 +53,7 @@
"छोटा करें"
"बड़ा करें"
"ऑटो-रोटेट की सुविधा का इस्तेमाल करें"
- "चेहरे की पहचान करने वाली तकनीक, ऑटो-रोटेट की सुविधा को बेहतर बनाने के लिए, सामने वाले कैमरे का इस्तेमाल करती है. इस दौरान, न तो इमेज सेव होती हैं और न ही Google को भेजी जाती हैं.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>स्क्रीन को ऑटो-रोटेट करने की सुविधा के बारे में ज़्यादा जानें</a>"
+ "चेहरे की पहचान करने वाली तकनीक, स्क्रीन की अपने-आप दिशा बदलने (ऑटो-रोटेट) की सेटिंग को बेहतर बनाने के लिए, सामने वाले कैमरे का इस्तेमाल करती है. इमेज न तो सेव की जाती है और न ही Google को भेजी जाती है."
"नमूना लेख"
"ओज़ का अद्भुत जादू"
"अध्याय 11: पन्ने का अद्भुत शहर ओज़"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"जारी रखें"
"नहीं, धन्यवाद"
"जगह"
- "इस सेवा को उपलब्ध कराने के लिए मोबाइल नेटवर्क की सुविधा उपलब्ध कराने वाली कंपनी आपकी जगह की जानकारी इकट्ठा कर सकती है.\n\nकृपया कंपनी की निजता नीति को ध्यान से पढ़ें."
+ "जब आप आपातकालीन कॉल के लिए इस सेवा का इस्तेमाल करते हैं, तो मोबाइल और इंटरनेट सेवा देने वाली कंपनी, आपकी जगह की जानकारी इकट्ठा कर सकती है.\n\nज़्यादा जानकारी के लिए, अपनी मोबाइल और इंटरनेट सेवा देने वाली कंपनी की निजता नीति को देखें."
"आप बचे हुए समय या डेटा का ऐक्सेस खो सकते हैं. हटाने से पहले अपनी सेवा देने वाली कंपनी से पुष्टि कर लें."
"सामग्री कैप्चर, ऐप्लिकेशन की सामग्री"
"ऐप्लिकेशन की सामग्री"
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index d8a90cd9dd9..13e96a8086f 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -54,7 +54,7 @@
"Smanji"
"Povećaj"
"Upotreba automatskog zakretanja"
- "Prepoznavanje lica koristi prednju kameru radi poboljšanja točnosti automatskog zakretanja. Slike se nikad ne pohranjuju i ne šalju Googleu.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Saznajte više o automatskom zakretanju zaslona</a>"
+ "Prepoznavanje lica koristi prednju kameru radi poboljšanja točnosti automatskog zakretanja. Slike se nikad ne pohranjuju i ne šalju Googleu."
"Primjer teksta"
"Čarobnjak iz Oza"
"11. poglavlje: Čudesni Smaragdni Grad čarobnjaka Oza"
@@ -359,6 +359,8 @@
+
+
@@ -5446,7 +5448,7 @@
"NASTAVI"
"NE, HVALA"
"Lokacija"
- "Vaš davatelj usluga može prikupljati podatke o vašoj lokaciji kako bi pružao tu uslugu.\n\nPročitajte pravila o privatnosti davatelja usluga."
+ "Vaš mobilni operater može prikupljati podatke o vašoj lokaciji kad koristite tu uslugu za hitne pozive.\n\nPojedinosti potražite u pravilima o privatnosti svojeg mobilnog operatera."
"Možda ćete izgubiti pristup preostalom vremenu ili podacima. Prije uklanjanja provjerite s davateljem usluga."
"snimanje sadržaja, sadržaj aplikacija"
"Sadržaj aplikacije"
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index d719b64c86a..b6a786ed223 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -53,7 +53,7 @@
"Kisebb"
"Nagyobb"
"Automatikus forgatás használata"
- "Az arcfelismerés az előlapi kamerát használja az automatikus forgatás pontosságának javításához. A funkció sosem tárolja vagy küldi tovább a Google-nak a képeket.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>További információ a képernyő automatikus forgatásáról.</a>"
+ "Az arcfelismerés az előlapi kamerát használja az automatikus forgatás pontosságának javításához. A rendszer a képeket semmilyen esetben nem tárolja, és nem is küldi el őket a Google-nak."
"Mintaszöveg"
"Óz, a csodák csodája"
"11. fejezet: A csodálatos Smaragdváros"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"TOVÁBB"
"KÖSZÖNÖM, NEM"
"Hely"
- "A szolgáltatás biztosítása érdekében szolgáltatója gyűjtheti a helyadatokat.\n\nTekintse meg szolgáltatója adatvédelmi irányelveit."
+ "Szolgáltatója gyűjtheti a helyadatokat, ha Ön segélyhívásra használja ezt a szolgáltatást.\n\nEzzel kapcsolatban bővebben a szolgáltató adatvédelmi irányelvei nyújtanak tájékoztatást."
"Elveszítheti hozzáférését a fennmaradó idő- vagy adatmennyiséghez. Az eltávolítás előtt egyeztessen szolgáltatójával."
"tartalomrögzítés, alkalmazástartalom"
"Alkalmazástartalom"
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 98ad25dfb50..2208f23c964 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -53,7 +53,7 @@
"Փոքրացնել"
"Մեծացնել"
"Օգտագործել ինքնապտտումը"
- "Դիմաճանաչումն օգտագործում է առջևի տեսախցիկը՝ ինքնապտտման ճշգրտությունը բարելավելու համար։ Պատկերները երբեք չեն պահվում և չեն ուղարկվում Google-ին։<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Իմանալ ավելին էկրանի ինքնապտտման մասին</a>"
+ "Դիմաճանաչումն օգտագործում է առջևի տեսախցիկը՝ ինքնապտտման ճշգրտությունը բարելավելու համար։ Պատկերները չեն պահվում և չեն ուղարկվում Google-ին։"
"Տեքստի նմուշ"
"Օզի կախարդը"
"Գլուխ 11. Օզի հրաշալի Զմրուխտե քաղաքը"
@@ -356,6 +356,8 @@
+
+
@@ -2266,7 +2268,7 @@
"Հատուկ գործառույթներ"
"Հատուկ գործառույթների կարգավորումներ"
"Էկրան, փոխազդեցություն, աուդիո"
- "Տեսողության կարգավորումներ"
+ "Տեսողության կարգավորումներ"
"Օգտվեք հատուկ հնարավորություններից՝ հարմար աշխատանքի համար։ Այս գործառույթները կարող եք փոփոխել սարքի կարգավորումներում։"
"Փոխեք տառաչափը"
"Էկրանի ընթերցիչ"
@@ -4410,7 +4412,7 @@
"Փոխանցել ֆայլեր մեկ այլ սարքին"
"PTP ռեժիմ"
"Տեսանյութերի վերածում AVC ձևաչափի"
- "Տեսանյութերը հնարավոր կլինի նվագարկել ավելի շատ մեդիա նվագարկիչներով, սակայն որակը կարող է իջնել։"
+ "Տեսանյութերը հնարավոր կլինի նվագարկել ավելի շատ մեդիա նվագարկիչներով, սակայն որակը կարող է ընկնել։"
"Լուսանկարների կամ ֆայլերի փոխանցում, եթե MTP-ն չի աջակցվում (PTP)"
"USB մոդեմ"
"MIDI"
@@ -5355,7 +5357,7 @@
"ՇԱՐՈՒՆԱԿԵԼ"
"ՈՉ, ՇՆՈՐՀԱԿԱԼՈՒԹՅՈՒՆ"
"Վայր"
- "Այս ծառայությունը տրամադրելու համար բջջային կապի օպերատորը կարող է տեղեկություններ հավաքել ձեր գտնվելու վայրի մասին։\n\nԾանոթացեք օպերատորի գաղտնիության քաղաքականությանը։"
+ "Ձեր օպերատորը կարող է հավաքել տեղեկություններ ձեր գտնվելու վայրի մասին, երբ օգտագործում եք այս ծառայությունը շտապ կանչերի համար։\n\nՄանրամասն տեղեկությունների համար անցեք ձեր օպերատորի գաղտնիության քաղաքականության էջ։"
"Մնացած րոպեներն ու թրաֆիկը կարող են ձեզ անհասանելի դառնալ։ Հեռացնելուց առաջ դիմեք կապի օպերատորին։"
"բովանդակության արագ բացում, հավելվածի բովանդակություն"
"Հավելվածների բովանդակություն"
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 681dad34b7e..10b6047ccd4 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -53,7 +53,7 @@
"Buat lebih kecil"
"Buat lebih besar"
"Gunakan Putar Otomatis"
- "Fitur Deteksi Wajah menggunakan kamera depan untuk meningkatkan akurasi Putar Otomatis. Gambar tidak pernah disimpan atau dikirim ke Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Pelajari lebih lanjut Putar layar otomatis</a>"
+ "Fitur Deteksi Wajah menggunakan kamera depan untuk meningkatkan akurasi Putar Otomatis. Gambar tidak pernah disimpan atau dikirim ke Google."
"Teks contoh"
"Penyihir Oz yang Menakjubkan"
"Bab 11: Oz, Kota Zamrud yang Menakjubkan"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"LANJUTKAN"
"TIDAK, TERIMA KASIH"
"Lokasi"
- "Penyedia layanan dapat meminta lokasi Anda sebagai syarat untuk menyediakan layanan ini.\n\nHarap tinjau kebijakan privasi penyedia layanan Anda."
+ "Operator dapat mengumpulkan informasi lokasi Anda saat layanan ini digunakan untuk panggilan darurat.\n\nLihat kebijakan privasi operator Anda untuk mengetahui detailnya."
"Anda dapat kehilangan akses ke waktu atau data apa pun yang tersisa. Hubungi penyedia Anda sebelum menghapus."
"gambar konten, konten aplikasi"
"Konten aplikasi"
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 684206ac2a9..967d496f2ff 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -53,7 +53,7 @@
"Minnka"
"Stækka"
"Nota sjálfvirkan snúning"
- "Andlitsgreining notar fremri myndavélina til að bæta nákvæmni sjálfvirks snúnings. Myndir eru hvorki geymdar né sendar til Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Nánar um sjálfvirkan skjásnúning</a>"
+ "Andlitsgreining notar fremri myndavélina til að bæta nákvæmni sjálfvirks snúnings. Myndir eru aldrei vistaðar eða sendar til Google."
"Textadæmi"
"Galdrakarlinn í Oz"
"11. kafli: Smaragðsborgin dásamlega í Oz"
@@ -289,7 +289,7 @@
"Virkja græjur"
"Gert óvirkt af kerfisstjóra"
"Sýna valkost fyrir læsingu"
- "Sýna valkost fyrir aflrofa sem slekkur á Smart Lock, andlitskenni, fingrafarsopnun og tilkynningum á lásskjá"
+ "Sýna valkost fyrir aflrofa sem slekkur á Smart Lock, andlitskenni, fingrafarskenni og tilkynningum á lásskjá"
"Læsir skjánum þegar traust vantar"
"Ef kveikt er á þessu læsist tækið þegar síðasti traustfulltrúi missir traust"
"Ekkert"
@@ -356,6 +356,8 @@
+
+
@@ -407,7 +409,7 @@
"Skráðu fingrafarið þitt"
- "Leyfa fingrafarsopnun"
+ "Leyfa fingrafarskenni"
"Nota fingrafarið þitt"
"Notaðu fingrafarið þitt til að opna símann eða staðfesta að þetta sért þú, t.d. þegar þú skráir þig inn í forrit eða samþykkir kaup."
"Leyfa barninu að nota fingrafarið til að opna símann eða staðfesta hver það er. Þetta gerist þegar barnið skráir sig inn í forrit, staðfestir kaup og fleira."
@@ -425,14 +427,14 @@
"Uppsetning fingrafars tekur bara mínútu eða tvær. Ef þú sleppir þessu skrefi geturðu bætt fingrafarinu við seinna í stillingunum."
"Þegar þú sérð þetta tákn skaltu nota fingrafarið til að auðkenna þig, t.d. þegar þú skráir þig inn í forrit eða samþykkir kaup"
"Hafðu í huga"
- "Ekki er víst að fingrafaraopnun sé eins örugg leið til að opna símann og sterkt mynstur eða PIN-númer."
+ "Ekki er víst að fingrafarskenni sé eins örugg leið til að opna símann og sterkt mynstur eða PIN-númer."
"Svona virkar þetta"
- "Fingrafarsopnun býr til einkvæmt líkan af fingrafarinu þínu til að staðfesta hver þú ert. Til að búa líkanið til við uppsetningu þarf að taka myndir af fingrafarinu þínu frá nokkrum sjónarhornum."
- "Fingrafarsopnun býr til einkvæmt líkan af fingrafari barnsins þíns til að staðfesta hver það er. Til að búa líkanið til við uppsetningu tekur barnið myndir af fingrafarinu sínu frá mismunandi sjónarhornum."
+ "Fingrafarskenni býr til einkvæmt líkan af fingrafarinu þínu til að staðfesta hver þú ert. Til að búa líkanið til við uppsetningu þarf að taka myndir af fingrafarinu þínu frá nokkrum sjónarhornum."
+ "Fingrafarskenni býr til einkvæmt líkan af fingrafari barnsins þíns til að staðfesta hver það er. Til að búa líkanið til við uppsetningu tekur barnið myndir af fingrafarinu sínu frá mismunandi sjónarhornum."
"Þegar þú notar Pixel Imprint eru myndir notaðar til að uppfæra fingrafarslíkanið. Myndir sem eru notaðar til að búa fingrafarslíkanið til eru aldrei geymdar en líkanið er geymt á öruggan hátt í símanum og fer aldrei þaðan. Öll úrvinnsla fer fram í símanum á öruggan hátt."
"Þegar barnið notar Pixel Imprint eru myndir notaðar til að uppfæra fingrafarslíkan þess. Myndir sem eru notaðar til að búa fingrafarslíkan barnsins til eru aldrei geymdar en líkanið er geymt á öruggan hátt í símanum og fer aldrei þaðan. Öll úrvinnsla fer fram í símanum á öruggan hátt."
- "Þú getur eytt fingrafaramyndunum og -líkaninu eða slökkt á fingrafaraopnun hvenær sem er í stillingunum. Fingrafaramyndir og -líkön eru geymd á öruggan hátt í símanum þar til þeim er eytt."
- "Þú og barnið þitt getið eytt fingrafarsmyndunum og -líkaninu eða slökkt á fingrafarsopnun hvenær sem er í stillingunum. Fingrafaramyndir og -líkön eru geymd á öruggan hátt í símanum þar til þeim er eytt."
+ "Þú getur eytt fingrafaramyndunum og -líkaninu eða slökkt á fingrafarskenni hvenær sem er í stillingunum. Fingrafaramyndir og -líkön eru geymd á öruggan hátt í símanum þar til þeim er eytt."
+ "Þú og barnið þitt getið eytt fingrafarsmyndunum og -líkaninu eða slökkt á fingrafarskenni hvenær sem er í stillingunum. Fingrafaramyndir og -líkön eru geymd á öruggan hátt í símanum þar til þeim er eytt."
"Síminn gæti opnast óvart, til dæmis ef einhver heldur honum að fingrinum á þér."
"Sími barnsins kann að opnast án þess að það hafi verið ætlun þess, t.d. ef einhver heldur símanum að fingri þess."
@@ -444,11 +446,11 @@
"Færðu þig á stað með mýkri lýsingu og reyndu aftur"
"Þú hefur náð hámarksfjölda tilrauna"
"Notaðu fingrafarið þitt til að taka símann úr lás eða bera kennsl á þig, t.d. þegar þú skráir þig inn í forrit\n\n""Frekari upplýsingar"
- "Andlits- og fingrafarsopnun"
+ "Andlits- og fingrafarskenni"
"Ýttu til að setja upp"
"Andliti og fingraförum bætt við"
"Andliti og fingrafari bætt við"
- "Þegar þú setur upp andlits- og fingrafarsopnun biður síminn um fingrafarið þitt þegar þú ert með grímu eða á dimmum stað"
+ "Þegar þú setur upp andlits- og fingrafarskenni biður síminn um fingrafarið þitt þegar þú ert með grímu eða á dimmum stað"
"Leiðir til að taka úr lás"
"Nota andlit og fingrafar til að"
"Taka símann úr lás"
@@ -563,12 +565,12 @@
"Þú munt ekki geta notað fingrafarið þitt til að opna símann eða staðfesta hver þú ert í forritum."
"Þú munt ekki geta notað fingrafarið þitt til að taka vinnusniðið úr lás, heimila kaup eða skrá þig inn í vinnuforrit."
"Já, fjarlægja"
- "Andlits- og fingrafarsopnun"
+ "Andlits- og fingrafarskenni"
"Ýttu til að setja upp"
"Aðeins andlit"
"Aðeins fingrafar"
"Andlit og fingrafar"
- "Þegar þú setur upp andlits- og fingrafarsopnun biður síminn um fingrafarið þitt þegar þú ert með grímu eða á dimmum stað"
+ "Þegar þú setur upp andlits- og fingrafarskenni biður síminn um fingrafarið þitt þegar þú ert með grímu eða á dimmum stað"
"Leiðir til að taka úr lás"
"Nota andlit eða fingrafar fyrir"
"Auðkenning í forritum"
@@ -5355,7 +5357,7 @@
"HALDA ÁFRAM"
"NEI, TAKK"
"Staður"
- "Þjónustuaðili þinn kann að safna staðsetningu þinni til að veita þér þessa þjónustu.\n\nSkoðaðu persónuverndarstefnu þjónustuaðilans."
+ "Farsímafyrirtækið þitt kann að safna saman upplýsingum um staðsetningu þegar þú notar þessa þjónustu til að hringja neyðarsímtöl.\n\nFrekari upplýsingar er að finna í persónuverndarstefnu viðkomandi farsímafyrirtækis."
"Þú gætir glatað aðgangi að tíma eða gögnum sem eru eftir. Hafðu samband við símafyrirtækið áður en þú fjarlægir."
"efnistaka, forritsefni"
"Forritsefni"
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 3b2f5ca8d26..43a40cfe4e3 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -53,7 +53,7 @@
"Rimpicciolisci"
"Ingrandisci"
"Usa la rotazione automatica"
- "La funzionalità di riconoscimento facciale usa la fotocamera anteriore per migliorare la precisione della rotazione automatica. Le immagini non vengono mai memorizzate né inviate a Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Scopri di più sull\'opzione Rotazione automatica dello schermo</a>"
+ "La funzionalità di riconoscimento facciale usa la fotocamera anteriore per migliorare la precisione della rotazione automatica. Le immagini non vengono mai memorizzate o inviate a Google."
"Testo di esempio"
"Il meraviglioso mago di Oz"
"Capitolo 11: La splendida Città di smeraldo di Oz"
@@ -356,6 +356,8 @@
+
+
@@ -2982,7 +2984,7 @@
"Disinstalla certificati"
"Rimuovi l\'app"
"Rimuovere questa app?"
- "Questa app non gestirà i certificati, ma rimarrà attiva sul dispositivo. Eventuali certificati installati dall\'app verranno disinstallati."
+ "Questa app non gestirà i certificati, ma rimarrà sul dispositivo. Eventuali certificati installati dall\'app verranno disinstallati."
- %d URL
- %d URL
@@ -4410,7 +4412,7 @@
"Trasferisci i file su un altro dispositivo"
"PTP"
"Converti video in AVC"
- "I video verranno riprodotti su più lettori multimediali, ma la qualità sarà ridotta"
+ "I video verranno riprodotti su più lettori multimediali, ma la qualità potrebbe essere inferiore"
"Trasferisci foto o file se la modalità MTP non è supportata (PTP)"
"Tethering USB"
"MIDI"
@@ -5355,7 +5357,7 @@
"CONTINUA"
"NO GRAZIE"
"Posizione"
- "Il tuo fornitore di servizi potrebbe raccogliere dati sulla tua posizione per fornire questo servizio.\n\nEsamina le norme sulla privacy del tuo fornitore di servizi."
+ "L\'operatore potrebbe recuperare la tua posizione quando usi questo servizio per le chiamate di emergenza.\n\nPer informazioni dettagliate, leggi le norme sulla privacy dell\'operatore."
"Potresti non avere più accesso a tempi o dati restanti. Prima di effettuare la rimozione, rivolgiti al tuo fornitore di servizi."
"acquisizione contenuti, contenuti app"
"Contenuti app"
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index c165b4c2d32..ea376853ca0 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -55,7 +55,7 @@
"הקטנה"
"הגדלה"
"שימוש בסיבוב האוטומטי"
- "בזיהוי הפנים נעשה שימוש במצלמה שבחזית המכשיר כדי לשפר את הדיוק של הסיבוב האוטומטי. התמונות לעולם לא נשמרות ב-Google או נשלחות אליה.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>למידע נוסף על הסיבוב האוטומטי של המסך</a>"
+ "בזיהוי הפנים נעשה שימוש במצלמה שבחזית המכשיר כדי לשפר את הדיוק של הסיבוב האוטומטי. התמונות אף פעם לא נשמרות ולא נשלחות אל Google."
"טקסט לדוגמה"
"הקוסם המופלא מארץ עוץ"
"פרק 11: עיר הברקת המופלאה של ארץ עוץ"
@@ -362,6 +362,8 @@
+
+
@@ -5535,7 +5537,7 @@
"המשך"
"לא, תודה"
"מיקום"
- "ספק השירות עשוי לתעד את המיקום שלך כדי לספק את השירות הזה.\n\nיש לעיין במדיניות הפרטיות של ספק השירות."
+ "כדי לבצע שיחות חירום, ספק השירות עשוי לתעד את המיקום שלך כשהשירות הזה בשימוש.\n\nלפרטים, יש לעיין במדיניות הפרטיות של הספק."
"ייתכן שזמן שיחה או נתונים שנותרו בחבילה יימחקו. יש לבדוק אצל הספק לפני ההסרה."
"תיעוד תוכן, תוכן אפליקציות"
"תוכן אפליקציות"
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 79f879769ca..513d591e303 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -53,7 +53,7 @@
"縮小"
"拡大"
"自動回転を使用する"
- "顔検出は、前面カメラを使用して自動回転の精度を高めます。画像が Google に保存、送信されることは一切ありません。<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>画面の自動回転の詳細</a>"
+ "顔検出は、前面カメラを使用して自動回転の精度を高めます。画像が Google に保存されたり送信されたりすることはありません。"
"サンプル テキスト"
"オズの魔法使い"
"第 11 章: オズの不思議なエメラルド シティ"
@@ -356,6 +356,8 @@
+
+
@@ -2665,7 +2667,7 @@
"使用量の多いアプリを確認"
"充電は一時的に制限されています"
"バッテリーを長持ちさせるためのヒントをご確認ください。"
- "スマートフォンの使用が通常より多いため、バッテリーが通常より早くなくなる可能性があります。\n\nバッテリーを多く使用しているアプリ:"
+ "スマートフォンのバッテリー使用量が通常より多いため、通常より早くバッテリーがなくなる可能性があります。\n\nバッテリーを多く使用しているアプリ:"
"タブレットの使用が通常より多いため、バッテリーが通常より早くなくなる可能性があります。\n\nバッテリーを多く使用しているアプリ:"
"デバイスの使用が通常より多いため、バッテリーが通常より早くなくなる可能性があります。\n\nバッテリーを多く使用しているアプリ:"
"電力消費量の多いバックグラウンド アクティビティを含める"
@@ -5355,7 +5357,7 @@
"続行"
"同意しない"
"場所"
- "サービス プロバイダが、このサービスを提供するために位置情報を収集することがあります。\n\nサービス プロバイダのプライバシー ポリシーをご確認ください。"
+ "このサービスを緊急通報に使用すると、携帯通信会社に位置情報を収集されることがあります。\n\n詳しくは、携帯通信会社のプライバシー ポリシーをご覧ください。"
"残り時間や残りデータを利用できなくなる可能性があります。削除前にプロバイダにご確認ください。"
"コンテンツの取得, アプリのコンテンツ"
"アプリのコンテンツ"
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index cd195f2acb6..745fecc09c0 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -53,7 +53,7 @@
"დაპატარავება"
"გადიდება"
"ავტომატური შეტრიალების გამოყენება"
- "სახის ამოცნობა იყენებს წინა კამერას ავტომატური შეტრიალების სიზუსტის გასაუმჯობესებლად. სურათები არასოდეს ინახება ან იგზავნება Google-ში.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>შეიტყვეთ მეტი ეკრანის ავტომატური შეტრიალების შესახებ</a>"
+ "სახის ამოცნობა იყენებს წინა კამერას ავტომატური შეტრიალების სიზუსტის გასაუმჯობესებლად. სურათები არასოდეს ინახება და არც Google-ს ეგზავნება."
"ტექსტის ნიმუში"
"ოზის საოცარი ჯადოქარი"
"თავი 11: ოზის ზურმუხტის ქალაქი"
@@ -356,6 +356,8 @@
+
+
@@ -1746,7 +1748,7 @@
"ყველა მონაცემის ამოშლა (ქარხნული პარამეტრების დაბრუნება)"
"ყველა მონაცემის ამოშლა (ქარხნული პარამეტრების დაბრუნება)"
"ეს ქმედება ამოშლის ყველა მონაცემს თქვენი ტაბლეტის ""შიდა მეხსიერებიდან"", მათ შორის:\n\n""თქვენს Google ანგარიშს"\n"სისტემის/აპების მონაცემებსა და პარამეტრებს"\n"ჩამოტვირთულ აპებს"
- "ეს ქმედება თქვენი ტელეფონის ""შიდა მეხსიერებიდან"" წაშლის ყველა ისეთ მონაცემს, როგორიცაა:\n\n""თქვენი Google ანგარიში"\n"სისტემის/აპების მონაცემებია და პარამეტრები"\n"ჩამოტვირთული აპები"
+ "ეს ქმედება თქვენი ტელეფონის ""შიდა მეხსიერებიდან"" წაშლის ყველა ისეთ მონაცემს, როგორიცაა:\n\n""თქვენი Google ანგარიში"\n"სისტემის/აპების მონაცემები და პარამეტრები"\n"ჩამოტვირთული აპები"
\n\n"ამჟამად შესული ხართ შემდეგ ანგარიშებში:\n"
\n\n" ამ მოწყობილობაზე წარმოდგენილია სხვა მომხმარებლები. \n"
"მუსიკა"\n"ფოტოები"\n"მომხმარებლის სხვა მონაცემები"
@@ -5355,7 +5357,7 @@
"გაგრძელება"
"არა, გმადლობთ"
"მდებარეობა"
- "თქვენი სერვისის პროვაიდერი, ამ სერვისის მოწოდების მიზნით, შეიძლება აგროვებდეს ინფორმაციას თქვენი მდებარეობის შესახებ.\n\nგთხოვთ, გადახედოთ თქვენი სერვისის პროვაიდერის კონფიდენციალურობის დებულებას."
+ "თქვენმა ოპერატორმა შეიძლება დააფიქსიროს თქვენი მდებარეობა, როდესაც ამ სერვისს გადაუდებელი ზარებისთვის იყენებთ.\n\nდეტალები იხილეთ თქვენი ოპერატორის კონფიდენციალურობის დებულებაში."
"შეიძლება დაკარგოთ წვდომა ნებისმიერ დარჩენილ დროზე ან მონაცემზე. ამოშლამდე გადაამოწმეთ თქვენს პროვაიდერთან."
"კონტენტის აღბეჭდვა, აპის კონტენტი"
"აპის კონტენტი"
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index e35135d3c43..86e56a87b96 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -53,7 +53,7 @@
"Кішірек ету"
"Үлкенірек ету"
"Автоматты бұруды пайдалану"
- "Автоматты бұру дәлдігін арттыру үшін бетті анықтау функциясында алдыңғы камера пайдаланылады. Суреттер ешқашан Google-ға жіберілмейді немесе сақталмайды.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Автоматты бұру туралы толығырақ ақпарат</a>"
+ "Автоматты бұру дәлдігін арттыру үшін бетті анықтау функциясында алдыңғы камера пайдаланылады. Суреттер Google-ға жіберілмейді немесе сақталмайды."
"Мәтін үлгісі"
"Оз елінің ғажап сиқыршысы"
"11-тарау. Оз елінің Зубаржат қаласы"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"ЖАЛҒАСТЫРУ"
"ЖОҚ, РАҚМЕТ"
"Локация"
- "Бұл қызметті ұсыну үшін қызметті көрсетуші геодерегіңізді жинауы мүмкін.\n\nҚызмет көрсетушінің құпиялылық саясатын қараңыз."
+ "Бұл функцияны құтқару қызметіне қоңырау шалу үшін пайдаланған кезде, операторыңыз локация дерегін жинауы мүмкін.\n\nТолық мәлімет үшін операторыңыздың құпиялылық саясатын қарап шығыңыз."
"Қалған уақыт немесе деректерді пайдалана алмай қалуыңыз мүмкін. Алып тастау алдында провайдермен ақылдасыңыз."
"мазмұн түсіру, қолданба мазмұны"
"Қолданба мазмұны"
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 9d44fe43e1d..36e54041c84 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -53,7 +53,7 @@
"កំណត់ឲ្យតូចជាងមុន"
"កំណត់ឲ្យធំជាងមុន"
"ប្រើការបង្វិលស្វ័យប្រវត្តិ"
- "ការសម្គាល់មុខប្រើកាមេរ៉ាខាងមុខ ដើម្បីកែលម្អភាពត្រឹមត្រូវនៃការបង្វិលស្វ័យប្រវត្តិ។ រូបភាពមិនត្រូវបានរក្សាទុក ឬផ្ញើទៅ Google ទេ។<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>ស្វែងយល់បន្ថែមអំពីការបង្វិលអេក្រង់ស្វ័យប្រវត្តិ</a>"
+ "ការសម្គាល់មុខប្រើកាមេរ៉ាខាងមុខ ដើម្បីកែលម្អភាពត្រឹមត្រូវនៃការបង្វិលស្វ័យប្រវត្តិ។ រូបភាពមិនត្រូវបានរក្សាទុក ឬផ្ញើទៅ Google ឡើយ។"
"អត្ថបទគំរូ"
"មេធ្មប់ដ៏អស្ចារ្យនៃទឹកដីពិសិដ្ឋ"
"ជំពូកទី 11៖ ទីក្រុងមរកតដ៏អស្ចារ្យនៃទឹកដីពិសិដ្ឋ"
@@ -356,6 +356,8 @@
+
+
@@ -2665,7 +2667,7 @@
"មើលកម្មវិធីដែលមានការប្រើប្រាស់ខ្ពស់បំផុត"
"បានដាក់កម្រិតការសាកថ្មជាបណ្ដោះអាសន្ន"
"ដើម្បីរក្សាថ្មរបស់អ្នក។ ស្វែងយល់បន្ថែម។"
- "ដោយសារអ្នកបានប្រើទូរសព្ទរបស់អ្នកច្រើនជាងធម្មតា ថ្មរបស់អ្នកអាចនឹងឆាប់អស់ជាងពេលធម្មតា។\n\nកម្មវិធីដែលប្រើថ្មច្រើនបំផុត៖"
+ "ដោយសារអ្នកបានប្រើទូរសព្ទរបស់អ្នកច្រើនជាងប្រក្រតី ថ្មរបស់អ្នកអាចនឹងឆាប់អស់ជាងពេលធម្មតា។\n\nកម្មវិធីដែលប្រើថ្មច្រើនបំផុត៖"
"ដោយសារអ្នកបានប្រើថេប្លេតរបស់អ្នកច្រើនជាងធម្មតា ថ្មរបស់អ្នកអាចនឹងឆាប់អស់ជាងពេលធម្មតា។\n\nកម្មវិធីដែលប្រើថ្មច្រើនបំផុត៖"
"ដោយសារអ្នកបានប្រើឧបករណ៍របស់អ្នកច្រើនជាងធម្មតា ថ្មរបស់អ្នកអាចនឹងឆាប់អស់ជាងពេលធម្មតា។\n\nកម្មវិធីដែលប្រើថ្មច្រើនបំផុត៖"
"រួមបញ្ចូលសកម្មភាពផ្ទៃខាងក្រោយដែលប្រើថាមពលច្រើន"
@@ -2720,7 +2722,7 @@
- កម្មវិធី %1$d ត្រូវបានដាក់កំហិត
"^1"" ""%"""
- "មានបញ្ហាក្នុងការអានឧបករណ៍រង្វាស់កម្រិតថ្ម។"
+ "មានបញ្ហាក្នុងការអានរង្វាស់កម្រិតថ្ម។"
"ចុច ដើម្បីស្វែងយល់បន្ថែមអំពីបញ្ហានេះ"
"បញ្ឈប់កម្មវិធី?"
@@ -5355,7 +5357,7 @@
"បន្ត"
"ទេ អរគុណ"
"ទីតាំង"
- "ក្រុមហ៊ុនផ្ដល់សេវារបស់អ្នកអាចប្រមូលទីតាំងរបស់អ្នក ដើម្បីផ្ដល់សេវាកម្មនេះ។\n\nសូមពិនិត្យមើលគោលការណ៍ឯកជនភាពរបស់ក្រុមហ៊ុនផ្ដល់សេវារបស់អ្នក។"
+ "ក្រុមហ៊ុនសេវាទូរសព្ទរបស់អ្នកអាចនឹងប្រមូលទីតាំងរបស់អ្នក នៅពេលអ្នកប្រើសេវាកម្មនេះសម្រាប់ការហៅទៅលេខសង្គ្រោះបន្ទាន់។\n\nសូមចូលទៅកាន់គោលការណ៍ឯកជនភាពរបស់ក្រុមហ៊ុនសេវាទូរសព្ទអ្នក ដើម្បីទទួលបានព័ត៌មានលម្អិត។"
"អ្នកអាចនឹងបាត់បង់សិទ្ធិចូលប្រើទិន្នន័យ និងរយៈពេលនៅសល់។ សូមសាកសួរក្រុមហ៊ុនផ្ដល់សេវារបស់អ្នក មុនពេលលុប។"
"ការថតខ្លឹមសារ ខ្លឹមសារកម្មវិធី"
"ខ្លឹមសារកម្មវិធី"
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 0019f214b94..c483f476327 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -53,7 +53,7 @@
"ಚಿಕ್ಕದಾಗಿಸು"
"ದೊಡ್ಡದಾಗಿಸು"
"ಸ್ವಯಂ-ತಿರುಗುವಿಕೆಯನ್ನು ಬಳಸಿ"
- "ಮುಖ ಪತ್ತೆಹಚ್ಚುವಿಕೆಯು ಸ್ವಯಂ-ತಿರುಗುವಿಕೆಯ ನಿಖರತೆಯನ್ನು ಸುಧಾರಿಸಲು ಮುಂಬದಿಯ ಕ್ಯಾಮರಾವನ್ನು ಬಳಸುತ್ತದೆ. ಚಿತ್ರಗಳನ್ನು ಎಂದಿಗೂ ಸಂಗ್ರಹಿಸುವುದಿಲ್ಲ ಅಥವಾ Google ಗೆ ಕಳುಹಿಸುವುದಿಲ್ಲ.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>ಸ್ವಯಂ-ತಿರುಗುವಿಕೆ ಸ್ಕ್ರೀನ್ನ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</a>"
+ "ಮುಖ ಪತ್ತೆಹಚ್ಚುವಿಕೆಯು ಸ್ವಯಂ-ತಿರುಗುವಿಕೆಯ ನಿಖರತೆಯನ್ನು ಸುಧಾರಿಸಲು ಮುಂಬದಿಯ ಕ್ಯಾಮರಾವನ್ನು ಬಳಸುತ್ತದೆ. ಚಿತ್ರಗಳನ್ನು ಎಂದಿಗೂ ಸಂಗ್ರಹಿಸುವುದಿಲ್ಲ ಅಥವಾ Google ಗೆ ಕಳುಹಿಸಲಾಗುವುದಿಲ್ಲ."
"ಮಾದರಿ ಪಠ್ಯ"
"Oz ನ ಅದ್ಭುತವಾದ ಮಾಂತ್ರಿಕ"
"ಅಧ್ಯಾಯ 11: Oz ನ ಅದ್ಭುತವಾದ ಎಮೆರಾಲ್ಡ್ ಸಿಟಿ"
@@ -356,6 +356,8 @@
+
+
@@ -1465,7 +1467,7 @@
"ಮೊಬೈಲ್ ಡೇಟಾಗಾಗಿ %1$s ಬಳಸುವುದೇ?"
"ಮೊಬೈಲ್ ಡೇಟಾಗಾಗಿ ನೀವು %2$s ಬಳಸುತ್ತಿರುವಿರಿ. ನೀವು %1$s ಗೆ ಬದಲಾಯಿಸಿದರೆ, ಇನ್ನು ಮುಂದೆ %2$s ಅನ್ನು ಮೊಬೈಲ್ ಡೇಟಾಗಾಗಿ ಬಳಸಲಾಗುವುದಿಲ್ಲ."
"%1$s ಅನ್ನು ಬಳಸಿ"
- "ಪ್ರಾಶಸ್ತ್ಯದ ಸಿಮ್ ಕಾರ್ಡ್ ನವೀಕರಿಸುವುದೇ?"
+ "ಆದ್ಯತೆ ಸಿಮ್ ಕಾರ್ಡ್ ಅಪ್ಡೇಟ್ ಮಾಡಬೇಕೇ?"
"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ %1$s ಸಿಮ್ ಮಾತ್ರ ಇದೆ. ಮೊಬೈಲ್ ಡೇಟಾ, ಕರೆಗಳು ಮತ್ತು ಎಸ್ಎಂಎಸ್ ಸಂದೇಶಗಳಿಗೆ ನೀವು ಈ ಸಿಮ್ ಬಳಸಲು ಬಯಸುತ್ತೀರಾ?"
"ಸಿಮ್ ಪಿನ್ ಕೋಡ್ ತಪ್ಪಾಗಿದೆ ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ನೀವು ಈ ಕೂಡಲೇ ನಿಮ್ಮ ವಾಹಕವನ್ನು ಸಂಪರ್ಕಿಸಬೇಕು."
@@ -2368,7 +2370,7 @@
"ಪಾರದರ್ಶಕ"
"ಪಾರದರ್ಶಕವಲ್ಲದ"
"ಹೆಚ್ಚು ಕಾಂಟ್ರಾಸ್ಟ್ನ ಪಠ್ಯ"
- "ಸ್ವಯಂಚಾಲಿತ ನವೀಕರಣದ ಸ್ಕ್ರೀನ್ ವರ್ಧನೆ"
+ "ಸ್ವಯಂ ಅಪ್ಡೇಟ್ ಸ್ಕ್ರೀನ್ ವರ್ಧನೆ"
"ಅಪ್ಲಿಕೇಶನ್ ಪರಿವರ್ತನೆಗಳಲ್ಲಿ ಸ್ಕ್ರೀನ್ ವರ್ಧಕವನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ"
"ಪವರ್ ಬಟನ್ ಕರೆಯನ್ನು ಕೊನೆಗೊಳಿಸುತ್ತದೆ"
"ದೊಡ್ಡ ಮೌಸ್ ಪಾಯಿಂಟರ್"
@@ -2665,9 +2667,9 @@
"ಅತ್ಯಂತ ಹೆಚ್ಚು ಬಳಸಲಾದ ಆ್ಯಪ್ಗಳನ್ನು ನೋಡಿ"
"ಚಾರ್ಜಿಂಗ್ ತಾತ್ಕಾಲಿಕವಾಗಿ ಸೀಮಿತವಾಗಿದೆ"
"ನಿಮ್ಮ ಬ್ಯಾಟರಿಯನ್ನು ಉಳಿಸಲು. ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ."
- "ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಳಸಿರುವ ಕಾರಣದಿಂದ, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯು ನಿರೀಕ್ಷಿಸಿದ ಅವಧಿಗಿಂತ ಮುನ್ನವೇ ಖಾಲಿಯಾಗಬಹುದು.\n\nಆ್ಯಪ್ಗಳು ಹೆಚ್ಚಿನ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸುತ್ತಿವೆ:"
- "ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಳಸಿರುವ ಕಾರಣದಿಂದ, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯು ನಿರೀಕ್ಷಿಸಿದ ಅವಧಿಗಿಂತ ಮುನ್ನವೇ ಖಾಲಿಯಾಗಬಹುದು.\n\nಆ್ಯಪ್ಗಳು ಹೆಚ್ಚಿನ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸುತ್ತಿವೆ:"
- "ನಿಮ್ಮ ಸಾಧನವನ್ನು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಳಸಿರುವ ಕಾರಣದಿಂದ, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯು ನಿರೀಕ್ಷಿಸಿದ ಅವಧಿಗಿಂತ ಮುನ್ನವೇ ಖಾಲಿಯಾಗಬಹುದು.\n\nಆ್ಯಪ್ಗಳು ಹೆಚ್ಚಿನ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸುತ್ತಿವೆ:"
+ "ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಳಸಿರುವ ಕಾರಣದಿಂದ, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯು ನಿರೀಕ್ಷಿಸಿದ ಅವಧಿಗಿಂತ ಮುನ್ನವೇ ಖಾಲಿಯಾಗಬಹುದು.\n\nಹೆಚ್ಚಿನ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸುತ್ತಿರುವ ಆ್ಯಪ್ಗಳು:"
+ "ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಳಸಿರುವ ಕಾರಣದಿಂದ, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯು ನಿರೀಕ್ಷಿಸಿದ ಅವಧಿಗಿಂತ ಮುನ್ನವೇ ಖಾಲಿಯಾಗಬಹುದು.\n\nಹೆಚ್ಚಿನ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸುತ್ತಿರುವ ಆ್ಯಪ್ಗಳು:"
+ "ನಿಮ್ಮ ಸಾಧನವನ್ನು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಳಸಿರುವ ಕಾರಣದಿಂದ, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯು ನಿರೀಕ್ಷಿಸಿದ ಅವಧಿಗಿಂತ ಮುನ್ನವೇ ಖಾಲಿಯಾಗಬಹುದು.\n\nಹೆಚ್ಚಿನ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸುತ್ತಿರುವ ಆ್ಯಪ್ಗಳು:"
"ಅಧಿಕ ಬ್ಯಾಟರಿ ಬಳಸುವ ಹಿನ್ನೆಲೆ ಚಟುವಟಿಕೆಯನ್ನು ಒಳಗೊಂಡಿದೆ"
- %1$d ಆ್ಯಪ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸಿ
@@ -4775,10 +4777,8 @@
"ವಿನ್ಸ್ಕೋಪ್ ಟ್ರೇಸ್"
"ಸೆನ್ಸರ್ಗಳು ಆಫ್"
"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಸೆಟ್ಟಿಂಗ್ಗಳು"
-
-
-
-
+ "ವೈಯಕ್ತಿಕ ಆ್ಯಪ್ಗಳಲ್ಲಿ ಕೆಲಸದ ಡೈರೆಕ್ಟರಿಯನ್ನು ಬಳಸಿ ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ"
+ "ನಿಮ್ಮ ಹುಡುಕುವಿಕೆಗಳು ಮತ್ತು ಒಳಬರುವ ಕರೆಗಳು ನಿಮ್ಮ IT ನಿರ್ವಾಹಕರಿಗೆ ಕಾಣಿಸಬಹುದು"
"ಕ್ರಾಸ್-ಪ್ರೊಫೈಲ್ ಕ್ಯಾಲೆಂಡರ್"
"ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಕ್ಯಾಲೆಂಡರ್ನಲ್ಲಿ ಕೆಲಸದ ಈವೆಂಟ್ಗಳನ್ನು ತೋರಿಸಿ"
@@ -5357,7 +5357,7 @@
"ಮುಂದುವರಿಸಿ"
"ಬೇಡ"
"ಸ್ಥಳ"
- "ಈ ಸೇವೆಯನ್ನು ಒದಗಿಸಲು ನಿಮ್ಮ ಸೇವಾ ಪೂರೈಕೆದಾರರು ನಿಮ್ಮ ಸ್ಥಳದ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಬಹುದು.\n\nನಿಮ್ಮ ಸೇವಾ ಪೂರೈಕೆದಾರರ ಗೌಪ್ಯತೆ ನೀತಿಯನ್ನು ಪರಿಶೀಲಿಸಿ."
+ "ನೀವು ಈ ಸೇವೆಯನ್ನು ತುರ್ತು ಕರೆಗಳಿಗಾಗಿ ಬಳಸುವಾಗ ನಿಮ್ಮ ವಾಹಕವು ನಿಮ್ಮ ಸ್ಥಳದ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಬಹುದು.\n\nವಿವರಗಳಿಗಾಗಿ ನಿಮ್ಮ ವಾಹಕದ ಗೌಪ್ಯತೆ ನೀತಿಗೆ ಭೇಟಿ ನೀಡಿ."
"ನೀವು ಯಾವುದೇ ಬಾಕಿಯಿರುವ ಸಮಯ ಅಥವಾ ಡೇಟಾಗೆ ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು. ತೆಗೆದುಹಾಕುವ ಮೊದಲು ನಿಮ್ಮ ಪೂರೈಕೆದಾರರನ್ನು ಪರಿಶೀಲಿಸಿ."
"ವಿಷಯ ಕ್ಯಾಪ್ಚರ್, ಆ್ಯಪ್ ವಿಷಯ"
"ಆ್ಯಪ್ ವಿಷಯ"
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 6090475239a..06331d0cc34 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -53,7 +53,7 @@
"축소"
"확대"
"자동 회전 사용"
- "얼굴 인식 기능은 전면 카메라를 사용하여 자동 회전 정확도를 높입니다. 이미지는 절대 저장되거나 Google로 전송되지 않습니다.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>화면 자동 회전 자세히 알아보기</a>"
+ "얼굴 인식 기능은 전면 카메라를 사용하여 자동 회전 정확도를 높입니다. 이미지는 Google에 전송되거나 저장되지 않습니다."
"샘플 텍스트"
"오즈의 마법사"
"11장: 오즈의 멋진 에메랄드 도시"
@@ -356,6 +356,8 @@
+
+
@@ -2353,7 +2355,7 @@
"볼륨 키 단축키"
"단축키 서비스"
"단축키 설정"
- "잠금 화면에서 바로가기 사용"
+ "잠금 화면에서 단축키 사용"
"잠금 화면에서 기능 단축키 사용을 허용합니다. 볼륨 키 2개를 몇 초 동안 동시에 길게 누릅니다."
"접근성 버튼"
"접근성 버튼 및 동작"
@@ -2439,7 +2441,7 @@
"사용 안함"
"작동하지 않습니다. 자세히 알아보려면 탭하세요."
"이 서비스가 제대로 작동하지 않습니다."
- "접근성 바로가기"
+ "접근성 단축키"
"빠른 설정에 표시"
"보정 모드"
"녹색약"
@@ -5357,7 +5359,7 @@
"계속"
"거부"
"위치"
- "서비스 제공업체에서 이 서비스를 제공하기 위해 내 위치 정보를 수집할 수 있습니다.\n\n서비스 제공업체의 개인정보처리방침을 검토하세요."
+ "긴급 전화를 위해 이 서비스를 사용할 때 이동통신사에서 사용자의 위치를 수집할 수 있습니다.\n\n자세한 내용은 이동통신사의 개인정보처리방침을 참고하세요."
"남은 시간 또는 데이터를 이용하지 못할 수 있습니다. 삭제하기 전에 제공업체에 확인하세요."
"콘텐츠 캡처, 앱 콘텐츠"
"앱 콘텐츠"
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index ab66eb77aa6..103e2afdb79 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -53,7 +53,7 @@
"Кичирээк кылуу"
"Чоңураак кылуу"
"Автоматтык бурулууну иштетүү"
- "Жүздү аныктоо функциясы автоматтык бурулуунун тактыгын жакшыртуу үчүн маңдайкы камераны колдонот. Сүрөттөр эч качан сакталып же Google\'га жөнөтүлбөйт.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Экранды автоматтык түрдө буруу жөнүндө кеңири маалымат алыңыз</a>"
+ "Жүздү аныктоо функциясы автоматтык бурулуунун тактыгын жакшыртуу үчүн маңдайкы камераны колдонот. Сүрөттөр Google\'га эч качан жөнөтүлбөйт же анда сакталбайт."
"Үлгү текст"
"Оз өлкөсүнүн ажайып сыйкырчысы"
"11-бөлүм: Оз өлкөсүнүн ажайып зумурут шаары"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"ООБА"
"ЖОК, РАХМАТ"
"Жайгашкан жер"
- "Кызмат көрсөтүүчү уюм жайгашкан жериңиздин дайындарын бул кызматка жөнөтүү үчүн топтошу мүмкүн.\n\nКызмат көрсөтүүчүнүн купуяык саясаты менен таанышыңыз."
+ "Шашылыш чалуулар үчүн бул кызматты колдонгонуңузда, байланыш операторуңуз жайгашкан жериңиз тууралуу маалыматты чогултушу мүмкүн.\n\nКеңири маалымат алуу үчүн байланыш операторуңуздун купуялык саясатына баш багыңыз."
"Калган убакытты же маалыматтарды пайдалануу мүмкүнчүлүгүнөн айрыласыз. Өчүрүүдөн мурда, операторуңузга байланышыңыз."
"мазмунду сүрөткө тартуу, колдонмонун мазмуну"
"Колдонмонун мазмуну"
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 7f890440462..776ef0c9b14 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -53,7 +53,7 @@
"ເຮັດໃຫ້ນ້ອຍລົງ"
"ເຮັດໃຫ້ໃຫຍ່ຂຶ້ນ"
"ໃຊ້ການໝຸນອັດຕະໂນມັດ"
- "ການກວດຫາໃບໜ້າຈະໃຊ້ກ້ອງໜ້າເພື່ອປັບປຸງຄວາມຖືກຕ້ອງຂອງການໝຸນອັດຕະໂນມັດ. ຮູບຈະບໍ່ຖືກຈັດເກັບ ຫຼື ສົ່ງໄປໃຫ້ Google ເດັດຂາດ.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>ສຶກສາເພີ່ມເຕີມກ່ຽວກັບໜ້າຈໍແບບໝຸນອັດຕະໂນມັດ</a>"
+ "ການກວດຫາໃບໜ້າຈະໃຊ້ກ້ອງໜ້າເພື່ອປັບປຸງຄວາມຖືກຕ້ອງຂອງການໝຸນອັດຕະໂນມັດ. ຮູບຈະບໍ່ຖືກຈັດເກັບ ຫຼື ສົ່ງໄປໃຫ້ Google ເດັດຂາດ."
"ຂໍ້ຄວາມຕົວຢ່າງ"
"ພໍ່ມົດອັດສະຈັນແຫ່ງອອດຊ໌"
"ບົດທີ 11: ເມືອງມໍລະກົດອັນໜ້າອັດສະຈັນຂອງອອດຊ໌"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"ສືບຕໍ່"
"ບໍ່, ຂອບໃຈ"
"ສະຖານທີ່"
- "ຜູ້ໃຫ້ບໍລິການຂອງທ່ານອາດເກັບກຳສະຖານທີ່ຂອງທ່ານໄວ້ເພື່ອສະໜອງບໍລິການນີ້.\n\nກະລຸນາກວດສອບນະໂຍບາຍຄວາມເປັນສ່ວນຕົວຂອງຜູ້ໃຫ້ບໍລິການທ່ານ."
+ "ຜູ້ໃຫ້ບໍລິການຂອງທ່ານອາດຮວບຮວມສະຖານທີ່ຂອງທ່ານເມື່ອທ່ານໃຊ້ບໍລິການນີ້ສຳລັບການໂທສຸກເສີນ.\n\nກະລຸນາເຂົ້າເບິ່ງນະໂຍບາຍຄວາມເປັນສ່ວນຕົວຂອງຜູ້ໃຫ້ບໍລິການຂອງທ່ານສຳລັບລາຍລະອຽດຕ່າງໆ."
"ທ່ານອາດສູນເສຍສິດເຂົ້າເຖິງເວລາ ຫຼື ອິນເຕີເນັດທີ່ຍັງເຫຼືອຢູ່. ກະລຸນາກວດສອບກັບຜູ້ໃຫ້ບໍລິການຂອງທ່ານກ່ອນການລຶບອອກ."
"ບັນທຶກເນື້ອຫາ, ເນື້ອ"
"ເນື້ອຫາແອັບ"
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 572cd11c28f..b8713c4719b 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -55,7 +55,7 @@
"Padaryti mažesnius"
"Padaryti didesnius"
"Naudoti automatinį pasukimą"
- "Veido aptikimo funkcija naudoja priekinį fotoaparatą, kad padidintų automatinio pasukimo tikslumą. Vaizdai niekada nėra saugomi ar siunčiami „Google“.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Sužinokite daugiau apie automatinį ekrano sukimą</a>"
+ "Veido aptikimo funkcija naudoja priekinį fotoaparatą, kad padidintų automatinio pasukimo tikslumą. Vaizdai niekada neišsaugomi ir nesiunčiami „Google“."
"Pavyzdinis tekstas"
"Nuostabusis Ozo šalies burtininkas"
"11 skyrius. Nuostabusis Smaragdo miestas"
@@ -362,6 +362,8 @@
+
+
@@ -5533,7 +5535,7 @@
"TĘSTI"
"AČIŪ, NE"
"Vietovė"
- "Paslaugos teikėjas gali rinkti vietovės duomenis, kad galėtų teikti šią paslaugą.\n\nPeržiūrėkite paslaugos teikėjo privatumo politiką."
+ "Operatorius gali rinkti vietovės duomenis, kai naudojatės šia paslauga norėdami atlikti skambučius pagalbos numeriu.\n\nApsilankykite operatoriaus privatumo politikos puslapyje, jei reikia išsamios informacijos."
"Galite prarasti galimybę pasiekti likusį laiką ar duomenis. Prieš pašalindami pasikonsultuokite su teikėju."
"turinio užfiksavimas, programos turinys"
"Programos turinys"
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 4f1a052a760..1d0de152648 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -54,7 +54,7 @@
"Samazināt"
"Palielināt"
"Automātiska pagriešana"
- "Sejas noteikšanas funkcija izmanto priekšējo kameru, lai uzlabotu automātiskās pagriešanas precizitāti. Attēli netiek ne saglabāti, ne nosūtīti uzņēmumam Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Uzziniet vairāk par automātisku ekrāna pagriešanu</a>."
+ "Sejas noteikšanas funkcija izmanto priekšējo kameru, lai uzlabotu automātiskās pagriešanas precizitāti. Attēli nekad netiek ne glabāti, ne sūtīti uzņēmumam Google."
"Teksta paraugs"
"Brīnumainais burvis no Oza zemes"
"11. nodaļa: Oza zemes brīnumainā Smaragda pilsēta"
@@ -359,6 +359,8 @@
+
+
@@ -5444,7 +5446,7 @@
"TURPINĀT"
"NĒ, PALDIES"
"Atrašanās vieta"
- "Pakalpojuma sniedzējs var vākt jūsu atrašanās informāciju, lai nodrošinātu šo pakalpojumu.\n\nSkatiet pakalpojuma sniedzēja konfidencialitātes politiku."
+ "Ja izmantosiet šo pakalpojumu ārkārtas izsaukumiem, mobilo sakaru operators var ievākt jūsu atrašanās vietas informāciju.\n\nLai uzzinātu vairāk, skatiet mobilo sakaru operatora konfidencialitātes politiku."
"Iespējams, zaudēsiet piekļuvi atlikušajam laikam vai datiem. Pirms noņemšanas sazinieties ar pakalpojuma sniedzēju."
"satura uzņēmums, lietotņu saturs"
"Lietotnes saturs"
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 1e08ceb8798..e794edbd336 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -53,7 +53,7 @@
"Намали"
"Зголеми"
"Користи „Автоматско ротирање“"
- "„Откривање лица“ ја користи предната камера за подобрување на прецизноста на автоматското ротирање. Сликите никогаш не се складираат ниту се испраќаат во Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Дознајте повеќе за автоматското ротирање на екранот</a>"
+ "„Откривање лица“ користи предна камера за подобрување на прецизноста на автоматското ротирање. Сликите никогаш не се складираат и не се испраќаат до Google."
"Пример за текст"
"Чудесниот волшебник од Оз"
"Поглавје 11: Чудесниот смарагден град Оз"
@@ -356,6 +356,8 @@
+
+
@@ -5357,7 +5359,7 @@
"ПРОДОЛЖИ"
"НЕ, ФАЛА"
"Локација"
- "Вашиот оператор може да собира информации за локацијата за да ви ја обезбеди услугава.\n\nПрегледајте ја политиката за приватност на операторот."
+ "Вашиот оператор може да прибира податоци за вашата локација при користењето на услугава за итни повици.\n\nПогледнете ја „Политиката за приватност“ на операторот за детали."
"Може да го изгубите пристапот до сите преостанати времиња или податоци. Проверете кај операторот пред отстранувањето."
"снимање содржини, содржини на апликација"
"Содржини на апликација"
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index fecd4abeb5a..007f07f8bed 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -53,7 +53,7 @@
"ചെറുതാക്കുക"
"വലുതാക്കുക"
"\'സ്വയമേവ തിരിയുക\' ഉപയോഗിക്കുക"
- "\'സ്വയമേ തിരിയുക\' എന്നതിന്റെ കൃത്യത മെച്ചപ്പെടുത്തുന്നതിന്, \'മുഖം തിരിച്ചറിയൽ\' മുൻ ക്യാമറയാണ് ഉപയോഗിക്കുന്നത്. ചിത്രങ്ങൾ ഒരിക്കലും സംഭരിക്കുകയോ Google-ലേക്ക് അയയ്ക്കുകയോ ചെയ്യുന്നില്ല.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>സ്ക്രീൻ സ്വയമേവ തിരിയുന്നതിനെ കുറിച്ച് കൂടുതലറിയുക</a>"
+ "\'സ്വയമേ തിരിയുക\' എന്നതിന്റെ കൃത്യത മെച്ചപ്പെടുത്തുന്നതിന്, \'മുഖം തിരിച്ചറിയൽ\' മുൻ ക്യാമറയാണ് ഉപയോഗിക്കുന്നത്. ഒരിക്കലും ചിത്രങ്ങൾ Google-ൽ സംഭരിക്കുകയോ അതിലേക്ക് അയയ്ക്കുകയോ ചെയ്യില്ല."
"സാമ്പിൾ ടെക്സ്റ്റ്"
"ഓസ് നഗരത്തിലെ അതിശയിപ്പിക്കുന്ന മന്ത്രവാദി"
"അധ്യായം 11: ഓസ് എന്ന അത്ഭുതകരമായ മരതകനഗരം"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"തുടരുക"
"വേണ്ട"
"ലൊക്കേഷൻ"
- "ഈ സേവനം നൽകാൻ സേവനദാതാവ് നിങ്ങളുടെ ലൊക്കേഷൻ ശേഖരിച്ചേക്കാം.\n\nസേവനദാതാവിന്റെ സ്വകാര്യതാ നയം അവലോകനം ചെയ്യുക."
+ "എമർജൻസി കോളുകൾക്ക് ഈ സേവനം ഉപയോഗിക്കുമ്പോൾ, സേവനദാതാവ് നിങ്ങളുടെ ലൊക്കേഷൻ ശേഖരിച്ചേക്കാം.\n\nവിശദാംശങ്ങൾക്ക്, നിങ്ങളുടെ സേവനദാതാവിന്റെ സ്വകാര്യതാ നയം സന്ദർശിക്കുക."
"ഏതെങ്കിലും ബാക്കിയുള്ള സമയത്തിലേക്കോ ഡാറ്റയിലേക്കോ ഉള്ള ആക്സസ് നഷ്ടപ്പെട്ടേക്കാം. നീക്കം ചെയ്യുന്നതിന് മുമ്പ് നിങ്ങളുടെ ദാതാവുമായി പരിശോധിക്കുക"
"ഉള്ളടക്കം ക്യാപ്ചർ ചെയ്യൽ, ആപ്പ് ഉള്ളടക്കം"
"ആപ്പ് ഉള്ളടക്കം"
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index df400a81322..68a72184aaa 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -53,7 +53,7 @@
"Жижигрүүлэх"
"Томруулах"
"Автоматаар эргүүлэх онцлогийг ашиглах"
- "Царай илрүүлэх онцлог нь Автоматаар эргүүлэх онцлогийн оновчлолыг сайжруулахын тулд урд талын камерыг ашиглана. Зургийг хэзээ ч Google-д хадгалдаггүй эсвэл илгээдэггүй.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Дэлгэцийг автоматаар эргүүлэх талаар нэмэлт мэдээлэл авах</a>"
+ "Царай илрүүлэх онцлог нь Автоматаар эргүүлэх онцлогийн нарийвчлалыг сайжруулахын тулд урд талын камерыг ашиглана. Зургийг Google-д хадгалдаггүйгээс гадна илгээдэггүй."
"Жишээ текст"
"Озын Гайхамшигт шидтэн"
"Бүлэг 11: Озын Гайхамшигт Маргад эрдэнийн хот"
@@ -356,6 +356,8 @@
+
+
@@ -2665,7 +2667,7 @@
"Хамгийн өндөр ашиглалттай аппуудыг харна уу"
"Цэнэглэхийг түр зуур хязгаарласан"
"Батарейгаа хэмнэхийн тулд. Нэмэлт мэдээлэл авна уу."
- "Та утсаа ердийн үеийнхээс илүү их хэмжээгээр ашигласан тулд таны батарей ердийнхөөс илүү хурдан дуусаж болзошгүй.\n\nИхэнх батарейг ашигладаг аппууд:"
+ "Та утсаа ердийн үеийнхээс илүү их хэмжээгээр ашигласан тулд таны батарей ердийнхөөс илүү хурдан дуусаж болзошгүй.\n\nБатарейны ихэнхийг ашиглаж буй аппууд:"
"Та таблетаа ердийн үеийнхээс илүү их хэмжээгээр ашигласан тулд таны батарей ердийнхөөс илүү хурдан дуусаж болзошгүй.\n\nИхэнх батарейг ашигладаг аппууд:"
"Та төхөөрөмжөө ердийн үеийнхээс илүү их хэмжээгээр ашигласан тулд таны батарей ердийнхөөс илүү хурдан дуусаж болзошгүй.\n\nИхэнх батарейг ашигладаг аппууд:"
"Өндөр эрчим хүч зарцуулдаг арын үйл ажиллагааг оруулдаг"
@@ -5355,7 +5357,7 @@
"ҮРГЭЛЖЛҮҮЛЭХ"
"ҮГҮЙ, БАЯРЛАЛАА"
"Байршил"
- "Таны үйлчилгээ үзүүлэгч энэ үйлчилгээг үзүүлэхийн тулд таны байршлыг цуглуулж магадгүй.\n\nҮйлчилгээ үзүүлэгчийнхээ нууцлалын бодлогыг шалгана уу."
+ "Таныг энэ үйлчилгээг яаралтай дуудлагад ашиглах үед таны оператор компани байршлын мэдээллийг тань цуглуулж магадгүй.\n\nДэлгэрэнгүй мэдээлэл авах бол оператор компанийнхаа нууцлалын бодлогод зочилно уу."
"Та үлдсэн хугацаа эсвэл датад хандах эрхгүй болж магадгүй. Устгахаас өмнө үйлчилгээ үзүүлэгчтэйгээ холбогдоно уу."
"контентын зураг авах, аппын контент"
"Аппын контент"
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index c35768ae339..03b9c9f3c5b 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -53,7 +53,7 @@
"आणखी लहान करा"
"आणखी मोठे करा"
"ऑटो-रोटेट वापरा"
- "ऑटो-रोटेट अचूकता सुधारण्यासाठी फेस डिटेक्शन हे समोरील बाजूचा कॅमेरा वापरते. इमेज कधीही Google वर स्टोअर केल्या जात नाहीत किंवा Google ला पाठवल्या जात नाहीत.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>ऑटो-रोटेट स्क्रीनबद्दल अधिक जाणून घ्या</a>"
+ "ऑटो-रोटेट अचूकता सुधारण्यासाठी फेस डिटेक्शन हे समोरील बाजूचा कॅमेरा वापरते. इमेज स्टोअर केल्या किंवा Google ला पाठवल्या जात नाहीत."
"नमुना मजकूर"
"Oz चा अद्भुत जादूगार"
"अध्याय 11: Oz चे अद्भुत पाचूंचे शहर"
@@ -356,6 +356,8 @@
+
+
@@ -4776,10 +4778,8 @@
"विनस्कोप ट्रेस"
"सेन्सर बंद आहेत"
"कार्य प्रोफाइल सेटिंग्ज"
-
-
-
-
+ "वैयक्तिक ॲप्समध्ये कामासंबंधित डिरेक्टरीतील संपर्क शोधा"
+ "तुमचे शोध आणि इनकमिंग कॉल कदाचित तुमच्या आयटी ॲडमिनला दृश्यमान असू शकतात"
"क्रॉस-प्रोफाइल कॅलेंडर"
"तुमच्या वैयक्तिक कॅलेंडरवर कार्य इव्हेंट दाखवा"
@@ -5358,7 +5358,7 @@
"सुरू ठेवा"
"नाही नको"
"स्थान"
- "ही सेवा पुरवण्यासाठी तुमचा सेवा पुरवठादार तुमचे स्थान गोळा करू शकतो.\n\n कृपया तुमच्या सेवा पुरवठादाराच्या गोपनीयता धोरणाचे पुनरावलोकन करा."
+ "तुम्ही ही सेवा आणीबाणी कॉलसाठी वापरता तेव्हा तुमचा वाहक कदाचित तुमचे स्थान संग्रहित करेल.\n\nतपशिलांसाठी तुमच्या वाहकाच्या गोपनीयता धोरणाला भेट द्या."
"तुम्ही कोणत्याही शिल्लक वेळेचा किंवा डेटाचा अॅक्सेस गमावू शकता. काढण्याआधी तुमच्या पुरवठादाराकडे चौकशी करा."
"आशय कॅप्चर, अ्ॅपचा आशय"
"ॲपचा आशय"
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 2deffe506f6..11d54feed31 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -53,7 +53,7 @@
"Kecilkan"
"Besarkan"
"Gunakan Autoputar"
- "Pengesanan Wajah menggunakan kamera menghadap hadapan untuk meningkatkan ketepatan Autoputar. Imej tidak sekali-kali disimpan atau dihantar kepada Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Ketahui lebih lanjut tentang skrin Autoputar</a>"
+ "Pengesanan Wajah menggunakan kamera menghadap hadapan untuk meningkatkan ketepatan Autoputar. Imej tidak sekali-kali disimpan atau dihantar kepada Google."
"Teks contoh"
"Ahli Sihir Oz yang Menakjubkan"
"Bab 11: Oz, Kota Zamrud yang Menakjubkan"
@@ -356,6 +356,8 @@
+
+
@@ -2344,7 +2346,7 @@
"Tekan & tahan kedua-dua kekunci kelantangan"
"Ketik tiga kali pada skrin"
"ketik tiga kali pada skrin"
- "Ketik skrin {0,nombor,integer} kali dengan pantas. Pintasan ini mungkin memperlahankan peranti anda"
+ "Ketik skrin {0,number,integer} kali dengan pantas. Pintasan ini mungkin memperlahankan peranti anda"
"Terperinci"
"Butang Kebolehaksesan ditetapkan kepada %1$s. Untuk menggunakan pembesaran, sentuh & tahan butang Kebolehaksesan, kemudian pilih pembesaran."
"Gerak isyarat kebolehaksesan ditetapkan pada %1$s. Untuk menggunakan pembesaran, leret ke atas menggunakan dua jari dari bahagian bawah skrin dan tahan. Kemudian, pilih pembesaran."
@@ -5355,7 +5357,7 @@
"TERUSKAN"
"TIDAK PERLU"
"Lokasi"
- "Penyedia perkhidmatan anda mungkin mengumpulkan maklumat lokasi anda untuk menyediakan perkhidmatan ini.\n\nSila semak dasar privasi penyedia perkhidmatan anda."
+ "Pembawa anda mungkin mengumpulkan lokasi anda semasa anda menggunakan perkhidmatan ini untuk panggilan kecemasan.\n\nUntuk mendapatkan butiran, lawati dasar privasi pembawa anda."
"Anda mungkin kehilangan akses kepada mana-mana baki masa atau data. Semak dengan penyedia anda sebelum mengalih keluar."
"tangkapan kandungan, kandungan apl"
"Kandungan apl"
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 5cca251b616..613bac68b2f 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -53,7 +53,7 @@
"ပိုသေးအောင် ပြုလုပ်ပါ"
"ပိုကြီးအောင် ပြုလုပ်ပါ"
"အလိုအလျောက်လှည့်ခြင်း သုံးရန်"
- "‘အလိုအလျောက်လှည့်ခြင်း’ ပိုမိုတိကျစေရန် \'မျက်နှာကို မှတ်မိခြင်း\' က အရှေ့ဘက်ကင်မရာကို သုံးသည်။ ပုံများကို Google သို့ ဘယ်တော့မှ မသိမ်းသလို ပို့လည်းမပို့ပါ။<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>‘ဖန်သားပြင် အလိုအလျောက်လှည့်ခြင်း’ အကြောင်း ပိုမိုလေ့လာရန်</a>"
+ "‘အလိုအလျောက်လှည့်ခြင်း’ ပိုမိုတိကျစေရန် \'မျက်နှာကို မှတ်မိခြင်း\' က အရှေ့ဘက်ကင်မရာကို သုံးသည်။ ပုံများကို ဘယ်တော့မှ မသိမ်းပါ (သို့) Google သို့ မပို့ပါ။"
"နမူနာ စာသား"
"Oz ၏အံ့ဖွယ်ဝိဇ္ဇာ"
"အခန်းကြီး ၁၁ − Oz ၏အံ့ဖွယ် မြစိမ်းရောင်မြို့တော်"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"ရှေ့ဆက်ရန်"
"မလိုပါ"
"တည်နေရာ"
- "ဤဝန်ဆောင်မှု ပေးရန် သင့်ဝန်ဆောင်မှုပေးသူက သင်၏တည်နေရာကို စုဆောင်းနိုင်ပါသည်။\n\nသင့်ဝန်ဆောင်မှုပေးသူ၏ ပုဂ္ဂိုလ်ရေးဆိုင်ရာ မူဝါဒကို ပြန်စစ်ဆေးပါ။"
+ "အရေးပေါ် ဖုန်းခေါ်ခြင်းအတွက် ဤဝန်ဆောင်မှုကို သုံးသည့်အခါ မိုဘိုင်းဖုန်းကုမ္ပဏီသည် သင့်တည်နေရာကို စုဆောင်းနိုင်သည်။\n\nအသေးစိတ်ကို မိုဘိုင်းဖုန်းကုမ္ပဏီ၏ ကိုယ်ရေးအချက်အလက်လုံခြုံမှုဆိုင်ရာ မူဝါဒတွင် ဝင်ကြည့်ပါ။"
"ကျန်ရှိသည့် အချိန် သို့မဟုတ် ဒေတာများ ဝင်သုံးခွင့် ဆုံးရှုံးနိုင်သည်။ မဖယ်ရှားမီ သင့်ဝန်ဆောင်မှုပေးသူနှင့် စစ်ဆေးပါ။"
"အကြောင်းအရာ ဖမ်းယူမှု၊ အက်ပ်အကြောင်းအရာ"
"အက်ပ်အကြောင်းအရာ"
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index e11cce9e54b..2b82f415f79 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -53,7 +53,7 @@
"Gjør mindre"
"Gjør større"
"Bruk automatisk rotasjon"
- "Ansiktsgjenkjenning bruker frontkameraet til å forbedre nøyaktigheten til automatisk rotasjon. Bilder blir aldri lagret eller sendt til Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Finn ut mer om automatisk rotasjon av skjermen</a>"
+ "Ansiktsgjenkjenning bruker frontkameraet til å forbedre nøyaktigheten til automatisk rotasjon. Bilder blir aldri lagret eller sendt til Google."
"Eksempeltekst"
"Trollmannen fra Oz"
"Kapittel 11: Den vidunderlige smaragdbyen Oz"
@@ -356,6 +356,8 @@
+
+
@@ -471,7 +473,7 @@
"Den er på baksiden av telefonen. Bruk pekefingeren."
"Fingeravtrykkssensoren er på skjermen. Du registrerer fingeravtrykket på den neste skjermen."
"Start"
- "Beveg fingeren over skjermen for å finne sensoren. Trykk og hold på fingeravtrykkssensoren."
+ "Beveg fingeren over skjermen for å finne sensoren. Trykk og hold på fingeravtrykks-sensoren."
"Illustrasjon med enheten og plasseringen av fingeravtrykksensoren"
"Navn"
"OK"
@@ -479,7 +481,7 @@
"Berør sensoren"
"Legg fingeren på sensoren, og løft den når du kjenner en vibrasjon"
"Hold fingeren på sensoren til du føler en vibrering"
- "Trykk og hold på fingeravtrykkssensoren"
+ "Trykk og hold på fingeravtrykks-sensoren"
"Løft fingeren og berør igjen"
"En gang til"
"Følg fingeravtrykkikonet"
@@ -5355,7 +5357,7 @@
"FORTSETT"
"NEI TAKK"
"Posisjon"
- "Tjenesteleverandøren din kan samle inn posisjonen din for å levere denne tjenesten.\n\nGjennomgå personvernreglene til tjenesteleverandøren din."
+ "Operatøren din kan samle inn posisjonen din når du bruker denne tjenesten for nødanrop.\n\nSe personvernreglene til operatøren for mer informasjon."
"Du kan miste tilgang til gjenværende tid eller data. Sjekk med leverandøren din før fjerning."
"innholdsregistrering, appinnhold"
"Appinnhold"
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 1aa014ebdbe..5b79a4b5704 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -53,7 +53,7 @@
"अझ सानो बनाउनुहोस्"
"अझ ठुलो बनाउनुहोस्"
"अटो-रोटेट प्रयोग गरियोस्"
- "अटो-रोटेटको सटीकता सुधार गर्न अनुहार पत्ता लगाउने सुविधाले अगाडिको क्यामेरा प्रयोग गर्छ। यस क्रममा फोटोहरू कहिल्यै पनि भण्डारण गरिँदैनन् र Google मा पनि पठाइँदैनन्।<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>स्क्रिन अटो-रोटेट गर्ने सुविधाका सम्बन्धमा थप जान्नुहोस्</a>"
+ "अनुहार पत्ता लगाउने सुविधाले स्वतः रोटेट गर्ने सुविधाको सटीकता सुधार गर्न अगाडिको क्यामेरा प्रयोग गर्छ। फोटोहरू कहिल्यै स्टोर गरिँदैनन् वा Google मा सुरक्षित गरिँदैनन्।"
"नमूना पाठ"
"दि वन्डरफुल विजार्ड अफ ओज"
"अध्याय ११: दि वन्डरफुल एमरल्ड सिटी अफ ओज"
@@ -356,6 +356,8 @@
+
+
@@ -4775,10 +4777,8 @@
"Winscope को ट्रेस"
"सेन्सरहरू निष्क्रिय पार्नु…"
"कार्यसम्बन्धी प्रोफाइलको सेटिङ"
-
-
-
-
+ "व्यक्तिगत एपहरूमा गई कामका डिरेक्टरीमा भएका सम्पर्क ठेगानाहरू खोज्नुहोस्"
+ "तपाईंका सूचना प्रविधि व्यवस्थापकले तपाईंका खोज तथा आगमन कलहरू हेर्न सक्ने सम्भावना हुन्छ"
"अन्तरप्रोफाइल पात्रो"
"व्यक्तिगत पात्रोमा कार्यस्थलसम्बन्धी कार्यक्रमहरू देखाउनुहोस्"
@@ -5357,7 +5357,7 @@
"जारी राख्नुहोस्"
"पर्दैन, धन्यवाद"
"स्थान"
- "तपाईंका सेवा प्रदायकले यो सेवा प्रदान गर्नका लागि तपाईंको स्थानसम्बन्धी जानकारी सङ्कलन गर्ने छ।\n\nकृपया आफ्ना सेवा प्रदायकको गोपनीयता नीतिको समीक्षा गर्नुहोस्।"
+ "तपाईंले यो सेवा प्रयोग गरेर आपत्कालीन अवस्थामा कल गर्दा तपाईंका सेवा प्रदायकले तपाईंको लोकेसन सङ्कलन गर्न सक्छ।\n\nविस्तृत विवरणका लागि सेवा प्रदायककको गोपनीयता नीति हेर्नुहोस्।"
"तपाईं बाँकी जुनसुकै समय वा डेटामाथिको पहुँच गुमाउन सक्नुहुन्छ। हटाउनुभन्दा पहिले आफ्ना सेवा प्रदायकमार्फत जाँच गर्नुहोस्।"
"सामग्री समावेश, एपको सामग्री"
"एपको सामग्री"
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 0ea82c8ecd6..df6ed408d27 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -53,7 +53,7 @@
"Verkleinen"
"Vergroten"
"Automatisch draaien gebruiken"
- "Gezichtsherkenning gebruikt de camera aan de voorzijde om de nauwkeurigheid van automatisch draaien te verbeteren. Afbeeldingen worden nooit opgeslagen of naar Google gestuurd.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Meer informatie over Scherm automatisch draaien</a>"
+ "Gezichtsherkenning gebruikt de camera aan de voorzijde om de nauwkeurigheid van automatisch draaien te verbeteren. Afbeeldingen worden nooit opgeslagen of naar Google gestuurd."
"Voorbeeldtekst"
"De tovenaar van Oz"
"Hoofdstuk 11: De prachtige Smaragden Stad van Oz"
@@ -356,6 +356,8 @@
+
+
@@ -480,7 +482,7 @@
"Plaats je vinger op de sensor en til deze op nadat je een trilling hebt gevoeld."
"Houd je vinger op de sensor totdat je een trilling voelt"
"Raak de vingerafdruksensor aan en houd deze vast"
- "Raak de sensor aan"
+ "Raak de sensor opnieuw aan"
"Nog een keer"
"Volg het vingerafdrukicoon"
"Raak de sensor meerdere keren aan om de verschillende delen van je vingerafdruk toe te voegen."
@@ -5355,7 +5357,7 @@
"DOORGAAN"
"NEE"
"Locatie"
- "Mogelijk verzamelt je serviceprovider je locatie om deze service te kunnen leveren.\n\nLees het privacybeleid van je serviceprovider."
+ "Je provider kan je locatie verzamelen als je deze service gebruikt voor noodoproepen.\n\nLees het Privacybeleid van je provider voor meer informatie."
"Je hebt mogelijk geen toegang meer tot resterende tijd of gegevens. Neem contact op met je provider voordat je doorgaat met verwijderen."
"contentopname, app-content"
"App-content"
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index bcda2075ad1..990395a30c0 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -53,7 +53,7 @@
"ଛୋଟ କରନ୍ତୁ"
"ବହୁତ ବଡ଼ କରନ୍ତୁ"
"ଅଟୋ-ରୋଟେଟ୍ ବ୍ୟବହାର କରନ୍ତୁ"
- "ଅଟୋ-ରୋଟେଟ୍ ସଠିକତାରେ ଉନ୍ନତି ଆଣିବା ପାଇଁ \"ଫେସ୍ ଚିହ୍ନଟକରଣ\" ସାମ୍ନା କ୍ୟାମେରାକୁ ବ୍ୟବହାର କରେ। ଛବିଗୁଡ଼ିକୁ କେବେ ବି ଷ୍ଟୋର୍ କରାଯାଏ ନାହିଁ କିମ୍ବା Googleକୁ ପଠାଯାଏ ନାହିଁ।<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>ଅଟୋ-ରୋଟେଟ୍ ସ୍କ୍ରିନ୍ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ</a>"
+ "ଅଟୋ-ରୋଟେଟ୍ ସଠିକତାରେ ଉନ୍ନତି ଆଣିବା ପାଇଁ \"ଫେସ୍ ଚିହ୍ନଟକରଣ\" ସାମ୍ନା କ୍ୟାମେରାକୁ ବ୍ୟବହାର କରେ। ଛବିଗୁଡ଼ିକୁ କେବେ ବି ଷ୍ଟୋର୍ କରାଯାଏ ନାହିଁ କିମ୍ବା Googleକୁ ପଠାଯାଏ ନାହିଁ।"
"ନମୁନା ଟେକ୍ସଟ୍"
"ଦ ୱାଣ୍ଡରଫୁଲ୍ ଉଇଜାର୍ଡ୍ ଅଫ୍ ଓଜ୍"
"ଭାଗ 11: ଓଜର ମରକତ ମଣିର ଅଦ୍ଭୁତ ସହର"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"ଜାରି ରଖନ୍ତୁ"
"ନାହିଁ, ଥାଉ"
"ଲୋକେସନ୍"
- "ଏହି ସେବା ପ୍ରଦାନ କରିବା ପାଇଁ ଆପଣଙ୍କର ସେବା ପ୍ରଦାନକାରୀ ଆପଣଙ୍କର ଲୋକେସନ୍କୁ ଏକତ୍ର କରିପାରେ।\n\nଦୟାକରି ଆପଣଙ୍କର ସେବା ପ୍ରଦାନକାରୀଙ୍କର ଗୋପନୀୟତା ନୀତି ସମୀକ୍ଷା କରନ୍ତୁ।"
+ "ଯେତେବେଳେ ଆପଣ ଜରୁରୀକାଳୀନ କଲ୍ ପାଇଁ ଏହି ସେବା ବ୍ୟବହାର କରନ୍ତି ସେତେବେଳେ ଆପଣଙ୍କ କ୍ୟାରିଅର୍ ଆପଣଙ୍କର ଲୋକେସନ୍ ଡାଟା ସଂଗ୍ରହ କରିପାରେ।\n\nବିବରଣୀ ପାଇଁ ଆପଣଙ୍କ କ୍ୟାରିଅରର ଗୋପନୀୟତା ନୀତି ଦେଖନ୍ତୁ।"
"ଆପଣ ହୁଏତଃ ବାକି ଥିବା କୌଣସି ସମୟ କିମ୍ବା ଡାଟାକୁ ଆକ୍ସେସ୍ ହରାଇପାରିନ୍ତି। ହଟେଇବା ପୂର୍ବରୁ ଆପଣଙ୍କ ପ୍ରଦାତାଙ୍କ ସହ ସମ୍ପର୍କ କରନ୍ତୁ।"
"ବିଷୟବସ୍ତୁ କ୍ୟାପ୍ଚର୍, ଆପ୍ ବିଷୟବସ୍ତୁ"
"ଆପ୍ ବିଷୟବସ୍ତୁ"
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 6176461d298..d823641b56b 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -53,7 +53,8 @@
"ਛੋਟਾ ਕਰੋ"
"ਵੱਡਾ ਕਰੋ"
"ਸਵੈ-ਘੁਮਾਓ ਦੀ ਵਰਤੋਂ ਕਰੋ"
- "ਚਿਹਰਾ ਪਛਾਣ ਵਿਸ਼ੇਸ਼ਤਾ \'ਸਵੈ-ਘੁਮਾਓ\' ਸਟੀਕਤਾ ਵਿੱਚ ਸੁਧਾਰ ਕਰਨ ਲਈ ਮੂਹਰਲੇ ਕੈਮਰੇ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ। ਚਿੱਤਰ ਕਦੇ ਵੀ ਸਟੋਰ ਨਹੀਂ ਕੀਤੇ ਜਾਂਦੇ ਅਤੇ ਨਾ ਹੀ Google ਨੂੰ ਭੇਜੇ ਜਾਂਦੇ ਹਨ।<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>\'ਸਕ੍ਰੀਨ ਸਵੈ-ਘੁਮਾਓ\' ਬਾਰੇ ਹੋਰ ਜਾਣੋ</a>"
+
+
"ਨਮੂਨਾ ਲਿਖਤ"
"ਔਜ਼ ਦਾ ਨਿਰਾਲਾ ਵਿਜ਼ਾਰਡ"
"ਪਾਠ 11: ਔਜ਼ ਦਾ ਹੀਰਿਆਂ-ਪੰਨਿਆਂ ਵਾਲਾ ਨਿਰਾਲਾ ਸ਼ਹਿਰ"
@@ -356,6 +357,8 @@
+
+
@@ -4775,10 +4778,8 @@
"Winscope ਟ੍ਰੇਸ"
"ਸੈਂਸਰ ਬੰਦ ਕਰੋ"
"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਸੈਟਿੰਗਾਂ"
-
-
-
-
+ "ਨਿੱਜੀ ਐਪਾਂ ਵਿੱਚ ਕਾਰਜ-ਸਥਾਨ ਡਾਇਰੈਕਟਰੀ ਵਿਚਲੇ ਸੰਪਰਕਾਂ ਨੂੰ ਖੋਜੋ"
+ "ਤੁਹਾਡੇ ਆਈ.ਟੀ. ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਤੁਹਾਡੀਆਂ ਖੋਜਾਂ ਅਤੇ ਇਨਕਮਿੰਗ ਕਾਲਾਂ ਦਿਖਾਈ ਦੇ ਸਕਦੀਆਂ ਹਨ"
"ਕਰਾਸ-ਪ੍ਰੋਫਾਈਲ ਕੈਲੰਡਰ"
"ਤੁਹਾਡੇ ਨਿੱਜੀ ਕੈਲੰਡਰ \'ਤੇ ਕਾਰਜ-ਸਥਾਨ ਦੇ ਇਵੈਂਟ ਦਿਖਾਓ"
@@ -5357,7 +5358,8 @@
"ਜਾਰੀ ਰੱਖੋ"
"ਨਹੀਂ ਧੰਨਵਾਦ"
"ਟਿਕਾਣਾ"
- "ਤੁਹਾਡਾ ਸੇਵਾ ਪ੍ਰਦਾਨਕ ਇਹ ਸੇਵਾ ਮੁਹੱਈਆ ਕਰਵਾਉਣ ਲਈ ਤੁਹਾਡੇ ਟਿਕਾਣੇ ਦੀ ਜਾਣਕਾਰੀ ਇਕੱਤਰ ਕਰ ਸਕਦਾ ਹੈ।\n\nਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਸੇਵਾ ਪ੍ਰਾਦਨਕ ਦੀ ਪਰਦੇਦਾਰੀ ਨੀਤੀ ਦੀ ਸਮੀਖਿਆ ਕਰੋ।"
+
+
"ਤੁਸੀਂ ਬਾਕੀ ਬਚੇ ਸਮੇਂ ਜਾਂ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਗੁਆ ਸਕਦੇ ਹੋ। ਹਟਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਆਪਣੇ ਪ੍ਰਦਾਨਕ ਨਾਲ ਜਾਂਚੋ।"
"ਸਮੱਗਰੀ ਕੈਪਚਰ, ਐਪ ਸਮੱਗਰੀ"
"ਐਪ ਸਮੱਗਰੀ"
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 7c334769740..b65dcae1a2c 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -55,7 +55,7 @@
"Pomniejsz"
"Powiększ"
"Używaj autoobracania"
- "Wykrywanie twarzy używa przedniego aparatu, aby zapewnić większą dokładność autoobracania. Obrazy nigdy nie są przechowywane ani wysyłane do Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Więcej informacji o funkcji autoobracania ekranu</a>"
+ "Wykrywanie twarzy używa przedniego aparatu, aby zapewnić większą dokładność autoobracania. Obrazy nigdy nie są zapisywane ani wysyłane do Google."
"Przykładowy tekst"
"Czarnoksiężnik z Krainy Oz"
"Rozdział 11: Szmaragdowe Miasto"
@@ -362,6 +362,8 @@
+
+
@@ -946,10 +948,10 @@
"%1$d Mb/s"
"%s chce włączyć Wi-Fi"
"%s chce wyłączyć Wi-Fi"
- "Sprawdź kod bajtowy aplikacji do debugowania"
+ "Sprawdzaj kod bajtowy aplikacji do debugowania"
"Zezwalaj ART na sprawdzanie kodu bajtowego aplikacji do debugowania"
- "Pokaż częstotliwość odświeżania"
- "Pokaż bieżącą częstotliwość odświeżania"
+ "Pokazuj częstotliwość odświeżania"
+ "Pokazuj bieżącą częstotliwość odświeżania"
"Komunikacja NFC"
"Zezwalaj na wymianę danych, gdy tablet dotyka innego urządzenia z NFC"
"Zezwalaj na wymianę danych, gdy telefon dotyka innego urządzenia z NFC"
@@ -2482,7 +2484,7 @@
"Dostosowywanie dźwięku"
"Włączono skrót"
- "Wyłączone"
+ "Wyłączono"
"Wł."
"Wyłączone"
"Nie działa. Kliknij, by uzyskać informacje."
@@ -4082,7 +4084,7 @@
"Zezwalaj na dostęp do trybu Nie przeszkadzać"
"Żadne zainstalowane aplikacje nie prosiły o dostęp do funkcji „Nie przeszkadzać”."
"Ładuję aplikacje…"
- "Android na żądanie blokuje powiadomienia z tej aplikacji na urządzeniu"
+ "Na Twoje życzenie Android blokuje powiadomienia z tej aplikacji na urządzeniu"
"Android na żądanie blokuje tę kategorię powiadomień na urządzeniu"
"Android na żądanie blokuje tę grupę powiadomień na urządzeniu"
"Kategorie"
@@ -4292,7 +4294,7 @@
"Prześlij opinię o tym urządzeniu"
"Wpisz kod PIN administratora"
"Wł."
- "Wył."
+ "Wyłączony"
"Wł."
"Wył."
"Włączono"
@@ -5495,7 +5497,7 @@
"Wymuś eksperymentalny tryb pulpitu na dodatkowych ekranach"
"Włącz brak możliwości zmiany rozmiaru w trybie wielu okien"
"Zezwala na wyświetlanie aplikacji bez możliwości zmiany rozmiaru w trybie wielu okien"
- "Zastąp wymuszanie trybu ciemnego"
+ "Zastępuj wymuszanie trybu ciemnego"
"Zastępuje ustawienie zawsze włączonej funkcji wymuszania trybu ciemnego"
"Prywatność"
"Uprawnienia, aktywność na koncie, dane osobiste"
@@ -5533,7 +5535,7 @@
"DALEJ"
"NIE"
"Lokalizacja"
- "Twój dostawca usług może rejestrować Twoją lokalizację, by udostępniać Ci usługę.\n\nZapoznaj się z polityką prywatności dostawcy usług."
+ "Operator może pobierać dane o Twojej lokalizacji, gdy używasz tej usługi do połączeń alarmowych. \n\nWięcej informacji znajdziesz w polityce prywatności operatora"
"Możesz stracić możliwość wykorzystania pozostałego czasu lub danych. Zanim usuniesz, uzyskaj informacje od operatora."
"przechwytywanie zawartości, zawartość aplikacji"
"Zawartość aplikacji"
@@ -5593,8 +5595,8 @@
"Gdy używasz 2 kart SIM, tablet jest ograniczony do transmisji 4G. ""Więcej informacji"
"Gdy używasz 2 kart SIM, urządzenie jest ograniczone do transmisji 4G. ""Więcej informacji"
"Zawieś wykonywanie dla aplikacji z pamięci podręcznej"
- "Zezwól na nakładki ekranowe w ustawieniach"
- "Zezwól aplikacjom, które mogą wyświetlać się nad innymi, aby nakładały ekrany ustawień"
+ "Zezwalaj na nakładki ekranowe w ustawieniach"
+ "Zezwalaj aplikacjom, które mogą wyświetlać się nad innymi, aby nakładały ekrany ustawień"
"Multimedia"
"Przypnij odtwarzacz"
"Aby można było szybko wznowić odtwarzanie, odtwarzacz pozostaje otwarty w Szybkich ustawieniach"
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index e21b22a2799..d1fc0341d1e 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -53,7 +53,7 @@
"Tornar menor"
"Tornar maior"
"Usar o giro automático"
- "A detecção facial usa a câmera frontal para melhorar a precisão do giro automático. As imagens nunca são armazenadas ou enviadas ao Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Saiba mais sobre o giro automático da tela</a>"
+ "A detecção facial usa a câmera frontal para melhorar a precisão do giro automático. As imagens nunca são armazenadas ou enviadas ao Google."
"Texto de amostra"
"O Mágico de Oz"
"Capítulo 11: A maravilhosa Cidade das Esmeraldas de Oz"
@@ -356,6 +356,8 @@
+
+
@@ -2667,7 +2669,7 @@
"Ver apps com maior uso"
"Carregamento temporariamente limitado"
"Isso economiza a bateria. Saiba mais."
- "Como o smartphone foi usado além do normal, é possível que a bateria acabe antes do esperado.\n\nVeja os apps que mais consomem bateria:"
+ "Como o smartphone foi usado mais que o normal, é possível que a bateria acabe antes do esperado.\n\nVeja os apps que mais consomem bateria:"
"Como o tablet foi usado além do normal, é possível que a bateria acabe antes do esperado.\n\nVeja os apps que mais consomem bateria:"
"Como o dispositivo foi usado além do normal, é possível que a bateria acabe antes do esperado.\n\nVeja os apps que mais consomem bateria:"
"Inclui atividade em segundo plano com alto consumo de energia"
@@ -5354,7 +5356,7 @@
"CONTINUAR"
"NÃO"
"Localização"
- "O provedor de serviços pode coletar seu local para prestar esse serviço.\n\nLeia a política de privacidade do seu provedor de serviços."
+ "A operadora poderá coletar sua localização quando você usar o serviço para fazer chamadas de emergência.\n\nAcesse a Política de Privacidade da operadora para ver mais detalhes."
"Você pode perder o acesso a qualquer tempo ou dado restante. Verifique essa informação com o provedor antes de remover."
"captura de conteúdo, conteúdo do app"
"Conteúdo do app"
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 7916d68fcf5..f84fbe0f36b 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -53,7 +53,7 @@
"Diminuir"
"Aumentar"
"Utilizar a rotação automática"
- "A deteção facial utiliza a câmara frontal para melhorar a precisão da rotação automática. As imagens nunca são armazenadas nem enviadas para a Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Saiba mais acerca da opção Rodar ecrã automaticamente</a>"
+ "A deteção facial utiliza a câmara frontal para melhorar a precisão da rotação automática. As imagens nunca são armazenadas nem enviadas à Google."
"Exemplo de texto"
"O Maravilhoso Feiticeiro de Oz"
"Capítulo 11: A Maravilhosa Cidade Esmeralda de Oz"
@@ -356,6 +356,8 @@
+
+
@@ -3010,7 +3012,7 @@
"Definições de administração do dispositivo"
"App administração do dispositivo"
"Desativar esta app de administração do dispositivo"
- "Desinstalar aplicação"
+ "Desinstalar app"
"Desativar e desinstalar"
"Apps de administração do dispositivo"
"Nenhuma aplicação de administração do dispositivo disponível"
@@ -5355,7 +5357,7 @@
"CONTINUAR"
"NÃO, OBRIGADO"
"Localização"
- "O fornecedor de serviços pode recolher a sua localização para fornecer este serviço.\n\nReveja a política de privacidade do fornecedor de serviços."
+ "O operador pode recolher a sua localização quando utiliza este serviço para chamadas de emergência.\n\nVisite a política de privacidade do seu operador para obter os detalhes."
"Pode perder o acesso a qualquer tempo ou dados restantes. Consulte o seu fornecedor antes de remover."
"captura do conteúdo, conteúdo da aplicação"
"Conteúdo da aplicação"
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index e21b22a2799..d1fc0341d1e 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -53,7 +53,7 @@
"Tornar menor"
"Tornar maior"
"Usar o giro automático"
- "A detecção facial usa a câmera frontal para melhorar a precisão do giro automático. As imagens nunca são armazenadas ou enviadas ao Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Saiba mais sobre o giro automático da tela</a>"
+ "A detecção facial usa a câmera frontal para melhorar a precisão do giro automático. As imagens nunca são armazenadas ou enviadas ao Google."
"Texto de amostra"
"O Mágico de Oz"
"Capítulo 11: A maravilhosa Cidade das Esmeraldas de Oz"
@@ -356,6 +356,8 @@
+
+
@@ -2667,7 +2669,7 @@
"Ver apps com maior uso"
"Carregamento temporariamente limitado"
"Isso economiza a bateria. Saiba mais."
- "Como o smartphone foi usado além do normal, é possível que a bateria acabe antes do esperado.\n\nVeja os apps que mais consomem bateria:"
+ "Como o smartphone foi usado mais que o normal, é possível que a bateria acabe antes do esperado.\n\nVeja os apps que mais consomem bateria:"
"Como o tablet foi usado além do normal, é possível que a bateria acabe antes do esperado.\n\nVeja os apps que mais consomem bateria:"
"Como o dispositivo foi usado além do normal, é possível que a bateria acabe antes do esperado.\n\nVeja os apps que mais consomem bateria:"
"Inclui atividade em segundo plano com alto consumo de energia"
@@ -5354,7 +5356,7 @@
"CONTINUAR"
"NÃO"
"Localização"
- "O provedor de serviços pode coletar seu local para prestar esse serviço.\n\nLeia a política de privacidade do seu provedor de serviços."
+ "A operadora poderá coletar sua localização quando você usar o serviço para fazer chamadas de emergência.\n\nAcesse a Política de Privacidade da operadora para ver mais detalhes."
"Você pode perder o acesso a qualquer tempo ou dado restante. Verifique essa informação com o provedor antes de remover."
"captura de conteúdo, conteúdo do app"
"Conteúdo do app"
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 48f304c4e55..257bf66fffe 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -54,7 +54,7 @@
"Micșorați"
"Măriți"
"Folosiți Rotirea automată"
- "Detectarea facială folosește camera foto frontală pentru a îmbunătăți precizia Rotirii automate. Imaginile nu sunt niciodată stocate sau trimise la Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Aflați mai multe despre Rotirea automată a ecranului</a>"
+ "Detectarea facială folosește camera foto frontală pentru a îmbunătăți precizia Rotirii automate. Imaginile nu sunt niciodată stocate sau trimise la Google."
"Exemplu de text"
"Minunatul Vrăjitor din Oz"
"Capitolul 11: Minunatul Oraș de Smarald Oz"
@@ -359,6 +359,8 @@
+
+
@@ -5446,7 +5448,7 @@
"CONTINUAȚI"
"NU, MULȚUMESC"
"Locație"
- "Furnizorul de servicii poate colecta informațiile cu privire la locație pentru a oferi acest serviciu.\n\nConsultați politica de confidențialitate a furnizorului de servicii."
+ "Operatorul dvs. vă poate colecta locația atunci când folosiți acest serviciu pentru apeluri de urgență\n\nConsultați politica de confidențialitate a operatorului pentru detalii."
"Puteți pierde accesul la timpul sau datele rămase. Consultați operatorul înainte de eliminare."
"captură de conținut, conținutul aplicației"
"Conținutul aplicației"
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index cbb3c849247..77daaede304 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -55,7 +55,7 @@
"Уменьшить"
"Увеличить"
"Автоповорот"
- "Распознавание лиц повышает точность автоповорота, используя фронтальную камеру. Изображения не сохраняются и не отправляются в Google.<br><br>Подробнее <a href=http://support.google.com/mobile?p=telephony_rtt>об автоповороте экрана</a>…"
+ "Функция \"Распознавание лиц\" улучшает точность автоповорота с помощью фронтальной камеры. Изображения никогда не сохраняются и не отправляются в Google."
"Пример текста"
"Удивительный волшебник из страны Оз"
"Глава 11. Изумрудный Город страны Оз"
@@ -362,6 +362,8 @@
+
+
@@ -2796,7 +2798,7 @@
- %1$d приложения с ограниченным доступом
"^1"" ""%"""
- "Не удается получить данные об уровне заряда батареи."
+ "Не удалось узнать уровень заряда батареи."
"Подробнее об этой ошибке…"
"Остановить приложение?"
@@ -5533,7 +5535,7 @@
"ДАЛЕЕ"
"НЕТ"
"Местоположение"
- "Для оказания этой услуги оператор мобильной связи может собирать сведения о вашем местоположении.\n\nОзнакомьтесь с политикой конфиденциальности оператора."
+ "Когда вы пользуетесь этим сервисом для экстренных вызовов, ваш оператор связи может собирать данные о местоположении устройства.\n\nЧтобы узнать больше, прочитайте Политику конфиденциальности вашего оператора."
"Вы можете потерять доступ к оставшимся минутам или трафику. Прежде чем выполнять удаление, обратитесь к оператору связи."
"content capture, контент приложения"
"Контент приложений"
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index d0b21f19f1a..a1f50558a8c 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -53,7 +53,7 @@
"වඩා කුඩා කරන්න"
"වඩා විශාල කරන්න"
"ස්වයංක්රිය කරකැවීම භාවිත කරන්න"
- "ස්වයංක්රිය කරකැවීම් නිරවද්යතාව වැඩි දියුණු කිරීම සඳහා මුහුණු හඳුනා ගැනීම ඉදිරිපස කැමරාව භාවිත කරයි. රූප කිසි විටක ගබඩා කිරීම හෝ Google වෙත යැවීම සිදු නොකෙරේ.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>තිරය ස්වයංක්රිය කරකැවීම ගැන තව දැන ගන්න</a>"
+ "ස්වයංක්රිය කරකැවීම් නිරවද්යතාව වැඩි දියුණු කිරීම සඳහා මුහුණු හඳුනා ගැනීම ඉදිරිපස කැමරාව භාවිත කරයි. රූප ගබඩා කිරීම හෝ Google වෙත යැවීම කිසි විටක සිදු නොකෙරේ."
"ආදර්ශ පෙළ"
"The Wonderful Wizard of Oz"
"11වන පරිච්ඡේදය: The Wonderful Emerald City of Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"ඉදිරියට"
"එපා, ස්තුතියි"
"ස්ථානය"
- "මෙම සේවය ලබා දීමට ඔබේ සේවා සපයන්නා ඔබේ ස්ථානය රැස් කළ හැක.\n\nඔබේ සේවා සපයන්නාගේ පෞද්ගලිකත්ව ප්රතිපත්තිය සමාලෝචන කරන්න."
+ "හදිසි අවස්ථා ඇමතුම් සඳහා ඔබ මෙම සේවාව භාවිත කරන විට ඔබගේ වාහකය ඔබගේ ස්ථානය රැස් කළ හැකිය.\n\nවිස්තර සඳහා ඔබගේ වාහකයේ පෞද්ගලිකත්ව ප්රතිපත්තිය වෙත පිවිසෙන්න."
"ඔබට කිසියම් ඉතිරි කාලය හෝ දත්ත වෙත ප්රවේශය අහිමි විය හැක. ඉවත් කිරීමට පෙර ඔබේ සැපයුම්කරු සමඟ පරීක්ෂා කර ගන්න."
"අන්තර්ගත ග්රහණය, යෙදුම් අන්තර්ගතය"
"යෙදුම් අන්තර්ගතය"
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index d92997579f4..ad936747260 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -55,7 +55,7 @@
"Zmenšiť"
"Zväčšiť"
"Používať automatické otáčanie"
- "Rozpoznávanie tváre zlepšuje presnosť automatického otáčania pomocou predného fotoaparátu. Snímky sa nikdy neukladajú ani neodosielajú Googlu.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Ďalšie informácie o automatickom otáčaní obrazovky</a>"
+ "Rozpoznávanie tváre zlepšuje presnosť automatického otáčania pomocou predného fotoaparátu. Obrázky sa nikdy neukladajú ani neodosielajú Googlu."
"Ukážkový text"
"Čarodejník z krajiny Oz"
"11. kapitola: Nádherné smaragdové mesto"
@@ -362,6 +362,8 @@
+
+
@@ -5535,7 +5537,7 @@
"POKRAČOVAŤ"
"NIE, ĎAKUJEM"
"Poloha"
- "Na účely poskytovania tejto služby môže váš poskytovateľ zhromažďovať údaje o vašej polohe.\n\nPrečítajte si pravidlá ochrany súkromia vášho poskytovateľa služieb."
+ "Pri používaní tejto služby na tiesňové volania môže operátor zhromažďovať údaje o vašej polohe.\n\nPodrobnosti nájdete v pravidlách ochrany súkromia svojho operátora."
"Môžete prísť o prístup k zostávajúcemu času či dátam. Pred odstránením sa poraďte so svojím operátorom."
"snímanie obsahu, obsah aplikácie"
"Obsah aplikácie"
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index a39ad02e369..feb61da78e6 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -55,7 +55,7 @@
"Pomanjšanje"
"Povečanje"
"Uporabi samodejni zasuk"
- "Zaznavanje obraza uporablja sprednji fotoaparat za izboljšanje natančnosti samodejnega zasuka. Slike se nikoli ne shranjujejo in ne pošiljajo Googlu.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Preberite več o samodejnem zasuku zaslona.</a>"
+ "Zaznavanje obraza uporablja sprednji fotoaparat za izboljšanje natančnosti samodejnega zasuka. Slike se nikoli ne shranijo in ne pošljejo Googlu."
"Vzorčno besedilo"
"Čudoviti čarovnik iz Oza"
"11. poglavje: Čudovito Smaragdno mesto"
@@ -362,6 +362,8 @@
+
+
@@ -2798,7 +2800,7 @@
- %1$d aplikacij je omejenih
"^1"" ""%"""
- "Težava z branjem indikatorja stanja napolnjenosti baterije."
+ "Težava z branjem merilnika stanja napolnjenosti baterije."
"Dotaknite se, če želite izvedeti več o tej napaki."
"Želite ustaviti aplikacijo?"
@@ -5535,7 +5537,7 @@
"NADALJUJ"
"NE, HVALA"
"Lokacija"
- "Ponudnik storitev lahko za zagotavljanje te storitve zbira podatke o vaši lokaciji.\n\nPreglejte pravilnik o zasebnosti za tega ponudnika storitev."
+ "Ko uporabite to storitev za klice v sili, vaš operater morda zbira podatke o lokaciji.\n\nPodrobnosti preverite v operaterjevem pravilniku o zasebnosti."
"Morda boste izgubili dostop do preostalega časa ali podatkov. Pred odstranjevanjem preverite pri operaterju."
"zajem vsebine, vsebina aplikacije"
"Vsebina aplikacije"
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index d45628ee331..caff9790775 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -53,7 +53,7 @@
"Zvogëlo"
"Zmadho"
"Përdor \"Rrotullimin automatik\""
- "\"Zbulimi i fytyrës\" përdor kamerën e përparme për të përmirësuar saktësinë e rrotullimit automatik. Imazhet nuk ruhen apo dërgohen asnjëherë te Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Mëso më shumë për \"Rrotullimit automatik të ekranit\"</a>"
+ "\"Zbulimi i fytyrës\" përdor kamerën e përparme për të përmirësuar saktësinë e \"Rrotullo automatikisht\". Imazhet nuk ruhen as nuk dërgohen asnjëherë te Google."
"Teksti shembull"
"Magjistari i mrekullueshëm i Ozit"
"Kapitulli 11: Qyteti i mrekullueshëm i smeraldtë i Ozit"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,8 @@
"VAZHDO"
"JO, FALEMINDERIT"
"Vendndodhja"
- "Ofruesi yt i shërbimit mund të marrë vendndodhjen tënde për të ofruar këtë shërbim.\n\nRishiko politikën e privatësisë së ofruesit të shërbimit."
+
+
"Mund të humbasësh qasjen për çdo kohë ose të dhënë të mbetur. Kontakto me ofruesin tënd para se ta heqësh."
"regjistrimi i përmbajtjes, përmbajtja e aplikacionit"
"Përmbajtja e aplikacionit"
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index cc1464bbd5a..37bb8b05227 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -54,7 +54,7 @@
"Умањи"
"Увећај"
"Користи аутоматско ротирање"
- "Препознавање лица користи предњу камеру за побољшање прецизности аутоматског ротирања. Слике се никад не чувају нити шаљу Google-у.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Сазнајте више о аутоматском ротирању екрана</a>"
+ "Препознавање лица користи предњу камеру за побољшање прецизности аутоматског ротирања. Слике се никада не чувају нити шаљу Google-у."
"Пример текста"
"Чаробњак из Оза"
"Поглавље 11: Чудесни Смарагдни град Оза"
@@ -359,6 +359,8 @@
+
+
@@ -5444,7 +5446,7 @@
"НАСТАВИ"
"НЕ, ХВАЛА"
"Локација"
- "Добављач услуге може да прикупља информације о локацији да би пружао ову услугу.\n\nПрегледајте политику приватности добављача услуге."
+ "Мобилни оператер може да прикупља податке о локацији када користите ову услугу за хитне позиве.\n\nПотражите детаље у политици приватности мобилног оператера."
"Можете да изгубите приступ преосталом времену или подацима. Проверите са добављачем услуге пре уклањања."
"снимање садржаја, садржај апликације"
"Садржај апликације"
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index d573f4698cd..b40a1840caf 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -53,7 +53,7 @@
"Förminska"
"Förstora"
"Använd automatisk rotation"
- "Ansiktsigenkänning använder den framåtvända kameran för att förbättra inställningen för att rotera automatiskt. Bilder lagras aldrig och skickas inte till Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Läs mer om att rotera skärmen automatiskt</a>"
+ "Ansiktsigenkänning använder den framåtvända kameran för att förbättra inställningen för att rotera automatiskt. Inga bilder sparas eller skickas till Google."
"Exempeltext"
"Den fantastiska trollkarlen från Oz"
"Kapitel 11: Den underbara Smaragdstaden i Oz"
@@ -356,6 +356,8 @@
+
+
@@ -2665,7 +2667,7 @@
"Se appar med högst batteriförbrukning"
"Laddning har begränsats tillfälligt"
"För att spara batteri. Läs mer."
- "Eftersom du har använt telefonen mer än vanligt kan batteriet kan ta slut snabbare än normalt.\n\nAppar med högst batteriförbrukning:"
+ "Eftersom du har använt telefonen mer än vanligt kan batteriet ta slut snabbare än normalt.\n\nAppar med högst batteriförbrukning:"
"Eftersom du har använt surfplattan mer än vanligt kan batteriet kan ta slut snabbare än normalt.\n\nAppar med högst batteriförbrukning:"
"Eftersom du har använt enheten mer än vanligt kan batteriet kan ta slut snabbare än normalt.\n\nAppar med högst batteriförbrukning:"
"Inkluderar batterikrävande aktivitet i bakgrunden"
@@ -5355,7 +5357,7 @@
"FORTSÄTT"
"NEJ TACK"
"Plats"
- "Tjänsteleverantören kan registrera din plats i syfte att tillhandahålla tjänsten .\n\nGranska tjänsteleverantörens sekretesspolicy."
+ "Operatören kan registrera din plats när du använder tjänsten för nödsamtal.\n\nLäs mer i operatörens integritetspolicy."
"Du kan förlora kvarstående tid eller data. Hör med operatören innan du raderar."
"innehållsidentifiering, appinnehåll"
"Appinnehåll"
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 74b7e41c6c6..4242eee8115 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -53,7 +53,7 @@
"Punguza"
"Kuza"
"Ruhusu skrini ijizungushe kiotomatiki"
- "Utambuzi wa Nyuso hutumia kamera ya mbele ili kuboresha usahihi wa Kuzungusha skrini kiotomatiki. Picha hazihifadhiwi wala kutumwa kwa Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Pata maelezo zaidi kuhusu Kuzungusha skrini kiotomatiki</a>"
+ "Utambuzi wa Nyuso hutumia kamera ya mbele ili kuboresha usahihi wa Kuzungusha skrini kiotomatiki. Picha hazihifadhiwi wala kutumwa kwa Google."
"Sampuli ya maandishi"
"Wachawi wa Ajabu kutoka Oz"
"Sura ya 11: Mji wa Ajabu wa Johari wa Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5356,7 +5358,7 @@
"ENDELEA"
"HAPANA"
"Eneo"
- "Mtoa huduma wako huenda atachukua eneo lako ili atoe huduma hii.\n\n Tafadhali kagua sera ya faragha ya mtoa huduma wako."
+ "Mtoa huduma wako anaweza kukusanya maelezo ya mahali ulipo unapotumia huduma hii kwa ajili ya simu za dharura.\n\nTembelea sera ya faragha ya mtoa huduma wako ili upate maelezo zaidi."
"Huenda ukapoteza idhini ya kutumia muda au data inayosalia. Wasiliana na mtoa huduma wako kabla hujaondoa."
"picha ya maudhui, maudhui ya programu"
"Maudhui ya programu"
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index af34c2baa7a..1016b39e9e7 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -53,7 +53,7 @@
"சிறிதாக்கு"
"பெரிதாக்கு"
"\'தானாகச் சுழற்றுதலைப்\' பயன்படுத்து"
- "தானாகச் சுழற்றுதலின் துல்லியத்தை மேம்படுத்த, முகம் கண்டறிதல் அம்சம் முன்பக்கக் கேமராவைப் பயன்படுத்துகிறது. இது ஒருபோதும் படங்களைச் சேமிக்காது அல்லது அவற்றை Googleளுக்கு அனுப்பாது.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>தானாகச் சுழற்றுதல் பற்றி மேலும் அறிக</a>"
+ "தானாகச் சுழற்றுதலின் துல்லியத்தை மேம்படுத்த, முகம் கண்டறிதல் அம்சம் முன்பக்கக் கேமராவைப் பயன்படுத்துகிறது. படங்கள் ஒருபோதும் சேமிக்கப்படாது, Googleளுக்கும் அனுப்பப்படாது."
"மாதிரி உரை"
"தி விசார்ட் ஆஃப் ஓஸ்"
"அத்தியாயம் 11: ஓஸின் அற்புதமான மரகத நகரம்"
@@ -356,6 +356,8 @@
+
+
@@ -4775,7 +4777,7 @@
"வின்ஸ்கோப் டிரேஸ்"
"சென்சார்களை ஆஃப் செய்தல்"
"பணிச் சுயவிவர அமைப்புகள்"
- "தனிப்பட்ட ஆப்ஸிலுள்ள பணி டைரக்டரித் தொடர்புகளைத் தேடுங்கள்"
+ "தனிப்பட்ட ஆப்ஸிலுள்ள பணித் தகவலகத் தொடர்புகளைத் தேடுங்கள்"
"உங்கள் தேடல்களையும் உள்வரும் அழைப்புகளையும் உங்கள் IT நிர்வாகி பார்க்கக்கூடும்"
"பல சுயவிவரங்களையும் ஒருங்கிணைக்கும் கேலெண்டர்"
"உங்களின் தனிப்பட்ட கேலெண்டரில் பணி நிகழ்வுகளைக் காட்டும்"
@@ -5355,7 +5357,7 @@
"தொடர்க"
"வேண்டாம்"
"இருப்பிடம்"
- "சேவை வழங்குநர் இந்தச் சேவையை வழங்க இருப்பிடத் தகவலைச் சேகரிக்கக்கூடும்.\n\nசேவை வழங்குநரின் தனியுரிமைக் கொள்கையைப் பார்க்கவும்."
+ "அவசர அழைப்புகளுக்கு இந்தச் சேவையை நீங்கள் உபயோகிக்கும்போது மொபைல் நிறுவனம் உங்கள் இருப்பிடத்தைச் சேகரிக்கக்கூடும்.\n\nவிவரங்களுக்கு உங்கள் மொபைல் நிறுவனத்தின் தனியுரிமைக் கொள்கையைப் பார்க்கவும்."
"மீதமிருக்கும் நேரம் அல்லது தரவிற்கான அணுகலை நீங்கள் இழக்கக்கூடும். இதை அகற்றுவதற்கு முன்பாக வழங்குநரைத் தொடர்புகொள்ளவும்."
"உள்ளடக்கத்தைச் சேமித்தல், ஆப்ஸ் உள்ளடக்கம்"
"ஆப்ஸ் உள்ளடக்கம்"
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 499e3616829..b778f94eedc 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -53,7 +53,8 @@
"చిన్నదిగా చేస్తుంది"
"పెద్దదిగా చేస్తుంది"
"ఆటో-రొటేట్ను ఉపయోగించండి"
- "\'ముఖ గుర్తింపు\' ఆటో-రొటేట్ ఖచ్చితత్వాన్ని మెరుగుపరచడానికి ముందు వైపున్న కెమెరాను ఉపయోగిస్తుంది. ఇమేజ్లు ఎప్పుడూ స్టోర్ చేయబడవు లేదా Googleకు పంపబడవు.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>ఆటో-రొటేట్ స్క్రీన్ గురించి మరింత తెలుసుకోండి</a>"
+
+
"శాంపిల్ టెక్స్ట్"
"ది వండర్ఫుల్ విజర్డ్ ఆఫ్ ఆజ్"
"అధ్యాయం 11: ది వండర్ఫుల్ ఎమరాల్డ్ సిటీ ఆఫ్ ఆజ్"
@@ -356,6 +357,8 @@
+
+
@@ -5356,7 +5359,7 @@
"కొనసాగించు"
"వద్దు, ధన్యవాదాలు"
"లొకేషన్"
- "ఈ సేవను అందించడానికి మీ సేవా ప్రదాత మీ స్థాన సమాచారం సేకరించవచ్చు.\n\nదయచేసి మీ సేవా ప్రదాత గోప్యతా విధానాన్ని రివ్యూ చేయండి."
+ "మీరు ఈ సర్వీస్ను ఎమర్జెన్సీ కాల్స్ కోసం ఉపయోగించినప్పుడు మీ క్యారియర్ మీ లొకేషన్ను సేకరించే అవకాశం ఉంది.\n\nవివరాల కోసం మీ క్యారియర్ గోప్యతా పాలసీని సందర్శించండి."
"మీరు ఏదైనా మిగిలిన సమయం లేదా డేటాకు యాక్సెస్ను కోల్పోవచ్చు. తీసివేసే ముందు మీ ప్రదాతతో తనిఖీ చేయండి."
"కంటెంట్ క్యాప్చర్, యాప్ కంటెంట్"
"యాప్ కంటెంట్"
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 013df9a220f..fac595b09fe 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -53,7 +53,7 @@
"ทำให้เล็กลง"
"ทำให้ใหญ่ขึ้น"
"ใช้การหมุนอัตโนมัติ"
- "การตรวจจับใบหน้าใช้กล้องหน้าเพื่อเพิ่มความแม่นยำในการหมุนอัตโนมัติ โดยจะไม่มีการจัดเก็บหรือส่งรูปภาพไปยัง Google แต่อย่างใด<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>ดูข้อมูลเพิ่มเติมเกี่ยวกับการหมุนหน้าจออัตโนมัติ</a>"
+ "การตรวจจับใบหน้าใช้กล้องหน้าเพื่อเพิ่มความแม่นยำในการหมุนอัตโนมัติ รูปภาพจะไม่จัดเก็บหรือส่งไปยัง Google"
"ข้อความตัวอย่าง"
"พ่อมดมหัศจรรย์แห่งออซ"
"บทที่ 11: เมืองมรกตมหัศจรรย์แห่งออซ"
@@ -356,6 +356,8 @@
+
+
@@ -1433,7 +1435,7 @@
"ทำข้อความเป็นตัวหนา"
"ขนาดอักษร"
"ทำให้ข้อความมีขนาดใหญ่ขึ้นหรือเล็กลง"
- "การตั้งค่าการล็อกซิมการ์ด"
+ "การตั้งค่าการล็อกซิมการ์ด"
"การล็อกซิมการ์ด"
"ปิด"
"ล็อกแล้ว"
@@ -5355,7 +5357,7 @@
"ต่อไป"
"ไม่เป็นไร"
"ตำแหน่ง"
- "ผู้ให้บริการอาจเก็บรวบรวมตำแหน่งของคุณเพื่อให้บริการนี้\n\nโปรดอ่านนโยบายความเป็นส่วนตัวของผู้ให้บริการ"
+ "ผู้ให้บริการอาจรวบรวมข้อมูลตำแหน่งเมื่อใช้บริการนี้สำหรับหมายเลขฉุกเฉิน\n\nไปที่นโยบายความเป็นส่วนตัวของผู้ให้บริการเพื่อดูรายละเอียด"
"คุณอาจใช้เวลาหรืออินเทอร์เน็ตที่เหลือต่อไม่ได้ โปรดสอบถามผู้ให้บริการก่อนนำออก"
"การบันทึกเนื้อหา เนื้อหาแอป"
"เนื้อหาแอป"
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 3175064a44c..05767c935a8 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -53,7 +53,7 @@
"Paliitin"
"Palakihin"
"Gumamit ng Auto-rotate"
- "Ginagamit ng Pag-detect ng Mukha ang camera sa harap para pahusayin ang katumpakan ng pag-auto rotate. Hindi kailanman sino-store o ipinapadala sa Google ang mga larawan.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Matuto pa tungkol sa I-auto rotate ang screen</a>"
+ "Ginagamit ng Pag-detect ng Mukha ang camera sa harap para pahusayin ang katumpakan ng pag-auto rotate. Hindi kailanman sino-store o ipinapadala sa Google ang mga larawan."
"Sample na text"
"The Wonderful Wizard of Oz"
"Kabanata 11: The Wonderful Emerald City of Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"MAGPATULOY"
"HUWAG NA LANG"
"Lokasyon"
- "Puwedeng kunin ng iyong service provider ang lokasyon mo para maibigay ang serbisyong ito.\n\nPakisuri ang patakaran sa privacy ng iyong service provider."
+ "Posibleng kolektahin ng carrier mo ang iyong lokasyon kapag ginamit mo ang serbisyong ito para sa mga emergency na tawag.\n\nBisitahin ang patakaran sa privacy ng iyong carrier para sa mga detalye."
"Baka mawalan ka ng access sa anumang natitirang oras o data. Itanong sa iyong provider bago ito alisin."
"pag-capture ng content, content ng app"
"Content ng app"
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 3bb6e240371..abdc0ea2025 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -53,7 +53,7 @@
"Küçült"
"Büyüt"
"Otomatik döndürmeyi kullan"
- "Yüz Algılama işlevi, Otomatik Döndürme doğruluğunu iyileştirmek için ön kamerayı kullanır. Resimler hiçbir zaman saklanmaz veya Google\'a gönderilmez.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Ekranı otomatik döndürme hakkında daha fazla bilgi</a>"
+ "Yüz Algılama işlevi, Otomatik Döndürme doğruluğunu iyileştirmek için ön kamerayı kullanır. Resimler hiçbir zaman saklanmaz veya Google\'a gönderilmez."
"Örnek metin"
"Muhteşem Oz Büyücüsü"
"11. Bölüm: Oz\'un Muhteşem Zümrüt Kenti"
@@ -343,7 +343,7 @@
"İptal"
"Hayır, teşekkürler"
"Kabul ediyorum"
- "Diğer"
+ "Daha Fazla"
"Yüzünüzle kilidi açın"
"Yüz tanıma kilidine izin verin"
"Kimlik doğrulama için yüzünüzü kullanın"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"DEVAM"
"HAYIR TEŞEKKÜRLER"
"Konum"
- "Servis sağlayıcınız bu hizmeti sağlamak için konum bilgilerinizi toplayabilir.\n\nLütfen servis sağlayıcınızın gizlilik politikasını inceleyin."
+ "Bu hizmeti acil durum aramaları için kullandığınızda operatörünüz konum verilerinizi toplayabilir.\n\nAyrıntılı bilgi için operatörünüzün gizlilik politikasına göz atın."
"Kalan sürelere veya verilere erişiminizi kaybedebilirsiniz. Kaldırmadan önce sağlayıcınıza başvurun."
"içerik yakalama, uygulama içeriği"
"Uygulama içeriği"
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index b6e649c35fe..9e723788417 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -55,7 +55,7 @@
"Зменшити"
"Збільшити"
"Увімкнути автообертання"
- "Технологія розпізнавання облич використовує фронтальну камеру, щоб підвищувати точність автообертання. Зображення ніколи не зберігаються й не надсилаються на сервери Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Докладніше про автообертання екрана</a>"
+ "Технологія розпізнавання облич використовує фронтальну камеру, щоб підвищувати точність автообертання. Зображення ніколи не зберігаються та не надсилаються на сервери Google."
"Зразок тексту"
"Чарівник країни Оз"
"Глава 11. Дивовижне Смарагдове місто країни Оз"
@@ -362,6 +362,8 @@
+
+
@@ -2727,9 +2729,9 @@
"Переглянути додатки, що найбільше використовують заряд"
"Заряджання тимчасово обмежено"
"Це запобігає старінню акумулятора. Докладніше."
- "Оскільки ви користувалися телефоном більше, ніж зазвичай, акумулятор може розрядитися швидше.\n\nДодатки, які споживають найбільше заряду, наведено нижче."
- "Оскільки ви користувалися планшетом більше, ніж зазвичай, акумулятор може розрядитися швидше.\n\nДодатки, які споживають найбільше заряду, наведено нижче."
- "Оскільки ви користувалися пристроєм більше, ніж зазвичай, акумулятор може розрядитися швидше.\n\nДодатки, які споживають найбільше заряду, наведено нижче."
+ "Оскільки ви користувалися телефоном більше, ніж зазвичай, акумулятор може розрядитися швидше.\n\nДодатки, які споживають найбільше заряду:"
+ "Оскільки ви користувалися планшетом більше, ніж зазвичай, акумулятор може розрядитися швидше.\n\nДодатки, які споживають найбільше заряду:"
+ "Оскільки ви користувалися пристроєм більше, ніж зазвичай, акумулятор може розрядитися швидше.\n\nДодатки, які споживають найбільше заряду:"
"Виявлено енергозатратну активність у фоновому режимі"
- Обмежити %1$d додаток
@@ -2796,7 +2798,7 @@
- %1$d додатка обмежено
"^1"" ""%"""
- "Не вдалось отримати дані лічильника акумулятора."
+ "Не вдалось отримати дані про рівень заряду акумулятора."
"Натисніть, щоб дізнатися більше про цю помилку"
"Припинити роботу додатка?"
@@ -5533,7 +5535,7 @@
"ПРОДОВЖИТИ"
"НІ, ДЯКУЮ"
"Місцезнаходження"
- "Для роботи цього сервісу оператор може збирати дані про ваше місцезнаходження.\n\nОзнайомтеся з політикою конфіденційності оператора."
+ "Оператор може збирати дані про ваше місцезнаходження, коли ви користуєтеся цим сервісом для здійснення екстрених викликів.\n\nЩоб дізнатися більше, перегляньте політику конфіденційності свого оператора."
"Ви можете втратити доступ до залишку часу або даних. Щоб дізнатися більше, зв’яжіться з оператором."
"запис вмісту, вміст додатків"
"Контент додатків"
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index cc67d4d4abd..e7818756069 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -53,7 +53,7 @@
"چھوٹا کریں"
"بڑا کریں"
"خود کار طور پر گھمائیں کا استعمال کریں"
- "چہرے کی شناخت خودکار طور پر گھمانے کی درستگی کو بہتر بنانے کے لیے سامنے والے کیمرے کا استعمال کرتی ہے۔ تصاویر کبھی بھی اسٹور یا Google کو نہیں بھیجی جاتی ہیں۔<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>اسکرین کو خود کار طور پر گھمانے کے بارے میں مزید جانیں</a>"
+ "چہرے کی شناخت خود کار طور پر گھمانے کی درستگی کو بہتر بنانے کیلئے سامنے والے کیمرے کا استعمال کرتی ہے۔ تصاویر کبھی بھی اسٹور یا Google کو بھیجی نہیں جاتی ہیں۔"
"نمونہ متن"
"اوز کا شاندار جادوگر"
"گیارھواں باب: اوز کا شاندار زمردی شہر"
@@ -356,6 +356,8 @@
+
+
@@ -5355,7 +5357,7 @@
"جاری رکھیں"
"نہیں شکریہ"
"مقام"
- "یہ سروس فراہم کرنے کے لیے آپ کا سروس فراہم کنندہ آپ کے مقام کی معلومات اکٹھا کر سکتا ہے۔\n\nبراہ کرم اپنے سروس فراہم کنندہ کی رازداری کی پالیسی کا جائزہ لیں۔"
+ "جب آپ ہنگامی کالز کے لیے اس سروس کا استعمال کرتے ہیں تو آپ کا کیریئر آپ کے مقام کا پتہ لگا سکتا ہے۔\n\nتفصیلات کے لئے اپنے کیریئر کی رازداری کی پالیسی ملاحظہ کریں۔"
"آپ باقی کسی وقت یا ڈیٹا تک رسائی سے محروم ہو سکتے ہیں۔ ہٹانے سے پہلے اپنے فراہم کنندہ سے رابطہ کریں۔"
"مواد کیپچر،ایپ کا مواد"
"ایپ کا مواد"
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index fd83486dd4d..ab5be868b5d 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -53,7 +53,7 @@
"Kichiklashtirish"
"Kattalashtirish"
"Avtomatik burilishni yoqish"
- "Yuzni aniqlash funksiyasi avto-burish sifatini oshirish uchun old kameradan foydalanadi. Rasmlar hech qachon saqlanmaydi va Googlega yuborilmaydi.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Ekranni avtomatik burish haqida batafsil</a>"
+ "Yuzni aniqlash funksiyasi avto-burish sifatini oshirish uchun old kameradan foydalanadi. Rasmlar hech qachon saqlanmaydi va Googlega yuborilmaydi"
"Namunaviy matn"
"Oz mamlakati sehrgari"
"11-bob: Oz mamlakatining zumrad shahri"
@@ -356,6 +356,8 @@
+
+
@@ -4411,8 +4413,8 @@
"Fayl uzatish"
"Boshqa qurilmaga fayl o‘tkazish"
"PTP"
- "Videolarni AVC formatga aylantirish"
- "Videolar koʻplab multimedia pleyerlarida ijro etiladi, lekin sifati pasayishi mumkin"
+ "Videolarni AVC formatiga aylantirish"
+ "Aksariyat media pleyerlarda ijro etiladi, lekin sifati pasayishi mumkin"
"Agar MTP qo‘llab-quvvatlanmasa, surat yoki fayllarni o‘tkazish (PTP)"
"USB modem"
"MIDI"
@@ -4778,7 +4780,7 @@
"Sensorlar nofaol"
"Ish profili sozlamalari"
"Ish katalogidagi kontaktlarni shaxsiy ilovalar ichidan qidiring"
- "Qidiruv va kiruvchi chaqiruvlar IT administratoriga koʻrinishi mumkin"
+ "Qidiruv va kiruvchi chaqiruvlar administratorga koʻrinishi mumkin"
"Taqvimlarni sinxronlash"
"Shaxsiy taqvimingizda ishchi tadbirlarni chiqarish"
@@ -5357,7 +5359,7 @@
"DAVOM ETISH"
"KERAK EMAS"
"Joylashuv"
- "Mobil operatoringiz bu xizmatni taqdim etish uchun joylashuvingiz haqidagi axborotni olishi mumkin.\n\nUning maxfiylik siyosati bilan tanishib chiqing."
+ "Favqulodda chaqiruvlar uchun bu xizmatdan foydalansangiz, aloqa operatoringiz joylashuviz axborotini yozib olishi mumkin.\n\nBatafsil axborotni operatoringiz maxfiylik siyosatidan olish mumkin."
"Qolgan vaqt yoki axborotga ruxsatni yoʻqotishingiz mumkin. Olib tashlashdan oldin provayderingiz bilan tekshiring."
"kontentni yozib olish, ilova kontenti"
"Ilova kontenti"
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index b15fba9be04..82502f6c5e6 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -53,7 +53,7 @@
"Thu nhỏ"
"Phóng to"
"Dùng tính năng Tự động xoay"
- "Công nghệ Phát hiện khuôn mặt sử dụng máy ảnh mặt trước để cải thiện độ chính xác của tính năng Tự động xoay. Hệ thống sẽ không lưu trữ hoặc gửi hình ảnh cho Google.<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>Tìm hiểu thêm về tính năng Tự động xoay màn hình</a>"
+ "Công nghệ Phát hiện khuôn mặt sử dụng máy ảnh mặt trước để cải thiện độ chính xác của tính năng Tự động xoay. Hình ảnh không bao giờ được lưu trữ hoặc gửi cho Google."
"Văn bản mẫu"
"Phù thủy xứ Oz"
"Chương 11: Thành phố ngọc lục bảo của xứ Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5357,7 +5359,7 @@
"TIẾP TỤC"
"KHÔNG, CẢM ƠN"
"Vị trí"
- "Nhà cung cấp dịch vụ của bạn có thể thu thập vị trí để cung cấp dịch vụ này.\n\nVui lòng xem lại chính sách quyền riêng tư của nhà cung cấp dịch vụ."
+ "Nhà mạng có thể thu thập thông tin vị trí của bạn khi bạn sử dụng dịch vụ này để thực hiện cuộc gọi khẩn cấp.\n\nHãy xem chính sách quyền riêng tư của nhà mạng để biết thông tin chi tiết."
"Bạn có thể không xem được mọi dữ liệu hoặc thời gian còn lại. Hãy hỏi nhà cung cấp trước khi xóa."
"ghi lại nội dung, nội dung ứng dụng"
"Nội dung ứng dụng"
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 50c46dc53af..cc689733742 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -53,7 +53,7 @@
"缩小"
"放大"
"使用自动屏幕旋转"
- "人脸检测功能使用前置摄像头提高自动屏幕旋转的准确性。系统绝不会存储相关图片,也不会将其发送给 Google。<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>详细了解“自动旋转屏幕”功能</a>"
+ "人脸检测功能使用前置摄像头提高自动屏幕旋转的准确性。系统绝不会存储相关图片,也不会将其发送给 Google。"
"示例文本"
"绿野仙踪"
"第 11 章:奥兹国神奇的翡翠城"
@@ -356,6 +356,8 @@
+
+
@@ -478,8 +480,8 @@
"删除"
"触摸传感器"
"将您的手指放在指纹传感器上,感觉到振动后移开手指"
- "请将手指放在传感器上,感觉到振动后再移开"
- "轻触并按住指纹传感器"
+ "将手指放在传感器上,感觉到振动后再移开"
+ "触按指纹传感器"
"移开手指,然后再次触摸传感器"
"再试一次"
"跟随指纹图标重复轻触指纹传感器"
@@ -2720,7 +2722,7 @@
- %1$d 个应用受到限制
"^1"" ""%"""
- "读取电池电量计时出现问题。"
+ "读取电池计量器时出现问题。"
"点按即可详细了解此错误"
"要停止该应用吗?"
@@ -5371,7 +5373,7 @@
"继续"
"不用了"
"位置"
- "您的服务提供商可能会收集您的位置信息以便提供此服务。\n\n请查看服务提供商的隐私权政策。"
+ "当您使用此服务进行紧急呼叫时,您的运营商可能会收集您的位置信息。\n\n如需了解详情,请参阅运营商的隐私权政策。"
"您可能无法再访问任何剩余时间或数据。请在移除之前先与您的提供商联系。"
"内容捕获, 应用内容"
"应用内容"
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 70cc0129875..fa54de0e218 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -53,7 +53,7 @@
"縮小"
"放大"
"使用自動旋轉"
- "面孔偵測功能會使用前置鏡頭提高自動旋轉的準確度。系統不會儲存相關圖像,亦不會將這些圖像傳送給 Google。<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>進一步瞭解自動旋轉螢幕</a>"
+ "面孔偵測功能會使用前置鏡頭提高自動旋轉的準確度。系統絕不會將相關圖像儲存或傳送給 Google。"
"範例文字"
"《綠野仙蹤》"
"第 11 章:奧茲國的奇妙翡翠城"
@@ -356,6 +356,8 @@
+
+
@@ -2668,7 +2670,7 @@
"查看用電量最高的應用程式"
"充電暫時受限"
"延長電池壽命。瞭解詳情。"
- "由於您的手機使用率比平常高,因此電池可能比平時更快耗盡。\n\n耗電量最高的應用程式:"
+ "您比平常多用手機,電池電量可能會比平時更快用完。\n\n耗電量最高的應用程式:"
"由於您的平板電腦使用率比平常高,因此電池可能比平時更快耗盡。\n\n耗電量最高的應用程式:"
"由於您的裝置使用率比平常高,因此電池可能比平時更快耗盡。\n\n耗電量最高的應用程式:"
"包括高耗電背景活動"
@@ -5358,7 +5360,7 @@
"繼續"
"不用了,謝謝"
"位置"
- "服務供應商可能會收集您的位置資訊以提供此項服務。\n\n詳情請查看服務供應商私隱權政策。"
+ "使用此服務撥打緊急電話時,流動網絡供應商可能會收集您的位置資訊。\n\n請瀏覽流動網絡供應商的私隱權政策瞭解詳情。"
"您可能會失去所有剩餘時間或資料的存取權。移除前,請聯絡您的供應商尋求指示。"
"內容擷取, 應用程式內容"
"應用程式內容"
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index bd444590342..d69c27ef7d3 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -53,7 +53,7 @@
"縮小"
"放大"
"使用自動旋轉"
- "臉部偵測技術會使用前置鏡頭提高自動旋轉的準確度。系統不會儲存相關圖像,也不會將這些圖像傳送給 Google。<br><br> <a href=http://support.google.com/mobile?p=telephony_rtt>進一步瞭解自動旋轉螢幕</a>"
+ "臉部偵測技術會使用前置鏡頭提高自動旋轉的準確度。系統不會將相關圖像儲存或傳送給 Google。"
"範例文字"
"綠野仙蹤"
"第 11 章:奧茲國的翡翠城"
@@ -356,6 +356,8 @@
+
+
@@ -409,7 +411,7 @@
"設定指紋"
"允許使用指紋解鎖功能"
"使用指紋"
- "你可以使用指紋解鎖手機或驗證身分,以便執行特定操作,例如登入應用程式或核准購買交易。"
+ "你可以使用指紋解鎖手機或驗證身分,例如用來登入應用程式或核准購買交易。"
"允許孩子使用指紋解鎖手機或驗證身分,以便執行特定操作,例如登入應用程式、核准購買交易等。"
"一切由你掌控"
"一切由你和孩子做主"
@@ -490,7 +492,7 @@
"指紋新增成功"
- "現在只要使用自己的指紋就能解鎖手機或驗證身分,以便執行特定操作,例如登入應用程式"
+ "現在只要使用自己的指紋就能解鎖手機或驗證身分,例如用來登入應用程式"
"稍後再說"
"要略過指紋設定程序嗎?"
"你已選擇使用指紋做為其中一種手機解鎖方式。如果現在略過這項程序,你必須在稍後完成設定。設定程序只需要一分鐘左右。"
@@ -2667,7 +2669,7 @@
"查看電池用量最高的應用程式"
"充電功能暫時受到限制"
"這是為了延長電池壽命。瞭解詳情。"
- "你的手機使用頻率比平常高,因此電池可能比平時還快沒電。\n\n耗電量最高的應用程式:"
+ "你的手機使用頻率比平常高,因此電量消耗速度可能比平時還要更快。\n\n耗電量最高的應用程式:"
"你的平板電腦使用頻率比平常高,因此電池可能比平時還快沒電。\n\n耗電量最高的應用程式:"
"你的裝置使用頻率比平常高,因此電池可能比平時還快沒電。\n\n耗電量最高的應用程式:"
"包含高耗電背景活動"
@@ -5357,7 +5359,7 @@
"繼續"
"不用了,謝謝"
"位置"
- "你的服務供應商可能會收集你的位置資訊,以便提供這項服務。\n\n請詳閱你服務供應商的隱私權政策。"
+ "當你使用這項服務撥打緊急電話時,電信業者可能會收集你的位置資訊。\n\n詳請請參閱電信業者的隱私權政策。"
"你可能無法再存取任何剩餘時間或資料。請先洽詢你的供應商,再進行移除。"
"內容擷取, 應用程式內容"
"應用程式內容"
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 759000c610f..d02678c053b 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -53,7 +53,7 @@
"Yenza kube kuncane"
"Yenza kube kukhulu"
"Sebenzisa ukuphenduka okuzenzakalelayo"
- "Ukutholwa kobuso kusebenzisa ikhamera ebheke phambili ukuthuthukisa ukunemba Kokuphenduka okuzenzakalelayo. Imifanekiso ayigcinwa noma ayithunyelwa ku-Google.</b><br/></b><br/></b><br/> href=http://support.google.com/mobile?p=telephony_rtt</b>;Funda kabanzi ngesikrini Sokuphenduka okuzenzakalelayo</b><br/>"
+ "Ukutholwa kobuso kusebenzisa ikhamera ebheke phambili ukuthuthukisa ukunemba Kokuphenduka okuzenzakalelayo. Izithombe azilondolozwa noma zithunyelwe ku-Google."
"Isampuli yombhalo"
"I-The Wonderful Wizard of Oz"
"Isahluko 11: The Wonderful Emerald City of Oz"
@@ -356,6 +356,8 @@
+
+
@@ -5356,7 +5358,7 @@
"QHUBEKA"
"CHA NGIYABONGA"
"Indawo"
- "Umhlinzeki wakho wesevisi angaqoqa indawo yakho ukuze anikeze ngale sevisi.\n\nSicela ubuyekeze inqubomgomo yobumfihlo yomhlinzeki wakho wesevisi."
+ "Inkampani yakho yenethiwekhi ingaqoqa indawo yakho uma usebenzisela le sevisi amakholi aphuthumayo.\n\nVakashela inqubomgomo yobumfihlo yenkampani yakho yenethiwekhi ukuze uthole imininingwane."
"Ungalahlekelwa ukufinyelela kunoma isiphi isikhathi esisele noma kudatha. Hlola nomhlinzeki wakho ngaphambi kokususa."
"thatha okuqukethwe, okuqukethwe kohlelo lokusebenza"
"Okuqukethwe kohlelo lokusebenza"
diff --git a/res/values/config.xml b/res/values/config.xml
index 62d0c8cd670..8b9ded2306a 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -269,6 +269,9 @@
+
+ true
+
false
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 89701c0002e..2e543769d8a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -101,10 +101,7 @@
Use Auto-rotate
-
- Face Detection uses the front-facing camera to improve Auto-rotate accuracy. Images are never stored or sent to Google.<br><br>
- <a href="http://support.google.com/mobile?p=telephony_rtt">Learn more about Auto-rotate screen</a>
-
+ Face Detection uses the front-facing camera to improve Auto-rotate accuracy. Images are never stored or sent to Google.
Sample text
@@ -810,6 +807,11 @@
+
+
+
+
+
@@ -13179,8 +13181,8 @@
Location
-
- Your service provider may collect your location in order to provide this service.\n\nPlease review your service provider\u2019s privacy policy.
+
+ Your carrier may collect your location when you use this service for emergency calls.\n\nVisit your carrier\u2019s privacy policy for details.
RAM total size
diff --git a/src/com/android/settings/applications/AppStateNotificationBridge.java b/src/com/android/settings/applications/AppStateNotificationBridge.java
index c8bb5f9a667..3bcf94f3445 100644
--- a/src/com/android/settings/applications/AppStateNotificationBridge.java
+++ b/src/com/android/settings/applications/AppStateNotificationBridge.java
@@ -24,8 +24,10 @@
import android.text.format.DateUtils;
import android.util.ArrayMap;
import android.util.Log;
+import android.util.Slog;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.CompoundButton;
import android.widget.Switch;
import com.android.settings.R;
@@ -222,26 +224,18 @@ protected static String getKey(int userId, String pkg) {
return userId + "|" + pkg;
}
- public View.OnClickListener getSwitchOnClickListener(final AppEntry entry) {
- if (entry != null) {
- return v -> {
- ViewGroup view = (ViewGroup) v;
- Switch toggle = view.findViewById(R.id.switchWidget);
- if (toggle != null) {
- if (!toggle.isEnabled()) {
- return;
- }
- toggle.toggle();
- mBackend.setNotificationsEnabledForPackage(
- entry.info.packageName, entry.info.uid, toggle.isChecked());
- NotificationsSentState stats = getNotificationsSentState(entry);
- if (stats != null) {
- stats.blocked = !toggle.isChecked();
- }
- }
- };
+ public CompoundButton.OnCheckedChangeListener getSwitchOnCheckedListener(final AppEntry entry) {
+ if (entry == null) {
+ return null;
}
- return null;
+ return (buttonView, isChecked) -> {
+ mBackend.setNotificationsEnabledForPackage(
+ entry.info.packageName, entry.info.uid, isChecked);
+ NotificationsSentState stats = getNotificationsSentState(entry);
+ if (stats != null) {
+ stats.blocked = !isChecked;
+ }
+ };
}
public static final AppFilter FILTER_APP_NOTIFICATION_RECENCY = new AppFilter() {
diff --git a/src/com/android/settings/applications/HibernatedAppsPreferenceController.java b/src/com/android/settings/applications/HibernatedAppsPreferenceController.java
index 898d7096ee6..9562fd7b960 100644
--- a/src/com/android/settings/applications/HibernatedAppsPreferenceController.java
+++ b/src/com/android/settings/applications/HibernatedAppsPreferenceController.java
@@ -182,7 +182,7 @@ private int getUnusedCount() {
private static boolean isHibernationEnabled() {
return DeviceConfig.getBoolean(
- NAMESPACE_APP_HIBERNATION, PROPERTY_APP_HIBERNATION_ENABLED, false);
+ NAMESPACE_APP_HIBERNATION, PROPERTY_APP_HIBERNATION_ENABLED, true);
}
/**
diff --git a/src/com/android/settings/applications/appinfo/HibernationSwitchPreferenceController.java b/src/com/android/settings/applications/appinfo/HibernationSwitchPreferenceController.java
index 42f862dac17..1d34a13e1ff 100644
--- a/src/com/android/settings/applications/appinfo/HibernationSwitchPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/HibernationSwitchPreferenceController.java
@@ -144,7 +144,7 @@ public boolean onPreferenceChange(Preference preference, Object isChecked) {
private static boolean isHibernationEnabled() {
return DeviceConfig.getBoolean(
- NAMESPACE_APP_HIBERNATION, PROPERTY_APP_HIBERNATION_ENABLED, false);
+ NAMESPACE_APP_HIBERNATION, PROPERTY_APP_HIBERNATION_ENABLED, true);
}
private static boolean hibernationTargetsPreSApps() {
diff --git a/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java b/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java
index 9ef66010070..ef5b029a9d0 100644
--- a/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java
+++ b/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java
@@ -155,13 +155,13 @@ void updateSizeText(AppEntry entry, CharSequence invalidSizeStr, int whichSize)
}
}
- void updateSwitch(View.OnClickListener listener, boolean enabled, boolean checked) {
+ void updateSwitch(Switch.OnCheckedChangeListener listener, boolean enabled, boolean checked) {
if (mSwitch != null && mWidgetContainer != null) {
- mWidgetContainer.setOnClickListener(listener);
mWidgetContainer.setFocusable(false);
mWidgetContainer.setClickable(false);
mSwitch.setFocusable(true);
mSwitch.setClickable(true);
+ mSwitch.setOnCheckedChangeListener(listener);
mSwitch.setChecked(checked);
mSwitch.setEnabled(enabled);
}
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index 43e929b8054..edd4088a27f 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -1505,7 +1505,7 @@ private void updateSwitch(ApplicationViewHolder holder, AppEntry entry) {
switch (mManageApplications.mListType) {
case LIST_TYPE_NOTIFICATION:
holder.updateSwitch(((AppStateNotificationBridge) mExtraInfoBridge)
- .getSwitchOnClickListener(entry),
+ .getSwitchOnCheckedListener(entry),
AppStateNotificationBridge.enableSwitch(entry),
AppStateNotificationBridge.checkSwitch(entry));
if (entry.extraInfo != null
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
index 91cc3a9bfdc..bee1acacf10 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
@@ -24,6 +24,7 @@
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
+import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -74,11 +75,13 @@ protected void onSkipButtonClick(View view) {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ // Apply extracted theme color to icons.
final ImageView iconGlasses = findViewById(R.id.icon_glasses);
final ImageView iconLooking = findViewById(R.id.icon_looking);
iconGlasses.getBackground().setColorFilter(getIconColorFilter());
iconLooking.getBackground().setColorFilter(getIconColorFilter());
+ // Set text for views with multiple variations.
final TextView infoMessageGlasses = findViewById(R.id.info_message_glasses);
final TextView infoMessageLooking = findViewById(R.id.info_message_looking);
final TextView howMessage = findViewById(R.id.how_message);
@@ -86,10 +89,20 @@ protected void onCreate(Bundle savedInstanceState) {
final TextView inControlMessage = findViewById(R.id.message_in_control);
infoMessageGlasses.setText(getInfoMessageGlasses());
infoMessageLooking.setText(getInfoMessageLooking());
- howMessage.setText(getHowMessage());
inControlTitle.setText(getInControlTitle());
+ howMessage.setText(getHowMessage());
inControlMessage.setText(getInControlMessage());
+ // Set up and show the "require eyes" info section if necessary.
+ if (getResources().getBoolean(R.bool.config_face_intro_show_require_eyes)) {
+ final LinearLayout infoRowRequireEyes = findViewById(R.id.info_row_require_eyes);
+ final ImageView iconRequireEyes = findViewById(R.id.icon_require_eyes);
+ final TextView infoMessageRequireEyes = findViewById(R.id.info_message_require_eyes);
+ infoRowRequireEyes.setVisibility(View.VISIBLE);
+ iconRequireEyes.getBackground().setColorFilter(getIconColorFilter());
+ infoMessageRequireEyes.setText(getInfoMessageRequireEyes());
+ }
+
mFaceManager = Utils.getFaceManagerOrNull(this);
mFaceFeatureProvider = FeatureFactory.getFactory(getApplicationContext())
.getFaceFeatureProvider();
@@ -126,6 +139,11 @@ protected int getInfoMessageLooking() {
return R.string.security_settings_face_enroll_introduction_info_looking;
}
+ @StringRes
+ protected int getInfoMessageRequireEyes() {
+ return R.string.security_settings_face_enroll_introduction_info_gaze;
+ }
+
@StringRes
protected int getHowMessage() {
return R.string.security_settings_face_enroll_introduction_how_message;
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollParentalConsent.java b/src/com/android/settings/biometrics/face/FaceEnrollParentalConsent.java
index 7a60a94ad55..81043dc03a6 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollParentalConsent.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollParentalConsent.java
@@ -80,6 +80,12 @@ protected int getInfoMessageLooking() {
return R.string.security_settings_face_enroll_introduction_info_consent_looking;
}
+ @Override
+ @StringRes
+ protected int getInfoMessageRequireEyes() {
+ return R.string.security_settings_face_enroll_introduction_info_consent_gaze;
+ }
+
@Override
@StringRes
protected int getHowMessage() {
diff --git a/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiver.java b/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiver.java
index a203534dded..c5bcbed00cb 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiver.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiver.java
@@ -75,6 +75,9 @@ public void onReceive(Context context, Intent intent) {
if (intent.getExtras().getBoolean(UsbManager.USB_FUNCTION_ACCESSORY)) {
functions |= UsbManager.FUNCTION_ACCESSORY;
}
+ if (intent.getExtras().getBoolean(UsbManager.USB_FUNCTION_NCM)) {
+ functions |= UsbManager.FUNCTION_NCM;
+ }
mFunctions = functions;
mDataRole = mUsbBackend.getDataRole();
mPowerRole = mUsbBackend.getPowerRole();
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java b/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java
index 502c7d25b9c..97906703069 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java
@@ -74,8 +74,10 @@ public class UsbDefaultFragment extends RadioButtonPickerFragment {
Log.d(TAG, "UsbConnectionListener() connected : " + connected + ", functions : "
+ functions + ", defaultFunctions : " + defaultFunctions
+ ", mIsStartTethering : " + mIsStartTethering);
- if (connected && !mIsConnected && defaultFunctions == UsbManager.FUNCTION_RNDIS
+ if (connected && !mIsConnected && (defaultFunctions == UsbManager.FUNCTION_RNDIS
+ || defaultFunctions == UsbManager.FUNCTION_NCM)
&& !mIsStartTethering) {
+ mCurrentFunctions = defaultFunctions;
startTethering();
}
@@ -150,7 +152,11 @@ public String getKey() {
@Override
protected String getDefaultKey() {
- return UsbBackend.usbFunctionsToString(mUsbBackend.getDefaultUsbFunctions());
+ long defaultUsbFunctions = mUsbBackend.getDefaultUsbFunctions();
+ // Because we didn't have an option for NCM, so make FUNCTION_NCM corresponding to
+ // FUNCTION_RNDIS for initializing the UI.
+ return UsbBackend.usbFunctionsToString(defaultUsbFunctions == UsbManager.FUNCTION_NCM
+ ? UsbManager.FUNCTION_RNDIS : defaultUsbFunctions);
}
@Override
@@ -158,9 +164,10 @@ protected boolean setDefaultKey(String key) {
long functions = UsbBackend.usbFunctionsFromString(key);
mPreviousFunctions = mUsbBackend.getCurrentFunctions();
if (!Utils.isMonkeyRunning()) {
- if (functions == UsbManager.FUNCTION_RNDIS) {
+ if (functions == UsbManager.FUNCTION_RNDIS || functions == UsbManager.FUNCTION_NCM) {
// We need to have entitlement check for usb tethering, so use API in
// TetheringManager.
+ mCurrentFunctions = functions;
startTethering();
} else {
mIsStartTethering = false;
@@ -193,8 +200,7 @@ final class OnStartTetheringCallback implements
public void onTetheringStarted() {
Log.d(TAG, "onTetheringStarted()");
// Set default usb functions again to make internal data persistent
- mCurrentFunctions = UsbManager.FUNCTION_RNDIS;
- mUsbBackend.setDefaultUsbFunctions(UsbManager.FUNCTION_RNDIS);
+ mUsbBackend.setDefaultUsbFunctions(mCurrentFunctions);
}
@Override
@@ -214,7 +220,11 @@ private void refresh(long functions) {
final boolean isSupported = mUsbBackend.areFunctionsSupported(option);
pref.setEnabled(isSupported);
if (isSupported) {
- pref.setChecked(functions == option);
+ if (functions == UsbManager.FUNCTION_NCM) {
+ pref.setChecked(UsbManager.FUNCTION_RNDIS == option);
+ } else {
+ pref.setChecked(functions == option);
+ }
}
}
}
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java
index 821bb26f18e..006f72a39ef 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java
@@ -116,6 +116,8 @@ protected void refresh(boolean connected, long functions, int powerRole, int dat
if (mUsbBackend.areFunctionsSupported(option)) {
if (isAccessoryMode(functions)) {
pref.setChecked(UsbManager.FUNCTION_MTP == option);
+ } else if (functions == UsbManager.FUNCTION_NCM) {
+ pref.setChecked(UsbManager.FUNCTION_RNDIS == option);
} else {
pref.setChecked(functions == option);
}
@@ -148,7 +150,7 @@ public void onRadioButtonClicked(RadioButtonPreference preference) {
preference.setChecked(true);
}
- if (function == UsbManager.FUNCTION_RNDIS) {
+ if (function == UsbManager.FUNCTION_RNDIS || function == UsbManager.FUNCTION_NCM) {
// We need to have entitlement check for usb tethering, so use API in
// TetheringManager.
mTetheringManager.startTethering(
diff --git a/src/com/android/settings/display/PreviewSeekBarPreferenceFragment.java b/src/com/android/settings/display/PreviewSeekBarPreferenceFragment.java
index bb9e3d71024..abd14d25d9e 100644
--- a/src/com/android/settings/display/PreviewSeekBarPreferenceFragment.java
+++ b/src/com/android/settings/display/PreviewSeekBarPreferenceFragment.java
@@ -19,6 +19,8 @@
import android.content.Context;
import android.content.res.Configuration;
import android.os.Bundle;
+import android.os.SystemClock;
+import android.view.Choreographer;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -58,14 +60,35 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
private View mLarger;
private View mSmaller;
+ private static final long MIN_COMMIT_INTERVAL_MS = 800;
+ private long mLastCommitTime;
+
private class onPreviewSeekBarChangeListener implements OnSeekBarChangeListener {
+ private static final long CHANGE_BY_SEEKBAR_DELAY_MS = 100;
+ private static final long CHANGE_BY_BUTTON_DELAY_MS = 300;
+
private boolean mSeekByTouch;
+ private boolean mIsChanged;
+ private long mCommitDelayMs;
+
+ private final Choreographer.FrameCallback mCommit = f -> {
+ commit();
+ mLastCommitTime = SystemClock.elapsedRealtime();
+ };
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+ if (mCurrentIndex == progress) {
+ mIsChanged = false;
+ return;
+ }
+ mIsChanged = true;
setPreviewLayer(progress, false);
- if (!mSeekByTouch) {
- commit();
+ if (mSeekByTouch) {
+ mCommitDelayMs = CHANGE_BY_SEEKBAR_DELAY_MS;
+ } else {
+ mCommitDelayMs = CHANGE_BY_BUTTON_DELAY_MS;
+ commitOnNextFrame();
}
}
@@ -76,18 +99,39 @@ public void onStartTrackingTouch(SeekBar seekBar) {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
+ mSeekByTouch = false;
+ if (!mIsChanged) {
+ return;
+ }
if (mPreviewPagerAdapter.isAnimating()) {
- mPreviewPagerAdapter.setAnimationEndAction(() -> commit());
+ mPreviewPagerAdapter.setAnimationEndAction(this::commitOnNextFrame);
} else {
- commit();
+ commitOnNextFrame();
}
- mSeekByTouch = false;
+ }
+
+ private void commitOnNextFrame() {
+ if (SystemClock.elapsedRealtime() - mLastCommitTime < MIN_COMMIT_INTERVAL_MS) {
+ mCommitDelayMs += MIN_COMMIT_INTERVAL_MS;
+ }
+ final Choreographer choreographer = Choreographer.getInstance();
+ choreographer.removeFrameCallback(mCommit);
+ choreographer.postFrameCallbackDelayed(mCommit, mCommitDelayMs);
}
}
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putLong("mLastCommitTime", mLastCommitTime);
+ }
+
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
+ if (savedInstanceState != null) {
+ mLastCommitTime = savedInstanceState.getLong("mLastCommitTime");
+ }
final View root = super.onCreateView(inflater, container, savedInstanceState);
final ViewGroup listContainer = root.findViewById(android.R.id.list_container);
listContainer.removeAllViews();
@@ -240,4 +284,4 @@ public void onPageSelected(int position) {
setPagerIndicatorContentDescription(position);
}
};
-}
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/ProviderModelSliceHelper.java b/src/com/android/settings/network/ProviderModelSliceHelper.java
index 6ecaae50aea..32a475a7d00 100644
--- a/src/com/android/settings/network/ProviderModelSliceHelper.java
+++ b/src/com/android/settings/network/ProviderModelSliceHelper.java
@@ -24,6 +24,8 @@
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
+import android.telephony.AccessNetworkConstants;
+import android.telephony.NetworkRegistrationInfo;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.SubscriptionInfo;
@@ -106,7 +108,12 @@ public boolean isDataSimActive() {
* @return whether the ServiceState's data state is in-service.
*/
public boolean isDataStateInService() {
- return mTelephonyManager.getDataState() == mTelephonyManager.DATA_CONNECTED;
+ final ServiceState serviceState = mTelephonyManager.getServiceState();
+ NetworkRegistrationInfo regInfo =
+ (serviceState == null) ? null : serviceState.getNetworkRegistrationInfo(
+ NetworkRegistrationInfo.DOMAIN_PS,
+ AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
+ return (regInfo == null) ? false : regInfo.isRegistered();
}
/**
diff --git a/src/com/android/settings/network/ProxySubscriptionManager.java b/src/com/android/settings/network/ProxySubscriptionManager.java
index eb1a7d4f608..614491a5016 100644
--- a/src/com/android/settings/network/ProxySubscriptionManager.java
+++ b/src/com/android/settings/network/ProxySubscriptionManager.java
@@ -25,19 +25,30 @@
import android.provider.Settings;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
+import android.util.Log;
+import androidx.annotation.Keep;
+import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* A proxy to the subscription manager
*/
public class ProxySubscriptionManager implements LifecycleObserver {
+ private static final String LOG_TAG = "ProxySubscriptionManager";
+
+ private static final int LISTENER_END_OF_LIFE = -1;
+ private static final int LISTENER_IS_INACTIVE = 0;
+ private static final int LISTENER_IS_ACTIVE = 1;
+
/**
* Interface for monitor active subscriptions list changing
*/
@@ -74,22 +85,36 @@ public static ProxySubscriptionManager getInstance(Context context) {
private ProxySubscriptionManager(Context context) {
final Looper looper = context.getMainLooper();
- mActiveSubscriptionsListeners =
- new ArrayList();
-
- mSubscriptionMonitor = new ActiveSubscriptionsListener(looper, context) {
+ ActiveSubscriptionsListener subscriptionMonitor = new ActiveSubscriptionsListener(
+ looper, context) {
public void onChanged() {
- notifyAllListeners();
+ notifySubscriptionInfoMightChanged();
}
};
- mAirplaneModeMonitor = new GlobalSettingsChangeListener(looper,
- context, Settings.Global.AIRPLANE_MODE_ON) {
+ GlobalSettingsChangeListener airplaneModeMonitor = new GlobalSettingsChangeListener(
+ looper, context, Settings.Global.AIRPLANE_MODE_ON) {
public void onChanged(String field) {
- mSubscriptionMonitor.clearCache();
- notifyAllListeners();
+ subscriptionMonitor.clearCache();
+ notifySubscriptionInfoMightChanged();
}
};
+ init(context, subscriptionMonitor, airplaneModeMonitor);
+ }
+
+ @Keep
+ @VisibleForTesting
+ protected void init(Context context, ActiveSubscriptionsListener activeSubscriptionsListener,
+ GlobalSettingsChangeListener airplaneModeOnSettingsChangeListener) {
+
+ mActiveSubscriptionsListeners =
+ new ArrayList();
+ mPendingNotifyListeners =
+ new ArrayList();
+
+ mSubscriptionMonitor = activeSubscriptionsListener;
+ mAirplaneModeMonitor = airplaneModeOnSettingsChangeListener;
+
mSubscriptionMonitor.start();
}
@@ -98,15 +123,19 @@ public void onChanged(String field) {
private GlobalSettingsChangeListener mAirplaneModeMonitor;
private List mActiveSubscriptionsListeners;
+ private List mPendingNotifyListeners;
- private void notifyAllListeners() {
- for (OnActiveSubscriptionChangedListener listener : mActiveSubscriptionsListeners) {
- final Lifecycle lifecycle = listener.getLifecycle();
- if ((lifecycle == null)
- || (lifecycle.getCurrentState().isAtLeast(Lifecycle.State.STARTED))) {
- listener.onChanged();
- }
- }
+ @Keep
+ @VisibleForTesting
+ protected void notifySubscriptionInfoMightChanged() {
+ // create a merged list for processing all listeners
+ List listeners =
+ new ArrayList(mPendingNotifyListeners);
+ listeners.addAll(mActiveSubscriptionsListeners);
+
+ mActiveSubscriptionsListeners.clear();
+ mPendingNotifyListeners.clear();
+ processStatusChangeOnListeners(listeners);
}
/**
@@ -131,6 +160,11 @@ public void setLifecycle(Lifecycle lifecycle) {
@OnLifecycleEvent(ON_START)
void onStart() {
mSubscriptionMonitor.start();
+
+ // callback notify those listener(s) which back to active state
+ List listeners = mPendingNotifyListeners;
+ mPendingNotifyListeners = new ArrayList();
+ processStatusChangeOnListeners(listeners);
}
@OnLifecycleEvent(ON_STOP)
@@ -215,12 +249,17 @@ public void clearCache() {
}
/**
- * Add listener to active subscriptions monitor list
+ * Add listener to active subscriptions monitor list.
+ * Note: listener only take place when change happens.
+ * No immediate callback performed after the invoke of this method.
*
* @param listener listener to active subscriptions change
*/
+ @Keep
public void addActiveSubscriptionsListener(OnActiveSubscriptionChangedListener listener) {
- if (mActiveSubscriptionsListeners.contains(listener)) {
+ removeSpecificListenerAndCleanList(listener, mPendingNotifyListeners);
+ removeSpecificListenerAndCleanList(listener, mActiveSubscriptionsListeners);
+ if ((listener == null) || (getListenerState(listener) == LISTENER_END_OF_LIFE)) {
return;
}
mActiveSubscriptionsListeners.add(listener);
@@ -231,7 +270,51 @@ public void addActiveSubscriptionsListener(OnActiveSubscriptionChangedListener l
*
* @param listener listener to active subscriptions change
*/
+ @Keep
public void removeActiveSubscriptionsListener(OnActiveSubscriptionChangedListener listener) {
- mActiveSubscriptionsListeners.remove(listener);
+ removeSpecificListenerAndCleanList(listener, mPendingNotifyListeners);
+ removeSpecificListenerAndCleanList(listener, mActiveSubscriptionsListeners);
+ }
+
+ private int getListenerState(OnActiveSubscriptionChangedListener listener) {
+ Lifecycle lifecycle = listener.getLifecycle();
+ if (lifecycle == null) {
+ return LISTENER_IS_ACTIVE;
+ }
+ Lifecycle.State lifecycleState = lifecycle.getCurrentState();
+ if (lifecycleState == Lifecycle.State.DESTROYED) {
+ Log.d(LOG_TAG, "Listener dead detected - " + listener);
+ return LISTENER_END_OF_LIFE;
+ }
+ return lifecycleState.isAtLeast(Lifecycle.State.STARTED) ?
+ LISTENER_IS_ACTIVE : LISTENER_IS_INACTIVE;
+ }
+
+ private void removeSpecificListenerAndCleanList(OnActiveSubscriptionChangedListener listener,
+ List list) {
+ // also drop listener(s) which is end of life
+ list.removeIf(it -> (it == listener) || (getListenerState(it) == LISTENER_END_OF_LIFE));
+ }
+
+ private void processStatusChangeOnListeners(
+ List listeners) {
+ // categorize listener(s), and end of life listener(s) been ignored
+ Map> categorizedListeners =
+ listeners.stream()
+ .collect(Collectors.groupingBy(it -> getListenerState(it)));
+
+ // have inactive listener(s) in pending list
+ categorizedListeners.computeIfPresent(LISTENER_IS_INACTIVE, (category, list) -> {
+ mPendingNotifyListeners.addAll(list);
+ return list;
+ });
+
+ // get active listener(s)
+ categorizedListeners.computeIfPresent(LISTENER_IS_ACTIVE, (category, list) -> {
+ mActiveSubscriptionsListeners.addAll(list);
+ // notify each one of them
+ list.stream().forEach(it -> it.onChanged());
+ return list;
+ });
}
}
diff --git a/src/com/android/settings/network/SubscriptionUtil.java b/src/com/android/settings/network/SubscriptionUtil.java
index 48ff591a43e..2d6077868df 100644
--- a/src/com/android/settings/network/SubscriptionUtil.java
+++ b/src/com/android/settings/network/SubscriptionUtil.java
@@ -229,7 +229,7 @@ private static SubscriptionInfo searchForSubscriptionId(List s
}
/**
- * Return a mapping of active subscription ids to diaplay names. Each display name is
+ * Return a mapping of active subscription ids to display names. Each display name is
* guaranteed to be unique in the following manner:
* 1) If the original display name is not unique, the last four digits of the phone number
* will be appended.
@@ -237,7 +237,7 @@ private static SubscriptionInfo searchForSubscriptionId(List s
* subscription, the subscription id will be appended to the original display name.
* More details can be found at go/unique-sub-display-names.
*
- * @return map of active subscription ids to diaplay names.
+ * @return map of active subscription ids to display names.
*/
@VisibleForTesting
public static Map getUniqueSubscriptionDisplayNames(Context context) {
@@ -328,7 +328,7 @@ class DisplayInfo {
* subscription, the subscription id will be appended to the original display name.
* More details can be found at go/unique-sub-display-names.
*
- * @return map of active subscription ids to diaplay names.
+ * @return map of active subscription ids to display names.
*/
@VisibleForTesting
public static CharSequence getUniqueSubscriptionDisplayName(
@@ -346,7 +346,7 @@ public static CharSequence getUniqueSubscriptionDisplayName(
* subscription, the subscription id will be appended to the original display name.
* More details can be found at go/unique-sub-display-names.
*
- * @return map of active subscription ids to diaplay names.
+ * @return map of active subscription ids to display names.
*/
public static CharSequence getUniqueSubscriptionDisplayName(
SubscriptionInfo info, Context context) {
@@ -486,7 +486,7 @@ public static SubscriptionInfo getSubById(SubscriptionManager subscriptionManage
* @param info the subscriptionInfo to check against.
* @return true if this subscription should be visible to the API caller.
*/
- private static boolean isSubscriptionVisible(
+ public static boolean isSubscriptionVisible(
SubscriptionManager subscriptionManager, Context context, SubscriptionInfo info) {
if (info == null) return false;
// If subscription is NOT grouped opportunistic subscription, it's visible.
diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java
index 7c0fc29736a..8e9e946820c 100644
--- a/src/com/android/settings/network/SubscriptionsPreferenceController.java
+++ b/src/com/android/settings/network/SubscriptionsPreferenceController.java
@@ -31,6 +31,8 @@
import android.net.wifi.WifiManager;
import android.os.UserManager;
import android.provider.Settings;
+import android.telephony.AccessNetworkConstants;
+import android.telephony.NetworkRegistrationInfo;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.SubscriptionInfo;
@@ -274,9 +276,16 @@ private CharSequence getMobilePreferenceSummary(int subId) {
if (!tmForSubId.isDataEnabled()) {
return mContext.getString(R.string.mobile_data_off_summary);
}
+ final ServiceState serviceState = tmForSubId.getServiceState();
+ final NetworkRegistrationInfo regInfo = (serviceState == null)
+ ? null
+ : serviceState.getNetworkRegistrationInfo(
+ NetworkRegistrationInfo.DOMAIN_PS,
+ AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
- final boolean isDataInService = tmForSubId.getDataState()
- == TelephonyManager.DATA_CONNECTED;
+ final boolean isDataInService = (regInfo == null)
+ ? false
+ : regInfo.isRegistered();
final boolean isCarrierNetworkActive =
(mWifiPickerTrackerHelper != null)
&& mWifiPickerTrackerHelper.isCarrierNetworkActive();
@@ -311,9 +320,16 @@ private Drawable getIcon(int subId) {
return icon;
}
- final boolean isDataInService = tmForSubId.getDataState()
- == TelephonyManager.DATA_CONNECTED;
final ServiceState serviceState = tmForSubId.getServiceState();
+ final NetworkRegistrationInfo regInfo = (serviceState == null)
+ ? null
+ : serviceState.getNetworkRegistrationInfo(
+ NetworkRegistrationInfo.DOMAIN_PS,
+ AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
+
+ final boolean isDataInService = (regInfo == null)
+ ? false
+ : regInfo.isRegistered();
final boolean isVoiceInService = (serviceState == null)
? false
: (serviceState.getState() == ServiceState.STATE_IN_SERVICE);
diff --git a/src/com/android/settings/network/helper/QueryEsimCardId.java b/src/com/android/settings/network/helper/QueryEsimCardId.java
new file mode 100644
index 00000000000..dc29c47f133
--- /dev/null
+++ b/src/com/android/settings/network/helper/QueryEsimCardId.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network.helper;
+
+import android.telephony.TelephonyManager;
+import android.telephony.UiccCardInfo;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.Callable;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+
+/**
+ * This is a Callable class which queries valid card ID for eSIM
+ */
+public class QueryEsimCardId implements Callable {
+ private static final String TAG = "QueryEsimCardId";
+
+ private TelephonyManager mTelephonyManager;
+
+ /**
+ * Constructor of class
+ * @param TelephonyManager
+ */
+ public QueryEsimCardId(TelephonyManager telephonyManager) {
+ mTelephonyManager = telephonyManager;
+ }
+
+ /**
+ * Implementation of Callable
+ * @return card ID(s) in AtomicIntegerArray
+ */
+ public AtomicIntegerArray call() {
+ List cardInfos = mTelephonyManager.getUiccCardsInfo();
+ if (cardInfos == null) {
+ return new AtomicIntegerArray(0);
+ }
+ return new AtomicIntegerArray(cardInfos.stream()
+ .filter(Objects::nonNull)
+ .filter(cardInfo -> (!cardInfo.isRemovable()
+ && (cardInfo.getCardId() != TelephonyManager.UNSUPPORTED_CARD_ID)))
+ .mapToInt(UiccCardInfo::getCardId)
+ .toArray());
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/helper/QuerySimSlotIndex.java b/src/com/android/settings/network/helper/QuerySimSlotIndex.java
new file mode 100644
index 00000000000..b70a148d2e4
--- /dev/null
+++ b/src/com/android/settings/network/helper/QuerySimSlotIndex.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network.helper;
+
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.telephony.UiccSlotInfo;
+
+import java.util.Arrays;
+import java.util.concurrent.Callable;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+
+/**
+ * This is a Callable class which query slot index within device
+ */
+public class QuerySimSlotIndex implements Callable {
+ private static final String TAG = "QuerySimSlotIndex";
+
+ private TelephonyManager mTelephonyManager;
+ private boolean mDisabledSlotsIncluded;
+ private boolean mOnlySlotWithSim;
+
+ /**
+ * Constructor of class
+ * @param TelephonyManager
+ * @param disabledSlotsIncluded query both active and inactive slots when true,
+ * only query active slot when false.
+ * @param onlySlotWithSim query slot index with SIM available when true,
+ * include absent ones when false.
+ */
+ public QuerySimSlotIndex(TelephonyManager telephonyManager,
+ boolean disabledSlotsIncluded, boolean onlySlotWithSim) {
+ mTelephonyManager = telephonyManager;
+ mDisabledSlotsIncluded = disabledSlotsIncluded;
+ mOnlySlotWithSim = onlySlotWithSim;
+ }
+
+ /**
+ * Implementation of Callable
+ * @return slot index in AtomicIntegerArray
+ */
+ public AtomicIntegerArray call() {
+ UiccSlotInfo [] slotInfo = mTelephonyManager.getUiccSlotsInfo();
+ if (slotInfo == null) {
+ return new AtomicIntegerArray(0);
+ }
+ int slotIndexFilter = mOnlySlotWithSim ? 0 : SubscriptionManager.INVALID_SIM_SLOT_INDEX;
+ return new AtomicIntegerArray(Arrays.stream(slotInfo)
+ .filter(slot -> filterSlot(slot))
+ .mapToInt(slot -> mapToSlotIndex(slot))
+ .filter(slotIndex -> (slotIndex >= slotIndexFilter))
+ .toArray());
+ }
+
+ protected boolean filterSlot(UiccSlotInfo slotInfo) {
+ if (mDisabledSlotsIncluded) {
+ return true;
+ }
+ if (slotInfo == null) {
+ return false;
+ }
+ return slotInfo.getIsActive();
+ }
+
+ protected int mapToSlotIndex(UiccSlotInfo slotInfo) {
+ if (slotInfo == null) {
+ return SubscriptionManager.INVALID_SIM_SLOT_INDEX;
+ }
+ if (slotInfo.getCardStateInfo() == UiccSlotInfo.CARD_STATE_INFO_ABSENT) {
+ return SubscriptionManager.INVALID_SIM_SLOT_INDEX;
+ }
+ return slotInfo.getLogicalSlotIdx();
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/helper/SelectableSubscriptions.java b/src/com/android/settings/network/helper/SelectableSubscriptions.java
new file mode 100644
index 00000000000..436e84c08b7
--- /dev/null
+++ b/src/com/android/settings/network/helper/SelectableSubscriptions.java
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network.helper;
+
+import android.content.Context;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+
+import androidx.annotation.Keep;
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.network.helper.SubscriptionAnnotation;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.Future;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.function.Supplier;
+import java.util.function.UnaryOperator;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+
+/**
+ * This is a Callable class to query user selectable subscription list.
+ *
+ * Here's example of creating a Callable for retrieving a list of SubscriptionAnnotation
+ * for active Subscriptions:
+ *
+ * List result = (new SelectableSubscriptions(context, false)).call();
+ *
+ * Another example for retrieving a list of SubscriptionAnnotation for all subscriptions
+ * accessible in another thread.
+ *
+ * List result = ExecutorService.submit(
+ * new SelectableSubscriptions(context, true)).get()
+ */
+public class SelectableSubscriptions implements Callable> {
+ private static final String TAG = "SelectableSubscriptions";
+
+ private Context mContext;
+ private Supplier> mSubscriptions;
+ private Predicate mFilter;
+ private Function, List> mFinisher;
+
+ /**
+ * Constructor of class
+ * @param context
+ * @param disabledSlotsIncluded query both active and inactive slots when true,
+ * only query active slot when false.
+ */
+ public SelectableSubscriptions(Context context, boolean disabledSlotsIncluded) {
+ mContext = context;
+ mSubscriptions = disabledSlotsIncluded ? (() -> getAvailableSubInfoList(context)) :
+ (() -> getActiveSubInfoList(context));
+ mFilter = disabledSlotsIncluded ? (subAnno -> subAnno.isExisted()) :
+ (subAnno -> subAnno.isActive());
+ mFinisher = annoList -> annoList;
+ }
+
+ /**
+ * Add UnaryOperator to be applied to the final result.
+ * @param finisher a function to be applied to the final result.
+ */
+ public SelectableSubscriptions addFinisher(
+ UnaryOperator> finisher) {
+ mFinisher = mFinisher.andThen(finisher);
+ return this;
+ }
+
+ /**
+ * Implementation of Callable
+ * @return a list of SubscriptionAnnotation which is user selectable
+ */
+ public List call() {
+ TelephonyManager telMgr = mContext.getSystemService(TelephonyManager.class);
+
+ try {
+ // query in background thread
+ Future eSimCardId =
+ ThreadUtils.postOnBackgroundThread(new QueryEsimCardId(telMgr));
+
+ // query in background thread
+ Future simSlotIndex =
+ ThreadUtils.postOnBackgroundThread(
+ new QuerySimSlotIndex(telMgr, true, true));
+
+ // query in background thread
+ Future activeSimSlotIndex =
+ ThreadUtils.postOnBackgroundThread(
+ new QuerySimSlotIndex(telMgr, false, true));
+
+ List subInfoList = mSubscriptions.get();
+
+ // wait for result from background thread
+ List eSimCardIdList = atomicToList(eSimCardId.get());
+ List simSlotIndexList = atomicToList(simSlotIndex.get());
+ List activeSimSlotIndexList = atomicToList(activeSimSlotIndex.get());
+
+ // build a list of SubscriptionAnnotation
+ return IntStream.range(0, subInfoList.size())
+ .mapToObj(subInfoIndex ->
+ new SubscriptionAnnotation.Builder(subInfoList, subInfoIndex))
+ .map(annoBdr -> annoBdr.build(mContext,
+ eSimCardIdList, simSlotIndexList, activeSimSlotIndexList))
+ .filter(mFilter)
+ .collect(Collectors.collectingAndThen(Collectors.toList(), mFinisher));
+ } catch (Exception exception) {
+ Log.w(TAG, "Fail to request subIdList", exception);
+ }
+ return Collections.emptyList();
+ }
+
+ protected List getSubInfoList(Context context,
+ Function> convertor) {
+ SubscriptionManager subManager = getSubscriptionManager(context);
+ return (subManager == null) ? Collections.emptyList() : convertor.apply(subManager);
+ }
+
+ protected SubscriptionManager getSubscriptionManager(Context context) {
+ return context.getSystemService(SubscriptionManager.class);
+ }
+
+ protected List getAvailableSubInfoList(Context context) {
+ return getSubInfoList(context, SubscriptionManager::getAvailableSubscriptionInfoList);
+ }
+
+ protected List getActiveSubInfoList(Context context) {
+ return getSubInfoList(context, SubscriptionManager::getActiveSubscriptionInfoList);
+ }
+
+ @Keep
+ @VisibleForTesting
+ protected static List atomicToList(AtomicIntegerArray atomicIntArray) {
+ if (atomicIntArray == null) {
+ return Collections.emptyList();
+ }
+ return IntStream.range(0, atomicIntArray.length())
+ .map(idx -> atomicIntArray.get(idx)).boxed()
+ .collect(Collectors.toList());
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/helper/SubscriptionAnnotation.java b/src/com/android/settings/network/helper/SubscriptionAnnotation.java
new file mode 100644
index 00000000000..fae5b9bbb4b
--- /dev/null
+++ b/src/com/android/settings/network/helper/SubscriptionAnnotation.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network.helper;
+
+import android.content.Context;
+import android.os.ParcelUuid;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+
+import androidx.annotation.Keep;
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.network.SubscriptionUtil;
+
+import java.util.List;
+
+/**
+ * This is a class helps providing additional info required by UI
+ * based on SubscriptionInfo.
+ */
+public class SubscriptionAnnotation {
+ private static final String TAG = "SubscriptionAnnotation";
+
+ private SubscriptionInfo mSubInfo;
+ private int mOrderWithinList;
+ private int mType = TYPE_UNKNOWN;
+ private boolean mIsExisted;
+ private boolean mIsActive;
+ private boolean mIsAllowToDisplay;
+
+ public static final ParcelUuid EMPTY_UUID = ParcelUuid.fromString("0-0-0-0-0");
+
+ public static final int TYPE_UNKNOWN = 0x0;
+ public static final int TYPE_PSIM = 0x1;
+ public static final int TYPE_ESIM = 0x2;
+
+ /**
+ * Builder class for SubscriptionAnnotation
+ */
+ public static class Builder {
+
+ private List mSubInfoList;
+ private int mIndexWithinList;
+
+ /**
+ * Constructor of builder
+ * @param subInfoList list of subscription info
+ * @param indexWithinList target index within list provided
+ */
+ public Builder(List subInfoList, int indexWithinList) {
+ mSubInfoList = subInfoList;
+ mIndexWithinList = indexWithinList;
+ }
+
+ public SubscriptionAnnotation build(Context context, List eSimCardId,
+ List simSlotIndex, List activeSimSlotIndex) {
+ return new SubscriptionAnnotation(mSubInfoList, mIndexWithinList, context,
+ eSimCardId, simSlotIndex, activeSimSlotIndex);
+ }
+ }
+
+ /**
+ * Constructor of class
+ */
+ @Keep
+ @VisibleForTesting
+ protected SubscriptionAnnotation(List subInfoList, int subInfoIndex,
+ Context context, List eSimCardId,
+ List simSlotIndex, List activeSimSlotIndexList) {
+ if ((subInfoIndex < 0) || (subInfoIndex >= subInfoList.size())) {
+ return;
+ }
+ mSubInfo = subInfoList.get(subInfoIndex);
+ if (mSubInfo == null) {
+ return;
+ }
+
+ mOrderWithinList = subInfoIndex;
+ mType = mSubInfo.isEmbedded() ? TYPE_ESIM : TYPE_PSIM;
+ if (mType == TYPE_ESIM) {
+ int cardId = mSubInfo.getCardId();
+ mIsExisted = eSimCardId.contains(cardId);
+ if (mIsExisted) {
+ mIsActive = activeSimSlotIndexList.contains(mSubInfo.getSimSlotIndex());
+ mIsAllowToDisplay = isDisplayAllowed(context);
+ }
+ return;
+ }
+
+ mIsExisted = simSlotIndex.contains(mSubInfo.getSimSlotIndex());
+ mIsActive = activeSimSlotIndexList.contains(mSubInfo.getSimSlotIndex());
+ if (mIsExisted) {
+ mIsAllowToDisplay = isDisplayAllowed(context);
+ }
+ }
+
+ // the index provided during construction of Builder
+ @Keep
+ public int getOrderingInList() {
+ return mOrderWithinList;
+ }
+
+ // type of subscription
+ @Keep
+ public int getType() {
+ return mType;
+ }
+
+ // if a subscription is existed within device
+ @Keep
+ public boolean isExisted() {
+ return mIsExisted;
+ }
+
+ // if a subscription is currently ON
+ @Keep
+ public boolean isActive() {
+ return mIsActive;
+ }
+
+ // if display of subscription is allowed
+ @Keep
+ public boolean isDisplayAllowed() {
+ return mIsAllowToDisplay;
+ }
+
+ // the subscription ID
+ @Keep
+ public int getSubscriptionId() {
+ return (mSubInfo == null) ? SubscriptionManager.INVALID_SUBSCRIPTION_ID :
+ mSubInfo.getSubscriptionId();
+ }
+
+ // the grouping UUID
+ @Keep
+ public ParcelUuid getGroupUuid() {
+ return (mSubInfo == null) ? null : mSubInfo.getGroupUuid();
+ }
+
+ // the SubscriptionInfo
+ @Keep
+ public SubscriptionInfo getSubInfo() {
+ return mSubInfo;
+ }
+
+ private boolean isDisplayAllowed(Context context) {
+ return SubscriptionUtil.isSubscriptionVisible(
+ context.getSystemService(SubscriptionManager.class), context, mSubInfo);
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/helper/SubscriptionGrouping.java b/src/com/android/settings/network/helper/SubscriptionGrouping.java
new file mode 100644
index 00000000000..cfb5ea92650
--- /dev/null
+++ b/src/com/android/settings/network/helper/SubscriptionGrouping.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network.helper;
+
+import android.os.ParcelUuid;
+
+import androidx.annotation.Keep;
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.network.helper.SubscriptionAnnotation;
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.function.UnaryOperator;
+import java.util.stream.Collectors;
+
+/**
+ * A UnaryOperator for converting a list of SubscriptionAnnotation into
+ * another list of SubscriptionAnnotation based on group UUID.
+ * Only one SubscriptionAnnotation with entries with same (valid) group UUID would be kept.
+ *
+ * Here's an example when applying this operation as a finisher of SelectableSubscriptions:
+ *
+ * Callable callable = (new SelectableSubscriptions(context, true))
+ * .addFinisher(new SubscriptionGrouping());
+ *
+ * List result = ExecutorService.submit(callable).get()
+ */
+public class SubscriptionGrouping
+ implements UnaryOperator> {
+
+ // implementation of UnaryOperator
+ public List apply(List listOfSubscriptions) {
+ // group by GUID
+ Map> groupedSubInfoList =
+ listOfSubscriptions.stream()
+ .filter(Objects::nonNull)
+ .collect(Collectors.groupingBy(subAnno -> getGroupUuid(subAnno)));
+
+ // select best one from subscription(s) within the same group
+ groupedSubInfoList.replaceAll((uuid, annoList) -> {
+ if ((uuid == SubscriptionAnnotation.EMPTY_UUID) || (annoList.size() <= 1)) {
+ return annoList;
+ }
+ return Collections.singletonList(selectBestFromList(annoList));
+ });
+
+ // build a stream of subscriptions
+ return groupedSubInfoList.values()
+ .stream().flatMap(List::stream).collect(Collectors.toList());
+ }
+
+ @Keep
+ @VisibleForTesting
+ protected ParcelUuid getGroupUuid(SubscriptionAnnotation subAnno) {
+ ParcelUuid groupUuid = subAnno.getGroupUuid();
+ return (groupUuid == null) ? SubscriptionAnnotation.EMPTY_UUID : groupUuid;
+ }
+
+ protected SubscriptionAnnotation selectBestFromList(List annoList) {
+ Comparator annoSelector = (anno1, anno2) -> {
+ if (anno1.isDisplayAllowed() != anno2.isDisplayAllowed()) {
+ return anno1.isDisplayAllowed() ? -1 : 1;
+ }
+ if (anno1.isActive() != anno2.isActive()) {
+ return anno1.isActive() ? -1 : 1;
+ }
+ if (anno1.isExisted() != anno2.isExisted()) {
+ return anno1.isExisted() ? -1 : 1;
+ }
+ return 0;
+ };
+ annoSelector = annoSelector
+ // eSIM in front of pSIM
+ .thenComparingInt(anno -> -anno.getType())
+ // subscription ID in reverse order
+ .thenComparingInt(anno -> -anno.getSubscriptionId());
+ return annoList.stream().sorted(annoSelector).findFirst().orElse(null);
+ }
+}
diff --git a/src/com/android/settings/network/telephony/MobileNetworkActivity.java b/src/com/android/settings/network/telephony/MobileNetworkActivity.java
index 7a0e590c4d6..78b1f6a627d 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkActivity.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkActivity.java
@@ -19,6 +19,7 @@
import static com.android.settings.SettingsActivity.EXTRA_FRAGMENT_ARG_KEY;
import android.app.ActionBar;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.UserManager;
@@ -43,6 +44,8 @@
import com.android.settings.core.SettingsBaseActivity;
import com.android.settings.network.ProxySubscriptionManager;
import com.android.settings.network.SubscriptionUtil;
+import com.android.settings.network.helper.SelectableSubscriptions;
+import com.android.settings.network.helper.SubscriptionAnnotation;
import java.util.List;
@@ -129,15 +132,13 @@ protected void onCreate(Bundle savedInstanceState) {
: ((startIntent != null)
? startIntent.getIntExtra(Settings.EXTRA_SUB_ID, SUB_ID_NULL)
: SUB_ID_NULL);
+ // perform registration after mCurSubscriptionId been configured.
+ registerActiveSubscriptionsListener();
final SubscriptionInfo subscription = getSubscription();
maybeShowContactDiscoveryDialog(subscription);
- // Since onChanged() will take place immediately when addActiveSubscriptionsListener(),
- // perform registration after mCurSubscriptionId been configured.
- registerActiveSubscriptionsListener();
-
- updateSubscriptions(subscription, savedInstanceState);
+ updateSubscriptions(subscription, null);
}
@VisibleForTesting
@@ -246,15 +247,21 @@ void updateSubscriptions(SubscriptionInfo subscription, Bundle savedInstanceStat
*/
@VisibleForTesting
SubscriptionInfo getSubscription() {
+ List subList =
+ (new SelectableSubscriptions(this, true)).call();
+ SubscriptionAnnotation currentSubInfo = null;
if (mCurSubscriptionId != SUB_ID_NULL) {
- return getSubscriptionForSubId(mCurSubscriptionId);
+ currentSubInfo = subList.stream()
+ .filter(SubscriptionAnnotation::isDisplayAllowed)
+ .filter(subAnno -> (subAnno.getSubscriptionId() == mCurSubscriptionId))
+ .findFirst().orElse(null);
}
- final List subInfos = getProxySubscriptionManager()
- .getActiveSubscriptionsInfo();
- if (CollectionUtils.isEmpty(subInfos)) {
- return null;
+ if (currentSubInfo == null) {
+ currentSubInfo = subList.stream()
+ .filter(SubscriptionAnnotation::isDisplayAllowed)
+ .findFirst().orElse(null);
}
- return subInfos.get(0);
+ return (currentSubInfo == null) ? null : currentSubInfo.getSubInfo();
}
@VisibleForTesting
@@ -289,7 +296,7 @@ void switchFragment(SubscriptionInfo subInfo) {
final Fragment fragment = new MobileNetworkSettings();
fragment.setArguments(bundle);
fragmentTransaction.replace(R.id.content_frame, fragment, fragmentTag);
- fragmentTransaction.commit();
+ fragmentTransaction.commitAllowingStateLoss();
}
private void removeContactDiscoveryDialog(int subId) {
diff --git a/src/com/android/settings/network/telephony/NetworkProviderWorker.java b/src/com/android/settings/network/telephony/NetworkProviderWorker.java
index a6b438a93e2..c731bfd2edd 100644
--- a/src/com/android/settings/network/telephony/NetworkProviderWorker.java
+++ b/src/com/android/settings/network/telephony/NetworkProviderWorker.java
@@ -20,7 +20,10 @@
import static com.android.settingslib.mobile.MobileMappings.getIconKey;
import static com.android.settingslib.mobile.MobileMappings.mapIconSets;
+import android.content.BroadcastReceiver;
import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
@@ -60,11 +63,22 @@ public class NetworkProviderWorker extends WifiScanWorker implements
private SubscriptionsChangeListener mSubscriptionsListener;
private MobileDataEnabledListener mDataEnabledListener;
private DataConnectivityListener mConnectivityListener;
- private int mDefaultDataSubid = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private final Context mContext;
final Handler mHandler;
@VisibleForTesting
final NetworkProviderTelephonyCallback mTelephonyCallback;
+ private final BroadcastReceiver mConnectionChangeReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ final String action = intent.getAction();
+ if (action.equals(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED)) {
+ Log.d(TAG, "ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED");
+ updateListener();
+ }
+ }
+ };
+
private TelephonyManager mTelephonyManager;
private Config mConfig = null;
private TelephonyDisplayInfo mTelephonyDisplayInfo =
@@ -80,10 +94,10 @@ public NetworkProviderWorker(Context context, Uri uri) {
mMobileDataObserver = new DataContentObserver(mHandler, this);
mContext = context;
- mDefaultDataSubid = getDefaultDataSubscriptionId();
-
+ mDefaultDataSubId = getDefaultDataSubscriptionId();
+ Log.d(TAG, "Init, SubId: " + mDefaultDataSubId);
mTelephonyManager = mContext.getSystemService(
- TelephonyManager.class).createForSubscriptionId(mDefaultDataSubid);
+ TelephonyManager.class).createForSubscriptionId(mDefaultDataSubId);
mTelephonyCallback = new NetworkProviderTelephonyCallback();
mSubscriptionsListener = new SubscriptionsChangeListener(context, this);
mDataEnabledListener = new MobileDataEnabledListener(context, this);
@@ -98,12 +112,15 @@ public NetworkProviderWorker(Context context, Uri uri) {
@Override
protected void onSlicePinned() {
Log.d(TAG, "onSlicePinned");
- mMobileDataObserver.register(mContext, mDefaultDataSubid);
+ mMobileDataObserver.register(mContext, mDefaultDataSubId);
mSubscriptionsListener.start();
- mDataEnabledListener.start(mDefaultDataSubid);
+ mDataEnabledListener.start(mDefaultDataSubId);
mConnectivityListener.start();
mSignalStrengthListener.resume();
mTelephonyManager.registerTelephonyCallback(mHandler::post, mTelephonyCallback);
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
+ mContext.registerReceiver(mConnectionChangeReceiver, filter);
super.onSlicePinned();
}
@@ -116,6 +133,9 @@ protected void onSliceUnpinned() {
mConnectivityListener.stop();
mSignalStrengthListener.pause();
mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback);
+ if (mConnectionChangeReceiver != null) {
+ mContext.unregisterReceiver(mConnectionChangeReceiver);
+ }
super.onSliceUnpinned();
}
@@ -137,14 +157,14 @@ public void updateSlice() {
notifySliceChange();
}
- @Override
- public void onSubscriptionsChanged() {
+ private void updateListener() {
int defaultDataSubId = getDefaultDataSubscriptionId();
- if (mDefaultDataSubid == defaultDataSubId) {
- Log.d(TAG, "onSubscriptionsChanged: no change");
+ if (mDefaultDataSubId == defaultDataSubId) {
+ Log.d(TAG, "DDS: no change");
return;
}
- Log.d(TAG, "onSubscriptionsChanged: defaultDataSubId:" + defaultDataSubId);
+ mDefaultDataSubId = defaultDataSubId;
+ Log.d(TAG, "DDS: defaultDataSubId:" + mDefaultDataSubId);
if (SubscriptionManager.isUsableSubscriptionId(defaultDataSubId)) {
mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback);
mMobileDataObserver.unregister(mContext);
@@ -160,6 +180,12 @@ public void onSubscriptionsChanged() {
updateSlice();
}
+ @Override
+ public void onSubscriptionsChanged() {
+ Log.d(TAG, "onSubscriptionsChanged");
+ updateListener();
+ }
+
@Override
public void onSignalStrengthChanged() {
Log.d(TAG, "onSignalStrengthChanged");
@@ -283,7 +309,7 @@ Config getConfig(Context context) {
*/
public String getNetworkTypeDescription() {
return updateNetworkTypeName(mContext, mConfig, mTelephonyDisplayInfo,
- mDefaultDataSubid);
+ mDefaultDataSubId);
}
/**
diff --git a/tests/robotests/src/com/android/settings/applications/AppStateNotificationBridgeTest.java b/tests/robotests/src/com/android/settings/applications/AppStateNotificationBridgeTest.java
index e59361e0981..21a2947e547 100644
--- a/tests/robotests/src/com/android/settings/applications/AppStateNotificationBridgeTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppStateNotificationBridgeTest.java
@@ -53,6 +53,7 @@
import android.os.UserHandle;
import android.os.UserManager;
import android.view.ViewGroup;
+import android.widget.CompoundButton;
import android.widget.Switch;
import com.android.settings.R;
@@ -550,12 +551,10 @@ public void testFrequencyComparator() {
}
@Test
- public void testSwitchOnClickListener() {
- ViewGroup parent = mock(ViewGroup.class);
+ public void testSwitchOnChangeListener() {
Switch toggle = mock(Switch.class);
when(toggle.isChecked()).thenReturn(true);
when(toggle.isEnabled()).thenReturn(true);
- when(parent.findViewById(anyInt())).thenReturn(toggle);
AppEntry entry = mock(AppEntry.class);
entry.info = new ApplicationInfo();
@@ -563,10 +562,9 @@ public void testSwitchOnClickListener() {
entry.info.uid = 1356;
entry.extraInfo = new NotificationsSentState();
- ViewGroup.OnClickListener listener = mBridge.getSwitchOnClickListener(entry);
- listener.onClick(parent);
+ CompoundButton.OnCheckedChangeListener listener = mBridge.getSwitchOnCheckedListener(entry);
+ listener.onCheckedChanged(toggle, true);
- verify(toggle).toggle();
verify(mBackend).setNotificationsEnabledForPackage(
entry.info.packageName, entry.info.uid, true);
assertThat(((NotificationsSentState) entry.extraInfo).blocked).isFalse();
diff --git a/tests/robotests/src/com/android/settings/applications/manageapplications/ApplicationViewHolderTest.java b/tests/robotests/src/com/android/settings/applications/manageapplications/ApplicationViewHolderTest.java
index 0e7d1bd71c4..be01a8acb02 100644
--- a/tests/robotests/src/com/android/settings/applications/manageapplications/ApplicationViewHolderTest.java
+++ b/tests/robotests/src/com/android/settings/applications/manageapplications/ApplicationViewHolderTest.java
@@ -35,6 +35,8 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import java.util.concurrent.CountDownLatch;
+
@RunWith(RobolectricTestRunner.class)
public class ApplicationViewHolderTest {
@@ -123,13 +125,16 @@ public void twoTouchTarget() {
@Test
public void updateSwitch() {
+ final CountDownLatch latch = new CountDownLatch(1);
mView = ApplicationViewHolder.newView(new FrameLayout(mContext), true);
mHolder = new ApplicationViewHolder(mView);
- mHolder.updateSwitch(v -> {
- } /* listener */, true, true);
+ mHolder.updateSwitch((buttonView, isChecked) -> latch.countDown(), true, true);
assertThat(mHolder.mSwitch.isChecked()).isTrue();
assertThat(mHolder.mSwitch.isEnabled()).isTrue();
- assertThat(mHolder.mWidgetContainer.hasOnClickListeners()).isTrue();
+ assertThat(mHolder.mSwitch.isFocusable()).isTrue();
+ assertThat(mHolder.mSwitch.isClickable()).isTrue();
+ mHolder.mSwitch.callOnClick();
+ assertThat(latch.getCount()).isEqualTo(0);
}
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiverTest.java
index b6bbe8ad6fc..21ec48e0f06 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiverTest.java
@@ -98,6 +98,20 @@ public void onReceive_usbConnectedMtpEnabled_invokeCallback() {
POWER_ROLE_NONE, DATA_ROLE_NONE);
}
+ @Test
+ public void onReceive_usbConnectedNcmEnabled_invokesCallback() {
+ Intent intent = new Intent();
+ intent.setAction(UsbManager.ACTION_USB_STATE);
+ intent.putExtra(UsbManager.USB_CONNECTED, true);
+ intent.putExtra(UsbManager.USB_FUNCTION_NCM, true);
+ intent.putExtra(UsbManager.USB_DATA_UNLOCKED, true);
+
+ mReceiver.onReceive(mContext, intent);
+
+ verify(mListener).onUsbConnectionChanged(/* connected */ true, UsbManager.FUNCTION_NCM,
+ POWER_ROLE_NONE, DATA_ROLE_NONE);
+ }
+
@Test
public void onReceive_usbPortStatus_invokeCallback() {
final Intent intent = new Intent();
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java
index f3e1bcedc7b..eee63980753 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java
@@ -103,6 +103,14 @@ public void getDefaultKey_isMidi_shouldReturnMidi() {
.isEqualTo(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_MIDI));
}
+ @Test
+ public void getDefaultKey_isNcm_returnsRndis() {
+ when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_NCM);
+
+ assertThat(mFragment.getDefaultKey())
+ .isEqualTo(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_RNDIS));
+ }
+
@Test
public void setDefaultKey_isNone_shouldSetNone() {
mFragment.setDefaultKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_NONE));
@@ -149,6 +157,19 @@ public void setDefaultKey_functionRndis_startTetheringInvoked() {
UsbManager.FUNCTION_MTP);
}
+ @Test
+ public void setDefaultKey_functionNcm_invokesStartTethering() {
+ doReturn(UsbManager.FUNCTION_MTP).when(mUsbBackend).getCurrentFunctions();
+
+ mFragment.setDefaultKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_NCM));
+
+ verify(mTetheringManager).startTethering(eq(TetheringManager.TETHERING_USB),
+ any(),
+ eq(mFragment.mOnStartTetheringCallback));
+ assertThat(mFragment.mPreviousFunctions).isEqualTo(
+ UsbManager.FUNCTION_MTP);
+ }
+
@Test
public void setDefaultKey_functionOther_setCurrentFunctionInvoked() {
doReturn(UsbManager.FUNCTION_MTP).when(mUsbBackend).getCurrentFunctions();
@@ -161,14 +182,24 @@ public void setDefaultKey_functionOther_setCurrentFunctionInvoked() {
}
@Test
- public void onTetheringStarted_setDefaultUsbFunctions() {
- mFragment.mPreviousFunctions = UsbManager.FUNCTION_PTP;
+ public void onTetheringStarted_currentFunctionsIsRndis_setsRndisAsDefaultUsbFunctions() {
+ mFragment.mCurrentFunctions = UsbManager.FUNCTION_RNDIS;
mFragment.mOnStartTetheringCallback.onTetheringStarted();
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_RNDIS);
}
+ @Test
+ public void onTetheringStarted_currentFunctionsIsNcm_setsNcmAsDefaultUsbFunctions() {
+ mFragment.mCurrentFunctions = UsbManager.FUNCTION_NCM;
+
+ mFragment.mOnStartTetheringCallback.onTetheringStarted();
+
+ verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_NCM);
+ }
+
+
@Test
public void onPause_receivedRndis_shouldSetRndis() {
mFragment.mIsStartTethering = true;
@@ -229,6 +260,18 @@ public void onPause_receivedMidi_shouldSetMidi() {
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_MIDI);
}
+ @Test
+ public void onPause_receivedNcm_setsNcm() {
+ mFragment.mIsStartTethering = true;
+ mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ true,
+ UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
+
+ mFragment.onPause();
+
+ verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_NCM);
+ assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_NCM);
+ }
+
@Test
public void usbIsPluginAndUsbTetheringIsOn_startTetheringIsInvoked() {
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
@@ -243,6 +286,20 @@ public void usbIsPluginAndUsbTetheringIsOn_startTetheringIsInvoked() {
eq(mFragment.mOnStartTetheringCallback));
}
+ @Test
+ public void usbIsPluginAndUsbTetheringIsOn_receivedNcm_startsTethering() {
+ when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_NCM);
+
+ mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ false,
+ UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
+ mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ true,
+ UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
+
+ verify(mTetheringManager).startTethering(eq(TetheringManager.TETHERING_USB),
+ any(),
+ eq(mFragment.mOnStartTetheringCallback));
+ }
+
@Test
public void usbIsNotPluginAndUsbTetheringIsOn_startTetheringIsNotInvoked() {
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java
index 9118645ce61..f94ab6a5d96 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java
@@ -167,6 +167,19 @@ public void displayRefresh_accessoryEnabled_shouldCheckSwitches() {
assertThat(prefs.get(0).isChecked()).isTrue();
}
+ @Test
+ public void displayRefresh_ncmEnabled_checksSwitches() {
+ when(mUsbBackend.areFunctionsSupported(anyLong())).thenReturn(true);
+
+ mDetailsFunctionsController.refresh(true, UsbManager.FUNCTION_NCM, POWER_ROLE_SINK,
+ DATA_ROLE_DEVICE);
+ List prefs = getRadioPreferences();
+
+ assertThat(prefs.get(1).getKey())
+ .isEqualTo(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_RNDIS));
+ assertThat(prefs.get(1).isChecked()).isTrue();
+ }
+
@Test
public void onClickMtp_noneEnabled_shouldEnableMtp() {
when(mUsbBackend.areFunctionsSupported(anyLong())).thenReturn(true);
@@ -253,6 +266,20 @@ public void onRadioButtonClicked_functionRndis_startTetheringInvoked() {
UsbManager.FUNCTION_MTP);
}
+ @Test
+ public void onRadioButtonClicked_functionNcm_startsTethering() {
+ mRadioButtonPreference.setKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_NCM));
+ doReturn(UsbManager.FUNCTION_MTP).when(mUsbBackend).getCurrentFunctions();
+
+ mDetailsFunctionsController.onRadioButtonClicked(mRadioButtonPreference);
+
+ verify(mTetheringManager).startTethering(eq(TetheringManager.TETHERING_USB),
+ any(),
+ eq(mDetailsFunctionsController.mOnStartTetheringCallback));
+ assertThat(mDetailsFunctionsController.mPreviousFunction).isEqualTo(
+ UsbManager.FUNCTION_MTP);
+ }
+
@Test
public void onRadioButtonClicked_functionOther_setCurrentFunctionInvoked() {
mRadioButtonPreference.setKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_PTP));
diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java
index bfb3d0c510b..7d4323051c3 100644
--- a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java
+++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java
@@ -35,7 +35,9 @@
import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.PersistableBundle;
+import android.telephony.AccessNetworkConstants;
import android.telephony.CarrierConfigManager;
+import android.telephony.NetworkRegistrationInfo;
import android.telephony.ServiceState;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
@@ -169,7 +171,7 @@ public void createCarrierRow_hasDdsAndActiveNetworkIsNotCellular_verifyTitleAndS
CharSequence expectedSubtitle = Html.fromHtml("5G", Html.FROM_HTML_MODE_LEGACY);
String networkType = "5G";
mockConnections(true, ServiceState.STATE_IN_SERVICE, expectDisplayName,
- mTelephonyManager.DATA_CONNECTED, true);
+ true, true);
addNetworkTransportType(NetworkCapabilities.TRANSPORT_WIFI);
ListBuilder.RowBuilder testRowBuild = mProviderModelSliceHelper.createCarrierRow(
@@ -189,7 +191,7 @@ public void createCarrierRow_wifiOnhasDdsAndActiveNetworkIsCellular_verifyTitleA
"preference_summary_default_combination", connectedText, networkType),
Html.FROM_HTML_MODE_LEGACY);
mockConnections(true, ServiceState.STATE_IN_SERVICE, expectDisplayName,
- mTelephonyManager.DATA_CONNECTED, true);
+ true, true);
addNetworkTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
ListBuilder.RowBuilder testRowBuild = mProviderModelSliceHelper.createCarrierRow(
@@ -208,7 +210,7 @@ public void createCarrierRow_noNetworkAvailable_verifyTitleAndSummary() {
String networkType = "";
mockConnections(true, ServiceState.STATE_OUT_OF_SERVICE, expectDisplayName,
- mTelephonyManager.DATA_DISCONNECTED, false);
+ false, false);
addNetworkTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
ListBuilder.RowBuilder testRowBuild = mProviderModelSliceHelper.createCarrierRow(
@@ -221,7 +223,7 @@ public void createCarrierRow_noNetworkAvailable_verifyTitleAndSummary() {
@Test
public void getMobileDrawable_noCarrierData_getMobileDrawable() throws Throwable {
mockConnections(false, ServiceState.STATE_OUT_OF_SERVICE, "",
- mTelephonyManager.DATA_DISCONNECTED, true);
+ false, true);
when(mConnectivityManager.getActiveNetwork()).thenReturn(null);
Drawable expectDrawable = mock(Drawable.class);
@@ -232,7 +234,7 @@ public void getMobileDrawable_noCarrierData_getMobileDrawable() throws Throwable
@Test
public void getMobileDrawable_hasCarrierDataAndDataIsOnCellular_getMobileDrawable()
throws Throwable {
- mockConnections(true, ServiceState.STATE_IN_SERVICE, "", mTelephonyManager.DATA_CONNECTED,
+ mockConnections(true, ServiceState.STATE_IN_SERVICE, "", true,
true);
addNetworkTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
Drawable drawable = mock(Drawable.class);
@@ -246,7 +248,7 @@ public void getMobileDrawable_hasCarrierDataAndDataIsOnCellular_getMobileDrawabl
@Test
public void getMobileDrawable_hasCarrierDataAndDataIsOnWifi_getMobileDrawable()
throws Throwable {
- mockConnections(true, ServiceState.STATE_IN_SERVICE, "", mTelephonyManager.DATA_CONNECTED,
+ mockConnections(true, ServiceState.STATE_IN_SERVICE, "", true,
true);
Drawable drawable = mock(Drawable.class);
addNetworkTransportType(NetworkCapabilities.TRANSPORT_WIFI);
@@ -263,12 +265,22 @@ private void addNetworkTransportType(int networkType) {
}
private void mockConnections(boolean isDataEnabled, int serviceState, String expectDisplayName,
- int getDataState, boolean isWifiEnabled) {
+ boolean dataRegState, boolean isWifiEnabled) {
when(mTelephonyManager.isDataEnabled()).thenReturn(isDataEnabled);
when(mWifiManager.isWifiEnabled()).thenReturn(isWifiEnabled);
- when(mTelephonyManager.getDataState()).thenReturn(getDataState);
when(mServiceState.getState()).thenReturn(serviceState);
+
+ NetworkRegistrationInfo regInfo = new NetworkRegistrationInfo.Builder()
+ .setDomain(NetworkRegistrationInfo.DOMAIN_PS)
+ .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
+ .setRegistrationState(dataRegState ? NetworkRegistrationInfo.REGISTRATION_STATE_HOME
+ : NetworkRegistrationInfo.REGISTRATION_STATE_NOT_REGISTERED_SEARCHING)
+ .setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_LTE)
+ .build();
+ when(mServiceState.getNetworkRegistrationInfo(NetworkRegistrationInfo.DOMAIN_PS,
+ AccessNetworkConstants.TRANSPORT_TYPE_WWAN)).thenReturn(regInfo);
+
when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName);
}
diff --git a/tests/unit/src/com/android/settings/network/ProxySubscriptionManagerTest.java b/tests/unit/src/com/android/settings/network/ProxySubscriptionManagerTest.java
new file mode 100644
index 00000000000..afe9d19c485
--- /dev/null
+++ b/tests/unit/src/com/android/settings/network/ProxySubscriptionManagerTest.java
@@ -0,0 +1,228 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class ProxySubscriptionManagerTest {
+
+ private Context mContext;
+ @Mock
+ private ActiveSubscriptionsListener mActiveSubscriptionsListener;
+ @Mock
+ private GlobalSettingsChangeListener mAirplaneModeOnSettingsChangeListener;
+
+ @Mock
+ private Lifecycle mLifecycle_ON_PAUSE;
+ @Mock
+ private Lifecycle mLifecycle_ON_RESUME;
+ @Mock
+ private Lifecycle mLifecycle_ON_DESTROY;
+
+ private Client mClient1;
+ private Client mClient2;
+
+ @Before
+ @UiThreadTest
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(ApplicationProvider.getApplicationContext());
+
+ doReturn(Lifecycle.State.CREATED).when(mLifecycle_ON_PAUSE).getCurrentState();
+ doReturn(Lifecycle.State.STARTED).when(mLifecycle_ON_RESUME).getCurrentState();
+ doReturn(Lifecycle.State.DESTROYED).when(mLifecycle_ON_DESTROY).getCurrentState();
+
+ mClient1 = new Client();
+ mClient1.setLifecycle(mLifecycle_ON_RESUME);
+ mClient2 = new Client();
+ mClient2.setLifecycle(mLifecycle_ON_RESUME);
+ }
+
+ private ProxySubscriptionManager getInstance(Context context) {
+ ProxySubscriptionManager proxy =
+ Mockito.mock(ProxySubscriptionManager.class, Mockito.CALLS_REAL_METHODS);
+ proxy.init(context, mActiveSubscriptionsListener, mAirplaneModeOnSettingsChangeListener);
+ proxy.notifySubscriptionInfoMightChanged();
+ return proxy;
+ }
+
+ public class Client implements ProxySubscriptionManager.OnActiveSubscriptionChangedListener {
+ private Lifecycle lifeCycle;
+ private int numberOfCallback;
+
+ public void onChanged() {
+ numberOfCallback++;
+ }
+
+ public Lifecycle getLifecycle() {
+ return lifeCycle;
+ }
+
+ public int getCallbackCount() {
+ return numberOfCallback;
+ }
+
+ public void setLifecycle(Lifecycle lifecycle) {
+ lifeCycle = lifecycle;
+ }
+ }
+
+ @Test
+ @UiThreadTest
+ public void addActiveSubscriptionsListener_addOneClient_getNoCallback() {
+ ProxySubscriptionManager proxy = getInstance(mContext);
+
+ proxy.addActiveSubscriptionsListener(mClient1);
+ assertThat(mClient1.getCallbackCount()).isEqualTo(0);
+ }
+
+ @Test
+ @UiThreadTest
+ public void addActiveSubscriptionsListener_addOneClient_changeOnSimGetCallback() {
+ ProxySubscriptionManager proxy = getInstance(mContext);
+
+ proxy.addActiveSubscriptionsListener(mClient1);
+ assertThat(mClient1.getCallbackCount()).isEqualTo(0);
+
+ proxy.notifySubscriptionInfoMightChanged();
+ assertThat(mClient1.getCallbackCount()).isEqualTo(1);
+ }
+
+ @Test
+ @UiThreadTest
+ public void addActiveSubscriptionsListener_addOneClient_noCallbackUntilUiResume() {
+ ProxySubscriptionManager proxy = getInstance(mContext);
+
+ mClient1.setLifecycle(mLifecycle_ON_PAUSE);
+
+ proxy.addActiveSubscriptionsListener(mClient1);
+ assertThat(mClient1.getCallbackCount()).isEqualTo(0);
+
+ proxy.notifySubscriptionInfoMightChanged();
+ assertThat(mClient1.getCallbackCount()).isEqualTo(0);
+
+ mClient1.setLifecycle(mLifecycle_ON_RESUME);
+ proxy.onStart();
+ Assert.assertTrue(mClient1.getCallbackCount() > 0);
+
+ mClient1.setLifecycle(mLifecycle_ON_PAUSE);
+ proxy.onStop();
+ int latestCallbackCount = mClient1.getCallbackCount();
+
+ proxy.notifySubscriptionInfoMightChanged();
+ assertThat(mClient1.getCallbackCount()).isEqualTo(latestCallbackCount);
+ }
+
+ @Test
+ @UiThreadTest
+ public void addActiveSubscriptionsListener_addTwoClient_eachClientGetNoCallback() {
+ ProxySubscriptionManager proxy = getInstance(mContext);
+
+ proxy.addActiveSubscriptionsListener(mClient1);
+ assertThat(mClient1.getCallbackCount()).isEqualTo(0);
+
+ proxy.addActiveSubscriptionsListener(mClient2);
+ assertThat(mClient1.getCallbackCount()).isEqualTo(0);
+ assertThat(mClient2.getCallbackCount()).isEqualTo(0);
+ }
+
+ @Test
+ @UiThreadTest
+ public void addActiveSubscriptionsListener_addTwoClient_callbackOnlyWhenResume() {
+ ProxySubscriptionManager proxy = getInstance(mContext);
+
+ proxy.addActiveSubscriptionsListener(mClient1);
+ assertThat(mClient1.getCallbackCount()).isEqualTo(0);
+
+ proxy.addActiveSubscriptionsListener(mClient2);
+ assertThat(mClient1.getCallbackCount()).isEqualTo(0);
+ assertThat(mClient2.getCallbackCount()).isEqualTo(0);
+
+ mClient1.setLifecycle(mLifecycle_ON_PAUSE);
+ proxy.onStop();
+ assertThat(mClient1.getCallbackCount()).isEqualTo(0);
+ assertThat(mClient2.getCallbackCount()).isEqualTo(0);
+
+ proxy.notifySubscriptionInfoMightChanged();
+ assertThat(mClient1.getCallbackCount()).isEqualTo(0);
+ assertThat(mClient2.getCallbackCount()).isEqualTo(1);
+
+ mClient1.setLifecycle(mLifecycle_ON_RESUME);
+ proxy.onStart();
+ Assert.assertTrue(mClient1.getCallbackCount() > 0);
+ assertThat(mClient2.getCallbackCount()).isEqualTo(1);
+ }
+
+ @Test
+ @UiThreadTest
+ public void removeActiveSubscriptionsListener_removedClient_noCallback() {
+ ProxySubscriptionManager proxy = getInstance(mContext);
+
+ proxy.addActiveSubscriptionsListener(mClient1);
+ assertThat(mClient1.getCallbackCount()).isEqualTo(0);
+
+ proxy.notifySubscriptionInfoMightChanged();
+ assertThat(mClient1.getCallbackCount()).isEqualTo(1);
+
+ proxy.removeActiveSubscriptionsListener(mClient1);
+ assertThat(mClient1.getCallbackCount()).isEqualTo(1);
+
+ proxy.notifySubscriptionInfoMightChanged();
+ assertThat(mClient1.getCallbackCount()).isEqualTo(1);
+ }
+
+ @Test
+ @UiThreadTest
+ public void notifySubscriptionInfoMightChanged_destroyedClient_autoRemove() {
+ ProxySubscriptionManager proxy = getInstance(mContext);
+
+ proxy.addActiveSubscriptionsListener(mClient1);
+ assertThat(mClient1.getCallbackCount()).isEqualTo(0);
+
+ proxy.notifySubscriptionInfoMightChanged();
+ assertThat(mClient1.getCallbackCount()).isEqualTo(1);
+
+ mClient1.setLifecycle(mLifecycle_ON_DESTROY);
+ proxy.notifySubscriptionInfoMightChanged();
+ assertThat(mClient1.getCallbackCount()).isEqualTo(1);
+
+ mClient1.setLifecycle(mLifecycle_ON_RESUME);
+ proxy.notifySubscriptionInfoMightChanged();
+ assertThat(mClient1.getCallbackCount()).isEqualTo(1);
+ }
+}
diff --git a/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java
index a955020e7cd..cb78d19714c 100644
--- a/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java
@@ -42,6 +42,8 @@
import android.os.Looper;
import android.os.UserManager;
import android.provider.Settings;
+import android.telephony.AccessNetworkConstants;
+import android.telephony.NetworkRegistrationInfo;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.SubscriptionInfo;
@@ -430,7 +432,7 @@ public void displayPreference_providerAndHasMultiSimAndActive_connectedAndRat()
doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
setupGetIconConditions(sub.get(0).getSubscriptionId(), true, true,
- TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE);
+ true, ServiceState.STATE_IN_SERVICE);
doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext);
doReturn(networkType)
.when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false));
@@ -451,7 +453,7 @@ public void displayPreference_providerAndHasMultiSimAndActiveCarrierWifi_connect
doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
setupGetIconConditions(sub.get(0).getSubscriptionId(), false, true,
- TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE);
+ true, ServiceState.STATE_IN_SERVICE);
doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext);
doReturn(networkType)
.when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(true));
@@ -476,7 +478,7 @@ public void displayPreference_providerAndHasMultiSimButMobileDataOff_notAutoConn
doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
setupGetIconConditions(sub.get(0).getSubscriptionId(), false, false,
- TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE);
+ true, ServiceState.STATE_IN_SERVICE);
doReturn(networkType)
.when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false));
@@ -496,7 +498,7 @@ public void displayPreference_providerAndHasMultiSimAndNotActive_showRatOnly() {
doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
setupGetIconConditions(sub.get(0).getSubscriptionId(), false, true,
- TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE);
+ true, ServiceState.STATE_IN_SERVICE);
doReturn(networkType)
.when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false));
when(mTelephonyManager.isDataEnabled()).thenReturn(true);
@@ -532,7 +534,7 @@ public void onTelephonyDisplayInfoChanged_providerAndHasMultiSimAndActive_connec
doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
setupGetIconConditions(sub.get(0).getSubscriptionId(), true, true,
- TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE);
+ true, ServiceState.STATE_IN_SERVICE);
doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext);
doReturn(networkType)
.when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false));
@@ -558,7 +560,7 @@ public void onTelephonyDisplayInfoChanged_providerAndHasMultiSimAndNotActive_sho
doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
setupGetIconConditions(sub.get(0).getSubscriptionId(), false, true,
- TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE);
+ true, ServiceState.STATE_IN_SERVICE);
doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext);
doReturn(networkType)
.when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false));
@@ -585,7 +587,7 @@ public void onTelephonyDisplayInfoChanged_providerAndHasMultiSimAndOutOfService_
doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
setupGetIconConditions(sub.get(0).getSubscriptionId(), false, true,
- TelephonyManager.DATA_DISCONNECTED, ServiceState.STATE_OUT_OF_SERVICE);
+ false, ServiceState.STATE_OUT_OF_SERVICE);
doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext);
doReturn(networkType)
.when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(false));
@@ -665,7 +667,7 @@ public void getIcon_cellularIsActive_iconColorIsAccentDefaultColor() {
Drawable icon = mock(Drawable.class);
doReturn(icon).when(sInjector).getIcon(any(), anyInt(), anyInt(), eq(false));
setupGetIconConditions(sub.get(0).getSubscriptionId(), true, true,
- TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE);
+ true, ServiceState.STATE_IN_SERVICE);
mController.onResume();
mController.displayPreference(mPreferenceScreen);
@@ -683,7 +685,7 @@ public void getIcon_dataStateConnectedAndMobileDataOn_iconIsSignalIcon() {
Drawable icon = mock(Drawable.class);
doReturn(icon).when(sInjector).getIcon(any(), anyInt(), anyInt(), eq(false));
setupGetIconConditions(subId, false, true,
- TelephonyManager.DATA_CONNECTED, ServiceState.STATE_IN_SERVICE);
+ true, ServiceState.STATE_IN_SERVICE);
mController.onResume();
mController.displayPreference(mPreferenceScreen);
Drawable actualIcon = mPreferenceCategory.getPreference(0).getIcon();
@@ -702,12 +704,22 @@ public void getIcon_voiceInServiceAndMobileDataOff_iconIsSignalIcon() {
doReturn(icon).when(sInjector).getIcon(any(), anyInt(), anyInt(), eq(false));
setupGetIconConditions(subId, false, false,
- TelephonyManager.DATA_DISCONNECTED, ServiceState.STATE_IN_SERVICE);
+ false, ServiceState.STATE_IN_SERVICE);
mController.onResume();
mController.displayPreference(mPreferenceScreen);
Drawable actualIcon = mPreferenceCategory.getPreference(0).getIcon();
- doReturn(TelephonyManager.DATA_CONNECTED).when(mTelephonyManagerForSub).getDataState();
+ ServiceState ss = mock(ServiceState.class);
+ NetworkRegistrationInfo regInfo = new NetworkRegistrationInfo.Builder()
+ .setDomain(NetworkRegistrationInfo.DOMAIN_PS)
+ .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
+ .setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_HOME)
+ .setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_LTE)
+ .build();
+ doReturn(ss).when(mTelephonyManagerForSub).getServiceState();
+ doReturn(regInfo).when(ss).getNetworkRegistrationInfo(
+ NetworkRegistrationInfo.DOMAIN_PS,
+ AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
assertThat(icon).isEqualTo(actualIcon);
}
@@ -733,14 +745,23 @@ public void connectCarrierNetwork_isNotDataEnabled_helperNeverConnect() {
}
private void setupGetIconConditions(int subId, boolean isActiveCellularNetwork,
- boolean isDataEnable, int dataState, int servicestate) {
+ boolean isDataEnable, boolean dataState, int servicestate) {
doReturn(mTelephonyManagerForSub).when(mTelephonyManager).createForSubscriptionId(subId);
doReturn(isActiveCellularNetwork).when(sInjector).isActiveCellularNetwork(mContext);
doReturn(isDataEnable).when(mTelephonyManagerForSub).isDataEnabled();
- doReturn(dataState).when(mTelephonyManagerForSub).getDataState();
ServiceState ss = mock(ServiceState.class);
+ NetworkRegistrationInfo regInfo = new NetworkRegistrationInfo.Builder()
+ .setDomain(NetworkRegistrationInfo.DOMAIN_PS)
+ .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
+ .setRegistrationState(dataState ? NetworkRegistrationInfo.REGISTRATION_STATE_HOME
+ : NetworkRegistrationInfo.REGISTRATION_STATE_NOT_REGISTERED_SEARCHING)
+ .setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_LTE)
+ .build();
doReturn(ss).when(mTelephonyManagerForSub).getServiceState();
doReturn(servicestate).when(ss).getState();
+ doReturn(regInfo).when(ss).getNetworkRegistrationInfo(
+ NetworkRegistrationInfo.DOMAIN_PS,
+ AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
}
private List setupMockSubscriptions(int count) {
diff --git a/tests/unit/src/com/android/settings/network/helper/SelectableSubscriptionsTest.java b/tests/unit/src/com/android/settings/network/helper/SelectableSubscriptionsTest.java
new file mode 100644
index 00000000000..04e91222d60
--- /dev/null
+++ b/tests/unit/src/com/android/settings/network/helper/SelectableSubscriptionsTest.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network.helper;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+import java.util.concurrent.atomic.AtomicIntegerArray;
+
+@RunWith(AndroidJUnit4.class)
+public class SelectableSubscriptionsTest {
+
+ @Before
+ public void setUp() {
+ }
+
+ @Test
+ public void atomicToList_nullInput_getNoneNullEmptyList() {
+ List result = SelectableSubscriptions.atomicToList(null);
+
+ assertThat(result.size()).isEqualTo(0);
+ }
+
+ @Test
+ public void atomicToList_zeroLengthInput_getEmptyList() {
+ List result = SelectableSubscriptions.atomicToList(new AtomicIntegerArray(0));
+
+ assertThat(result.size()).isEqualTo(0);
+ }
+
+ @Test
+ public void atomicToList_subIdInArray_getList() {
+ AtomicIntegerArray array = new AtomicIntegerArray(3);
+ array.set(0, 3);
+ array.set(1, 7);
+ array.set(2, 4);
+
+ List result = SelectableSubscriptions.atomicToList(array);
+
+ assertThat(result.size()).isEqualTo(3);
+ assertThat(result.get(0)).isEqualTo(3);
+ assertThat(result.get(1)).isEqualTo(7);
+ assertThat(result.get(2)).isEqualTo(4);
+ }
+}
diff --git a/tests/unit/src/com/android/settings/network/helper/SubscriptionGroupingTest.java b/tests/unit/src/com/android/settings/network/helper/SubscriptionGroupingTest.java
new file mode 100644
index 00000000000..97bdb7433a7
--- /dev/null
+++ b/tests/unit/src/com/android/settings/network/helper/SubscriptionGroupingTest.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network.helper;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.ParcelUuid;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settings.network.helper.SubscriptionAnnotation;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Arrays;
+import java.util.List;
+
+@RunWith(AndroidJUnit4.class)
+public class SubscriptionGroupingTest {
+
+ private ParcelUuid mMockUuid;
+
+ private Context mContext;
+ private SubscriptionGrouping mTarget;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ mMockUuid = ParcelUuid.fromString("1-1-1-1-1");
+ mTarget = spy(new SubscriptionGrouping());
+ }
+
+ @Test
+ public void apply_multipleEntriesWithSameGroupUuid_onlyOneLeft() {
+ SubscriptionAnnotation subAnno1 = new TestSubAnnotation(1,
+ SubscriptionAnnotation.TYPE_ESIM, true, true, mMockUuid);
+ SubscriptionAnnotation subAnno2 = new TestSubAnnotation(2,
+ SubscriptionAnnotation.TYPE_PSIM, true, true, mMockUuid);
+ SubscriptionAnnotation subAnno3 = new TestSubAnnotation(3,
+ SubscriptionAnnotation.TYPE_ESIM, true, true, mMockUuid);
+ doReturn(mMockUuid).when(mTarget).getGroupUuid(any());
+
+ List result = mTarget
+ .apply(Arrays.asList(subAnno2, subAnno1, subAnno3));
+ assertThat(result.size()).isEqualTo(1);
+ assertThat(result.get(0)).isEqualTo(subAnno3);
+ }
+
+ @Test
+ public void apply_multipleEntriesWithSameGroupUuid_disabledOneIsAvoided() {
+ SubscriptionAnnotation subAnno1 = new TestSubAnnotation(1,
+ SubscriptionAnnotation.TYPE_ESIM, true, true, mMockUuid);
+ SubscriptionAnnotation subAnno2 = new TestSubAnnotation(2,
+ SubscriptionAnnotation.TYPE_PSIM, true, true, mMockUuid);
+ SubscriptionAnnotation subAnno3 = new TestSubAnnotation(3,
+ SubscriptionAnnotation.TYPE_ESIM, false, false, mMockUuid);
+ doReturn(mMockUuid).when(mTarget).getGroupUuid(any());
+
+ List result = mTarget
+ .apply(Arrays.asList(subAnno2, subAnno1, subAnno3));
+ assertThat(result.size()).isEqualTo(1);
+ assertThat(result.get(0)).isEqualTo(subAnno1);
+ }
+
+ private class TestSubAnnotation extends SubscriptionAnnotation {
+ private int mSubId;
+ private int mSimType;
+ private boolean mIsActive;
+ private boolean mIsDisplayAllowed;
+ private ParcelUuid mUuid;
+
+ private TestSubAnnotation(int subId, int simType,
+ boolean isActive, boolean isDisplayAllowed, ParcelUuid guuid) {
+ super(null, -1, null, null, null, null);
+ mSubId = subId;
+ mSimType = simType;
+ mIsActive = isActive;
+ mIsDisplayAllowed = isDisplayAllowed;
+ mUuid = guuid;
+ }
+
+ @Override
+ public int getSubscriptionId() {
+ return mSubId;
+ }
+
+ @Override
+ public int getType() {
+ return mSimType;
+ }
+
+ @Override
+ public boolean isExisted() {
+ return true;
+ }
+
+ @Override
+ public boolean isActive() {
+ return mIsActive;
+ }
+
+ @Override
+ public boolean isDisplayAllowed() {
+ return mIsDisplayAllowed;
+ }
+
+ @Override
+ public ParcelUuid getGroupUuid() {
+ return mUuid;
+ }
+ }
+}