Merge "Auto downgrade emergency video call to audio-only if not supported." into nyc-dev
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 2bb833e..5c7ce40 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Foonnommer"</string>
<string name="block_button" msgid="8822290682524373357">"Blokkeer"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Net die toesteleienaar kan geblokkeerde nommers bekyk en bestuur."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Oortjie om te deblokkeer"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokkering is tydelik af"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Nadat jy \'n noodnommer gebel het of \'n boodskap daarheen gestuur het, sal blokkering afgeskakel word sodat nooddienste jou kan kontak."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Heraktiveer nou"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index d2f1a91..f85f4b0 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"የስልክ ቁጥር"</string>
<string name="block_button" msgid="8822290682524373357">"አግድ"</string>
<string name="non_primary_user" msgid="5180129233352533459">"የመሣሪያው ባለቤት ብቻ ነው የታገዱ ቁጥሮችን ማየት እና ማስተዳደር የሚችለው።"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"እንዳይታገድ ለማድረግ መታ ያድርጉ"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ማገድ ለጊዜው ጠፍቷል"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"የድንገተኛ አደጋ ቁጥር ከደወሉ ወይ ከጻፉ በኋላ፣ የድንገተኛ አደጋ አገልግሎቶች እርስዎን መገናኘት እንዲሚችል ለማረጋገጥ ማገጃ ጠፍቷል።"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"አሁን እንደገና-ያንቁ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 84d6f74..010321f 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"رقم الهاتف"</string>
<string name="block_button" msgid="8822290682524373357">"حظر"</string>
<string name="non_primary_user" msgid="5180129233352533459">"يمكن لمالك الجهاز فقط الاطلاع على الأرقام المحظورة وإدارتها."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"انقر لإلغاء الحظر"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"تم إيقاف الحظر مؤقتًا"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"بعد الاتصال الهاتفي أو إرسال رسالة نصية إلى رقم طوارئ، يتم إيقاف تشغيل الحظر لضمان تمكن خدمات الطوارئ من الاتصال بك."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"إعادة تمكين الآن"</string>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index 2d7505d..321d121 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefon nömrəsi"</string>
<string name="block_button" msgid="8822290682524373357">"Blok edin"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Yalnız cihaz sahibi blok edilmiş nömrələrə baxa və idarə edə bilər."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Kiliddən çıxarmaq üçün basın"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Bloklama müvəqqəti olaraq deaktiv edildi"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Fövqəladə nömrəyə zəng etdikdən və ya mesaj yazdıqdan sonra, fövqəladə xidmətlərin Sizinlə əlaqə yarada biləcəyinə əmin olmaq üçün bloklama deaktiv edildi."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"İndi yenidən aktiv edin"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index a02e68a..20f0000 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Broj telefona"</string>
<string name="block_button" msgid="8822290682524373357">"Blokiraj"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Samo vlasnik uređaja može da pregleda blokirane brojeve i upravlja njima."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Dodirnite da biste deblokirali"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokiranje je privremeno isključeno"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Kad pozovete broj hitne službe ili na taj broj pošaljete SMS, blokiranje se isključuje da bi hitne službe mogle da vas kontaktiraju."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Ponovo omogući"</string>
diff --git a/res/values-be-rBY/strings.xml b/res/values-be-rBY/strings.xml
index fda6e66..6a13e42 100644
--- a/res/values-be-rBY/strings.xml
+++ b/res/values-be-rBY/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Нумар тэлефона"</string>
<string name="block_button" msgid="8822290682524373357">"Заблакiраваць"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Толькі ўладальнік прылады можа праглядаць блакіраваныя нумары і кіраваць імі."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Закладка для разблакіравання"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Блакіроўка часова адключана"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Пасля тэлефанавання або адпраўкі SMS на экстранны нумар блакіроўка адключаецца, каб аварыйныя службы маглі звязацца з вамі."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Паўторна ўключыць зараз"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index a1a5e70..242245e 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Телефонен номер"</string>
<string name="block_button" msgid="8822290682524373357">"Блокиране"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Само собственикът на устройството може да преглежда и управлява блокираните номера."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Раздел за отблокиране"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Блокирането временно е изключено"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"След като наберете или изпратите SMS до номер за спешни повиквания, блокирането се изключва, за да могат спешните служби да се свържат с вас."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Повторно активиране сега"</string>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index 826231e..393712e 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"ফোন নম্বর"</string>
<string name="block_button" msgid="8822290682524373357">"অবরোধ করুন"</string>
<string name="non_primary_user" msgid="5180129233352533459">"শুধুমাত্র ডিভাইসের মালিক এই অবরুদ্ধ নম্বরগুলিকে দেখতে এবং পরিচালনা করতে পারেন৷"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"অবরোধ মুক্ত করতে আলতো চাপ দিন"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"অবরুদ্ধ করা সাময়িকভাবে বন্ধ আছে"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"আপনি কোনো জরুরি নম্বরে ডায়াল করার বা এসএমএস পাঠানোর পরে, জরুরি পরিষেবাগুলি যাতে আপনাকে কল করতে পারে সেই বিষয়টি নিশ্চিত করতে অবরুদ্ধ করার ব্যবস্থাটিকে বন্ধ করা হয়৷"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"এখনই পুনরায় সক্ষম করুন"</string>
diff --git a/res/values-bs-rBA/strings.xml b/res/values-bs-rBA/strings.xml
index 955b952..98259ad 100644
--- a/res/values-bs-rBA/strings.xml
+++ b/res/values-bs-rBA/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonski broj"</string>
<string name="block_button" msgid="8822290682524373357">"Blokiraj"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Samo vlasnik uređaja može pregledati i upravljati blokiranim brojevima."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Dodirnite da odblokirate"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokiranje je privremeno isključeno"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Nakon što pozovete ili pošaljete poruku na broj za hitne slučajeve, blokiranje se isključuje da bi vas hitna služba mogla kontaktirati."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Ponovo omogući sada"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index a8639d8..b7b00b4 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Número de telèfon"</string>
<string name="block_button" msgid="8822290682524373357">"Bloqueja"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Només el propietari del dispositiu pot consultar i gestionar els números bloquejats."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Toca per desbloquejar-lo"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"El bloqueig està desactivat temporalment"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Quan marques un número d\'emergència o hi envies un missatge de text, el bloqueig es desactiva per garantir que els serveis d\'emergència puguin contactar amb tu."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Torna a activar ara"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 6d7e5d9..9143eee 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonní číslo"</string>
<string name="block_button" msgid="8822290682524373357">"Blokovat"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Prohlížet a spravovat blokovaná čísla může pouze vlastník zařízení."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Klepnutím číslo odblokujete"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokování je dočasně vypnuto"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Když vytočíte nebo pošlete zprávu na číslo tísňové linky, blokování je vypnuto, aby vás pohotovostní služby mohly kontaktovat."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Znovu zapnout"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 7a97940..6542b7c 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonnummer"</string>
<string name="block_button" msgid="8822290682524373357">"Bloker"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Det er kun ejeren af en enhed, der kan se og administrere blokerede numre."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Tryk for at ophæve blokeringen"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokering er midlertidigt slået fra"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Når du har ringet eller sendt en sms-besked til alarmcentralen, bliver blokering slået fra for at sikre, at alarmcentralen kan komme i kontakt med dig."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Genaktiver nu"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index fdb148d..d45bdc6 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonnummer"</string>
<string name="block_button" msgid="8822290682524373357">"Blockieren"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Nur der Geräteeigentümer kann blockierte Nummern sehen und verwalten."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Zum Aufheben der Blockierung tippen"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blockierung vorübergehend aus"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Nachdem du eine Notrufnummer gewählt oder per SMS gesendet hast, wird die Blockierung aufgehoben, damit dich die Notfalldienste erreichen können."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Jetzt neu aktivieren"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 9c09ded..510f734 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Αριθμός τηλεφώνου"</string>
<string name="block_button" msgid="8822290682524373357">"Αποκλεισμός"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Μόνο ο κάτοχος της συσκευής μπορεί να προβάλλει και να διαχειρίζεται αποκλεισμένους αριθμούς."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Πατήστε για να καταργήσετε τον αποκλεισμό"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Αποκλεισμός προσωρινά απενεργοποιημένος"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Αφού καλέσετε ή στείλετε μήνυμα κειμένου προς έναν αριθμό έκτακτης ανάγκης, ο αποκλεισμός απενεργοποιείται, προκειμένου να διασφαλιστεί ότι είναι δυνατή η επικοινωνία μαζί σας από τις υπηρεσίες έκτακτης ανάγκης."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Επανενεργοποίηση τώρα"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index afb1fcc..9054f3a 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telephone number"</string>
<string name="block_button" msgid="8822290682524373357">"Block"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Only the device owner can view and manage blocked numbers."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Tab to unblock"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blocking temporarily off"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"When you dial or text an emergency number, blocking is turned off to ensure that emergency services can contact you."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Re-enable now"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index afb1fcc..9054f3a 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telephone number"</string>
<string name="block_button" msgid="8822290682524373357">"Block"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Only the device owner can view and manage blocked numbers."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Tab to unblock"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blocking temporarily off"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"When you dial or text an emergency number, blocking is turned off to ensure that emergency services can contact you."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Re-enable now"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index afb1fcc..9054f3a 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telephone number"</string>
<string name="block_button" msgid="8822290682524373357">"Block"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Only the device owner can view and manage blocked numbers."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Tab to unblock"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blocking temporarily off"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"When you dial or text an emergency number, blocking is turned off to ensure that emergency services can contact you."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Re-enable now"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index fe2913d..3fb7a52 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Número de teléfono"</string>
<string name="block_button" msgid="8822290682524373357">"Bloquear"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Solo el propietario del dispositivo puede ver y administrar los números bloqueados."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Presionar para desbloquear"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"El bloqueo se desactivó de forma temporal"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Luego de que llamas o envías un mensaje a un número de emergencia, el bloqueo se desactiva para garantizar que los servicios de emergencia puedan ponerse en contacto contigo."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Volver a habilitar ahora"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 07e8fa9..526bf2d 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Número de teléfono"</string>
<string name="block_button" msgid="8822290682524373357">"Bloquear"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Solo el propietario del dispositivo puede ver y administrar los números bloqueados."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Toca para desbloquear"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Bloqueo desactivado temporalmente"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Después de llamar o enviar un SMS a un número de emergencias, el bloqueo se desactiva para que los servicios de emergencias puedan contactarte."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Volver a habilitarlo ahora"</string>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index f83361f..3d3bf33 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefoninumber"</string>
<string name="block_button" msgid="8822290682524373357">"Blokeeri"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Ainult seadme omanik saab blokeeritud numbreid vaadata ja hallata."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Puudutage deblokeerimiseks"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokeerimine on ajutiselt välja lülitatud"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Kui helistate või saadate sõnumi hädaabinumbrile, lülitatakse blokeerimine välja, et hädaabiteenused saaksid teiega ühendust võtta."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Luba kohe uuesti"</string>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index c8195bc..987af2b 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefono-zenbakia"</string>
<string name="block_button" msgid="8822290682524373357">"Blokeatu"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Gailuaren jabeak soilik ikus eta kudea ditzake blokeatutako zenbakiak."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Sakatu desblokeatzeko"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Aldi baterako desgaitu da blokeatzeko aukera"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Larrialdietarako zenbakia markatu ondoren, edo zenbait horretara testu-mezua bidali ondoren, desaktibatu egingo da blokeatzeko aukera, larrialdi-zerbitzuak zurekin harremanetan jarriko direla ziurtatzeko."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Gaitu berriro"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 114ac18..1d87336 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"شماره تلفن"</string>
<string name="block_button" msgid="8822290682524373357">"مسدود کردن"</string>
<string name="non_primary_user" msgid="5180129233352533459">"فقط مالک دستگاه میتواند شمارههای مسدودشده را مدیریت کند."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"ضربه برای گشودن"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"امکان مسدود کردن موقتاً خاموش شده است."</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"بعد از گرفتن شماره اضطراری یا ارسال پیام نوشتاری به آن شماره، برای اطمینان از اینکه سرویسهای اضطراری با شما تماس بگیرند، امکان مسدود کردن خاموش شده است."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"اکنون دوباره فعال شود"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 3854d4d..a1275f8 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Puhelinnumero"</string>
<string name="block_button" msgid="8822290682524373357">"Estä"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Vain laitteen omistaja voi katsella ja hallinnoida estettyjä numeroita."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Kumoa esto koskettamalla."</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Esto on väliaikaisesti pois käytöstä"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Hätänumeroon soittamisen tai tekstiviestin lähettämisen jälkeen esto poistetaan käytöstä, jotta hätäviranomaiset voivat olla yhteydessä sinuun."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Ota nyt uudelleen käyttöön"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index bd19177..90f629d 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Numéro de téléphone"</string>
<string name="block_button" msgid="8822290682524373357">"Bloquer"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Seul le propriétaire de l\'appareil peut afficher et gérer les numéros bloqués."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Touchez ici pour débloquer"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Le blocage est temporairement désactivé"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Lorsque vous communiquez avec les services d\'urgence par téléphone ou par message texte, la fonctionnalité de blocage est désactivée pour que ceux-ci puissent vous joindre."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Réactiver le blocage maintenant"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 3f78ecc..ba1fba5 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Numéro de téléphone"</string>
<string name="block_button" msgid="8822290682524373357">"Bloquer"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Seul le propriétaire de l\'appareil peut afficher et gérer les numéros bloqués."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Appuyer pour débloquer"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Le blocage est temporairement désactivé."</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Si vous composez un numéro d\'urgence ou que vous envoyez un SMS à ce type de numéro, le blocage est désactivé pour que les services d\'urgence puissent vous contacter."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Réactiver"</string>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index 42aabec..df102a1 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Número de teléfono"</string>
<string name="block_button" msgid="8822290682524373357">"Bloquear"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Só o propietario do dispositivo pode ver e xestionar os números bloqueados."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Toca para desbloquear"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"O bloqueo desactivouse temporalmente"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Despois de facer unha chamada ou enviar unha mensaxe a un número de emerxencia, desactívase o bloqueo para garantir que os servizos de emerxencia poidan poñerse en contacto contigo."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Volver activar agora"</string>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index 014bba1..e62f9b8 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"ફોન નંબર"</string>
<string name="block_button" msgid="8822290682524373357">"અવરોધિત કરો"</string>
<string name="non_primary_user" msgid="5180129233352533459">"ફક્ત ઉપકરણના માલિક અવરોધિત નંબરોને જોઈ અને સંચાલિત કરી શકે છે."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"અનાવરોધિત કરવા માટે ટૅબ કરો"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"અવરોધિત કરવાનું અસ્થાયીરૂપે બંધ છે"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"તમે કોઈ કટોકટીનો નંબર ડાયલ કરો કે ટેક્સ્ટ કરો તે પછી, કટોકટીની સેવાઓ તમારો સંપર્ક કરી શકે તેની ખાતરી કરવા માટે અવરોધિત કરવું બંધ કરવામાં આવે છે."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"હવે ફરીથી સક્ષમ કરો"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index bcc0f14..0480c32 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"फ़ोन नंबर"</string>
<string name="block_button" msgid="8822290682524373357">"अवरुद्ध करें"</string>
<string name="non_primary_user" msgid="5180129233352533459">"केवल डिवाइस स्वामी अवरुद्ध किए गए नंबर देख और प्रबंधित कर सकते हैं."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"अनवरोधित करने के लिए टैब करें"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"अवरोधन अस्थायी रूप से बंद है"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"आपातकालीन नंबर डायल करने या उस पर लेख संदेश भेजने के बाद, अवरोधन बंद हो जाता है ताकि आपातकालीन सेवाएं आपसे संपर्क कर सकें."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"अभी पुन: सक्षम करें"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index a9544ad..745055b 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonski broj"</string>
<string name="block_button" msgid="8822290682524373357">"Blokiraj"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Samo vlasnik uređaja može pregledavati i kontrolirati blokirane brojeve."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Dodirnite da biste deblokirali"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokiranje je privremeno isključeno"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Nakon što nazovete broj hitne službe ili pošaljete poruku na njega, blokada će se isključiti kako bi vam se hitna služba mogla javiti."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Ponovno omogući sada"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 01657d0..b2b2393 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonszám"</string>
<string name="block_button" msgid="8822290682524373357">"Letiltás"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Csak az eszköz tulajdonosa nézheti meg és kezelheti a letiltott számokat."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Koppintson a letiltás feloldásához"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"A tiltás átmenetileg felfüggesztve"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Ha segélyhívószámot tárcsáz, vagy segélyhívószámra küld SMS-t, a rendszer feloldja a tiltást, hogy a sürgősségi szolgáltatások felvehessék Önnel a kapcsolatot."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Újbóli engedélyezés most"</string>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index ce5e412..1eac551 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Հեռախոսահամարը"</string>
<string name="block_button" msgid="8822290682524373357">"Արգելափակել"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Միայն սարքի սեփականատերը կարող է դիտել և կառավարել արգելափակված համարները:"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Հպեք՝ արգելաբացելու համար"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Արգելափակումը ժամանակավորապես անջատվել է"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Արտակարգ իրավիճակի հեռախոսահամար հավաքելուց հետո հեռախոսի արգելափակումը կանջատվի, որպեսզի արտակարգ իրավիճակների ծառայությունները կարողանան կապվել ձեզ հետ:"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Նորից միացնել"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index c383677..afaba72 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Nomor telepon"</string>
<string name="block_button" msgid="8822290682524373357">"Blokir"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Hanya pemilik perangkat yang dapat melihat dan mengelola nomor yang diblokir."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Tab untuk membatalkan pemblokiran"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokir dinonaktifkan sementara"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Setelah Anda menelepon atau mengirim SMS ke nomor gawat darurat, blokir akan dinonaktifkan agar layanan gawat darurat tersebut dapat menghubungi Anda."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Aktifkan lagi sekarang"</string>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index a34cf2b..3c6d8aa 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Símanúmer"</string>
<string name="block_button" msgid="8822290682524373357">"Setja á bannlista"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Aðeins eigandi tækisins getur skoðað og stjórnað númerum á bannlista."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Flipi til að taka númer af bannlista"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Slökkt tímabundið á lokun símtala"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Eftir að þú hefur hringt eða sent skilaboð í neyðarnúmer verður slökkt á lokun símtala til að tryggja að neyðarþjónusta geti haft samband við þig."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Kveikja aftur núna"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 2a61ddd..d388d18 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Numero di telefono"</string>
<string name="block_button" msgid="8822290682524373357">"Blocca"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Soltanto il proprietario del dispositivo può visualizzare e gestire i numeri bloccati."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Tocca per sbloccare"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blocco temporaneamente disattivato"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Dopo aver chiamato o inviato un SMS a un numero di emergenza, il blocco viene disattivato per garantire che i servizi di emergenza possano contattarti."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Riattiva ora"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 934fb6c..b61ed2a 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"מספר טלפון"</string>
<string name="block_button" msgid="8822290682524373357">"חסום"</string>
<string name="non_primary_user" msgid="5180129233352533459">"רק בעל המכשיר יכול להציג ולנהל מספרים חסומים."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"הקש כדי לבטל את החסימה"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"החסימה הושבתה זמנית"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"לאחר חיוג או שליחת הודעה למספר חירום, החסימה תושבת כדי ששירותי החירום יוכלו ליצור איתך קשר."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"הפעל מחדש עכשיו"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 3dc4c80..032350c 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"電話番号"</string>
<string name="block_button" msgid="8822290682524373357">"ブロック"</string>
<string name="non_primary_user" msgid="5180129233352533459">"ブロックした番号を表示、管理できるのは端末の所有者のみです。"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"タップするとブロックを解除します"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ブロックが一時的に OFF になっています"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"緊急通報番号に電話をかけたり、テキスト メッセージを送信したりすると、ブロックが OFF になり、緊急通報受理機関からの通話を着信できるようになります。"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"再度有効にする"</string>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index d1fe9d6..f8eab8a 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"ტელეფონის ნომერი"</string>
<string name="block_button" msgid="8822290682524373357">"დაბლოკვა"</string>
<string name="non_primary_user" msgid="5180129233352533459">"დაბლოკილი ნომრების ნახვა და მართვა მხოლოდ მოწყობილობის მფლობელს შეუძლია."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"შეეხეთ განსაბლოკად"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ბლოკი დროებით გამორთულია"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"საგანგებო ნომრის აკრეფის ან მასზე ტესქტური შეტყობინების გაგზავნის შემდეგ ბლოკი გამოირთვება, რათა გადაუდებელი დახმარების სერვისებმა თქვენთან დაკავშირება შეძლოს."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"ხელახლა ჩართვა ახლავე"</string>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index 71ffc4a..cf500a2 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Телефон нөмірі"</string>
<string name="block_button" msgid="8822290682524373357">"Бөгеу"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Бөгелген нөмірлерді тек құрылғы иесі көре және басқара алады."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Бөгеуден шығару қойындысы"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Тыйым уақытша алынды"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Төтенше жағдай нөмірін терген немесе мәтіндік хабар жіберген соң, төтенше жағдай қызметтері сізге хабарласа алуы үшін тыйым алынады."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Қазір қайта қосу"</string>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index 47071cc..4923b3f 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"លេខទូរសព្ទ"</string>
<string name="block_button" msgid="8822290682524373357">"រារាំង"</string>
<string name="non_primary_user" msgid="5180129233352533459">"មានតែម្ចាស់ឧបករណ៍តែប៉ុណ្ណោះដែលអាចមើល និងគ្រប់គ្រងបញ្ជីរារាំងបាន"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"ផ្ទាំងដែលត្រូវឈប់រារាំង"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"បានបិទការទប់ស្កាត់ជាបណ្ដោះអាសន្ន"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"បន្ទាប់ពីអ្នកចុចហៅ ឬផ្ញើសារលេខអាសន្ន ការទប់ស្កាត់ត្រូវបានបិទដើម្បីប្រាកដថាសេវាកម្មអាសន្នអាចទាក់ទងអ្នកបាន។"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"បើកដំណើរការឡើងវិញឥឡូវនេះ"</string>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 0bf9f46..866f0b1 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"ಫೋನ್ ಸಂಖ್ಯೆ"</string>
<string name="block_button" msgid="8822290682524373357">"ನಿರ್ಬಂಧಿಸು"</string>
<string name="non_primary_user" msgid="5180129233352533459">"ಸಾಧನ ಮಾಲೀಕರು ಮಾತ್ರ ನಿರ್ಬಂಧಿಸಿದ ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಬಹುದು ಮತ್ತು ನಿರ್ವಹಿಸಬಹುದು."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"ನಿರ್ಬಂಧ ತೆಗೆಯಲು ಟ್ಯಾಬ್"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ನಿರ್ಬಂಧಿಸುವಿಕೆ ತಾತ್ಕಾಲಿಕವಾಗಿ ಆಫ್ ಮಾಡಲಾಗಿದೆ"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"ನೀವು ತುರ್ತು ಸಂಖ್ಯೆಯನ್ನು ಡಯಲ್ ಮಾಡಿದ ಅಥವಾ ಪಠ್ಯ ಸಂದೇಶ ಕಳುಹಿಸಿದ ನಂತರ, ತುರ್ತು ಸೇವೆಗಳಲ್ಲಿ ನಿಮ್ಮನ್ನು ಸಂಪರ್ಕಿಸಬಹುದು ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನಿರ್ಬಂಧಿಸುವಿಕೆ ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"ಇದೀಗ ಮರು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 41a6334..432923f 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"전화번호"</string>
<string name="block_button" msgid="8822290682524373357">"차단"</string>
<string name="non_primary_user" msgid="5180129233352533459">"기기 소유자만 차단된 번호를 보고 관리할 수 있습니다."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"차단 해제하려면 탭하세요."</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"차단 기능이 일시적으로 중지됨"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"긴급 전화번호로 전화를 걸거나 문자를 보내면 긴급 서비스를 사용할 수 있도록 차단 기능이 중지됩니다."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"지금 다시 사용 설정"</string>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index 4533879..a64bbf2 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Телефон номери"</string>
<string name="block_button" msgid="8822290682524373357">"Бөгөттөө"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Бөгөттөлгөн номерлерди түзмөк ээси гана көрүп жана башкара алат."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Бөгөттөн чыгаруучу өтмөк"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Бөгөттөө функциясы убактылуу өчүк"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Өзгөчө кырдаалдар кызматынын номерин терип же ошол номерге билдирүү жөнөтүлгөндөн кийин түзмөк бөгөттөн чыгарылат."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Кайра жандыруу"</string>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index f26886c..927039b 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"ເບີໂທລະສັບ"</string>
<string name="block_button" msgid="8822290682524373357">"ບລັອກ"</string>
<string name="non_primary_user" msgid="5180129233352533459">"ມີແຕ່ເຈົ້າຂອງອຸປະກອນເທົ່ານັ້ນທີ່ສາມາດເບິ່ງ ແລະ ຈັດການເບີທີ່ຖືກບລັອກໄວ້."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"ແຕະເພື່ອຍົກເລີກການບລັອກ"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ຍົກເລີກການບລັອກຊົ່ວຄາວ"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"ຫຼັງຈາກທີ່ທ່ານໂທ ຫຼື ສົ່ງຂໍ້ຄວາມຫາເບີສຸກເສີນໃດໜຶ່ງແລ້ວ, ການບລັອກຈະຖືກປິດໄວ້ເພື່ອໃຫ້ແນ່ໃຈວ່າບໍລິການສຸກເສີນດັ່ງກ່າວຈະສາມາດຕິດຕໍ່ຫາທ່ານໄດ້."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"ເປີດໃຊ້ຄືນໃໝ່ດຽວນີ້"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 41f223c..6a24385 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefono numeris"</string>
<string name="block_button" msgid="8822290682524373357">"Blokuoti"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Tik įrenginio savininkas gali peržiūrėti ir tvarkyti užblokuotus numerius."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Palieskite, kad panaikintumėte blokavimą"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokavimo funkcija laikinai išjungta"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Surinkus pagalbos numerį ar išsiuntus juo pranešimą blokavimo funkcija išjungiama, siekiant užtikrinti, kad pagalbos tarnybos galėtų su jumis susisiekti."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Dabar įgalinti iš naujo"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index d11d0c3..4607905 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Tālruņa numurs"</string>
<string name="block_button" msgid="8822290682524373357">"Bloķēt"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Tikai ierīces īpašnieks var skatīt un pārvaldīt bloķētos numurus."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Pieskarieties, lai atbloķētu"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Bloķēšana īslaicīgi izslēgta"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Pēc avārijas dienesta numura sastādīšanas vai īsziņas sūtīšanas uz to tiek izslēgta bloķēšana, lai avārijas dienesti varētu ar jums sazināties."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Atkārtoti iespējot tūlīt"</string>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index dc431c6..95c09c9 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Телефонски број"</string>
<string name="block_button" msgid="8822290682524373357">"Блокирај"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Само сопственикот на уредот може да ги прикаже и да управува со блокираните броеви."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Картичка за деблокирање"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Блокирањето е привремено исклучено"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Откако ќе повикате или ќе испратите SMS на број за итни случаи, блокирањето се исклучува за да може да ве контактираат службите за итни случаи."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Овозможи сега повторно"</string>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index 00996ef..4999139 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"ഫോൺ നമ്പർ"</string>
<string name="block_button" msgid="8822290682524373357">"ബ്ലോക്കുചെയ്യുക"</string>
<string name="non_primary_user" msgid="5180129233352533459">"ബ്ലോക്കുചെയ്ത നമ്പറുകൾ ഉപകരണ ഉടമയ്ക്ക് മാത്രമേ കാണാനും മാനേജുചെയ്യാനും കഴിയൂ."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"അൺബ്ലോക്കുചെയ്യുന്നതിനുള്ള ടാബ്"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ബ്ലോക്കുചെയ്യൽ താൽക്കാലികമായി ഓഫാണ്"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"നിങ്ങൾ ഒരു എമർജൻസി നമ്പർ ഡയൽ ചെയ്ത് കഴിയുമ്പോഴോ അതിലേക്ക് സന്ദേശമയച്ചുകഴിയുമ്പോഴോ, എമർജൻസി സേവനങ്ങൾ നിങ്ങളിലേക്ക് എത്തുമെന്ന് ഉറപ്പാക്കാൻ കോൾ ബ്ലോക്കിംഗ് ഓഫാക്കും."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"ഇപ്പോൾ വീണ്ടും പ്രവർത്തനക്ഷമമാക്കുക"</string>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index b774d75..aa7a287 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Утасны дугаар"</string>
<string name="block_button" msgid="8822290682524373357">"Блоклох"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Зөвхөн энэ төхөөрөмжийн эзэн блоклосон дугаарыг харж, өөрчлөх боломжтой."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Блокоос гаргахын тулд дарна уу"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Дугаар хориглох түр хугацаанд идэвхгүй болсон"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Түргэн тусламжийн дугаар руу залгах буюу мессеж бичсэний дараа түргэн тусламжаас тантай холбогдох боломжтой байлгахын тулд дугаар хориглохыг идэвхгүй болгоно."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Одоо дахин идэвхжүүлэх"</string>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index 0c7c578..91c06ce 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"फोन नंबर"</string>
<string name="block_button" msgid="8822290682524373357">"अवरोधित करा"</string>
<string name="non_primary_user" msgid="5180129233352533459">"फक्त डिव्हाइस मालक अवरोधित केलेले नंबर पाहू आणि व्यवस्थापित करू शकतो."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"अनावरोधित करण्यासाठी टॅब"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"अवरोधित करणे तात्पुरते बंद आहे"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"आपण एखादा आणीबाणी नंबर डायल केला किंवा त्यावर मजकूर पाठविल्यानंतर, आणीबाणी सेवा आपल्याशी संपर्क साधू शकतात हे सुनिश्चित करण्यासाठी अवरोधित करणे बंद करते."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"आता पुन्हा-सक्षम करा"</string>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 7f28199..1539b25 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Nombor telefon"</string>
<string name="block_button" msgid="8822290682524373357">"Sekat"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Hanya pemilik peranti boleh melihat dan menguruskan nombor yang disekat."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Tab untuk nyahsekat"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Sekatan dimatikan untuk sementara waktu"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Sekatan dimatikan selepas anda mendail atau menghantar teks kepada nombor kecemasan untuk memastikan perkhidmatan kecemasan dapat menghubungi anda."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Dayakan semula sekarang"</string>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index fee716d..fc025ed 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"ဖုန်းနံပါတ်"</string>
<string name="block_button" msgid="8822290682524373357">"ပိတ်ဆို့ပါ"</string>
<string name="non_primary_user" msgid="5180129233352533459">"ပိတ်ဆို့ထားသည့် နံပါတ်များကို စက်ပစ္စည်းပိုင်ရှင်သာလျှင် ကြည့်ရှု၍ စီမံခန့်ခွဲနိုင်ပါသည်။"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"ပိတ်ဆို့မှုပြန်ဖွင့်ရန် တို့ပါ"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ဘလော့ခ်လုပ်ခြင်းကို ပိတ်ထားပါသည်"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"သင် အရေးပေါ်နံပါတ်တစ်ခုကို ဖုန်းခေါ် (သို့) စာသားပို့ပြီးနောက် အရေးပေါ်ဝန်ဆောင်မှုများက သင့်ကို ဆက်သွယ်နိုင်ကြောင်း သေချာစေရန် ဘလော့ခ်လုပ်ခြင်းကို ပိတ်ထားပါသည်။"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"ယခု ပြန်ဖွင့်လိုက်ပါ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index fc4fcf9..e0b47f9 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonnummer"</string>
<string name="block_button" msgid="8822290682524373357">"Blokkér"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Bare enhetseieren kan se og administrere blokkerte numre."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Trykk for å oppheve blokkeringen"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokkeringen er midlertidig slått av"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Når du har ringt eller sendt tekstmelding til et nødnummer, blir blokkeringen slått av, sånn at nødtjenesten har mulighet til å kontakte deg."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Slå på igjen nå"</string>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index ffae9b3..f593161 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"फोन नम्बर"</string>
<string name="block_button" msgid="8822290682524373357">"रोक्नुहोस्"</string>
<string name="non_primary_user" msgid="5180129233352533459">"यन्त्रको मालिकले रोकिएका नम्बरहरूलाई हेर्न र व्यवस्थापन गर्न सक्छ।"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"अनब्लक गर्ने ट्याब"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"रोक लगाउने काम अस्थायी रूपमा निष्क्रिय छ"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"तपाईँले आपतकालीन नम्बरमा डायल गरेपछि वा पाठ सन्देश पठाएपछि आपतकालीन सेवाहरूले तपाईँलाई सम्पर्क गर्न सकून् भन्ने कुरा सुनिश्चित गर्न कलमाथिको अवरोध निष्क्रिय गरिन्छ।"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"अब पुन:-सक्रिय गर्नुहोस्"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 0665cd9..4109983 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefoonnummer"</string>
<string name="block_button" msgid="8822290682524373357">"Blokkeren"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Alleen de eigenaar van het apparaat kan geblokkeerd nummers bekijken en beheren."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Tik om blokkering op te heffen"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokkering tijdelijk uitgeschakeld"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Als je een noodnummer belt of er een sms naartoe stuurt, wordt de blokkering uitgeschakeld om te zorgen dat hulpdiensten contact met je kunnen opnemen."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Nu opnieuw inschakelen"</string>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index e5e8e23..ba157d6 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"ਫੋਨ ਨੰਬਰ"</string>
<string name="block_button" msgid="8822290682524373357">"ਬਲੌਕ ਕਰੋ"</string>
<string name="non_primary_user" msgid="5180129233352533459">"ਸਿਰਫ਼ ਡੀਵਾਈਸ ਮਾਲਕ ਹੀ ਬਲੌਕ ਕੀਤੇ ਗਏ ਨੰਬਰਾਂ ਨੂੰ ਵੇਖ ਅਤੇ ਪ੍ਰਬੰਧਿਤ ਕਰ ਸਕਦਾ ਹੈ।"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"ਅਣਬਲੌਕ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ਬਲੌਕਿੰਗ ਆਰਜ਼ੀ ਤੌਰ \'ਤੇ ਬੰਦ ਹੈ"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਨੂੰ ਡਾਇਲ ਕੀਤੇ ਜਾਣ ਜਾਂ ਲਿਖਤ ਸੁਨੇਹਾ ਭੇਜੇ ਜਾਣ ਤੋਂ ਬਾਅਦ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਬਲੌਕਿੰਗ ਨੂੰ ਬੰਦ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਕਿ ਐਮਰਜੈਂਸੀ ਸੇਵਾਵਾਂ ਤੁਹਾਨੂੰ ਸੰਪਰਕ ਕਰ ਸਕਣ।"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"ਹੁਣੇ ਦੁਬਾਰਾ ਯੋਗ ਬਣਾਓ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 6969bf2..b505e7d 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Numer telefonu"</string>
<string name="block_button" msgid="8822290682524373357">"Zablokuj"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Tylko właściciel urządzenia może przeglądać zablokowane numery i nimi zarządzać."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Kliknij, by odblokować"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokada tymczasowo wyłączona"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Gdy wybierzesz numer awaryjny lub wyślesz pod ten numer SMS-a, blokada zostanie wyłączona, aby odpowiednie służby mogły się z Tobą skontaktować."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Włącz ponownie"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 0bea814..1e4329c 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Número de telefone"</string>
<string name="block_button" msgid="8822290682524373357">"Bloquear"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Apenas o proprietário do dispositivo pode ver e gerir os números bloqueados."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Tocar para desbloquear"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Bloqueio temporariamente desativado"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Após marcar ou enviar uma mensagem de texto para um número de emergência, o bloqueio é desativado para garantir que os serviços de emergência conseguem contactá-lo."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Reativar agora"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index a014c89..1c7ec28 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Nº de telefone"</string>
<string name="block_button" msgid="8822290682524373357">"Bloquear"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Apenas o proprietário do dispositivo pode ver e gerenciar os números bloqueados."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Toque para desbloquear"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Bloqueio temporariamente desativado"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Após discar ou enviar uma mensagem de texto para um número de emergência, o bloqueio é desativado para garantir o contato do serviço de emergência com você."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Reativar agora"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 6a3f98e..31477da 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Număr de telefon"</string>
<string name="block_button" msgid="8822290682524373357">"Blocați"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Numai proprietarul dispozitivului poate vedea și gestiona numerele blocate."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Atingeți pentru a debloca"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blocarea este dezactivată temporar"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"După ce formați un număr de urgență sau trimiteți un mesaj la acesta, blocarea este dezactivată pentru ca serviciile de urgență să vă poată contacta."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Reactivați acum"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 17befa0..4f53e72 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Номер телефона"</string>
<string name="block_button" msgid="8822290682524373357">"Заблокировать"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Просматривать и изменять список заблокированных номеров может только владелец устройства."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Нажмите, чтобы разблокировать"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Блокировка временно снята"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"После набора или отправки сообщения на номер экстренной службы блокировка будет выключена, чтобы специалисты могли связаться с вами."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Включить блокировку"</string>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index 5db984c..5ddbfa0 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"දුරකථන අංකය"</string>
<string name="block_button" msgid="8822290682524373357">"අවහිර කරන්න"</string>
<string name="non_primary_user" msgid="5180129233352533459">"උපාංගය හිමිකරුට පමණක් අවහිර අංක බැලීමට සහ කළමනාකරණය කිරීමට හැකිය."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"අවහිර නොකිරීමේ කිරීමේ ටැබය"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"අවහිර කිරීම තාවකාලිකව අක්රියයි"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"ඔබ හදිසි ඇමතුම් අංකයක් ඩයල් කිරීමෙන් හෝ පෙළ පණිවිඩයක් යැවීමෙන් පසු, හදිසි අවස්ථා සේවාවලට ඔබට ඇමතිය හැකි බව තහවුරු කිරීමට අවහිර කිරීම අක්රිය කරයි."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"දැන් නැවත-සබල කරන්න"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 14d5646..f666eff 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefónne číslo"</string>
<string name="block_button" msgid="8822290682524373357">"Blokovať"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Iba vlastník zariadenia môže zobrazovať a spravovať blokované čísla."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Klepnutím odblokujete"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokovanie je dočasne vypnuté"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Keď vytočíte číslo tiesňového volania alebo naň odošlete textovú správu, blokovanie bude vypnuté, aby vás mohli pohotovostné služby kontaktovať."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Znova zapnúť"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 16148e9..0ba1e05 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonska številka"</string>
<string name="block_button" msgid="8822290682524373357">"Blokiraj"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Samo lastnik naprave si lahko ogleda blokirane številke in jih upravlja."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Dotaknite se, če želite odblokirati številko"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokiranje je začasno izklopljeno"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Ko izberete številko za klic v sili ali nanjo pošljete sporočilo SMS, se blokiranje izklopi, s čimer se zagotovi, da vas lahko pokličejo iz služb za pomoč v sili."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Znova omogoči"</string>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index a2a3dc4..2d903c3 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Numri i telefonit"</string>
<string name="block_button" msgid="8822290682524373357">"Blloko"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Vetëm zotëruesi i pajisjes mund të shikojë dhe të menaxhojë numrat e bllokuar."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Skeda për zhbllokimin"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Bllokimi përkohësisht joaktiv"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Pasi shtypet ose dërgohet mesazh me tekst te një numër i urgjencës, bllokimi është çaktivizuar për të siguruar që shërbimet e emergjencës të mund të të kontaktojnë."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Riaktivizo tani"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index c11b62d..ba4535b 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Број телефона"</string>
<string name="block_button" msgid="8822290682524373357">"Блокирај"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Само власник уређаја може да прегледа блокиране бројеве и управља њима."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Додирните да бисте деблокирали"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Блокирање је привремено искључено"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Кад позовете број хитне службе или на тај број пошаљете SMS, блокирање се искључује да би хитне службе могле да вас контактирају."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Поново омогући"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 5418d3e..70185da 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonnummer"</string>
<string name="block_button" msgid="8822290682524373357">"Blockera"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Bara enhetens ägare kan se och hantera blockerade nummer."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Tryck här om du vill häva blockeringen"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blockeringen har inaktiverats tillfälligt"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"När du ringer eller sms:ar ett nödnummer inaktiveras blockering för att säkerställa att räddningstjänsten kan kontakta dig."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Återaktivera nu"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 19b9a73..c5d5eb0 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Nambari ya simu"</string>
<string name="block_button" msgid="8822290682524373357">"Zuia"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Ni mmiliki wa kifaa pekee anayeweza kuangalia na kuthibiti nambari zilizozuiwa."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Kichupo cha kuondoa kizuizi"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Kipengele cha kuzuia kimezimwa kwa muda"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Ukishapiga au kutuma ujumbe kwa nambari ya dharura, kipengele cha kuzuia anwani huzimwa ili watoa huduma za dharura waweze kuwasiliana nawe."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Kiwashe tena sasa"</string>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index 9022aa5..ba2c958 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"மொபைல் எண்"</string>
<string name="block_button" msgid="8822290682524373357">"தடு"</string>
<string name="non_primary_user" msgid="5180129233352533459">"சாதன உரிமையாளர் மட்டுமே தடுக்கப்பட்ட எண்களைப் பார்க்கவும் நிர்வகிக்கவும் முடியும்."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"அனுமதிக்க, தட்டவும்"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"அழைப்புத் தடுப்பு அம்சம் தற்காலிகமாக முடக்கப்பட்டுள்ளது"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"அவசர அழைப்பு எண்ணை அழைத்த பிறகு அல்லது அதற்கு உரைச் செய்தியை அனுப்பிய பிறகு, அவசர அழைப்புச் சேவைகள் உங்களைத் தொடர்புகொள்வதற்காக அழைப்புத் தடுப்பு அம்சம் முடக்கப்படுகிறது."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"இப்போதே மீண்டும் இயக்கு"</string>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 8d93e72..25abbdb 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"ఫోన్ నంబర్"</string>
<string name="block_button" msgid="8822290682524373357">"బ్లాక్ చేయి"</string>
<string name="non_primary_user" msgid="5180129233352533459">"కేవలం పరికర యజమాని మాత్రమే బ్లాక్ చేసిన నంబర్లను వీక్షించగలరు మరియు నిర్వహించగలరు."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"అన్బ్లాక్ చేయడానికి నొక్కండి"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"బ్లాకింగ్ తాత్కాలికంగా ఆఫ్ చేయబడింది"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"మీరు అత్యవసర నంబర్కి డయల్ చేసాక లేదా వచన సందేశం పంపాక, అత్యవసర సేవలు తిరిగి మిమ్మల్ని సంప్రదించగలిగేలా చేయడానికి బ్లాకింగ్ ఆఫ్ చేయబడుతుంది."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"ఇప్పుడే మళ్లీ ప్రారంభించు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 4add01d..df3ab8b 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"หมายเลขโทรศัพท์"</string>
<string name="block_button" msgid="8822290682524373357">"บล็อก"</string>
<string name="non_primary_user" msgid="5180129233352533459">"มีเพียงเจ้าของอุปกรณ์เท่านั้นที่สามารถดูและจัดการหมายเลขที่ถูกบล็อก"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"แตะเพื่อเลิกบล็อก"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ปิดการบล็อกไว้ชั่วคราว"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"หลังจากส่งข้อความถึงหรือกดหมายเลขโทรศัพท์ฉุกเฉิน ระบบจะปิดการบล็อกเพื่อให้บริการฉุกเฉินติดต่อคุณได้"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"เปิดใช้งานอีกครั้งเลย"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 952ff79..bcb3c1d 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Numero ng telepono"</string>
<string name="block_button" msgid="8822290682524373357">"I-block"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Ang may-ari ng device lang ang makakakita at makakapamahala sa mga naka-block na numero."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Tab upang alisin sa pagkaka-block"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Pansamantalang naka-off ang pag-block"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Pagkatapos mong i-dial o i-text ang isang pang-emergency na numero, ino-off ang pag-block upang matiyak na maaaring makipag-ugnayan sa iyo ang mga serbisyong pang-emergency."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"I-enable muli ngayon"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index cfc2258..d830ee2 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefon numarası"</string>
<string name="block_button" msgid="8822290682524373357">"Engelle"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Yalnızca cihaz sahibi engellenen numaraları görüntüleyebilir ve yönetebilir."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Engellemeyi kaldırmak için hafifçe dokunun"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Engelleme geçici olarak kapalı"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Bir acil durum numarasını çevirmenizin veya acil durum numarasına kısa mesaj göndermenizin ardından acil durum hizmetlerinin size ulaşabilmesi için engelleme kapatılır."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Şimdi yeniden etkinleştir"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 3bb7cda..8984f54 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Номер телефону"</string>
<string name="block_button" msgid="8822290682524373357">"Заблокувати"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Лише власник пристрою може переглядати заблоковані номери та керувати ними."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Торкніться, щоб розблокувати"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Блокування тимчасово вимкнено"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Після набору або введення екстреного номеру блокування вимикається, щоб із вами могли зв’язатися представники екстрених служб."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Відновити"</string>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index 109ad07..439b680 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"فون نمبر"</string>
<string name="block_button" msgid="8822290682524373357">"مسدود کریں"</string>
<string name="non_primary_user" msgid="5180129233352533459">"صرف آلہ کا مالک مسدود کردہ نمبرز کو دیکھ سکتا ہے اور ان کا نظم کر سکتا ہے۔"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"غیر مسدود کرنے کا ٹیب"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"مسدود کرنا عارضی طور پر آف ہے"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"جب آپ کوئی ایمرجنسی نمبر ڈائل کرتے یا اسے متن بھیجتے ہیں تو انسداد کو آف کر دیا جاتا ہے تاکہ ہنگامی سروسز آپ سے رابطہ کر سکیں۔"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"اب دوبارہ فعال کریں"</string>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index 2fba3f5..e6d5bc9 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefon raqami"</string>
<string name="block_button" msgid="8822290682524373357">"Bloklash"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Faqat qurilma egasi bloklangan raqamlarni ko‘rishi va boshqarishi mumkin."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Blokdan chiqarish uchun bosing"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Telefon raqamini bloklash xususiyati vaqtinchalik o‘chirib qo‘yilgan"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Favqulodda chaqiruv raqamiga qo‘ng‘iroq qilganda yoki unga matnli xabar yuborganingizda, favqulodda holatlar xizmati xodimlari siz bilan bog‘lana olishlari uchun telefoningizda telefon raqamlarini bloklash xususiyati o‘chirib qo‘yiladi."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Qayta faollashtirish"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 826d64c..7ce5202 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Số điện thoại"</string>
<string name="block_button" msgid="8822290682524373357">"Chặn"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Chỉ chủ sở hữu thiết bị mới có thể xem và quản lý các số bị chặn."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Tab để bỏ chặn"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Chế độ chặn tạm thời tắt"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Sau khi bạn quay số hoặc gửi tin nhắn tới số khẩn cấp, chế độ chặn sẽ bị tắt để đảm bảo dịch vụ khẩn cấp có thể liên hệ với bạn."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Bật lại ngay bây giờ"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 80f2e4f..e00ef42 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"电话号码"</string>
<string name="block_button" msgid="8822290682524373357">"屏蔽"</string>
<string name="non_primary_user" msgid="5180129233352533459">"只有机主才能查看和管理已屏蔽的号码。"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"点按即可取消屏蔽"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"已暂时关闭来电拦截功能"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"您拨打紧急服务电话或向其发送短信后,系统会关闭来电拦截功能,以确保紧急服务人员能与您联系。"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"立即重新启用"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index a39df15..2e2ea08 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"電話號碼"</string>
<string name="block_button" msgid="8822290682524373357">"封鎖"</string>
<string name="non_primary_user" msgid="5180129233352533459">"只有裝置擁有者可查看和管理已封鎖的號碼。"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"輕按即可解除封鎖"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"暫時關閉封鎖功能"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"在您撥打或發短訊至緊急號碼後,封鎖功能會停用,以確保緊急服務可與您聯絡。"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"立即重新啟用"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 4086856..fbe63c5 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"電話號碼"</string>
<string name="block_button" msgid="8822290682524373357">"封鎖"</string>
<string name="non_primary_user" msgid="5180129233352533459">"只有裝置擁有者能夠查看及管理已封鎖的號碼。"</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"輕按即可解除封鎖"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"已暫時停用來電封鎖功能"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"當您撥打或傳送簡訊到緊急服務電話後,系統就會停用來電封鎖功能,以確保緊急服務人員能夠與您聯絡。"</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"立即重新啟用"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 77ea9cc..25eb82d 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -57,7 +57,8 @@
<string name="add_blocked_number_hint" msgid="6847675097085433553">"Inombolo yefoni"</string>
<string name="block_button" msgid="8822290682524373357">"Vimba"</string>
<string name="non_primary_user" msgid="5180129233352533459">"Umnikazi wedivayisi kuphela ongabuka aphinde aphathe izinombolo ezivinjelwe."</string>
- <string name="delete_icon_description" msgid="1828583824185681368">"Ithebhu lokuvulela"</string>
+ <!-- no translation found for delete_icon_description (8903995728252556724) -->
+ <skip />
<string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Ukuvimble kuvaliwe okwesikhashana"</string>
<string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Ngemuva kokudayela noma ubhalele inombolo yesimo esiphuthumayo, ukuvimbela kuvaliwe ukuqinisekisa amasevisi esimo esiphuthumayo angakwazi ukuxhumana nawe."</string>
<string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Nika amandla manje"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
index af8cb52..be0f72a 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -37,7 +37,7 @@
<string name="dialer_default_class" translatable="false">com.android.dialer.DialtactsActivity</string>
<!-- Flag indicating if the tty is enabled -->
- <bool name="tty_enabled">false</bool>
+ <bool name="tty_enabled">true</bool>
<!-- Component name for the notification handler. The presence of this value will disable
MissedCallNotifierImpl's presentation of missed call/voice notifications [DO NOT TRANSLATE] -->
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 2457f25..7b085ad 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -23,6 +23,7 @@
<dimen name="blocked_numbers_large_padding">16dp</dimen>
<dimen name="blocked_numbers_extra_large_padding">32dp</dimen>
+ <dimen name="blocked_numbers_button_bottom_margin">20dp</dimen>
<dimen name="blocked_numbers_dialog_padding">24dp</dimen>
<dimen name="blocked_numbers_delete_icon_padding">12dp</dimen>
<dimen name="blocked_numbers_progress_bar_padding">100dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index a1d0766..c00b307 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -136,7 +136,7 @@
device. -->
<string name="non_primary_user">Only the device owner can view and manage blocked numbers.</string>
<!-- Description of icon to delete blocked number. -->
- <string name="delete_icon_description">Tab to unblock</string>
+ <string name="delete_icon_description">Unblock</string>
<!-- Title for butter bar shown when call blocking is disabled. -->
<string name="blocked_numbers_butter_bar_title">Blocking temporarily off</string>
<!-- Explanation for butter bar shown when call blocking is disabled. -->
diff --git a/res/xml/activity_blocked_numbers.xml b/res/xml/activity_blocked_numbers.xml
index 17bc99c..4eb4f85 100644
--- a/res/xml/activity_blocked_numbers.xml
+++ b/res/xml/activity_blocked_numbers.xml
@@ -65,7 +65,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/block_number"
- android:paddingBottom="@dimen/blocked_numbers_extra_large_padding"
+ android:layout_marginBottom="@dimen/blocked_numbers_button_bottom_margin"
style="@style/BlockedNumbersButton"
android:background="?android:attr/selectableItemBackgroundBorderless" />
diff --git a/res/xml/add_blocked_number_dialog.xml b/res/xml/add_blocked_number_dialog.xml
index b3462fd..ed7d507 100644
--- a/res/xml/add_blocked_number_dialog.xml
+++ b/res/xml/add_blocked_number_dialog.xml
@@ -25,7 +25,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add_blocked_dialog_body"
- android:paddingTop="@dimen/blocked_numbers_large_padding"
android:paddingBottom="@dimen/blocked_numbers_large_padding"
style="@style/BlockedNumbersTitleText" />
<EditText
diff --git a/res/xml/layout_blocked_number.xml b/res/xml/layout_blocked_number.xml
index e8fd4d1..cac8a7f 100644
--- a/res/xml/layout_blocked_number.xml
+++ b/res/xml/layout_blocked_number.xml
@@ -20,14 +20,15 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
- style="@style/BlockedNumbersText" >
+ style="@style/BlockedNumbersText"
+ android:gravity="start">
<TextView
android:id="@+id/blocked_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
- android:paddingBottom="@dimen/blocked_numbers_extra_large_padding"
+ android:paddingTop="@dimen/blocked_numbers_delete_icon_padding"
android:layout_toLeftOf="@+id/delete" />
<ImageView
diff --git a/src/com/android/server/telecom/CallAudioModeStateMachine.java b/src/com/android/server/telecom/CallAudioModeStateMachine.java
index 8a1aef8..67b85a5 100644
--- a/src/com/android/server/telecom/CallAudioModeStateMachine.java
+++ b/src/com/android/server/telecom/CallAudioModeStateMachine.java
@@ -434,10 +434,7 @@
mCallAudioManager.stopCallWaiting();
return HANDLED;
case TONE_STOPPED_PLAYING:
- if (!args.hasActiveOrDialingCalls && !args.hasRingingCalls
- && !args.hasHoldingCalls && !args.isTonePlaying) {
- transitionTo(mUnfocusedState);
- }
+ transitionTo(destinationStateAfterNoMoreActiveCalls(args));
default:
return NOT_HANDLED;
}
@@ -503,12 +500,14 @@
}
private BaseState destinationStateAfterNoMoreActiveCalls(MessageArgs args) {
- if (args.hasRingingCalls) {
- return mRingingFocusState;
- } else if (args.hasHoldingCalls || args.isTonePlaying) {
- return mOtherFocusState;
+ if (args.hasHoldingCalls) {
+ return mOtherFocusState;
+ } else if (args.hasRingingCalls) {
+ return mRingingFocusState;
+ } else if (args.isTonePlaying) {
+ return mOtherFocusState;
} else {
- return mUnfocusedState;
+ return mUnfocusedState;
}
}
}
\ No newline at end of file
diff --git a/src/com/android/server/telecom/CallerInfoAsyncQueryFactory.java b/src/com/android/server/telecom/CallerInfoAsyncQueryFactory.java
index 149470f..500f16e 100644
--- a/src/com/android/server/telecom/CallerInfoAsyncQueryFactory.java
+++ b/src/com/android/server/telecom/CallerInfoAsyncQueryFactory.java
@@ -12,7 +12,8 @@
* 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.server.telecom;
+ */
+package com.android.server.telecom;
import com.android.internal.telephony.CallerInfoAsyncQuery;
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index 9cd78e1..a12503c 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -53,6 +53,7 @@
import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.TelephonyProperties;
import com.android.internal.util.IndentingPrintWriter;
+import com.android.server.telecom.TelecomServiceImpl.DefaultDialerManagerAdapter;
import com.android.server.telecom.components.ErrorDialogActivity;
import java.util.Collection;
@@ -200,7 +201,8 @@
CallAudioManager.AudioServiceFactory audioServiceFactory,
BluetoothManager bluetoothManager,
WiredHeadsetManager wiredHeadsetManager,
- SystemStateProvider systemStateProvider) {
+ SystemStateProvider systemStateProvider,
+ DefaultDialerManagerAdapter defaultDialerAdapter) {
mContext = context;
mLock = lock;
mContactsAsyncHelper = contactsAsyncHelper;
@@ -238,7 +240,8 @@
RingtoneFactory ringtoneFactory = new RingtoneFactory(this, context);
SystemVibrator systemVibrator = new SystemVibrator(context);
AsyncRingtonePlayer asyncRingtonePlayer = new AsyncRingtonePlayer();
- mInCallController = new InCallController(context, mLock, this, systemStateProvider);
+ mInCallController = new InCallController(
+ context, mLock, this, systemStateProvider, defaultDialerAdapter);
mRinger = new Ringer(playerFactory, context, systemSettingsUtil, asyncRingtonePlayer,
ringtoneFactory, systemVibrator, mInCallController);
@@ -340,7 +343,7 @@
if (incomingCall.getState() != CallState.DISCONNECTED &&
incomingCall.getState() != CallState.DISCONNECTING) {
setCallState(incomingCall, CallState.RINGING,
- shouldAllowCall ? "blocking call" : "successful incoming call");
+ shouldAllowCall ? "successful incoming call" : "blocking call");
} else {
Log.i(this, "onCallScreeningCompleted: call already disconnected.");
}
diff --git a/src/com/android/server/telecom/InCallController.java b/src/com/android/server/telecom/InCallController.java
index bb24deb..c3ce240 100644
--- a/src/com/android/server/telecom/InCallController.java
+++ b/src/com/android/server/telecom/InCallController.java
@@ -46,6 +46,7 @@
import com.android.internal.telecom.IInCallService;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.telecom.SystemStateProvider.SystemStateListener;
+import com.android.server.telecom.TelecomServiceImpl.DefaultDialerManagerAdapter;
import java.util.ArrayList;
import java.util.Collection;
@@ -62,25 +63,358 @@
* a binding to the {@link IInCallService} (implemented by the in-call app).
*/
public final class InCallController extends CallsManagerListenerBase {
- /**
- * Used to bind to the in-call app and triggers the start of communication between
- * this class and in-call app.
- */
- private class InCallServiceConnection implements ServiceConnection {
- /** {@inheritDoc} */
- @Override public void onServiceConnected(ComponentName name, IBinder service) {
- Log.startSession("ICSC.oSC");
- Log.d(this, "onServiceConnected: %s", name);
- onConnected(name, service);
- Log.endSession();
+
+ public class InCallServiceConnection {
+ public class Listener {
+ public void onDisconnect(InCallServiceConnection conn) {}
}
- /** {@inheritDoc} */
- @Override public void onServiceDisconnected(ComponentName name) {
- Log.startSession("ICSC.oSD");
- Log.d(this, "onDisconnected: %s", name);
- onDisconnected(name);
- Log.endSession();
+ protected Listener mListener;
+
+ public boolean connect(Call call) { return false; }
+ public void disconnect() {}
+ public void setHasEmergency(boolean hasEmergency) {}
+ public void setListener(Listener l) {
+ mListener = l;
+ }
+ public void dump(IndentingPrintWriter pw) {}
+ }
+
+ private class InCallServiceBindingConnection extends InCallServiceConnection {
+
+ private final ServiceConnection mServiceConnection = new ServiceConnection() {
+ @Override
+ public void onServiceConnected(ComponentName name, IBinder service) {
+ Log.startSession("ICSBC.oSC");
+ try {
+ Log.d(this, "onServiceConnected: %s %b %b", name, mIsBound, mIsConnected);
+ mIsBound = true;
+ if (mIsConnected) {
+ // Only proceed if we are supposed to be connected.
+ onConnected(service);
+ }
+ } finally {
+ Log.endSession();
+ }
+ }
+
+ @Override
+ public void onServiceDisconnected(ComponentName name) {
+ Log.startSession("ICSBC.oSD");
+ try {
+ Log.d(this, "onDisconnected: %s", name);
+ mIsBound = false;
+ onDisconnected();
+ } finally {
+ Log.endSession();
+ }
+ }
+ };
+
+ private final ComponentName mComponentName;
+ private boolean mIsConnected = false;
+ private boolean mIsBound = false;
+
+ public InCallServiceBindingConnection(ComponentName componentName) {
+ mComponentName = componentName;
+ }
+
+ @Override
+ public boolean connect(Call call) {
+ if (mIsConnected) {
+ Log.event(call, Log.Events.INFO, "Already connected, ignoring request.");
+ return true;
+ }
+
+ Intent intent = new Intent(InCallService.SERVICE_INTERFACE);
+ intent.setComponent(mComponentName);
+ if (call != null && !call.isIncoming()){
+ intent.putExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS,
+ call.getIntentExtras());
+ intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE,
+ call.getTargetPhoneAccount());
+ }
+
+ Log.i(this, "Attempting to bind to InCall %s, with %s", mComponentName, intent);
+ if (mContext.bindServiceAsUser(intent, mServiceConnection,
+ Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE,
+ UserHandle.CURRENT)) {
+ Log.i(this, "It's connecting!");
+ mIsConnected = true;
+ }
+
+ return mIsConnected;
+ }
+
+ @Override
+ public void disconnect() {
+ if (mIsConnected) {
+ mContext.unbindService(mServiceConnection);
+ mIsConnected = false;
+ } else {
+ Log.event(null, Log.Events.INFO, "Already disconnected, ignoring request.");
+ }
+ }
+
+ @Override
+ public void dump(IndentingPrintWriter pw) {
+ pw.append("BindingConnection [");
+ pw.append(mIsConnected ? "" : "not ").append("connected, ");
+ pw.append(mIsBound ? "" : "not ").append("bound]\n");
+ }
+
+ protected void onConnected(IBinder service) {
+ boolean shouldRemainConnected =
+ InCallController.this.onConnected(mComponentName, service);
+ if (!shouldRemainConnected) {
+ // Sometimes we can opt to disconnect for certain reasons, like if the
+ // InCallService rejected our intialization step, or the calls went away
+ // in the time it took us to bind to the InCallService. In such cases, we go
+ // ahead and disconnect ourselves.
+ disconnect();
+ }
+ }
+
+ protected void onDisconnected() {
+ InCallController.this.onDisconnected(mComponentName);
+ disconnect(); // Unbind explicitly if we get disconnected.
+ if (mListener != null) {
+ mListener.onDisconnect(InCallServiceBindingConnection.this);
+ }
+ }
+ }
+
+ /**
+ * A version of the InCallServiceBindingConnection that proxies all calls to a secondary
+ * connection until it finds an emergency call, or the other connection dies. When one of those
+ * two things happen, this class instance will take over the connection.
+ */
+ private class EmergencyInCallServiceConnection extends InCallServiceBindingConnection {
+ private boolean mIsProxying = true;
+ private boolean mIsConnected = false;
+ private final InCallServiceConnection mSubConnection;
+
+ private Listener mSubListener = new Listener() {
+ @Override
+ public void onDisconnect(InCallServiceConnection subConnection) {
+ if (subConnection == mSubConnection) {
+ if (mIsConnected && mIsProxying) {
+ // At this point we know that we need to be connected to the InCallService
+ // and we are proxying to the sub connection. However, the sub-connection
+ // just died so we need to stop proxying and connect to the system in-call
+ // service instead.
+ mIsProxying = false;
+ connect(null);
+ }
+ }
+ }
+ };
+
+ public EmergencyInCallServiceConnection(
+ ComponentName componentName, InCallServiceConnection subConnection) {
+ super(componentName);
+ mSubConnection = subConnection;
+ if (mSubConnection != null) {
+ mSubConnection.setListener(mSubListener);
+ }
+ mIsProxying = (mSubConnection != null);
+ }
+
+ @Override
+ public boolean connect(Call call) {
+ mIsConnected = true;
+ if (mIsProxying) {
+ if (mSubConnection.connect(call)) {
+ return true;
+ }
+ // Could not connect to child, stop proxying.
+ mIsProxying = false;
+ }
+
+ // If we are here, we didn't or could not connect to child. So lets connect ourselves.
+ return super.connect(call);
+ }
+
+ @Override
+ public void disconnect() {
+ Log.i(this, "Disconnect forced!");
+ if (mIsProxying) {
+ mSubConnection.disconnect();
+ } else {
+ super.disconnect();
+ }
+ mIsConnected = false;
+ }
+
+ @Override
+ public void setHasEmergency(boolean hasEmergency) {
+ if (hasEmergency) {
+ takeControl();
+ }
+ }
+
+ @Override
+ protected void onDisconnected() {
+ // Save this here because super.onDisconnected() could force us to explicitly
+ // disconnect() as a cleanup step and that sets mIsConnected to false.
+ boolean shouldReconnect = mIsConnected;
+ super.onDisconnected();
+ // We just disconnected. Check if we are expected to be connected, and reconnect.
+ if (shouldReconnect && !mIsProxying) {
+ connect(null); // reconnect
+ }
+ }
+
+ @Override
+ public void dump(IndentingPrintWriter pw) {
+ pw.println("Emergency ICS Connection");
+ pw.increaseIndent();
+ pw.print("Emergency: ");
+ super.dump(pw);
+ if (mSubConnection != null) {
+ pw.print("Default-Dialer: ");
+ mSubConnection.dump(pw);
+ }
+ pw.decreaseIndent();
+ }
+
+ /**
+ * Forces the connection to take control from it's subConnection.
+ */
+ private void takeControl() {
+ if (mIsProxying) {
+ mIsProxying = false;
+ if (mIsConnected) {
+ mSubConnection.disconnect();
+ super.connect(null);
+ }
+ }
+ }
+ }
+
+ /**
+ * A version of InCallServiceConnection which switches UI between two separate sub-instances of
+ * InCallServicesConnections.
+ */
+ private class CarSwappingInCallServiceConnection extends InCallServiceConnection {
+ private final InCallServiceConnection mDialerConnection;
+ private final InCallServiceConnection mCarModeConnection;
+ private InCallServiceConnection mCurrentConnection;
+ private boolean mIsCarMode = false;
+ private boolean mIsConnected = false;
+
+ public CarSwappingInCallServiceConnection(
+ InCallServiceConnection dialerConnection,
+ InCallServiceConnection carModeConnection) {
+ mDialerConnection = dialerConnection;
+ mCarModeConnection = carModeConnection;
+ mCurrentConnection = getCurrentConnection();
+ }
+
+ public synchronized void setCarMode(boolean isCarMode) {
+ Log.i(this, "carmodechange: " + mIsCarMode + " => " + isCarMode);
+ if (isCarMode != mIsCarMode) {
+ mIsCarMode = isCarMode;
+ InCallServiceConnection newConnection = getCurrentConnection();
+ if (newConnection != mCurrentConnection) {
+ if (mIsConnected) {
+ mCurrentConnection.disconnect();
+ newConnection.connect(null);
+ }
+ mCurrentConnection = newConnection;
+ }
+ }
+ }
+
+ @Override
+ public boolean connect(Call call) {
+ if (mIsConnected) {
+ Log.i(this, "already connected");
+ return true;
+ } else {
+ if (mCurrentConnection.connect(call)) {
+ mIsConnected = true;
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ @Override
+ public void disconnect() {
+ if (mIsConnected) {
+ mCurrentConnection.disconnect();
+ mIsConnected = false;
+ } else {
+ Log.i(this, "already disconnected");
+ }
+ }
+
+ @Override
+ public void setHasEmergency(boolean hasEmergency) {
+ if (mDialerConnection != null) {
+ mDialerConnection.setHasEmergency(hasEmergency);
+ }
+ if (mCarModeConnection != null) {
+ mCarModeConnection.setHasEmergency(hasEmergency);
+ }
+ }
+
+ @Override
+ public void dump(IndentingPrintWriter pw) {
+ pw.println("Car Swapping ICS");
+ pw.increaseIndent();
+ if (mDialerConnection != null) {
+ pw.print("Dialer: ");
+ mDialerConnection.dump(pw);
+ }
+ if (mCarModeConnection != null) {
+ pw.print("Car Mode: ");
+ mCarModeConnection.dump(pw);
+ }
+ }
+
+ private InCallServiceConnection getCurrentConnection() {
+ if (mIsCarMode && mCarModeConnection != null) {
+ return mCarModeConnection;
+ } else {
+ return mDialerConnection;
+ }
+ }
+ }
+
+ private class NonUIInCallServiceConnectionCollection extends InCallServiceConnection {
+ private final List<InCallServiceBindingConnection> mSubConnections;
+
+ public NonUIInCallServiceConnectionCollection(
+ List<InCallServiceBindingConnection> subConnections) {
+ mSubConnections = subConnections;
+ }
+
+ @Override
+ public boolean connect(Call call) {
+ for (InCallServiceBindingConnection subConnection : mSubConnections) {
+ subConnection.connect(call);
+ }
+ return true;
+ }
+
+ @Override
+ public void disconnect() {
+ for (InCallServiceBindingConnection subConnection : mSubConnections) {
+ subConnection.disconnect();
+ }
+ }
+
+ @Override
+ public void dump(IndentingPrintWriter pw) {
+ pw.println("Non-UI Connections:");
+ pw.increaseIndent();
+ for (InCallServiceBindingConnection subConnection : mSubConnections) {
+ subConnection.dump(pw);
+ }
+ pw.decreaseIndent();
}
}
@@ -185,7 +519,9 @@
private final SystemStateListener mSystemStateListener = new SystemStateListener() {
@Override
public void onCarModeChanged(boolean isCarMode) {
- // Do something when the car mode changes.
+ if (mInCallServiceConnection != null) {
+ mInCallServiceConnection.setCarMode(shouldUseCarModeUI());
+ }
}
};
@@ -195,15 +531,6 @@
private static final int IN_CALL_SERVICE_TYPE_CAR_MODE_UI = 3;
private static final int IN_CALL_SERVICE_TYPE_NON_UI = 4;
- /**
- * Maintains a binding connection to the in-call app(s).
- * ConcurrentHashMap constructor params: 8 is initial table size, 0.9f is
- * load factor before resizing, 1 means we only expect a single thread to
- * access the map so make only a single shard
- */
- private final Map<ComponentName, InCallServiceConnection> mServiceConnections =
- new ConcurrentHashMap<ComponentName, InCallServiceConnection>(8, 0.9f, 1);
-
/** The in-call app implementations, see {@link IInCallService}. */
private final Map<ComponentName, IInCallService> mInCallServices = new ArrayMap<>();
@@ -221,13 +548,18 @@
private final TelecomSystem.SyncRoot mLock;
private final CallsManager mCallsManager;
private final SystemStateProvider mSystemStateProvider;
+ private final DefaultDialerManagerAdapter mDefaultDialerAdapter;
+ private CarSwappingInCallServiceConnection mInCallServiceConnection;
+ private NonUIInCallServiceConnectionCollection mNonUIInCallServiceConnections;
public InCallController(Context context, TelecomSystem.SyncRoot lock, CallsManager callsManager,
- SystemStateProvider systemStateProvider) {
+ SystemStateProvider systemStateProvider,
+ DefaultDialerManagerAdapter defaultDialerAdapter) {
mContext = context;
mLock = lock;
mCallsManager = callsManager;
mSystemStateProvider = systemStateProvider;
+ mDefaultDialerAdapter = defaultDialerAdapter;
Resources resources = mContext.getResources();
mSystemInCallComponentName = new ComponentName(
@@ -384,19 +716,12 @@
* Unbinds an existing bound connection to the in-call app.
*/
private void unbindFromServices() {
- Iterator<Map.Entry<ComponentName, InCallServiceConnection>> iterator =
- mServiceConnections.entrySet().iterator();
- while (iterator.hasNext()) {
- final Map.Entry<ComponentName, InCallServiceConnection> entry = iterator.next();
- Log.i(this, "Unbinding from InCallService %s", entry.getKey());
- try {
- mContext.unbindService(entry.getValue());
- } catch (Exception e) {
- Log.e(this, e, "Exception while unbinding from InCallService");
- }
- iterator.remove();
+ if (isBoundToServices()) {
+ mInCallServiceConnection.disconnect();
+ mInCallServiceConnection = null;
+ mNonUIInCallServiceConnections.disconnect();
+ mNonUIInCallServiceConnections = null;
}
- mInCallServices.clear();
}
/**
@@ -407,13 +732,72 @@
*/
@VisibleForTesting
public void bindToServices(Call call) {
- ComponentName inCallUIService = null;
- ComponentName carModeInCallUIService = null;
- List<ComponentName> nonUIInCallServices = new LinkedList<>();
+ InCallServiceConnection dialerInCall = null;
+ ComponentName defaultDialerComponent = getDefaultDialerComponent();
+ Log.i(this, "defaultDialer: " + defaultDialerComponent);
+ if (defaultDialerComponent != null &&
+ !defaultDialerComponent.equals(mSystemInCallComponentName)) {
+ dialerInCall = new InCallServiceBindingConnection(defaultDialerComponent);
+ }
+ Log.i(this, "defaultDialer: " + dialerInCall);
- // Loop through all the InCallService implementations that exist in the devices;
- PackageManager packageManager = mContext.getPackageManager();
+ EmergencyInCallServiceConnection systemInCall =
+ new EmergencyInCallServiceConnection(mSystemInCallComponentName, dialerInCall);
+ systemInCall.setHasEmergency(mCallsManager.hasEmergencyCall());
+
+ InCallServiceConnection carModeInCall = null;
+ ComponentName carModeComponent = getCarModeComponent();
+ if (carModeComponent != null &&
+ !carModeComponent.equals(mSystemInCallComponentName)) {
+ carModeInCall = new InCallServiceBindingConnection(carModeComponent);
+ }
+
+ mInCallServiceConnection =
+ new CarSwappingInCallServiceConnection(systemInCall, carModeInCall);
+ mInCallServiceConnection.setCarMode(shouldUseCarModeUI());
+ mInCallServiceConnection.connect(call);
+
+
+ List<ComponentName> nonUIInCallComponents =
+ getInCallServiceComponents(null, IN_CALL_SERVICE_TYPE_NON_UI);
+ List<InCallServiceBindingConnection> nonUIInCalls = new LinkedList<>();
+ for (ComponentName componentName : nonUIInCallComponents) {
+ nonUIInCalls.add(new InCallServiceBindingConnection(componentName));
+ }
+ mNonUIInCallServiceConnections = new NonUIInCallServiceConnectionCollection(nonUIInCalls);
+ mNonUIInCallServiceConnections.connect(call);
+ }
+
+ private ComponentName getDefaultDialerComponent() {
+ String packageName = mDefaultDialerAdapter.getDefaultDialerApplication(
+ mContext, mCallsManager.getCurrentUserHandle().getIdentifier());
+ Log.d(this, "Default Dialer package: " + packageName);
+
+ return getInCallServiceComponent(packageName, IN_CALL_SERVICE_TYPE_DIALER_UI);
+ }
+
+ private ComponentName getCarModeComponent() {
+ return getInCallServiceComponent(null, IN_CALL_SERVICE_TYPE_CAR_MODE_UI);
+ }
+
+ private ComponentName getInCallServiceComponent(String packageName, int type) {
+ List<ComponentName> list = getInCallServiceComponents(packageName, type);
+ if (list != null && !list.isEmpty()) {
+ return list.get(0);
+ }
+ return null;
+ }
+
+ private List<ComponentName> getInCallServiceComponents(String packageName, int type) {
+ List<ComponentName> retval = new LinkedList<>();
+
Intent serviceIntent = new Intent(InCallService.SERVICE_INTERFACE);
+ if (packageName != null) {
+ serviceIntent.setPackage(packageName);
+ }
+
+
+ PackageManager packageManager = mContext.getPackageManager();
for (ResolveInfo entry : packageManager.queryIntentServicesAsUser(
serviceIntent,
PackageManager.GET_META_DATA,
@@ -421,107 +805,13 @@
ServiceInfo serviceInfo = entry.serviceInfo;
if (serviceInfo != null) {
- ComponentName componentName =
- new ComponentName(serviceInfo.packageName, serviceInfo.name);
- Log.v(this, "ICS: " + componentName + ", user: " + entry.targetUserId);
-
- switch (getInCallServiceType(entry.serviceInfo, packageManager)) {
- case IN_CALL_SERVICE_TYPE_DIALER_UI:
- if (inCallUIService == null ||
- inCallUIService.compareTo(componentName) > 0) {
- inCallUIService = componentName;
- }
- break;
-
- case IN_CALL_SERVICE_TYPE_SYSTEM_UI:
- // skip, will be added manually
- break;
-
- case IN_CALL_SERVICE_TYPE_CAR_MODE_UI:
- if (carModeInCallUIService == null ||
- carModeInCallUIService.compareTo(componentName) > 0) {
- carModeInCallUIService = componentName;
- }
- break;
-
- case IN_CALL_SERVICE_TYPE_NON_UI:
- nonUIInCallServices.add(componentName);
- break;
-
- case IN_CALL_SERVICE_TYPE_INVALID:
- break;
-
- default:
- Log.w(this, "unexpected in-call service type");
- break;
+ if (type == 0 || type == getInCallServiceType(entry.serviceInfo, packageManager)) {
+ retval.add(new ComponentName(serviceInfo.packageName, serviceInfo.name));
}
}
}
- Log.i(this, "Car mode InCallService: %s", carModeInCallUIService);
- Log.i(this, "Dialer InCallService: %s", inCallUIService);
-
- // Adding the in-call services in order:
- // (1) The carmode in-call if carmode is on.
- // (2) The default-dialer in-call if not an emergency call
- // (3) The system-provided in-call
- List<ComponentName> orderedInCallUIServices = new LinkedList<>();
- if (shouldUseCarModeUI() && carModeInCallUIService != null) {
- orderedInCallUIServices.add(carModeInCallUIService);
- }
- if (!mCallsManager.hasEmergencyCall() && inCallUIService != null) {
- orderedInCallUIServices.add(inCallUIService);
- }
- orderedInCallUIServices.add(mSystemInCallComponentName);
-
- // TODO: Need to implement the fall-back logic in case the main UI in-call service rejects
- // the binding request.
- ComponentName inCallUIServiceToBind = orderedInCallUIServices.get(0);
- if (!bindToInCallService(inCallUIServiceToBind, call, "ui")) {
- Log.event(call, Log.Events.ERROR_LOG,
- "InCallService system UI failed binding: " + inCallUIService);
- }
- mInCallUIComponentName = inCallUIServiceToBind;
-
- // Bind to the control InCallServices
- for (ComponentName componentName : nonUIInCallServices) {
- bindToInCallService(componentName, call, "control");
- }
- }
-
- /**
- * Binds to the specified InCallService.
- */
- private boolean bindToInCallService(ComponentName componentName, Call call, String tag) {
- if (mInCallServices.containsKey(componentName)) {
- Log.i(this, "An InCallService already exists: %s", componentName);
- return true;
- }
-
- if (mServiceConnections.containsKey(componentName)) {
- Log.w(this, "The service is already bound for this component %s", componentName);
- return true;
- }
-
- Intent intent = new Intent(InCallService.SERVICE_INTERFACE);
- intent.setComponent(componentName);
- if (call != null && !call.isIncoming()){
- intent.putExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS,
- call.getIntentExtras());
- intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE,
- call.getTargetPhoneAccount());
- }
-
- Log.i(this, "Attempting to bind to [%s] InCall %s, with %s", tag, componentName, intent);
- InCallServiceConnection inCallServiceConnection = new InCallServiceConnection();
- if (mContext.bindServiceAsUser(intent, inCallServiceConnection,
- Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE,
- UserHandle.CURRENT)) {
- mServiceConnections.put(componentName, inCallServiceConnection);
- return true;
- }
-
- return false;
+ return retval;
}
private boolean shouldUseCarModeUI() {
@@ -565,7 +855,7 @@
// Check to see that it is the default dialer package
boolean isDefaultDialerPackage = Objects.equals(serviceInfo.packageName,
- DefaultDialerManager.getDefaultDialerApplication(
+ mDefaultDialerAdapter.getDefaultDialerApplication(
mContext, mCallsManager.getCurrentUserHandle().getIdentifier()));
boolean isUIService = serviceInfo.metaData != null &&
serviceInfo.metaData.getBoolean(
@@ -588,13 +878,10 @@
}
private void adjustServiceBindingsForEmergency() {
- if (!Objects.equals(mInCallUIComponentName, mSystemInCallComponentName)) {
- // The connected UI is not the system UI, so lets check if we should switch them
- // if there exists an emergency number.
- if (mCallsManager.hasEmergencyCall()) {
- // Lets fake a failure here in order to trigger the switch to the system UI.
- onInCallServiceFailure(mInCallUIComponentName, "emergency adjust");
- }
+ // The connected UI is not the system UI, so lets check if we should switch them
+ // if there exists an emergency number.
+ if (mCallsManager.hasEmergencyCall()) {
+ mInCallServiceConnection.setHasEmergency(true);
}
}
@@ -605,8 +892,9 @@
*
* @param componentName The service {@link ComponentName}.
* @param service The {@link IInCallService} implementation.
+ * @return True if we successfully connected.
*/
- private void onConnected(ComponentName componentName, IBinder service) {
+ private boolean onConnected(ComponentName componentName, IBinder service) {
Trace.beginSection("onConnected: " + componentName);
Log.i(this, "onConnected to %s", componentName);
@@ -623,8 +911,7 @@
} catch (RemoteException e) {
Log.e(this, e, "Failed to set the in-call adapter.");
Trace.endSection();
- onInCallServiceFailure(componentName, "setInCallAdapter");
- return;
+ return false;
}
// Upon successful connection, send the state of the world to the service.
@@ -649,9 +936,10 @@
} catch (RemoteException ignored) {
}
} else {
- unbindFromServices();
+ return false;
}
Trace.endSection();
+ return true;
}
/**
@@ -663,40 +951,6 @@
Log.i(this, "onDisconnected from %s", disconnectedComponent);
mInCallServices.remove(disconnectedComponent);
- if (mServiceConnections.containsKey(disconnectedComponent)) {
- // One of the services that we were bound to has unexpectedly disconnected.
- onInCallServiceFailure(disconnectedComponent, "onDisconnect");
- }
- }
-
- /**
- * Handles non-recoverable failures by the InCallService. This method performs cleanup and
- * special handling when the failure is to the UI InCallService.
- */
- private void onInCallServiceFailure(ComponentName componentName, String tag) {
- Log.i(this, "Cleaning up a failed InCallService [%s]: %s", tag, componentName);
-
- // We always clean up the connections here. Even in the case where we rebind to the UI
- // because binding is count based and we could end up double-bound.
- mInCallServices.remove(componentName);
- InCallServiceConnection serviceConnection = mServiceConnections.remove(componentName);
- if (serviceConnection != null) {
- // We still need to call unbind even though it disconnected.
- mContext.unbindService(serviceConnection);
- }
-
- if (Objects.equals(mInCallUIComponentName, componentName)) {
- if (!mCallsManager.hasAnyCalls()) {
- // No calls are left anyway. Lets just disconnect all of them.
- unbindFromServices();
- return;
- }
-
- // Whenever the UI crashes, we automatically revert to the System UI for the
- // remainder of the active calls.
- mInCallUIComponentName = mSystemInCallComponentName;
- bindToInCallService(mInCallUIComponentName, null, "reconnecting");
- }
}
/**
@@ -748,7 +1002,7 @@
}
private boolean isBoundToServices() {
- return !mInCallServices.isEmpty();
+ return mInCallServiceConnection != null;
}
/**
@@ -764,10 +1018,10 @@
}
pw.decreaseIndent();
- pw.println("mServiceConnections (InCalls bound):");
+ pw.println("ServiceConnections (InCalls bound):");
pw.increaseIndent();
- for (ComponentName componentName : mServiceConnections.keySet()) {
- pw.println(componentName);
+ if (mInCallServiceConnection != null) {
+ mInCallServiceConnection.dump(pw);
}
pw.decreaseIndent();
}
diff --git a/src/com/android/server/telecom/Log.java b/src/com/android/server/telecom/Log.java
index 58406f2..081fc74 100644
--- a/src/com/android/server/telecom/Log.java
+++ b/src/com/android/server/telecom/Log.java
@@ -104,6 +104,7 @@
public static final String REMOTELY_HELD = "REMOTELY_HELD";
public static final String REMOTELY_UNHELD = "REMOTELY_UNHELD";
public static final String PULL = "PULL";
+ public static final String INFO = "INFO";
/**
* Maps from a request to a response. The same event could be listed as the
diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java
index 07b4ae7..b78eba8 100644
--- a/src/com/android/server/telecom/TelecomServiceImpl.java
+++ b/src/com/android/server/telecom/TelecomServiceImpl.java
@@ -67,6 +67,7 @@
public class TelecomServiceImpl {
public interface DefaultDialerManagerAdapter {
String getDefaultDialerApplication(Context context);
+ String getDefaultDialerApplication(Context context, int userId);
boolean setDefaultDialerApplication(Context context, String packageName);
boolean isDefaultOrSystemDialer(Context context, String packageName);
}
@@ -78,6 +79,11 @@
}
@Override
+ public String getDefaultDialerApplication(Context context, int userId) {
+ return DefaultDialerManager.getDefaultDialerApplication(context, userId);
+ }
+
+ @Override
public boolean setDefaultDialerApplication(Context context, String packageName) {
return DefaultDialerManager.setDefaultDialerApplication(context, packageName);
}
diff --git a/src/com/android/server/telecom/TelecomSystem.java b/src/com/android/server/telecom/TelecomSystem.java
index 16e8ea2..abd3aca 100644
--- a/src/com/android/server/telecom/TelecomSystem.java
+++ b/src/com/android/server/telecom/TelecomSystem.java
@@ -22,6 +22,7 @@
import com.android.server.telecom.ui.MissedCallNotifierImpl.MissedCallNotifierImplFactory;
import com.android.server.telecom.BluetoothPhoneServiceImpl.BluetoothPhoneServiceImplFactory;
import com.android.server.telecom.CallAudioManager.AudioServiceFactory;
+import com.android.server.telecom.TelecomServiceImpl.DefaultDialerManagerAdapter;
import android.Manifest;
import android.content.BroadcastReceiver;
@@ -173,6 +174,9 @@
mMissedCallNotifier = missedCallNotifierImplFactory
.makeMissedCallNotifierImpl(mContext, mPhoneAccountRegistrar);
+ DefaultDialerManagerAdapter defaultDialerAdapter =
+ new TelecomServiceImpl.DefaultDialerManagerAdapterImpl();
+
mCallsManager = new CallsManager(
mContext,
mLock,
@@ -186,7 +190,8 @@
audioServiceFactory,
bluetoothManager,
wiredHeadsetManager,
- systemStateProvider);
+ systemStateProvider,
+ defaultDialerAdapter);
mRespondViaSmsManager = new RespondViaSmsManager(mCallsManager, mLock);
mCallsManager.setRespondViaSmsManager(mRespondViaSmsManager);
@@ -214,7 +219,7 @@
return new UserCallIntentProcessor(context, userHandle);
}
},
- new TelecomServiceImpl.DefaultDialerManagerAdapterImpl(),
+ defaultDialerAdapter,
new TelecomServiceImpl.SubscriptionManagerAdapterImpl(),
mLock);
}
diff --git a/testapps/AndroidManifest.xml b/testapps/AndroidManifest.xml
index 3e8fe5b..7327e43 100644
--- a/testapps/AndroidManifest.xml
+++ b/testapps/AndroidManifest.xml
@@ -54,7 +54,7 @@
<service android:name="com.android.server.telecom.testapps.TestInCallServiceImpl"
android:process="com.android.server.telecom.testapps.TestInCallService"
android:permission="android.permission.BIND_INCALL_SERVICE" >
- <meta-data android:name="android.telecom.IN_CALL_SERVICE_CAR_MODE_UI" android:value="true"/>
+ <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="true"/>
<intent-filter>
<action android:name="android.telecom.InCallService"/>
</intent-filter>
diff --git a/testapps/src/com/android/server/telecom/testapps/TestCallList.java b/testapps/src/com/android/server/telecom/testapps/TestCallList.java
index 704c83d..391a588 100644
--- a/testapps/src/com/android/server/telecom/testapps/TestCallList.java
+++ b/testapps/src/com/android/server/telecom/testapps/TestCallList.java
@@ -148,7 +148,10 @@
}
public void clearCalls() {
- mCalls.clear();
+ for (Call call : new LinkedList<Call>(mCalls)) {
+ removeCall(call);
+ }
+
for (Call call : mVideoCallListeners.keySet()) {
if (call.getVideoCall() != null) {
call.getVideoCall().destroy();
diff --git a/tests/src/com/android/server/telecom/tests/InCallControllerTests.java b/tests/src/com/android/server/telecom/tests/InCallControllerTests.java
index 5d98c0a..2468774 100644
--- a/tests/src/com/android/server/telecom/tests/InCallControllerTests.java
+++ b/tests/src/com/android/server/telecom/tests/InCallControllerTests.java
@@ -16,14 +16,17 @@
package com.android.server.telecom.tests;
+import android.Manifest;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
import android.content.res.Resources;
import android.os.Bundle;
+import android.os.IBinder;
import android.os.UserHandle;
import android.telecom.ConnectionService;
import android.telecom.InCallService;
@@ -32,6 +35,8 @@
import android.test.mock.MockContext;
import android.test.suitebuilder.annotation.MediumTest;
+import com.android.internal.telecom.IInCallAdapter;
+import com.android.internal.telecom.IInCallService;
import com.android.server.telecom.BluetoothHeadsetProxy;
import com.android.server.telecom.Call;
import com.android.server.telecom.CallsManager;
@@ -39,6 +44,7 @@
import com.android.server.telecom.PhoneAccountRegistrar;
import com.android.server.telecom.R;
import com.android.server.telecom.SystemStateProvider;
+import com.android.server.telecom.TelecomServiceImpl.DefaultDialerManagerAdapter;
import com.android.server.telecom.TelecomSystem;
import org.mockito.ArgumentCaptor;
@@ -72,10 +78,13 @@
@Mock Call mMockCall;
@Mock Resources mMockResources;
@Mock MockContext mMockContext;
+ @Mock DefaultDialerManagerAdapter mMockDefaultDialerAdapter;
private static final int CURRENT_USER_ID = 900973;
private static final String DEF_PKG = "defpkg";
private static final String DEF_CLASS = "defcls";
+ private static final String SYS_PKG = "syspkg";
+ private static final String SYS_CLASS = "syscls";
private static final PhoneAccountHandle PA_HANDLE =
new PhoneAccountHandle(new ComponentName("pa_pkg", "pa_cls"), "pa_id");
@@ -88,10 +97,10 @@
super.setUp();
MockitoAnnotations.initMocks(this);
doReturn(mMockResources).when(mMockContext).getResources();
- doReturn(DEF_PKG).when(mMockResources).getString(R.string.ui_default_package);
- doReturn(DEF_CLASS).when(mMockResources).getString(R.string.incall_default_class);
+ doReturn(SYS_PKG).when(mMockResources).getString(R.string.ui_default_package);
+ doReturn(SYS_CLASS).when(mMockResources).getString(R.string.incall_default_class);
mInCallController = new InCallController(mMockContext, mLock, mMockCallsManager,
- mMockSystemStateProvider);
+ mMockSystemStateProvider, mMockDefaultDialerAdapter);
}
@Override
@@ -121,8 +130,8 @@
Intent bindIntent = bindIntentCaptor.getValue();
assertEquals(InCallService.SERVICE_INTERFACE, bindIntent.getAction());
- assertEquals(DEF_PKG, bindIntent.getComponent().getPackageName());
- assertEquals(DEF_CLASS, bindIntent.getComponent().getClassName());
+ assertEquals(SYS_PKG, bindIntent.getComponent().getPackageName());
+ assertEquals(SYS_CLASS, bindIntent.getComponent().getClassName());
assertNull(bindIntent.getExtras());
}
@@ -153,6 +162,74 @@
Intent bindIntent = bindIntentCaptor.getValue();
assertEquals(InCallService.SERVICE_INTERFACE, bindIntent.getAction());
+ assertEquals(SYS_PKG, bindIntent.getComponent().getPackageName());
+ assertEquals(SYS_CLASS, bindIntent.getComponent().getClassName());
+ assertEquals(PA_HANDLE, bindIntent.getExtras().getParcelable(
+ TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE));
+ assertEquals(callExtras, bindIntent.getExtras().getParcelable(
+ TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS));
+ }
+
+ @MediumTest
+ public void testBindToService_DefaultDialer_NoEmergency() throws Exception {
+ Bundle callExtras = new Bundle();
+ callExtras.putBoolean("whatever", true);
+
+ when(mMockCallsManager.getCurrentUserHandle()).thenReturn(mUserHandle);
+ when(mMockContext.getPackageManager()).thenReturn(mMockPackageManager);
+ when(mMockCallsManager.hasEmergencyCall()).thenReturn(false);
+ when(mMockCall.isIncoming()).thenReturn(false);
+ when(mMockCall.getTargetPhoneAccount()).thenReturn(PA_HANDLE);
+ when(mMockCall.getIntentExtras()).thenReturn(callExtras);
+ when(mMockDefaultDialerAdapter.getDefaultDialerApplication(mMockContext, CURRENT_USER_ID))
+ .thenReturn(DEF_PKG);
+ when(mMockContext.bindServiceAsUser(any(Intent.class), any(ServiceConnection.class),
+ anyInt(), eq(UserHandle.CURRENT))).thenReturn(true);
+
+ Intent queryIntent = new Intent(InCallService.SERVICE_INTERFACE);
+ when(mMockPackageManager.queryIntentServicesAsUser(
+ any(Intent.class), eq(PackageManager.GET_META_DATA), eq(CURRENT_USER_ID)))
+ .thenReturn(new LinkedList<ResolveInfo>() {{
+ add(new ResolveInfo() {{
+ serviceInfo = new ServiceInfo();
+ serviceInfo.packageName = DEF_PKG;
+ serviceInfo.name = DEF_CLASS;
+ serviceInfo.permission = Manifest.permission.BIND_INCALL_SERVICE;
+ serviceInfo.metaData = new Bundle();
+ serviceInfo.metaData.putBoolean(
+ TelecomManager.METADATA_IN_CALL_SERVICE_UI, true);
+ }});
+ add(new ResolveInfo() {{
+ serviceInfo = new ServiceInfo();
+ serviceInfo.packageName = SYS_PKG;
+ serviceInfo.name = SYS_CLASS;
+ serviceInfo.permission = Manifest.permission.BIND_INCALL_SERVICE;
+ }});
+ }});
+ mInCallController.bindToServices(mMockCall);
+
+ // Query for the different InCallServices
+ ArgumentCaptor<Intent> queryIntentCaptor = ArgumentCaptor.forClass(Intent.class);
+ verify(mMockPackageManager, times(3)).queryIntentServicesAsUser(
+ queryIntentCaptor.capture(),
+ eq(PackageManager.GET_META_DATA), eq(CURRENT_USER_ID));
+
+ // Verify call for default dialer InCallService
+ assertEquals(DEF_PKG, queryIntentCaptor.getAllValues().get(0).getPackage());
+ // Verify call for car-mode InCallService
+ assertEquals(null, queryIntentCaptor.getAllValues().get(1).getPackage());
+ // Verify call for non-UI InCallServices
+ assertEquals(null, queryIntentCaptor.getAllValues().get(2).getPackage());
+
+ ArgumentCaptor<Intent> bindIntentCaptor = ArgumentCaptor.forClass(Intent.class);
+ verify(mMockContext, times(1)).bindServiceAsUser(
+ bindIntentCaptor.capture(),
+ any(ServiceConnection.class),
+ eq(Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE),
+ eq(UserHandle.CURRENT));
+
+ Intent bindIntent = bindIntentCaptor.getValue();
+ assertEquals(InCallService.SERVICE_INTERFACE, bindIntent.getAction());
assertEquals(DEF_PKG, bindIntent.getComponent().getPackageName());
assertEquals(DEF_CLASS, bindIntent.getComponent().getClassName());
assertEquals(PA_HANDLE, bindIntent.getExtras().getParcelable(
@@ -160,4 +237,171 @@
assertEquals(callExtras, bindIntent.getExtras().getParcelable(
TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS));
}
+
+ @MediumTest
+ public void testBindToService_SystemDialer_Emergency() throws Exception {
+ Bundle callExtras = new Bundle();
+ callExtras.putBoolean("whatever", true);
+
+ when(mMockCallsManager.getCurrentUserHandle()).thenReturn(mUserHandle);
+ when(mMockContext.getPackageManager()).thenReturn(mMockPackageManager);
+ when(mMockCallsManager.hasEmergencyCall()).thenReturn(true);
+ when(mMockCall.isIncoming()).thenReturn(false);
+ when(mMockCall.getTargetPhoneAccount()).thenReturn(PA_HANDLE);
+ when(mMockCall.getIntentExtras()).thenReturn(callExtras);
+ when(mMockDefaultDialerAdapter.getDefaultDialerApplication(mMockContext, CURRENT_USER_ID))
+ .thenReturn(DEF_PKG);
+ when(mMockContext.bindServiceAsUser(any(Intent.class), any(ServiceConnection.class),
+ eq(Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE),
+ eq(UserHandle.CURRENT))).thenReturn(true);
+
+ Intent queryIntent = new Intent(InCallService.SERVICE_INTERFACE);
+ when(mMockPackageManager.queryIntentServicesAsUser(
+ any(Intent.class), eq(PackageManager.GET_META_DATA), eq(CURRENT_USER_ID)))
+ .thenReturn(new LinkedList<ResolveInfo>() {{
+ add(new ResolveInfo() {{
+ serviceInfo = new ServiceInfo();
+ serviceInfo.packageName = DEF_PKG;
+ serviceInfo.name = DEF_CLASS;
+ serviceInfo.permission = Manifest.permission.BIND_INCALL_SERVICE;
+ serviceInfo.metaData = new Bundle();
+ serviceInfo.metaData.putBoolean(
+ TelecomManager.METADATA_IN_CALL_SERVICE_UI, true);
+ }});
+ add(new ResolveInfo() {{
+ serviceInfo = new ServiceInfo();
+ serviceInfo.packageName = SYS_PKG;
+ serviceInfo.name = SYS_CLASS;
+ serviceInfo.permission = Manifest.permission.BIND_INCALL_SERVICE;
+ }});
+ }});
+ mInCallController.bindToServices(mMockCall);
+
+ // Query for the different InCallServices
+ ArgumentCaptor<Intent> queryIntentCaptor = ArgumentCaptor.forClass(Intent.class);
+ verify(mMockPackageManager, times(3)).queryIntentServicesAsUser(
+ queryIntentCaptor.capture(),
+ eq(PackageManager.GET_META_DATA), eq(CURRENT_USER_ID));
+
+ // Verify call for default dialer InCallService
+ assertEquals(DEF_PKG, queryIntentCaptor.getAllValues().get(0).getPackage());
+ // Verify call for car-mode InCallService
+ assertEquals(null, queryIntentCaptor.getAllValues().get(1).getPackage());
+ // Verify call for non-UI InCallServices
+ assertEquals(null, queryIntentCaptor.getAllValues().get(2).getPackage());
+
+ ArgumentCaptor<Intent> bindIntentCaptor = ArgumentCaptor.forClass(Intent.class);
+ verify(mMockContext, times(1)).bindServiceAsUser(
+ bindIntentCaptor.capture(),
+ any(ServiceConnection.class),
+ eq(Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE),
+ eq(UserHandle.CURRENT));
+
+ Intent bindIntent = bindIntentCaptor.getValue();
+ assertEquals(InCallService.SERVICE_INTERFACE, bindIntent.getAction());
+ assertEquals(SYS_PKG, bindIntent.getComponent().getPackageName());
+ assertEquals(SYS_CLASS, bindIntent.getComponent().getClassName());
+ assertEquals(PA_HANDLE, bindIntent.getExtras().getParcelable(
+ TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE));
+ assertEquals(callExtras, bindIntent.getExtras().getParcelable(
+ TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS));
+ }
+
+ @MediumTest
+ public void testBindToService_DefaultDialer_FallBackToSystem() throws Exception {
+ Bundle callExtras = new Bundle();
+ callExtras.putBoolean("whatever", true);
+
+ when(mMockCallsManager.getCurrentUserHandle()).thenReturn(mUserHandle);
+ when(mMockContext.getPackageManager()).thenReturn(mMockPackageManager);
+ when(mMockCallsManager.hasEmergencyCall()).thenReturn(false);
+ when(mMockCall.isIncoming()).thenReturn(false);
+ when(mMockCall.getTargetPhoneAccount()).thenReturn(PA_HANDLE);
+ when(mMockCall.getIntentExtras()).thenReturn(callExtras);
+ when(mMockDefaultDialerAdapter.getDefaultDialerApplication(mMockContext, CURRENT_USER_ID))
+ .thenReturn(DEF_PKG);
+ when(mMockContext.bindServiceAsUser(
+ any(Intent.class), any(ServiceConnection.class), anyInt(), any(UserHandle.class)))
+ .thenReturn(true);
+
+ Intent queryIntent = new Intent(InCallService.SERVICE_INTERFACE);
+ when(mMockPackageManager.queryIntentServicesAsUser(
+ any(Intent.class), eq(PackageManager.GET_META_DATA), eq(CURRENT_USER_ID)))
+ .thenReturn(new LinkedList<ResolveInfo>() {{
+ add(new ResolveInfo() {{
+ serviceInfo = new ServiceInfo();
+ serviceInfo.packageName = DEF_PKG;
+ serviceInfo.name = DEF_CLASS;
+ serviceInfo.permission = Manifest.permission.BIND_INCALL_SERVICE;
+ serviceInfo.metaData = new Bundle();
+ serviceInfo.metaData.putBoolean(
+ TelecomManager.METADATA_IN_CALL_SERVICE_UI, true);
+ }});
+ add(new ResolveInfo() {{
+ serviceInfo = new ServiceInfo();
+ serviceInfo.packageName = SYS_PKG;
+ serviceInfo.name = SYS_CLASS;
+ serviceInfo.permission = Manifest.permission.BIND_INCALL_SERVICE;
+ }});
+ }});
+ mInCallController.bindToServices(mMockCall);
+
+ // Query for the different InCallServices
+ ArgumentCaptor<Intent> queryIntentCaptor = ArgumentCaptor.forClass(Intent.class);
+ verify(mMockPackageManager, times(3)).queryIntentServicesAsUser(
+ queryIntentCaptor.capture(),
+ eq(PackageManager.GET_META_DATA), eq(CURRENT_USER_ID));
+
+ // Verify call for default dialer InCallService
+ assertEquals(DEF_PKG, queryIntentCaptor.getAllValues().get(0).getPackage());
+ // Verify call for car-mode InCallService
+ assertEquals(null, queryIntentCaptor.getAllValues().get(1).getPackage());
+ // Verify call for non-UI InCallServices
+ assertEquals(null, queryIntentCaptor.getAllValues().get(2).getPackage());
+
+ ArgumentCaptor<Intent> bindIntentCaptor = ArgumentCaptor.forClass(Intent.class);
+ ArgumentCaptor<ServiceConnection> serviceConnectionCaptor =
+ ArgumentCaptor.forClass(ServiceConnection.class);
+ verify(mMockContext, times(1)).bindServiceAsUser(
+ bindIntentCaptor.capture(),
+ serviceConnectionCaptor.capture(),
+ eq(Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE),
+ eq(UserHandle.CURRENT));
+
+ Intent bindIntent = bindIntentCaptor.getValue();
+ assertEquals(InCallService.SERVICE_INTERFACE, bindIntent.getAction());
+ assertEquals(DEF_PKG, bindIntent.getComponent().getPackageName());
+ assertEquals(DEF_CLASS, bindIntent.getComponent().getClassName());
+ assertEquals(PA_HANDLE, bindIntent.getExtras().getParcelable(
+ TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE));
+ assertEquals(callExtras, bindIntent.getExtras().getParcelable(
+ TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS));
+
+ // We have a ServiceConnection for the default dialer, lets start the connection, and then
+ // simulate a crash so that we fallback to system.
+ ServiceConnection serviceConnection = serviceConnectionCaptor.getValue();
+ ComponentName defDialerComponentName = new ComponentName(DEF_PKG, DEF_CLASS);
+ IBinder mockBinder = mock(IBinder.class);
+ IInCallService mockInCallService = mock(IInCallService.class);
+ when(mockBinder.queryLocalInterface(anyString())).thenReturn(mockInCallService);
+
+
+ // Start the connection with IInCallService
+ serviceConnection.onServiceConnected(defDialerComponentName, mockBinder);
+ verify(mockInCallService).setInCallAdapter(any(IInCallAdapter.class));
+
+ // Now crash the damn thing!
+ serviceConnection.onServiceDisconnected(defDialerComponentName);
+
+ ArgumentCaptor<Intent> bindIntentCaptor2 = ArgumentCaptor.forClass(Intent.class);
+ verify(mMockContext, times(2)).bindServiceAsUser(
+ bindIntentCaptor2.capture(),
+ any(ServiceConnection.class),
+ eq(Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE),
+ eq(UserHandle.CURRENT));
+
+ bindIntent = bindIntentCaptor2.getValue();
+ assertEquals(SYS_PKG, bindIntent.getComponent().getPackageName());
+ assertEquals(SYS_CLASS, bindIntent.getComponent().getClassName());
+ }
}
diff --git a/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java b/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
index a705aeb..98231ce 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
@@ -104,6 +104,11 @@
}
@Override
+ public String getDefaultDialerApplication(Context context, int userId) {
+ return null;
+ }
+
+ @Override
public boolean setDefaultDialerApplication(Context context, String packageName) {
return false;
}