Merge "Key the conference participants using the Endpoint" into nyc-mr1-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ddc2dbe..39c5385 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -716,14 +716,15 @@
                     android:mimeType="vnd.android.cursor.dir/voicemails"/>
             </intent-filter>
         </receiver>
-        <service
-            android:name="com.android.phone.vvm.omtp.sync.OmtpVvmSyncService"
-            android:exported="false" />
 
         <service
             android:name="com.android.phone.vvm.omtp.sms.OmtpProvisioningService"
             android:exported="false" />
 
+        <service
+          android:name="com.android.phone.vvm.omtp.scheduling.TaskSchedulerService"
+          android:exported="false" />
+
         <receiver android:name="com.android.phone.vvm.omtp.VvmPackageInstallReceiver"
             androidprv:systemUserOnly="true">
             <intent-filter>
@@ -732,5 +733,11 @@
                 <data android:scheme="package"/>
             </intent-filter>
         </receiver>
+
+        <activity android:name=".settings.VoicemailChangePinActivity"
+          android:exported="false"
+          android:theme="@style/DialerSettingsLight"
+          android:windowSoftInputMode="stateVisible|adjustResize">
+          </activity>
     </application>
 </manifest>
diff --git a/res/layout/voicemail_change_pin.xml b/res/layout/voicemail_change_pin.xml
new file mode 100644
index 0000000..ba0d823
--- /dev/null
+++ b/res/layout/voicemail_change_pin.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+  android:layout_width="match_parent"
+  android:layout_height="match_parent"
+  android:gravity="center_horizontal"
+  android:orientation="vertical">
+  <!-- header text ('Enter Pin') -->
+  <LinearLayout
+    android:layout_width="match_parent"
+    android:layout_height="0dp"
+    android:layout_weight="1"
+    android:orientation="vertical"
+    android:padding="48dp">
+    <TextView
+      android:id="@+id/headerText"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:gravity="center"
+      android:lines="2"
+      android:textAppearance="@android:style/TextAppearance.DeviceDefault.DialogWindowTitle"
+      android:accessibilityLiveRegion="polite"/>
+
+    <!-- hint text ('PIN too short') -->
+    <TextView
+      android:id="@+id/hintText"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:gravity="center"
+      android:lines="2" />
+
+    <!-- error text ('PIN too short') -->
+    <TextView
+      android:id="@+id/errorText"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:gravity="center"
+      android:lines="2"
+      android:textColor="@android:color/holo_red_dark"/>
+
+    <!-- Password entry field -->
+    <EditText
+      android:id="@+id/pin_entry"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_gravity="center"
+      android:gravity="center"
+      android:imeOptions="actionNext|flagNoExtractUi"
+      android:inputType="numberPassword"
+      android:textSize="24sp"/>
+  </LinearLayout>
+
+  <LinearLayout
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:clipChildren="false"
+    android:clipToPadding="false"
+    android:gravity="end"
+    android:orientation="horizontal">
+
+    <!-- left : cancel -->
+    <Button
+      android:id="@+id/cancel_button"
+      android:layout_width="0dp"
+      android:layout_weight="1"
+      android:layout_height="wrap_content"
+      android:text="@string/change_pin_cancel_label"/>
+
+    <!-- right : continue -->
+    <Button
+      android:id="@+id/next_button"
+      android:layout_width="0dp"
+      android:layout_weight="1"
+      android:layout_height="wrap_content"
+      android:text="@string/change_pin_continue_label"/>
+
+  </LinearLayout>
+</LinearLayout>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 8bd5c69..8383eb4 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Jou diensverskaffer"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Ou PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Nuwe PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Verander tans PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Die nuwe PIN is te kort."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Die nuwe PIN is te lank."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Die nuwe PIN is te swak. \'n Sterk wagwoord moenie daaropvolgend wees of syfers bevat wat herhaal nie."</string>
@@ -459,6 +460,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kan nie oproep(e) vrystel nie."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Kan nie oproepe aanhou nie."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Koppel aan \'n draadlose netwerk om \'n oproep te maak."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Noodoproep"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Skakel tans radio aan…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Geen sein nie. Probeer tans weer …"</string>
@@ -553,6 +556,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibreer"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibreer"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visuele stemboodskapdiens"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Verander PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Klank"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Luitoon en vibreer"</string>
@@ -571,4 +576,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Kon nie die boodskap dekodeer nie."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"\'n SIM-kaart het jou diens geaktiveer en jou foon se swerwingvermoëns opgedateer."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Daar is te veel aktiewe oproepe. Beëindig of voeg asseblief bestaande oproepe saam voordat jy \'n nuwe een maak."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 152ae85..39aaa72 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"የእርስዎ ድምጸ ተያያዥ ሞደም"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"የቀድሞ ፒን"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"አዲስ ፒን"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"ፒን በመቀየር ላይ"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"አዲሱ ፒን በጣም አጭር ነው።"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"አዲሱ ፒን በጣም ረጅም ነው።"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"አዲሱ ፒን በጣም ደካማ ነው። ጠንካራ የይለፍ ቃል ተከታታይ ቅጥልጥል ወይም ተደጋጋሚ አኃዞች ሊኖሩት አይገባም።"</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ጥሪ(ዎች)ን መልቀቅ አልተቻለም።"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ጥሪዎችን መያዝ አልተቻለም።"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ጥሪ ለማድረግ ወደ ሽቦ አልባ አውታረ መረብ ያገናኙ።"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"የአደጋ ጊዜ ጥሪ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ሬዲዮ ክፈት"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"ምንም አገልግሎት የለም። ዳግም በመሞከር ላይ…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"ንዘር"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"ንዘር"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"ምስላዊ የድመጽ መልዕከት"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"ፒን ቀይር"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ድምፅ"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"የደወል ቅላጼ እና ንዘረት"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"መልዕክቱን በማመሳጠር ላይ ስህተት ነበር።"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"አንድ ሲም ካርድ አገልግሎትዎን ገቢር አድርጎታል፣ እንዲሁም የስልክዎን የማስተላለፍ ችሎታዎችን አዘምኗል።"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"እጅግ በጣም ብዙ ንቁ ጥሪዎች አሉ። እባክዎ አዲስ ከማስቀመጥዎ በፊት ያሉትን ጥሪዎች ይጨርሱ ወይም ያዋህዱ።"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index cffda11..c83f035 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"مشغل شبكة الجوّال"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"رقم التعريف الشخصي القديم"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"رقم التعريف الشخصي الجديد"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"تغيير رقم التعريف الشخصي"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"رقم التعريف الشخصي الجديد قصير جدًا."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"رقم التعريف الشخصي الجديد طويل جدًا."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"رقم التعريف الشخصي الجديد ضعيف جدًا. لا ينبغي أن تكون كلمة المرور القوية عبارة عن تسلسل متتالٍ أو أرقام متكررة."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"يتعذر تحرير المكالمات."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"يتعذر وضع المكالمات قيد الانتظار."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"اتصل بشبكة لاسلكية لإجراء مكالمة."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"مكالمة الطوارئ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"جارٍ تشغيل اللاسلكي..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"لا تتوفر خدمة. جارٍ إعادة المحاولة…"</string>
@@ -561,6 +564,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"الاهتزاز"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"الاهتزاز"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"بريد صوتي مرئي"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"تغيير رقم التعريف الشخصي"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"الصوت"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"نغمة الرنين والاهتزاز"</string>
@@ -579,4 +584,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"حدث خطأ أثناء فك ترميز الرسالة."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"‏نشطت شريحة SIM خدمتك وحدّثت إمكانات التجوال لهاتفك."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"هناك الكثير من المكالمات النشطة. يرجى إنهاء أو دمج المكالمات الموجودة قبل إجراء مكالمة جديدة."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index 9fc08dd..a7dea72 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Operatorunuz"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Köhnə PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Yeni PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN kod dəyişdirilir"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Yeni PIN kod çox qısadır."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Yeni PIN kod çox uzundur."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Yeni PIN kod çox zəifdir. Güclü parol ardıcıllıqdan və ya təkrarlanan rəqəmlərdən ibarət olmamalıdır."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Zəngləri buraxmaq mümkün deyil."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Zənglər saxlanıla bilməz."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Zəng etmək üçün Wi-Fi şəbəkəsinə qoşulun."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Təcili zəng"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Radio yandırılır ..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Xidmət yoxdur. Yenidən cəhd edilir…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrasiya"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrasiya"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Vizual Səsli Mesaj"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN kodu dəyişin"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Səs"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Zəng səsi &amp; Vibrasiya"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Mesaj dekod edilən zaman xəta oldu."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM kart xidmətinizi aktivləşdirdi və telefonunuzun rominq imkanlarını güncəlləşdi."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Burada həddindən çox aktiv zəng var. Yeni birini yerləşdirmək üçün mövcud zəngləri sonlandırın və ya birləşdirin."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 65e3a3e..045492d 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Вашият оператор"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Стар ПИН"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Нов ПИН"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"ПИН се променя"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Новият ПИН е твърде къс."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Новият ПИН е твърде дълъг."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Новият ПИН не е достатъчно надежден. Надеждната парола не бива да има последователни или повтарящи се цифри."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Обаждането или съответно обажданията не могат да се освободят."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Не може да се извършват обаждания."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Свържете се с безжична мрежа, за да осъществите обаждане."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Спешно обаждане"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Радиото се включва…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Няма услуга. Извършва се нов опит…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Вибриране"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Вибриране"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Визуална гласова поща"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Промяна на ПИН"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Звук"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Мелодия и вибриране"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"При декодирането на съобщението възникна грешка."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM картата е активирала клетъчните ви услуги и е актуализирала възможностите за роуминг на телефона ви."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Активните обаждания са твърде много. Моля, завършете или обединете съществуващи обаждания, преди да започнете ново."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index 5973fca..61e6ccf 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"আপনার পরিষেবা প্রদানকারী"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"পুরানো পিন"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"নতুন পিন"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"পিন পরিবর্তন করুন"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"নতুন পিনটি খুবই ছোট৷"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"নতুন পিনটি খুবই বড়৷"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"নতুন পিনটি খুবই দুর্বল৷ একটি শক্তিশালী পাসওয়ার্ডে ধারাবাহিক ক্রম বা পুনরাবৃত্ত সংখ্যা থাকা উচিৎ নয়৷"</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"কল(গুলি) কাটা যাবে না৷"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"কলগুলি ধরে রাখা যাবে না।"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"একটি কল করতে কোনো ওয়্যারলেস নেটওয়ার্কে সংযোগ করুন৷"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"জরুরি কল"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"রেডিও চালু করা হচ্ছে…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"কোন পরিষেবা নেই৷ আবার চেষ্টা করা হচ্ছে..."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"কম্পন"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"কম্পন"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"ভিজ্যুয়াল ভয়েসমেল"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"পিন পরিবর্তন করুন"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"শব্দ"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"রিংটোন ও কম্পন"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"বার্তাটি ডিকোড করার সময় একটি ত্রুটি ঘটেছে৷"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"একটি SIM কার্ড আপনার পরিষেবা সক্রিয় করেছে এবং আপনার ফোনের রোমিং ক্ষমতা আপডেট করা হয়েছে৷"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"অনেকগুলি কল সক্রিয় রয়েছে। অনুগ্রহ করে একটি নতুন কল করার আগে বিদ্যমান কলগুলি কেটে দিন বা এটিকে সেই কলগুলিতে অন্তর্ভুক্ত করুন।"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index d207d23..fc8cde4 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"EL teu operador"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"PIN antic"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"PIN nou"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"S\'està canviant el PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"El PIN nou és massa curt."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"El PIN nou és massa llarg."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"El PIN nou no és prou segur. Les contrasenyes segures no poden contenir seqüències contínues ni dígits repetits."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"No es poden alliberar trucades."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"No es poden posar les trucades en espera."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Per fer una trucada, connecta amb una xarxa sense fil."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Trucada d\'emergència"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"S\'està activant el senyal mòbil..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"No hi ha servei. S\'està tornant a provar..."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibra"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibra"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Bústia de veu visual"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Canvia el PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"So"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"So i vibració"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"S\'ha produït un error en descodificar el missatge."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Una targeta SIM ha activat el servei, i s\'ha actualitzat la funció d\'itinerància del telèfon."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Hi ha massa trucades actives. Finalitza\'n alguna o combina-les abans de fer-ne una de nova."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 00fd03c..36356b1 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Váš operátor"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Starý kód PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Nový kód PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Změna kódu PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Nový kód PIN je příliš krátký."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Nový kód PIN je příliš dlouhý."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Nový kód PIN je příliš slabý. Silný kód by neměl obsahovat postupnou řadu čísel ani opakující se čísla."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Hovor nelze ukončit."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Hovory nelze podržet."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Chcete-li provést hovor, připojte se k bezdrátové síti."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Tísňové volání"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Zapínání rádia..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Služba je nedostupná. Probíhá další pokus…"</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrace"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrace"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Vizuální hlasová schránka"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Změnit kód PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Zvuk"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Vyzvánění a vibrace"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Při dekódování zprávy došlo k chybě."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM karta aktivovala vaši službu a byly aktualizovány roamingové možnosti telefonu."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Máte příliš mnoho aktivních hovorů. Ukončete nebo spojte stávající hovory, než zahájíte nový."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 2b7e2e8..94a291f 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Dit mobilselskab"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Nuværende pinkode"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Ny pinkode"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Skifter pinkoden"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Den nye pinkode er for kort."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Den nye pinkode er for lang."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Denne pinkode er for svag. En stærk adgangskode består ikke af en række tal og har ikke flere af de samme tal efter hinanden."</string>
@@ -461,6 +462,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kan ikke frigive et eller flere opkald."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Opkald kan ikke sættes i venteposition."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Opret forbindelse til et trådløst netværk for at foretage et opkald."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Nødopkald"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Tænder for radio ..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Ingen tjeneste. Prøver igen..."</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibration"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibration"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visuel telefonsvarer"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Skift pinkode"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Lyd"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringetone og vibration"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Der opstod en fejl under afkodning af beskeden."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Et SIM-kort har aktiveret din tjeneste og opdateret telefonens roamingmuligheder."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Der er for mange aktive opkald. Afslut et opkald, eller flet eksisterende opkald, inden du foretager et nyt."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 8f75543..e544fb5 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Mobilfunkanbieter"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Alte PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Neue PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN wird geändert"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Die neue PIN ist zu kurz."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Die neue PIN ist zu lang."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Die neue PIN ist zu unsicher. Ein sicheres Passwort sollte keine aufeinanderfolgenden oder wiederholten Zeichen enthalten."</string>
@@ -459,6 +460,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Anrufe können nicht freigegeben werden."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Anrufe können nicht gehalten werden."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Stelle zum Telefonieren eine WLAN-Verbindung her."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Notruf"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Mobilfunkverbindung wird aktiviert..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Kein Service. Erneuter Versuch..."</string>
@@ -553,6 +556,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibration"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibration"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visuelle Mailbox"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN ändern"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Töne"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Klingelton &amp; Vibration"</string>
@@ -571,4 +576,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Beim Entschlüsseln der Nachricht ist ein Fehler aufgetreten."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Eine SIM-Karte hat deinen Dienst aktiviert und die Roamingfunktionen deines Smartphones aktualisiert."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Zu viele aktive Anrufe. Beende aktive Anrufe oder führe sie zusammen, bevor du einen neuen Anruf tätigst."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 1d52966..e992dd0 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Ο πάροχος κινητής τηλεφωνίας"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Παλιό PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Νέο PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Αλλαγή PIN σε εξέλιξη"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Το νέο PIN είναι πολύ μικρό."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Το νέο PIN είναι πολύ μεγάλo."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Το νέο PIN είναι πολύ αδύναμο. Ένας ισχυρός κωδικός πρόσβασης δεν θα πρέπει να αποτελείται από ακολουθίες χαρακτήρων ή επαναλαμβανόμενα ψηφία."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Δεν είναι δυνατή η πραγματοποίηση κλήσεων."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Δεν είναι δυνατή η αναμονή κλήσεων."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Συνδεθείτε σε ασύρματο δίκτυο για να πραγματοποιήσετε μια κλήση."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Κλήσεις επείγουσας ανάγκης"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ενεργοποίηση πομπού..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Δεν υπάρχει υπηρεσία. Νέα προσπάθεια…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Δόνηση"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Δόνηση"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Οπτικός αυτόματος τηλεφ."</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Αλλαγή PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Ήχος"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ήχος κλήσης &amp; δόνηση"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Παρουσιάστηκε κάποιο σφάλμα κατά την αποκωδικοποίηση του μηνύματος."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Μια κάρτα SIM ενεργοποίησε την υπηρεσία σας και ενημέρωσε τις δυνατότητες περιαγωγής του τηλεφώνου σας."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Υπάρχουν πάρα πολλές ενεργές κλήσεις. Τερματίστε ή να συγχωνεύστε τις υπάρχουσες κλήσεις πριν πραγματοποιήσετε νέα."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index fe6b526..ffdac7f 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Your operator"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Old PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"New PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Changing PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"The new PIN is too short."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"The new PIN is too long."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"The new PIN is too weak. A strong password should not have a continuous sequence or repeated digits."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Can\'t release call(s)."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Can\'t hold calls."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connect to a wireless network to make a call."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency call"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Turning on radio…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"No service. Trying again…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrate"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrate"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visual Voicemail"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Change PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sound"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringtone &amp; Vibrate"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"There was an error while decoding the message."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index fe6b526..ffdac7f 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Your operator"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Old PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"New PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Changing PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"The new PIN is too short."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"The new PIN is too long."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"The new PIN is too weak. A strong password should not have a continuous sequence or repeated digits."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Can\'t release call(s)."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Can\'t hold calls."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connect to a wireless network to make a call."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency call"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Turning on radio…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"No service. Trying again…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrate"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrate"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visual Voicemail"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Change PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sound"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringtone &amp; Vibrate"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"There was an error while decoding the message."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index fe6b526..ffdac7f 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Your operator"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Old PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"New PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Changing PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"The new PIN is too short."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"The new PIN is too long."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"The new PIN is too weak. A strong password should not have a continuous sequence or repeated digits."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Can\'t release call(s)."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Can\'t hold calls."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connect to a wireless network to make a call."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency call"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Turning on radio…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"No service. Trying again…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrate"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrate"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visual Voicemail"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Change PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sound"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringtone &amp; Vibrate"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"There was an error while decoding the message."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index dacf247..31bfcab 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Tu proveedor"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"PIN anterior"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Nuevo PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Cambiando el PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"El nuevo PIN es demasiado corto."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"El nuevo PIN es demasiado largo."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"El nuevo PIN no es muy seguro. Una contraseña segura no debería tener secuencias continuas ni dígitos repetidos."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"No se puede liberar llamadas."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"No es posible poner las llamadas en espera."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Conectarse a una red inalámbrica para hacer una llamada"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Llamada de emergencia"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Encendiendo radio..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"No hay servicio. Vuelve a intentarlo."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrar"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrar"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Buzón de voz visual"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Cambiar PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sonido"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Tono y vibración"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Se produjo un error al decodificar el mensaje."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Una tarjeta SIM activó tu servicio y actualizó las capacidades de roaming del teléfono."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Hay demasiadas llamadas activas. Finaliza o combina las llamadas existentes antes de realizar una llamada nueva."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 0cc1cc9..da78896 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Tu operador"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"PIN antiguo"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"PIN nuevo"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Cambiando PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"El PIN nuevo es muy corto."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"El PIN nuevo es muy largo."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"El PIN nuevo no es lo bastante seguro. Una contraseña segura no debería contener secuencias continuas ni dígitos repetidos."</string>
@@ -459,6 +460,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"No se pueden hacer llamadas."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"No se pueden retener llamadas."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Conéctate a una red inalámbrica para hacer llamadas."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Llamada de emergencia"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Activando señal móvil…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Sin servicio. Reintentado…"</string>
@@ -553,6 +556,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrar"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrar"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Buzón de voz visual"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Cambiar PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sonido"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Tono y vibración"</string>
@@ -571,4 +576,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Se ha producido un error al decodificar el mensaje."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Una tarjeta SIM ha activado tu servicio y actualizado la función de itinerancia del teléfono."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Hay demasiadas llamadas activas. Finaliza o combina las llamadas que tienes antes de iniciar otra."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index a338c1e..acb092c 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Teie operaator"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Vana PIN-kood"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Uus PIN-kood"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN-koodi muutmine"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Uus PIN-kood on liiga lühike."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Uus PIN-kood on liiga pikk."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Uus PIN-kood on liiga nõrk. Tugevas paroolis ei tohi olla mitut järjestikust samasugust tähemärki ega korduvaid numbreid."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kõnet (kõnesid) ei saa vabastada."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Kõnesid ei saa ootele panna."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Helistamiseks looge ühendus traadita võrguga."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Hädaabikõne"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Raadioside sisselülitamine ..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Teenus puudub. Uuesti proovimine ..."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibreerimine"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibreerimine"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visuaalne kõnepost"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN-koodi muutmine"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Heli"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Helin ja vibratsioon"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Sõnumi dekodeerimisel ilmnes viga."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM-kaart aktiveeris teenuse ja värskendas telefoni rändlusvõimeid."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Liiga palju aktiivseid kõnesid. Enne uue kõne tegemist lõpetage mõni olemasolev kõne või ühendage mitu kõnet omavahel."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index e784ddc..f7b0764 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Operadorea"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"PIN kode zaharra"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"PIN kode berria"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN kodea aldatzen"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Laburregia da PIN kode berria."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Luzeegia da PIN kode berria."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Ahulegia da PIN kode berria. Pasahitza sendoa izan dadin, ez du izan behar zenbaki-segidarik edo errepikatutako zenbakirik."</string>
@@ -461,6 +462,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Ezin dira deiak bereizi."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Ezin dira zain utzi deiak."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Deia egiteko, konektatu haririk gabeko sare batera."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Larrialdi-deia"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Irratia pizten…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Ez dago zerbitzurik. Berriro saiatzen…"</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Egin dar-dar"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Egin dar-dar"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Erantzungailu bisuala"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Aldatu PIN kodea"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Soinua"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Tonua eta dardara"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Errore bat gertatu mezua deskodetzean."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM txartel batek zerbitzua aktibatu du eta telefonoaren ibiltaritza-gaitasunak aldatu ditu."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Dei gehiegi daude aktibo. Amaitu edo bateratu abian diren deiak beste bat egin aurretik."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 673f500..5db690d 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"شرکت مخابراتی شما"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"پین قدیمی"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"پین جدید"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"تغییر پین"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"پین جدید خیلی کوتاه است."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"پین جدید خیلی طولانی است."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"پین جدید خیلی ضعیف است. گذرواژه قوی نباید توالی از اعداد باشد یا عدد تکراری داشته باشد."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"نمی‌توانید تماس(ها) را آزاد کنید."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"نگه‌داشتن تماس‌ها ممکن نیست."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"برای برقراری تماس، به یک شبکه بی‌سیم وصل شوید"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"تماس اضطراری"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"در حال روشن کردن رادیو..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"سرویسی در دسترس نیست. دوباره امتحان کنید..."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"لرزش"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"لرزش"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"پست صوتی تصویری"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"تغییر پین"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"صدا"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"آهنگ‌ زنگ و لرزش"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"هنگام رمزگشایی پیام، خطایی روی داد."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"یک سیم‌کارت سرویس شما را فعال کرده است و قابلیت‌های رومینگ تلفنتان را به‌روز کرده است."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"تعداد زیادی تماس فعال وجود دارد. قبل از برقراری تماس جدید، لطفاً به تماس‌های موجود پایان دهید یا آنها را ادغام کنید."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 4a6fa68..9e80d27 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Operaattorisi"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Vanha PIN-koodi"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Uusi PIN-koodi"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN-koodia vaihdetaan"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Uusi PIN-koodi on liian lyhyt."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Uusi PIN-koodi on liian pitkä."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Uusi PIN-koodi on liian heikko. Vahvassa salasanassa ei saa olla peräkkäisiä tai toistuvia numeroita."</string>
@@ -459,6 +460,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Puheluja ei voi vapauttaa."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Puhelujen pito ei onnistu."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Yhdistä langattomaan verkkoon, jos haluat soittaa puhelun."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Hätäpuhelu"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Käynnistetään radiota…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Ei yhteyttä. Yritetään uudelleen…"</string>
@@ -553,6 +556,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Värinä"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Värinä"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visuaalinen puhelinvastaaja"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Vaihda PIN-koodi"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Ääni"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Soittoääni ja värinä"</string>
@@ -571,4 +576,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Virhe purettaessa viestiä."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM-kortti on aktivoinut palvelusi ja päivittänyt puhelimesi roaming-toiminnot."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Aktiivisia puheluja on liian monta. Lopeta puheluita tai yhdistä niitä ennen uuden puhelun aloittamista."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index d1b91fb..830dbeb 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Votre fournisseur de services"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Ancien NIP"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Nouveau NIP"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Modification du NIP en cours…"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Le nouveau NIP est trop court."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Le nouveau NIP est trop long."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Le nouveau NIP n\'est pas assez robuste. Il ne devrait pas contenir de séquences continues ni de chiffres répétés."</string>
@@ -459,6 +460,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Impossible de libérer l\'appel ou les appels."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Impossible de mettre les appels en attente."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connectez-vous à un réseau Wi-Fi pour faire un appel."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Appel d\'urgence"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Activation du signal radio..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Aucun service. Nouvel essai en cours..."</string>
@@ -553,6 +556,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibreur"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibreur"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Messagerie vocale visuelle"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Modifier le NIP"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Son"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Sonnerie et vibreur"</string>
@@ -571,4 +576,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Une erreur s\'est produite lors du décodage du message."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Une carte SIM a activé votre service et mis à jour les fonctionnalités d\'itinérance de votre téléphone."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Il y a trop d\'appels actifs. Veuillez mettre fin aux appels existants ou les fusionner avant d\'en passer un nouveau."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 75116ec..275ef60 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Votre opérateur"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Ancien code"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Nouveau code"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Modification du code..."</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Le nouveau code est trop court."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Le nouveau code est trop long."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Le nouveau code n\'est pas suffisamment sécurisé. Pour qu\'un mot de passe soit sûr, il ne doit pas contenir de chiffres qui se suivent ou qui se répètent."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Impossible de lancer les appels."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Impossible de mettre les appels en attente."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connectez-vous à un réseau sans fil pour passer un appel."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Appel d\'urgence"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Activation du signal radio..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Aucun service disponible. Nouvelle tentative en cours…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibreur"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibreur"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Messagerie vocale visuelle"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Modifier le code"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sonnerie"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Sonnerie et vibreur"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Une erreur s\'est produite lors du décodage du message."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Votre service a été activé et les fonctionnalités d\'itinérance de votre téléphone ont été mises à jour via une carte SIM."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Il y a trop d\'appels actifs. Pour passer un autre appel, vous devez mettre fin aux appels existants ou fusionner ces derniers."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index 54df51f..a2e0ac3 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"O teu operador"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"PIN antigo"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"PIN novo"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Cambiando PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"O PIN novo é demasiado curto."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"O PIN novo é demasiado longo."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"O novo PIN é pouco seguro. Para que sexa seguro, non debe conter secuencias continuas nin díxitos repetidos."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Non se poden desconectar as chamadas."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Non se poden poñer as chamadas en espera."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Conéctate a unha rede sen fíos para facer unha chamada."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chamada de emerxencia"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Activando radio..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Sen servizo. Tentando de novo…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrar"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrar"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Correo de voz visual"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Cambiar PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Son"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ton de chamada e vibración"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Produciuse un erro durante a descodificación da mensaxe."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"A tarxeta SIM activou o teu servizo e actualizou as funcións de itinerancia do teléfono."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Hai moitas chamadas activas. Finaliza as chamadas existentes ou combínaas antes de facer unha nova."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index 2e8c706..56e98b5 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"તમારો કેરિઅર"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"જૂનો PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"નવો PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN બદલી રહ્યાં છે"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"નવો PIN ખૂબ ટૂંકો છે."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"નવો PIN ખૂબ લાંબો છે."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"નવો PIN ખૂબ નબળો છે. સશક્ત પાસવર્ડ સતત ક્રમ અથવા પુનરાવર્તિત અંકો ધરાવતો હોવો જોઇએ નહીં."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"કૉલ(લ્સ) રિલીઝ કરી શકતા નથી."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"કૉલ્સને હોલ્ડ કરી શકતાં નથી."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"કૉલ કરવા માટે વાયરલેસ નેટવર્કથી કનેક્ટ કરો."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"કટોકટીનો કૉલ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"રેડિઓ ચાલુ કરી રહ્યાં છે…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"કોઈ સેવા નથી. ફરી પ્રયાસ કરી રહ્યાં છે…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"વાઇબ્રેટ"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"વાઇબ્રેટ"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"વિઝ્યુઅલ વૉઇસમેઇલ"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN બદલો"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ધ્વનિ"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"રિંગટોન અને વાઇબ્રેટ"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"સંદેશ ડીકોડિંગ કરતી વખતે ભૂલ આવી હતી."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"એક SIM કાર્ડ એ તમારી સેવા સક્રિય કરી છે અને તમારા ફોનની રોમિંગ ક્ષમતાઓને અપડેટ કરી છે."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"અહીં ઘણા બધા સક્રિય કૉલ્સ છે. કૃપા કરીને એક નવો કૉલ કરવા પહેલાં અસ્તિત્વમાંના કૉલ્સને સમાપ્ત કરો અથવા મર્જ કરો."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index ab6c5e5..ca4c677 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"आपका वाहक"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"पुराना पिन"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"नया पिन"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"पिन बदला जा रहा है"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"नया पिन बहुत छोटा है."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"नया पिन बहुत बड़ा है."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"नया पिन बहुत कमज़ोर है. किसी सशक्त पासवर्ड में निरंतर क्रम या अंकों का दोहराव नहीं होना चाहिए."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"कॉल रिलीज़ नहीं किया जा सकता (किए जा सकते)."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"कॉल होल्ड नहीं किए जा सकते."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"कॉल करने के लिए किसी वायरलेस नेटवर्क से कनेक्‍ट करें."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"आपातकालीन कॉल"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"रेडियो चालू कर रहा है..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"कोई सेवा नहीं. पुन: प्रयास किया जा रहा है…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"कंपन करें"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"कंपन करें"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"विज़ुअल वॉइसमेल"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"पिन बदलें"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ध्वनि"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"रिंगटोन और कंपन"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"संदेश डीकोड करते समय कोई त्रुटि हुई थी."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"सिम कार्ड द्वारा आपकी सेवा को सक्रिय किया गया है और आपके फ़ोन की रोमिंग क्षमताओं को अपडेट किया गया है."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"बहुत अधिक कॉल सक्रिय हैं. नया कॉल करने से पहले कृपया मौजूदा कॉल समाप्त करें या उन्हें मिला दें."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 8efb8f8..731bb87 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Vaš mobilni operater"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Stari PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Novi PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Promjena PIN-a"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Novi PIN je prekratak."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Novi PIN je predugačak."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Novi je PIN preslab. Jaka zaporka ne smije sadržavati kontinuirani niz ili ponovljene znamenke."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Prekidanje poziva nije moguće."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Pozivi se ne mogu stavljati na čekanje."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Povežite se s bežičnom mrežom da biste uputili poziv."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Hitan poziv"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Uključivanje radija…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Nema usluge. Pokušavamo ponovo…"</string>
@@ -552,6 +555,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibracija"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibracija"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Vizualna govorna pošta"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Promjena PIN-a"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Zvuk"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Melodija zvona i vibracija"</string>
@@ -570,4 +575,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Došlo je do pogreške prilikom dekodiranja poruke."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM kartica aktivirala je vašu uslugu i ažurirala mogućnosti telefona za roaming."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Postoji previše aktivnih poziva. Prekinite ili spojite postojeće pozive prije uspostavljanja novog poziva."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index dd4493f..862789d 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Saját mobilszolgáltató"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Régi PIN-kód"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Új PIN-kód"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN-kód módosítása"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Az új PIN-kód túl rövid."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Az új PIN-kód túl hosszú."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Az új PIN-kód túl gyenge. Az erős jelszavak nem tartalmaznak egymás után következő számokat vagy ismétlődő számjegyeket."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"A tartásban lévő hívás(ok) folytatása sikertelen."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"A hívások nem tarthatók."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Hívás indításához csatlakozzon egy vezeték nélküli hálózathoz."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Segélyhívás"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Rádió bekapcsolása..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Nincs szolgáltatás. Újrapróbálkozás folyamatban…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Rezgés"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Rezgés"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Vizuális hangpostaüzenet"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN-kód módosítása"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Hang"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Csengőhang és rezgés"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Hiba történt az üzenet dekódolása közben."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Egy SIM kártya aktiválta a szolgáltatást, valamint frissítette a telefon barangolási képességeit."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Túl sok aktív hívás van. Új hívás indítása előtt fejezzen be vagy vonjon össze meglévő hívásokat."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 41628c9..db48d70 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Ձեր օպերատորը"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Հին PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Նոր PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN-ը փոխվում է"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Նոր PIN-ը չափազանց կարճ է:"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Նոր PIN-ը չափազանց երկար է:"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Նոր PIN-ը բավականաչափ հուսալի չէ: Հուսալի գաղտնաբառը չպետք է ունենա շարունակական հաջորդականություն կամ կրկնվող թվեր:"</string>
@@ -461,6 +462,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Հնարավոր չէ անջատել զանգ(եր)ը:"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Հնարավոր չէ հետաձգել զանգերը:"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Զանգ կատարելու համար միացեք անլար ցանցին:"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Արտակարգ իրավիճակների զանգ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ռադիոն միացվում է..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Ծառայությունը մատչելի չէ: Նորից փորձեք…"</string>
@@ -485,8 +488,8 @@
     <string name="importToFDNfromContacts" msgid="2130620207013368580">"Ներմուծել կոնտակտներից"</string>
     <string name="singleContactImportedMsg" msgid="6868483416182599206">"Ներմուծված կոնտակտ"</string>
     <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Չհաջողվեց ներմուծել կոնտակտը"</string>
-    <string name="hac_mode_title" msgid="8740268574688743289">"Լսողական օգնական"</string>
-    <string name="hac_mode_summary" msgid="6833851160514929341">"Միացնել լսողական օգնականի համատեղելիությունը"</string>
+    <string name="hac_mode_title" msgid="8740268574688743289">"Լսողական ապարատ"</string>
+    <string name="hac_mode_summary" msgid="6833851160514929341">"Միացնել լսողական ապարատի աջակցումը"</string>
   <string-array name="tty_mode_entries">
     <item msgid="512950011423868021">"TTY-ն անջատված է"</item>
     <item msgid="3971695875449640648">"TTY Full"</item>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Թրթռալ"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Թրթռալ"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Տեսանելի ձայնային փոստ"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Փոխել PIN-ը"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Ձայն"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ձայներանգ &amp; Թրթռոց"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Հաղորդագրությունն ապակոդավորելիս սխալ առաջացավ:"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM քարտն ակտիվացրել է ծառայությունը և թարմացրել ձեր հեռախոսի ռոումինգի հնարավորությունները:"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Չափազանց շատ ընթացիկ զանգեր կան: Ավարտեք կամ միավորեք առկա զանգերը՝ նախքան նորն զանգ կատարելը:"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index e699d02..abc3f72 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Operator Anda"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"PIN Lama"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"PIN Baru"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Mengubah PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"PIN baru terlalu pendek."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"PIN baru terlalu panjang."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"PIN baru terlalu lemah. Sandi yang kuat tidak boleh memiliki urutan karakter kontinu atau digit berulang."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Tidak dapat melepas panggilan telepon."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Tidak dapat menahan panggilan."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Sambungkan ke jaringan nirkabel untuk melakukan panggilan"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Panggilan darurat"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Menghidupkan radio..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Tidak ada layanan. Mencoba lagi…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Getar"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Getar"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Kotak Pesan Visual"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Ubah PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Suara"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Nada dering &amp; Getar"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Terjadi kesalahan saat mendekode pesan."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Kartu SIM telah mengaktifkan layanan dan memperbarui kemampuan roaming ponsel."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Ada terlalu banyak panggilan aktif. Akhiri atau gabungkan panggilan yang ada sebelum melakukan panggilan baru."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index fa52e5b..53c7ad3 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Símafyrirtækið þitt"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Gamla PIN-númerið"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Nýtt PIN-númer"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Skipt um PIN-númer"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Nýja PIN-númerið er of stutt."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Nýja PIN-númerið er of langt."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Nýja PIN-númerið er ekki nógu sterkt. Sterk aðgangsorð mega ekki vera með tölustafi í beinni röð eða endurtekna tölustafi."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Ekki hægt að leggja á."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Getur ekki sett símtöl í bið."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Tengstu þráðlausu neti til að hringja."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Neyðarsímtal"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Kveikir á loftneti…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Ekkert samband. Reynir aftur…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Titringur"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Titringur"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Myndrænt talhólf"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Breyta PIN-númeri"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Hljóð"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Hringitónn og titringur"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Villa kom upp við að afkóða skeytið."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM-kort hefur virkjað þjónustuna þína og uppfært reikigetu símans."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Of mörg símtöl eru virk. Ljúktu eða sameinaðu fyrirliggjandi símtöl áður en þú hringir nýtt."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 206b3f4..1b72d76 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Operatore"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Vecchio PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Nuovo PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Modifica del PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Il nuovo PIN è troppo corto."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Il nuovo PIN è troppo lungo."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Il nuovo PIN è troppo semplice. Una password efficace non deve contenere sequenze continue o cifre ripetute."</string>
@@ -459,6 +460,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Impossibile riagganciare."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Impossibile mettere in attesa le chiamate."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connettiti a una rete wireless per effettuare una chiamata."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chiamata di emergenza"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Attivazione segnale cellulare..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Nessun servizio. Nuovo tentativo…"</string>
@@ -553,6 +556,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrazione"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrazione"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Leggi la segreteria"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Cambia PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Suono"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Suoneria e vibrazione"</string>
@@ -571,4 +576,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Si è verificato un errore durante la decodifica del messaggio."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Una scheda SIM ha attivato il tuo servizio e ha aggiornato le funzionalità di roaming del telefono."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Ci sono troppe chiamate attive. Termina o unisci le chiamate esistenti prima di effettuarne una nuova."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 211c2b0..ba75818 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"הספק שלך"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"קוד גישה ישן"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"קוד גישה חדש"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"משנה את קוד הגישה"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"קוד הגישה החדש קצר מדי."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"קוד הגישה החדש ארוך מדי."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"קוד הגישה החדש חלש מדי. בסיסמה חזקה אסור שיהיו ספרות ברצף מספרי או ספרות שחוזרות על עצמן."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"לא ניתן לשחרר שיחות."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"לא ניתן להחזיק שיחות."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"התחבר לרשת אלחוטית כדי לבצע שיחה."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"שיחת חירום"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"מפעיל את הרדיו…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"אין שירות. מנסה שוב..."</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"רטט"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"רטט"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"דואר קולי ויזואלי"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"שינוי קוד הגישה"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"צליל"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"רינגטון ורטט"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"אירעה שגיאה בעת פענוח ההודעה."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"‏כרטיס SIM הפעיל את השירות שלך ועדכן את יכולות הנדידה של הטלפון."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"יש יותר מדי שיחות פעילות. כדי להתחיל שיחה חדשה עליך לסיים או למזג חלק מהשיחות הפעילות."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 6db4bc1..a0bde7f 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"携帯通信会社"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"古い PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"新しい PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN を変更しています"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"新しい PIN が短すぎます。"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"新しい PIN が長すぎます。"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"新しい PIN の強度が弱すぎます。パスワードには連続する文字や、数字の繰り返しは使用しないでください。"</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"通話を解放できません。"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"通話を保留にできません。"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"電話をかけるには無線ネットワークに接続してください。"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"緊急通報"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"無線通信をONにしています..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"通信サービスはありません。もう一度お試しください…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"バイブレーション"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"バイブレーション"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"ビジュアルボイスメール"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN の変更"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"通知音"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"着信音とバイブレーション"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"メッセージのデコード中にエラーが発生しました。"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIMカードでサービスが有効になり、スマートフォンのローミング機能が更新されています。"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"通話中の電話の数が多すぎます。新しく通話を発信するには、まず既存の通話を終了するか、統合してグループ通話にしてください。"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index 241801b..5bf37c8 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"თქვენი ოპერატორი"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"ძველი PIN-კოდი"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"ახალი PIN-კოდი"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"მიმდინარეობს PIN-კოდის შეცვლა"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"ახალი PIN-კოდი ძალიან მოკლეა."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"ახალი PIN-კოდი ძალიან გრძელია."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"ახალი PIN-კოდი ძალიან სუსტია. ძლიერი პაროლი არ უნდა შეიცავდეს გამეორებული ციფრების გრძელ თანმიმდევრობას."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ვერ ხერხდება ზარ(ებ)ის გაშვება."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ზარების დაყოვნება ვერ ხერხდება."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ზარის განსახორციელებლად, დაუკავშირდით უსადენო ქსელს."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"გადაუდებელი ზარი"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"გადამცემის ჩართვა…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"მომხსახურება არ არის. სცადეთ ხელხლა..."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"ვიბრაცია"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"ვიბრაცია"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"ვიზუალური ხმოვანი ფოსტა"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN-კოდის შეცვლა"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ხმა"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"ზარის მელოდია &amp; ვიბრაცია"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"შეტყობინების გაშიფრვისას წარმოიშვა შეცდომა."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM ბარათმა გაააქტიურა თქვენი სერვისი და თქვენი ტელეფონის როუმინგის შესაძლებლობები განაახლა."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"ძალიან ბევრი აქტიური ზარია. გთხოვთ, დაასრულოთ ან გააერთიანოთ არსებული ზარები ახალი ზარის განხორციელებამდე."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index eb949b9..decc7b4 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Операторыңыз"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Ескі PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Жаңа PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN код өзгертілуде"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Жаңа PIN код тым қысқа."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Жаңа PIN код тым ұзын."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Жаңа PIN код тым әлсіз. Күшті құпия сөзде үздіксіз реттік немесе қайталанатын таңбалар болмауы тиіс."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Қоңырау(лар)ды босату мүмкін емес."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Қоңырауларды ұстау мүмкін емес."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Қоңырау шалу үшін сымсыз желіге қосылыңыз."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Төтенше қоңырау"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Радионы қосуда…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Қызмет жоқ. Әрекет қайталануда…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Діріл"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Діріл"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Визуалды дауыс поштасы"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN кодты өзгерту"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Дыбыс"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Рингтон&amp; Діріл"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Хабарды кодтан шығару кезінде қате пайда болды."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM карта қызметті белсендіріп, телефонның роуминг мүмкіндіктерін жаңартты."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Белсенді қоңыраулар тым көп. Жаңа қоңырау шалудан бұрын бар қоңырауларды аяқтаңыз немесе біріктіріңіз."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index c0f998c..e41b3ce 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"អ្នកផ្តល់សេវាទូរស័ព្ទរបស់អ្នក"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"លេខ​កូដ PIN ថ្មី"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"លេខ​កូដ PIN ថ្មី"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"កំពុង​ប្ដូរ​លេខ​កូដ PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"លេខ​កូដ PIN ថ្មី​ខ្លី​ពេក។"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"លេខ​កូដ PIN ថ្មី​វែង​ពេក។"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"លេខ​កូដ PIN ថ្មី​ខ្សោយ​ពេក។ ពាក្យ​សម្ងាត់​ដែល​ខ្លាំង​មិន​គួរ​មាន​​លេខ​រៀង​​តគ្នា ឬ​​ស្ទួន​គ្នា​ទេ។"</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"មិនអាចបញ្ចេញការហៅបានទេ។"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"មិនអាចរង់ចាំការហៅទេ"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ភ្ជាប់ទៅបណ្តាញឥតខ្សែដើម្បីធ្វើការហៅ។"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"ការ​ហៅ​នៅ​ពេល​មាន​អាសន្ន"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"កំពុង​បើក​វិទ្យុ…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"គ្មានសេវាទេ។ ព្យាយាមម្តង…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"ញ័រ"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"ញ័រ"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"សារជាសំឡេងអាចមើលឃើញ"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"ប្ដូរ​​លេខ​កូដ PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"សំឡេង"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"សំឡេង​រោទ៍ &amp; ញ័រ"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"មានកំហុសខណៈពេលឌិកូដសារ។"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ស៊ីមកាតបានធ្វើឲ្យសេវាកម្មរបស់អ្នកសកម្ម និងបានធ្វើបច្ចុប្បន្នភាពសមត្ថភាពរ៉ូមីងសម្រាប់ទូរស័ព្ទរបស់អ្នក។"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"មាន​ការ​ហៅ​ដែល​សកម្ម​ច្រើន​ពេក។ សូម​បញ្ចប់ ឬ​​ដាក់​​បញ្ចូល​គ្នា​ការ​ហៅ​ដែល​មាន​ស្រាប់​​មុន​ពេល​ដាក់​ការ​ហៅ​ថ្មី។"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index ecb4a16..2507e9f 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"ನನ್ನ ವಾಹಕ"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"ಹಳೆಯ ಪಿನ್"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"ಹೊಸ ಪಿನ್"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"ಪಿನ್ ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"ಹೊಸ ಪಿನ್ ತುಂಬಾ ಚಿಕ್ಕದಾಗಿದೆ."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"ಹೊಸ ಪಿನ್ ತುಂಬಾ ಉದ್ದವಾಗಿದೆ."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"ಹೊಸ ಪಿನ್ ತುಂಬಾ ದುರ್ಬಲವಾಗಿದೆ. ಪ್ರಬಲ ಪಾಸ್‌ವರ್ಡ್ ನಿರಂತರ ಅನುಕ್ರಮ ಅಥವಾ ಪುನರಾವರ್ತಿತ ಅಂಕಿಗಳನ್ನು ಹೊಂದುವಂತಿಲ್ಲ."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ಕರೆ(ಗಳು) ಬಿಡುಗಡೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ಕರೆಗಳನ್ನು ಹೋಲ್ಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ಕರೆ ಮಾಡಲು ವೈರ್‌ಲೆಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಪಡಿಸಿ."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"ತುರ್ತು ಕರೆಗಳು"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ರೇಡಿಯೋ ಆನ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"ಯಾವುದೇ ಸೇವೆ ಇಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಲಾಗುತ್ತಿದೆ..."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"ವೈಬ್ರೇಟ್‌"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"ವೈಬ್ರೇಟ್‌"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"ದೃಶ್ಯ ಧ್ವನಿಮೇಲ್"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"ಪಿನ್ ಬದಲಾಯಿಸಿ"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ಧ್ವನಿ"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"ರಿಂಗ್‌ಟೋನ್‌‌ &amp; ವೈಬ್ರೇಟ್‌"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"ಸಂದೇಶವನ್ನು ಡೀಕೋಡ್ ಮಾಡುವಾಗ ದೋಷವುಂಟಾಗಿದೆ."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ನಿಮ್ಮ ಸೇವೆಯನ್ನು ಸಿಮ್‌ ಕಾರ್ಡ್‌ ಸಕ್ರಿಯಗೊಳಿಸಿದೆ ಮತ್ತು ನಿಮ್ಮ ಫೋನ್‌ನ ರೋಮಿಂಗ್ ಸಾಮರ್ಥ್ಯವನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲಾಗಿದೆ."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"ಹಲವಾರು ಸಕ್ರಿಯ ಕರೆಗಳು. ಹೊಸ ಕರೆ ಮಾಡುವ ಮೊದಲು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕರೆಗಳನ್ನು ಅಂತ್ಯಗೊಳಿಸಿ ಅಥವಾ ವಿಲೀನಗೊಳಿಸಿ."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 3b9b86e..8b29553 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"이동통신사"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"이전 PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"새 PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN 변경 중"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"새 PIN이 너무 짧습니다."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"새 PIN이 너무 깁니다."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"새 PIN의 안정성이 낮습니다. 안전한 비밀번호에는 연속되는 숫자 또는 반복되는 숫자를 사용하지 말아야 합니다."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"통화를 끊을 수 없습니다."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"통화를 보류할 수 없습니다."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"전화를 걸려면 무선 네트워크에 연결하세요."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"긴급 전화"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"무선을 켜는 중..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"서비스를 사용할 수 없습니다. 다시 시도 중..."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"진동"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"진동"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"시각적 음성사서함"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN 변경"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"알림음"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"벨소리 및 진동"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"메시지를 디코딩하는 중에 오류가 발생했습니다."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM 카드로 서비스가 활성화되었으며 휴대전화 로밍 기능이 업데이트되었습니다."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"활성화된 통화가 너무 많습니다. 새로운 전화를 걸기 전에 기존의 통화를 끝내거나 합치세요."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index 3e20bef..a99e30b 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Операторуңуз"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Эски PIN код"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Жаңы PIN код"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN код өзгөртүлүүдө"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Жаңы PIN код өтө эле кыска."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Жаңы PIN код өтө эле узун."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Жаңы PIN код өтө эле жөнөкөй. Сырсөз күчтүү болушу үчүн анда сандар үзгүлтүксүз катардан турбашы же сандар кайталанбашы керек."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Чалуу(лар) бошотулбай жатат."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Чалууну кармап туруу мүмкүн эмес."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Чалуу үчүн зымсыз тармакка туташыңыз."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Шашылыш чалуу"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Радио күйгүзүлүүдө…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Кызмат жок. Кайра аракет кылууда…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Дирилдөө"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Дирилдөө"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Визуалдык үн почтасы"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN кодду өзгөртүү"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Үнү"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Рингтон жана Титирөө"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Билдирүү дешифрленип жатканда ката кеткен."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM-карта кызматыңызды жандырып, телефонуңуздун роуминг мүмкүнчүлүктөрүн жаңыртты."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Учурда жигердүү чалуулар өтө көп. Чалуу үчүн учурдагы чалууларды бүтүрүңүз же бириктириңиз."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index 76f1978..cbb201d 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"ຜູ້​ໃຫ້​ບໍ​ລິ​ການ​ຂອງ​ທ່ານ"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"ລະຫັດ PIN ເກົ່າ"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"ລະຫັດ PIN ໃໝ່"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"ກຳລັງປ່ຽນລະຫັດ PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"ລະຫັດ PIN ໃໝ່ສັ້ນເກີນໄປ."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"ລະຫັດ PIN ໃໝ່ຍາວເກີນໄປ."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"ລະຫັດ PIN ໃໝ່ງ່າຍເກີນໄປ. ລະຫັດຜ່ານທີ່ຍາກບໍ່ຄວນຈະມີຕົວເລກຕໍ່ເນື່ອງ ຫຼື ຕົວເລກຊໍ້າໆກັນ."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ບໍ່​ສາ​ມາດ​ປ່ອຍ​ສາຍ​ໂທ​ໄດ້."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ບໍ່ສາມາດພັກສາຍໄດ້."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍໄຮ້ສາຍເພື່ອເຮັດການໂທ."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"ໂທສຸກເສີນ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ກຳລັງເປີດໃຊ້ວິທະຍຸ..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"ບໍ່​ມີ​ການ​ບໍ​ລິ​ການ. ກຳ​ລັງ​ລອງ​ໃໝ່​ອີກ…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"ສັ່ນເຕືອນ"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"ສັ່ນເຕືອນ"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"ຂໍ້​ຄວາມ​ສຽງ​ປະ​ກອບ​ພາບ"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"​ປ່ຽນ​ລະຫັດ PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ສຽງ"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"ຣິງໂທນ &amp; ການສັ່ນເຕືອນ"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"ມີຂໍ້ຜິດພາດໃນລະຫວ່າງຖອດລະຫັດຂໍ້ຄວາມດັ່ງກ່າວ."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ແຜ່ນ SIM ໄດ້ເປີດໃຊ້ງານການບໍລິການຂອງທ່ານ ແລະອັບເດດຄວາມສາມາດໃຊ້ງານຂ້າມເຂດຂອງໂທລະສັບຂອງທ່ານແລ້ວ."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"ມີສາຍຫຼາຍເກີນໄປ. ກະລຸນາວາງສາຍ ຫຼື ຮວມສາຍທີ່ກຳລັງໂທກ່ອນໂທສາຍໃໝ່."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 362bfd0..747a36d 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Jūsų operatorius"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Senas PIN kodas"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Naujas PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN kodo keitimas"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Naujas PIN kodas per trumpas."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Naujas PIN kodas per ilgas."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Naujas PIN kodas nepakankamai patikimas. Patikimame slaptažodyje neturėtų būti kelių vienodų simbolių iš eilės ar pasikartojančių skaitmenų."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nepavyko atjungti skamb."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Negalima sulaikyti skambučių."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Prisijunkite prie belaidžio ryšio tinklo, kad galėtumėte skambinti."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Skambutis pagalbos numeriu"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Įjungiamas radijas…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Nėra ryšio. Bandoma dar kartą…"</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibruoti"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibruoti"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Vaizdinis balso paštas"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Keisti PIN kodą"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Garsas"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Skambėjimo tonas ir vibracija"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Iškoduojant pranešimą įvyko klaida."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM kortelė suaktyvino paslaugą ir atnaujino telefono tarptinklinio duomenų ryšio funkcijas."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Yra per daug aktyvių skambučių. Prieš skambindami kitu numeriu, užbaikite ar sujunkite esamus skambučius."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index ceafb8d..b9d13ad 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Jūsu operators"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Iepriekšējais PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Jaunais PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Notiek PIN maiņa"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Jaunais PIN ir pārāk īss."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Jaunais PIN ir pārāk garš."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Jaunais PIN nav pietiekami drošs. Droša parole nedrīkst ietvert secīgus vai atkārtotus ciparus."</string>
@@ -457,6 +458,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nevar pārtraukt zvanu(-us)."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Nevar aizturēt zvanus."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Lai veiktu zvanu, izveidojiet savienojumu ar bezvadu tīklu."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Ārkārtas zvans"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Notiek radio ieslēgšana..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Nav pakalpojuma. Notiek atkārtots mēģinājums…"</string>
@@ -554,6 +557,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrozvans"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrozvans"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Vizuālais balss pasts"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Mainīt PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Signāls"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Zvana signāls un vibrācija"</string>
@@ -572,4 +577,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Atšifrējot ziņojumu, radās kļūda."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM kartē ir aktivizēts jūsu pakalpojums un atjauninātas tālruņa viesabonēšanas iespējas."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Ir pārāk daudz aktīvu zvanu. Pirms jauna zvana veikšanas pabeidziet vai apvienojiet esošos zvanus."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index a3edcea..25934e2 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Вашиот оператор"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Стар PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Нов PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN-кодот се променува"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Новиот PIN е премногу кус."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Новиот PIN е премногу долг."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Новиот PIN е премногу слаб. Силна лозинка не треба да содржи непрекината серија или цифри што се повторуваат."</string>
@@ -461,6 +462,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Не може да реализира повик(ци)."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Не може да се задржат повици."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Поврзете се на безжична мрежа за да повикате."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Повик за итни случаи"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Вклучување радио..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Нема услуга. Се обидува повторно…"</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Вибрирање"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Вибрирање"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Визуелна говорна пошта"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Променете PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Звук"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Мелодија и вибрации"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Настана грешка при дешифрирање на пораката."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Вашата СИМ-картичка ја активираше услугата и ги ажурираше способностите за роаминг на вашиот телефон."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Има премногу активни повици. Завршете или спојте ги постоечките повици пред да започнете нов."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index 3d23868..9f61bcc 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"നിങ്ങളുടെ കാരിയർ"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"പഴയ പിൻ"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"പുതിയ പിൻ"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"പിൻ മാറ്റുന്നു"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"പുതിയ പിൻ വളരെ ചെറുതാണ്."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"പുതിയ പിൻ വളരെ ദൈർഘ്യമേറിയതാണ്."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"പുതിയ പിൻ വളരെ ദുർബലമാണ്. ഒരു ദൃഢമായ പാസ്‌വേഡിൽ തുടർച്ചയായി വരുന്നതോ ആവർത്തിച്ച് വരുന്നതോ ആയ അക്കങ്ങൾ ഉണ്ടാവരുത്."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"കോൾ (കോളുകൾ) വിളിക്കാനാവില്ല."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"കോളുകൾ ഹോൾഡുചെയ്യാൻ കഴിയില്ല."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ഒരു കോൾ വിളിക്കാൻ വയർലെസ്സ് നെറ്റ്‌വർക്കിലേക്ക് കണക്റ്റുചെയ്യുക."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"അടിയന്തര കോൾ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"റേഡിയോ ഓൺ ചെയ്യുന്നു…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"സേവനമൊന്നുമില്ല. വീണ്ടും ശ്രമിക്കുന്നു…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"വൈബ്രേറ്റുചെയ്യുക"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"വൈബ്രേറ്റുചെയ്യുക"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"വിഷ്വൽ വോയ്‌സ്‌മെയിൽ"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"പിൻ മാറ്റുക"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ശബ്‌ദം"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"റിംഗ്ടോണും വൈബ്രേറ്റുചെയ്യലും"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"സന്ദേശം ഡീകോഡുചെയ്യുമ്പോൾ ഒരു പിശകുണ്ടായി."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ഒരു SIM കാർഡ് നിങ്ങളുടെ സേവനം സജീവമാക്കി, ഫോണിന്റെ റോമിംഗ് ശേഷികൾ അപ്‌ഡേറ്റ് ചെയ്തു."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"നിരവധി കോളുകൾ നിലവിൽ സജീവമായുണ്ട്. പുതിയ കോൾ വിളിക്കുന്നതിനുമുമ്പ് നിലവിലുള്ള കോളുകൾ അവസാനിപ്പിക്കുകയോ ലയിപ്പിക്കുകയോ ചെയ്യുക."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 15176d7..3ea11cf 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Таны оператор компани"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Хуучин PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Шинэ PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN өөрчилж байна"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Шинэ PIN хэт богино байна."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Шинэ PIN хэт урт байна."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Шинэ PIN хэт амархан байна. Сайн нууц үгэнд үргэлжилсэн дараалал буюу давтагдсан цифр ордоггүй."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Дуудлага чөлөөлөх боломжгүй байна."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Дуудлагыг хадгалах боломжгүй байна."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Дуудлага хийхийн тулд утасгүй интернетэд холбогдоно уу."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Ослын дуудлага"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Радиог асааж байна…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Ажиллагаагүй байна. Дахин оролдоно уу..."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Чичиргээ"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Чичиргээ"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Уншиж болохуйц дуут шуудан"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN өөрчлөх"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Дуу"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Хонхны ая &amp; Чичиргээ"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Зурвасын кодыг тайлах явцад алдаа гарсан."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM карт таны үйлчилгээг идэвхжүүлж, утасны роаминг багтаамжийг шинэчиллээ."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Хэт олон идэвхтэй дуудлага байна. Шинэ дуудлага хийхийн өмнө одоогийн дуудлагуудыг таслах буюу нэгтгэнэ үү."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index c26cd36..8fd3505 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"आपला वाहक"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"जुना पिन"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"नवीन पिन"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"पिन बदलत आहे"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"नवीन पिन खूप लहान आहे."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"नवीन पिन खूप दीर्घ आहे."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"नवीन पिन खूप कमकुवत आहे. सशक्त संकेतशब्दामध्ये अखंड क्रमवारी किंवा पुनरावृत्ती केलेले अंक नसावेत."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"कॉल रिलीझ करू शकत नाही."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"कॉल सुरु ठेवू शकत नाही."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"कॉल करण्‍यासाठी वायरलेस नेटवर्कशी कनेक्‍ट करा."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"आणीबाणीचा कॉल"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"रेडिओ चालू करीत आहे..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"सेवा नाही. पुन्हा प्रयत्न करत आहे…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"कंपन होणे"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"कंपन होणे"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"दृश्‍यमान व्हॉइसमेल"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"पिन बदला"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ध्वनी"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"रिंगटोन आणि कंपन"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"संदेश डीकोड करताना एक त्रुटी आली."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"सिम कार्डने आपली सेवा सक्रिय केली आहे आणि आपल्या फोनच्या रोमिंग क्षमता अद्यतनित केल्या."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"बरेच सक्रिय कॉल आहेत. कृपया नवीन एक कॉल करण्यापूर्वी विद्यमान कॉल समाप्त करा किंवा विलीन करा."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index ec18bbc..183a6be 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Pembawa anda"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"PIN lama"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"PIN baharu"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Menukar PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"PIN baharu terlalu pendek."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"PIN baharu terlalu panjang."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"PIN baharu terlalu lemah. Kata laluan yang kukuh tidak seharusnya mempunyai digit yang berturutan atau berulangan."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Tidak dapat melepaskan panggilan."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Tidak dapat menunda panggilan."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Sambungkan ke rangkaian wayarles untuk membuat panggilan."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Panggilan kecemasan"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Menghidupkan radio..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Tiada perkhidmatan. Mencuba lagi..."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Getar"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Getar"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Mel Suara Visual"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Tukar PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Bunyi"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Nada dering &amp; Bergetar"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Terdapat ralat semasa menyahkodkan mesej."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Kad SIM telah mengaktifkan perkhidmatan anda dan mengemas kini keupayaan perayauan telefon anda."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Terlalu banyak panggilan aktif. Sila tamatkan atau gabungkan panggilan yang sedia ada sebelum membuat panggilan baharu."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index 81aa492..2199246 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -28,7 +28,7 @@
     <string name="mmiStarted" msgid="6347869857061147003">"MMIကုတ်နံပါတ်ကို စတင်ပြီးပါပြီ"</string>
     <string name="ussdRunning" msgid="485588686340541690">"USSD ကုဒ် လုပ်ဆောင်နေပါသည်…"</string>
     <string name="mmiCancelled" msgid="2771923949751842276">"MMIကုတ်နံပါတ်ကို ပယ်ဖျက်ပြီးပါပြီ"</string>
-    <string name="cancel" msgid="5044513931633602634">"မလုပ်တော့ပါ"</string>
+    <string name="cancel" msgid="5044513931633602634">"မလုပ်တော့"</string>
     <string name="enter_input" msgid="1810529547726803893">"USSD စာများဟာ စာလုံးရေ <xliff:g id="MIN_LEN">%d</xliff:g> မှ<xliff:g id="MAX_LEN">%d</xliff:g> အတွင်း ဖြစ်ရပါမည်။ နောက်တစ်ခေါက်ကြိုးစားပါ"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"ကွန်းဖရင့် ခေါ်ဆိုမှုကို ထိန်းချုပ်သည်"</string>
     <string name="ok" msgid="3811371167865772377">"အိုကေ"</string>
@@ -39,7 +39,7 @@
     <string name="wait_prompt_str" msgid="7601815427707856238">"အောက်ပါ တီးလုံးများကို ပို့မလား?\n"</string>
     <string name="pause_prompt_str" msgid="1789964702154314806">"အသံ ပို့နေစဉ်\n"</string>
     <string name="send_button" msgid="4106860097497818751">"ပို့ခြင်း"</string>
-    <string name="pause_prompt_yes" msgid="3564467212025151797">"ဟုတ်ကဲ့"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Yes"</string>
     <string name="pause_prompt_no" msgid="6686238803236884877">"No"</string>
     <string name="wild_prompt_str" msgid="5543521676355533577">"wildစာလုံးကို အစားထိုးရန်မှာ"</string>
     <string name="no_vm_number" msgid="4164780423805688336">"အသံစာပို့စနစ် နံပါတ် ပျောက်နေပါသည်"</string>
@@ -48,7 +48,7 @@
     <string name="puk_unlocked" msgid="2284912838477558454">"သင့် ဆင်းမ်ကဒ်အား ပိတ်ဆို့မှုကို ဖယ်ရှားပြီးပါပြီ။ သင့်ဖုန်းဟာ သော့ဖွင့်နေပါသည်…"</string>
     <string name="label_ndp" msgid="780479633159517250">"ဆင်းမ်ကဒ် ကွန်ရက် သော့ဖွင့်သော ပင်နံပါတ်"</string>
     <string name="sim_ndp_unlock_text" msgid="683628237760543009">"ဖွင့်ရန်"</string>
-    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"လွှတ်လိုက်သည်"</string>
+    <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"ပယ်ရန်"</string>
     <string name="requesting_unlock" msgid="6412629401033249351">"ကွန်ယက်သော့ဖွင့်ခြင်း တောင်းဆိုနေပါသည်…"</string>
     <string name="unlock_failed" msgid="6490531697031504225">"ကွန်ယက်ဖွင့်ရန် တောင်းဆိုမှု မအောင်မြင်ပါ"</string>
     <string name="unlock_success" msgid="6770085622238180152">"ကွန်ယက်ဖွင့်ခြင်း မအောင်မြင်ပါ"</string>
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"သင့် မိုဘိုင်းဆက်သွယ်ရေး ဝန်ဆောင်မှုဌာန"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"ပင်နံပါတ်အဟောင်း"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"ပင်နံပါတ်အသစ်"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"ပင်နံပါတ်ပြောင်းနေသည်"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"ပင်နံပါတ်အသစ်မှာ တိုလွန်းနေသည်။"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"ပင်နံပါတ်အသစ်မှာ ရှည်လွန်းနေသည်။"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"ပင်နံပါတ်အသစ်မှာ အားနည်းလွန်းနေသည်။ အားကောင်းသောစကားဝှက်တစ်ခုတွင် အစဉ်လိုက်စာလုံးများ (သို့) ထပ်တလဲလဲသုံးထားသောကိန်းဂဏန်းများ မပါသင့်ပါ။"</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ဖုန်းခေါ်ခြင်း(များ)အား လွှတ်မပေးနိုင်ပါ။"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ခေါ်ဆိုမှုများကို ကိုင်ထား၍မရပါ။"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ဖုန်းခေါ်ရန် ကြိုးမဲကွန်ယက်တစ်ခုသို့ ချိတ်ဆက်ပါ။"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"အရေးပေါ်ခေါ်ဆိုမှု"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ရေဒီယို ဖွင့်နေစဉ်…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"ဝန်ဆောင်မှု မရှိပါ။ ထပ်မံကြိုးစားပါ…"</string>
@@ -512,7 +515,7 @@
     <string name="ota_successful" msgid="1880780692887077407">"သင့်ဖုန်းမှာ အခု အက်တီဗိတ် ဖြစ်နေပါပြီ။ ဝန်ဆောင်မှုများ စတင်ရန် ၁၅ မိနစ်ထိ ကြာနိုင်ပါသည်"</string>
     <string name="ota_unsuccessful" msgid="8072141612635635357">"သင့်ဖုန်း အက်တီဗိတ် မဖြစ်ပါ။ \nဖုန်းလိုင်းအားပိုကောင်းသော နေရာကိုရှာပါ (ပြတင်းပေါက်နား, သို့မဟုတ် အပြင်ဖက်)။ \n\nပြန်လည်ကြိုးစားပါ သို့မဟုတ် သုံးစွဲသူအား အကူအညီပေးဝန်ဆောင်မှု ကို ဆက်သွယ်ပြီး နည်းလမ်းရှာပါ။"</string>
     <string name="ota_spc_failure" msgid="3909983542575030796">"အလွန်အကျွံ SPC မအောင်မြင်မှုများ"</string>
-    <string name="ota_call_end" msgid="4537279738134612388">"နောက်ပြန်သွားရန်"</string>
+    <string name="ota_call_end" msgid="4537279738134612388">"နောက်သို့"</string>
     <string name="ota_try_again" msgid="7685477206465902290">"ပြန်ကြိုးစားပါ"</string>
     <string name="ota_next" msgid="3904945374358235910">"ရှေ့ဆက်သွားရန်"</string>
     <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
@@ -524,8 +527,8 @@
       <item quantity="one"> ဒေတာဆက်သွယ်မှု <xliff:g id="COUNT_0">%s</xliff:g> မိနစ်မရှိပါ</item>
     </plurals>
     <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="7179911675595441201">
-      <item quantity="other"> ဖုန်းသည် <xliff:g id="COUNT_1">%s</xliff:g> မိနစ်လောက် အရေးပေါ် ပြန်ခေါ်ခြင်းမုဒ်တွင် ရှိနေလိမ့်မည်။ ဤမုဒ်တွင် ဒေတာချိတ်ဆက်မှုအသုံးပြုသည့် app များကို အသုံးပြု၍ ရနိုင်မည်မဟုတ်ပါ။ ယခုထွက်လိုပါသလား? </item>
-      <item quantity="one"> ဖုန်းသည် <xliff:g id="COUNT_0">%s</xliff:g> မိနစ်လောက် အရေးပေါ် ပြန်ခေါ်ခြင်းမုဒ်တွင် ရှိနေလိမ့်မည်။ ဤမုဒ်တွင် ဒေတာချိတ်ဆက်မှုအသုံးပြုသည့် app များကို အသုံးပြု၍ ရနိုင်မည်မဟုတ်ပါ။ ယခုထွက်လိုပါသလား?</item>
+      <item quantity="other"> ဖုန်းသည် <xliff:g id="COUNT_1">%s</xliff:g> မိနစ်လောက် အရေးပေါ် ပြန်ခေါ်ခြင်းမုဒ်တွင် ရှိနေလိမ့်မည်။ ဤမုဒ်တွင် ဒေတာချိတ်ဆက်မှုအသုံးပြုသည့် အက်ပ်များကို အသုံးပြု၍ ရနိုင်မည်မဟုတ်ပါ။ ယခုထွက်လိုပါသလား? </item>
+      <item quantity="one"> ဖုန်းသည် <xliff:g id="COUNT_0">%s</xliff:g> မိနစ်လောက် အရေးပေါ် ပြန်ခေါ်ခြင်းမုဒ်တွင် ရှိနေလိမ့်မည်။ ဤမုဒ်တွင် ဒေတာချိတ်ဆက်မှုအသုံးပြုသည့် အက်ပ်များကို အသုံးပြု၍ ရနိုင်မည်မဟုတ်ပါ။ ယခုထွက်လိုပါသလား?</item>
     </plurals>
     <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="8042973425225093895">
       <item quantity="other"> ရွေးချယ်ထားသော အပြုအမူမှာ အရေပေါ်ခေါ်ဆိုမှုပြုလုပ်နေစဉ် မရှိနိုင်ပါ။ ဖုန်းသည်ဤ မုဒ်တွင် <xliff:g id="COUNT_1">%s</xliff:g> မိနစ်ရှိနေမည်ဖြစ်သည်။ ယခုထွက်လိုပါသလား?</item>
@@ -533,9 +536,9 @@
     </plurals>
     <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"ရွေးချယ်ထားသော အပြုအမူမှာ အရေပေါ်ခေါ်ဆိုမှုပြုလုပ်နေစဉ် မရှိနိုင်ပါ"</string>
     <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"အရေးပေါ်ပြန်လည်ခေါ်ဆိုမှု အခြေအနေအား ထွက်ပါမည်"</string>
-    <string name="alert_dialog_yes" msgid="6674268047820703974">"ဟုတ်သည်"</string>
+    <string name="alert_dialog_yes" msgid="6674268047820703974">"Yes"</string>
     <string name="alert_dialog_no" msgid="1476091437797628703">"No"</string>
-    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"လွှတ်လိုက်သည်"</string>
+    <string name="alert_dialog_dismiss" msgid="2491494287075907171">"ပယ်ရန်"</string>
     <string name="voicemail_provider" msgid="5135942703327136909">"ဝန်ဆောင်မှု"</string>
     <string name="voicemail_settings" msgid="72448049107749316">"ပြင်ဆင်သည်"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"မသတ်မှတ်ထားပါ"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"တုန်ခါခြင်း"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"တုန်ခါခြင်း"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"အမြင် အသံမေးလ်"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"ပင်နံပါတ်ပြောင်းပါ"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"အသံ"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"ဖုန်းမြည်သံ &amp; တုန်ခါသံ"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"စာကို ကုဒ်ဖွင့်နေစဉ် အမှားရှိခဲ့သည်။"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM ကဒ်သည် သင့် ဖုန်းဝန်ဆောင်မှုအား အသက်သွင်းခဲ့ပြီး သင့်ဖုန်း၏ ကွန်ယက်ပြင်ပဒေတာသုံးနိုင်စွမ်းအား ပြင်ဆင်မွမ်းမံပြီးဖြစ်၏။"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"လက်ရှိခေါ်ဆိုမှုများ အလွန်များနေပါသည်။ ခေါ်ဆိုမှုအသစ်တစ်ခု မပြုလုပ်ခင် လက်ရှိဖုန်းခေါ်ဆိုမှုများကို အဆုံးသတ် (သို့) ပေါင်း လိုက်ပါ။"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 62c5538..23c2f13 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Operatøren din"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Gammel PIN-kode"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Ny PIN-kode"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Bytter PIN-kode"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Den nye PIN-koden er for kort."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Den nye PIN-koden er for lang."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Den nye PIN-koden er for svak. Sterke passord inneholder ikke sammenhengende sekvenser eller gjentatte sifre."</string>
@@ -461,6 +462,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kan ikke frigjøre samtale(r)."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Kan ikke sette samtaler på vent."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Koble til et trådløst nettverk for å ringe."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Nødanrop"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Slår på radio…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Ingen tjeneste. Prøver på nytt …"</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrering"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrering"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visuell talepostkasse"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Bytt PIN-kode"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Lyd"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringetone og vibrering"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Det oppsto en feil under dekoding av meldingen."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Et SIM-kort har aktivert tjenesten din og oppdatert roamingfunksjonene for telefonen din."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Du har for mange aktive samtaler. Avslutt eller slå sammen eksisterende samtaler før du starter en ny samtale."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 8e1deda..a3a5b37 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"तपाईंको वाहक"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"पुरानो PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"नयाँ PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN परिवर्तन गर्दै"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"नयाँ PIN अत्यन्त छोटो छ।"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"नयाँ PIN अत्यन्त लामो छ।"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"नयाँ PIN अत्यन्त कमजोर छ। बलियो पासवर्डमा लगातारको अनुक्रम वा दोहोरिएका अङ्कहरू हुनु हुँदैन।"</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"कल (हरू) जारी गर्न सकिँदैन ।"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"कल सञ्चालन गर्न सकिँदैन।"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"एक कल गर्न एक ताररहितको सञ्जालमा जडान गर्नुहोस्।"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"आपतकालीन कल"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"रेडियो खोल्दै..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"कुनै सेवा छैन। फेरि प्रयास गर्दै ..."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"भाइब्रेट"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"भाइब्रेट"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"भिजुअल भ्वाइस मेल"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN परिवर्तन गर्नुहोस्"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"आवाज:"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"रिङ्गटोन र भाइब्रेट"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"सन्देश डिकोड गर्दा एउटा समस्या भयो।"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM कार्डले तपाईँको सेवा सक्रिय गर्नुका तथा फोनको रोमिङ क्षमताहरू पनि अद्यावधिक गरिदिएको छ।"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"धेरै सक्रिय कलहरू छन्। कृपया कुनै नयाँ राख्नु अघि विद्यमान कलहरूलाई अन्त्य वा मर्ज गर्नुहोस्।"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 7563ff9..746a340 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Je provider"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Oude pincode"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Nieuwe pincode"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Pincode wijzigen"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"De nieuwe pincode is te kort."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"De nieuwe pincode is te lang."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"De nieuwe pincode is niet sterk genoeg. Een sterk wachtwoord mag geen opeenvolgende cijferreeks of herhaalde cijfers bevatten."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kan oproep(en) niet vrijgeven."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Kan gesprekken niet in de wacht zetten."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Maak verbinding met een draadloos netwerk om te bellen."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Noodoproep"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Radio aanzetten..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Geen bereik. Opnieuw proberen…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Trillen"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Trillen"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visuele voicemail"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Pincode wijzigen"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Geluid"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Beltoon en trillen"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Er is een fout opgetreden tijdens het decoderen van het bericht."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Een simkaart heeft je service geactiveerd en heeft de roaming-mogelijkheden van je telefoon geüpdatet."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Er zijn te veel actieve oproepen. Beëindig bestaande oproepen of voeg ze samen voordat je een nieuwe oproep start."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index a2ce946..0ef36d7 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"ਤੁਹਾਡਾ ਕੈਰੀਅਰ"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"ਪੁਰਾਣਾ PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"ਨਵਾਂ PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN ਬਦਲਿਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"ਨਵਾਂ PIN ਬਹੁਤ ਹੀ ਛੋਟਾ ਹੈ।"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"ਨਵਾਂ PIN ਬਹੁਤ ਹੀ ਵੱਡਾ ਹੈ।"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"ਨਵਾਂ PIN ਬਹੁਤ ਹੀ ਕਮਜ਼ੋਰ ਹੈ। ਮਜ਼ਬੂਤ ਪਾਸਵਰਡ ਵਿੱਚ ਨਿਰੰਤਰ ਲੜੀ ਜਾਂ ਦੁਹਰਾਏ ਗਏ ਅੰਕ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ।"</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ਕਾਲ(ਕਾਲਾਂ) ਰਿਲੀਜ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ਕਾਲਾਂ ਹੋਲਡ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ਇੱਕ ਕਾਲ ਕਰਨ ਲਈ ਇੱਕ ਵਾਇਰਲੈਸ ਨੈਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ।"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"ਐਮਰਜੈਂਸੀ ਕਾਲ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ਰੇਡੀਓ ਚਾਲੂ ਕਰ ਰਿਹਾ ਹੈ…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"ਕੋਈ ਸੇਵਾ ਨਹੀਂ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"ਥਰਥਰਾਹਟ ਕਰੋ"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"ਥਰਥਰਾਹਟ ਕਰੋ"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"ਵਿਜੁਅਲ ਵੌਇਸਮੇਲ"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN ਬਦਲੋ"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ਅਵਾਜ਼"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"ਰਿੰਗਟੋਨ ਅਤੇ ਥਰਥਰਾਹਟ"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"ਸੁਨੇਹਾ ਡੀਕੋਡ ਕਰਦੇ ਸਮੇਂ ਇੱਕ ਅਸ਼ੁੱਧੀ ਹੋਈ ਸੀ।"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ਇੱਕ SIM ਕਾਰਡ ਨੇ ਤੁਹਾਡੀ ਸੇਵਾ ਸਕਿਰਿਆ ਕੀਤੀ ਹੈ ਅਤੇ ਤੁਹਾਡੇ ਫੋਨ ਦੀਆਂ ਰੋਮਿੰਗ ਸਮਰੱਥਤਾਵਾਂ ਅਪਡੇਟ ਕੀਤੀਆਂ ਹਨ।"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"ਇੱਥੇ ਬਹੁਤ ਸਾਰੀਆਂ ਕਿਰਿਆਸ਼ੀਲ ਕਾਲਾਂ ਹਨ। ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਨਵੀਂ ਕਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਮੌਜੂਦਾ ਕਾਲਾਂ ਨੂੰ ਸਮਾਪਤ ਜਾਂ ਮਿਲਾਓ।"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 734a205..9fb9e4b 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Mój operator"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Stary PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Nowy PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Zmieniam PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Nowy PIN jest za krótki."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Nowy PIN jest za długi."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Nowy PIN jest zbyt słaby. Silne hasło nie może zawierać ciągu kolejnych cyfr lub powtarzających się cyfr."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nie można zwolnić połączeń."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Nie można zawieszać połączeń."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Połącz się z siecią bezprzewodową, by zadzwonić."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Połączenie alarmowe"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Trwa włączanie sieci bezprzewodowych..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Brak sieci. Próbuję ponownie…"</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Wibracje"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Wibracje"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Wizualna poczta głosowa"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Zmień PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Dźwięk"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Dzwonek i wibracje"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Podczas dekodowania wiadomości wystąpił błąd."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Karta SIM aktywowała usługę i zaktualizowała funkcje roamingowe telefonu."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Masz za dużo aktywnych połączeń. Scal lub zakończ istniejące połączenia, aby nawiązać nowe."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 6c87001..880ddb7 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"O seu operador"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"PIN antigo"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Novo PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"A alterar o PIN…"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"O novo PIN é demasiado curto."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"O novo PIN é demasiado longo."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"O novo PIN é demasiado fraco. Uma palavra-passe forte não deve ter uma sequência de dígitos contínua ou repetida."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Não é possível libertar a(s) chamada(s)."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Não é possível colocar as chamadas em espera."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Ligue-se a uma rede sem fios para fazer uma chamada."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chamada de emergência"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"A ligar o rádio..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Sem serviço. A tentar novamente…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrar"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrar"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Correio de voz visual"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Alterar PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Som"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Tocar e Vibrar"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Ocorreu um erro durante a descodificação da mensagem."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Um cartão SIM ativou o seu serviço e atualizou as capacidades de roaming do seu telemóvel."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Existem demasiadas chamadas ativas. Termine ou intercale as chamadas existentes antes de efetuar uma nova chamada."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 6194cfb..c984b21 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Sua operadora"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"PIN antigo"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Novo PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Alterando o PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"O novo PIN é curto demais."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"O novo PIN é longo demais."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"O novo PIN é fácil demais. Uma senha segura não deve ter uma sequência contínua nem dígitos repetidos."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Não é possível liberar chamadas."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Não é possível colocar chamadas em espera."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Conecte-se a uma rede sem fio para fazer uma chamada."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chamada de emergência"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ativando o rádio…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Sem serviço. Tentando novamente..."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrar"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrar"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Correio de voz visual"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Alterar PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Som"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Toque e vibração"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Ocorreu um erro ao decodificar a mensagem."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Um cartão SIM ativou seu serviço e atualizou os recursos de roaming do smartphone."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Há muitas chamadas ativas. Finalize ou mescle as chamadas existentes antes de fazer uma nova."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 2e763b4..2e231f9 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Operatorul dvs."</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Codul PIN vechi"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Codul PIN nou"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Se schimbă codul PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Codul PIN nou este prea scurt."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Codul PIN nou este prea lung."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Codul PIN nou este prea slab. O parolă puternică nu ar trebui să aibă o secvență continuă sau cifre repetitive."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Apelurile nu pot fi eliberate."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Apelurile nu pot fi puse în așteptare."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Pentru a apela, conectați-vă la o rețea wireless."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Apel de urgență"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Se activează semnalul radio..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Fără semnal. Se încearcă din nou..."</string>
@@ -552,6 +555,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrații"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrații"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Mesagerie vocală vizuală"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Schimbați codul PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sunet"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ton de apel și vibrare"</string>
@@ -570,4 +575,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"A apărut o eroare la decodificarea mesajului."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Un card SIM a activat serviciul și a actualizat funcțiile de roaming ale telefonului."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Prea multe apeluri active. Încheiați sau îmbinați apeluri existente înainte de a iniția unul nou."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index e666ec2..dd6533b 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Ваш оператор связи"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Старый PIN-код"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Новый PIN-код"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Изменение PIN-кода…"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Новый PIN-код слишком короткий"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Новый PIN-код слишком длинный"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Новый PIN-код слишком простой. Чтобы пароль был надежным, он не должен содержать непрерывную последовательность чисел или повторяющиеся цифры."</string>
@@ -457,6 +458,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Не удалось разъединить."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Удержание невозможно."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Чтобы позвонить, подключитесь к Wi-Fi."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Экстренный вызов"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Включение радио…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Нет сигнала. Повторная попытка…"</string>
@@ -557,6 +560,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Вибросигнал"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Вибросигнал"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Визуальная голосовая почта"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Изменение PIN-кода"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Звук"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Рингтон и вибросигнал"</string>
@@ -575,4 +580,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"При расшифровке сообщения произошла ошибка."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"В вашем телефоне уже настроен роуминг и активирована SIM-карта."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Слишком много активных вызовов. Чтобы выполнить новый вызов, завершите или объедините существующие."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index 021e157..1955108 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"ඔබගේ වාහකයා"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"පැරණි PIN අංකය"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"නව PIN අංකය"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN අංකය වෙනස් කරමින්"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"නව PIN අංකය කෙටි වැඩිය."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"නව PIN අංකය දිග වැඩිය."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"නව PIN අංකය දුර්වල වැඩිය. ශක්තිමත් මුරපදයක අඛණ්ඩ අනුපිළිවෙළක් හෝ පුනරාවර්ත ඉලක්කම් නොතිබිය යුතුය."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ඇමතුම(ම්) මුදාහැරීම කළ නොහැක."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ඇමතුම් රඳවා තැබීමට නොහැකිය."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ඇමතුමක් ගැනීමට රැහැන් රහිත ජාලයක් වෙත සම්බන්ධ වෙන්න."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"හදිසි ඇමතුම"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"රේඩියෝව ආරම්භ කරමින්…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"සේවා නැත. නැවත උත්සාහ කරන්න…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"කම්පනය වීම"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"කම්පනය වීම"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"දෘශ්‍ය හඬ තැපෑල"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN අංකය වෙනස් කරන්න"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ශබ්දය"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"රිගින් ටෝන් සහ කම්පනය කරන්න"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"පණිවිඩය විකේතනය කරන අතරතුර දෝෂයක් සිදු විය."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM කාඩ්පතක් ඔබේ සේවාව සක්‍රිය කර ඔබේ දුරකථනයේ රෝමිං හැකියා යාවත්කාලීන කර තිබේ."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"සක්‍රිය ඇමතුම් ඉතා විශාල ගණනක් ඇත. කරුණාකර නව ඇමතුමක් ගැනීමට පෙර පවතින ඇමතුම් අවසන් හෝ ඒකාබද්ධ කරන්න."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index dd8a79c..e30460e 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Váš operátor"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Starý PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Nový PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Mení sa PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Nový PIN je príliš krátky."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Nový PIN je príliš dlhý."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Nový PIN je príliš slabý. Silné heslo by nemalo obsahovať postupnosť ani opakujúce sa číslice."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nedajú sa ukončiť hovory"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Hovory nie je možné podržať."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Ak chcete volať, pripojte sa k bezdrôtovej sieti"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Tiesňové volanie"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Prebieha zapínanie rádia..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Žiadna služba. Prebieha opätovný pokus…"</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrovať"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrovať"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Vizuálna hlasová schránka"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Zmena kódu PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Zvuk"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Tón zvonenia a vibrovanie"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Pri dekódovaní správy sa vyskytla chyba"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM karta aktivovala vašu službu a aktualizovala možnosti roamingu vášho telefónu"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Prebieha príliš veľa aktívnych hovorov. Skôr ako uskutočníte nový hovor, ukončite existujúce hovory alebo ich zlúčte."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 3d4100c..1f34c35 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Vaš operater"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Stara koda PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Nova koda PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Spreminjanje kode PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Nova koda PIN je prekratka."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Nova koda PIN je predolga."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Nova koda PIN je prešibka. Zapleteno geslo ne sme vsebovati zaporednih ali ponavljajočih se števk."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Prevzem klicev ni mogoč."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Klicev ni mogoče zadržati."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Povežite se v omrežje Wi-Fi, če želite opraviti klic."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Klic v sili"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Vklop radia …"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Ni signala. Vnovičen poskus …"</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibriraj"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibriraj"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Vizualno sporočilo v odzivniku"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Sprememba kode PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Zvok"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Zvonjenje in vibriranje"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Napaka pri dekodiranju sporočila."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Kartica SIM je aktivirala vašo storitev in posodobila zmožnosti telefona za gostovanje."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Preveč aktivnih klicev. Preden začnete nov klic, končajte ali združite obstoječe klice."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index bd91c9b..f9c5186 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Operatori yt"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Kodi PIN i vjetër"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Kodi PIN i ri"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Kodi PIN po ndryshohet"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Kodi i ri PIN është shumë i shkurtër."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Kodi i ri PIN është shumë i gjatë."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Kodi i ri PIN është shumë i dobët. Një fjalëkalim i fortë nuk duhet të ketë rend të vazhdueshëm ose shifra të përsëritura."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nuk mund të lëshojë telefonatën(at)."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Telefonatat nuk mund të mbahen në pritje."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Lidhu me një rrjet me valë për të bërë një telefonatë."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Telefonata e urgjencës"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Po aktivizon radion…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Nuk ka shërbim. Po provon sërish…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Dridhja"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Dridhja"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Posta zanore vizuale"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Ndrysho kodin PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Tingulli"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Me zile dhe me dridhje"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Ndodhi një gabim gjatë dekodimit të mesazhit."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Një kartë SIM ka aktivizuar shërbimin tënd dhe ka përditësuar aftësitë e roaming-ut të telefonit tënd."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Ka shumë thirrje aktive. Përfundo ose të bashko thirrjet ekzistuese para kryerjes së një thirrjeje të re."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index a32a160..f626250 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Мобилни оператер"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Стари PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Нови PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Мењамо PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Нови PIN је прекратак."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Нови PIN је предугачак."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Нови PIN је преслаб. Јака лозинка не треба да садржи узастопни низ ни поновљене цифре."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Успостављање позива није успело."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Није могуће стављати позиве на чекање."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Повежите се на бежичну мрежу да бисте упутили позив."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Хитан позив"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Укључивање радија…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Нема мреже. Поновни покушај…"</string>
@@ -552,6 +555,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Вибрација"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Вибрација"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Визуелна говорна пошта"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Промените PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Звук"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Мелодија звона и вибрација"</string>
@@ -570,4 +575,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Дошло је до грешке при декодирању поруке."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM картица је активирала услугу и ажурирала функције роминга на телефону."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Има превише активних позива. Завршите или обједините постојеће позиве пре него што упутите нови."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index feb4a9d..d1a3a41 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Din operatör"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Gammal pinkod"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Ny pinkod"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Pinkoden ändras"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Den nya pinkoden är för kort."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Den nya pinkoden är för lång."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Den nya pinkoden är för svag. Ett säkert lösenord bör inte ha siffror i ordningsföljd eller upprepade siffror."</string>
@@ -461,6 +462,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Det gick inte att släppa samtal."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Det går inte att hålla kvar samtal."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Anslut till ett trådlöst nätverk om du vill ringa."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Nödsamtal"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Sätter på radion…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Ingen tjänst. Försök igen …"</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrera"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrera"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visuell röstbrevlåda"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Byt pinkod"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Ljud"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringsignal och vibrera"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Ett fel inträffade när meddelandet avkodades."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Ett SIM-kort har använts för att aktivera tjänsten och uppdatera roamingfunktionerna i mobilen."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Det finns för många aktiva samtal. Avsluta eller slå samman pågående samtal innan du ringer ett nytt."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index df4e626..6eec416 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Mtoa huduma wako"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"PIN ya zamani"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"PIN mpya"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Inabadilisha PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"PIN mpya ni fupi mno."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"PIN mpya ni ndefu mno."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"PIN mpya ni dhaifu mno. Nenosiri thabiti halifai kuwa na herufi zinazofuatana mfululizo au tarakimu zinazorudiwa."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Haiwezi kutoa simu."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Haiwezi kushikilia simu."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Unganisha kwenye mtandao pasiwaya ili upige simu."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Simu ya dharura"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Inawasha redio..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Hakuna huduma. Inajaribu tena..."</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Mtetemo"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Mtetemo"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Ujumbe wa Sauti Unaoonekana"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Badilisha PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sauti"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Mlio wa simu na Mtetemo"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Hitilafu imetokea wakati wa usimbuaji wa ujumbe."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM kadi yako imeanzisha huduma yako na kusasisha uwezo wa simu yako wa kutumia mitandao mingine."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Kuna simu nyingi mno zinazoendelea. Tafadhali kata au uunganishe simu zinazoendelea kabla hujapiga nyingine."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index 791d9db..f64f03e 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"உங்கள் மொபைல் நிறுவனம்"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"பழைய பின்"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"புதிய பின்"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"பின்னை மாற்றுகிறது"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"புதிய பின் மிகவும் சிறியதாக உள்ளது."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"புதிய பின் மிகவும் நீளமாக உள்ளது."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"புதிய பின் மிகவும் வலுவற்றதாக உள்ளது. வலுவான கடவுச்சொல்லில் தொடர்வரிசையோ மீண்டும் மீண்டும் வரும் இலக்கங்களோ இருக்கக்கூடாது."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"அழைப்பை(அழைப்புகளை) விடுவிக்க முடியாது."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"அழைப்புகளை ஹோல்டு செய்ய முடியாது."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"அழைக்க, வயர்லெஸ் நெட்வொர்க்குடன் இணைக்கவும்."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"அவசரகால அழைப்பு"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ரேடியோவை இயக்குகிறது…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"சேவை இல்லை. மீண்டும் முயற்சிக்கிறது…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"அதிர்வு"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"அதிர்வு"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"விஷூவல் குரலஞ்சல்"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"பின்னை மாற்றவும்"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ஒலி"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"ரிங்டோன் &amp; அதிர்வு"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"செய்தியைக் குறிவிலக்கும்போது பிழை ஏற்பட்டது."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ஏற்கனவே சிம் கார்டைப் பயன்படுத்தி சேவை இயக்கப்பட்டது மற்றும் மொபைலின் ரோமிங் செயல்திறன்கள் புதுப்பிக்கப்பட்டன."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"மிகவும் அதிக அளவிலான அழைப்புகள் செயலில் உள்ளன. புதிய அழைப்பை மேற்கொள்ளும் முன், ஏற்கனவேயுள்ள அழைப்புகளைத் துண்டிக்கவும் அல்லது ஒன்றாகப் பிணைக்கவும்."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 15ba603..ef66508 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"మీ క్యారియర్"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"పాత PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"కొత్త PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PINను మార్చుతోంది"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"కొత్త PIN చాలా చిన్నదిగా ఉంది."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"కొత్త PIN చాలా పొడవు ఉంది."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"కొత్త PIN చాలా బలహీనంగా ఉంది. శక్తివంతమైన పాస్‌వర్డ్‌లో వరుస శ్రేణిలో అక్షరాలు/అంకెలు లేదా పునరావృత అంకెలు ఉండకూడదు."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"కాల్(ల)ను విడిచిపెట్టలేరు."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"కాల్‌లను హోల్డ్ చేయలేరు."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"కాల్ చేయడానికి వైర్‌లెస్ నెట్‌వర్క్‌కు కనెక్ట్ చేయండి."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"అత్యవసర కాల్"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"రేడియోను ప్రారంభిస్తోంది…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"సేవ లేదు. మళ్లీ ప్రయత్నిస్తోంది…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"వైబ్రేట్"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"వైబ్రేట్"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"దృశ్యమాన వాయిస్‌మెయిల్"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PINను మార్చు"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ధ్వని"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"రింగ్‌టోన్ &amp; వైబ్రేట్"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"సందేశాన్ని డీకోడ్ చేస్తున్నప్పుడు లోపం సంభవించింది."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM కార్డ్ మీ సేవను సక్రియం చేసింది మరియు మీ ఫోన్ రోమింగ్ సామర్థ్యాలను నవీకరించింది."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"చాలా ఎక్కువ కాల్‌లు సక్రియంగా ఉన్నాయి. దయచేసి మరొక కొత్త కాల్ చేసే ముందు ఇప్పటికే ఉన్న కాల్‌లను ముగించండి లేదా విలీనం చేయండి."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index eb8e4b3..f1b0a22 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"ผู้ให้บริการของคุณ"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"PIN เก่า"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"PIN ใหม่"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"กำลังเปลี่ยน PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"PIN ใหม่สั้นเกินไป"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"PIN ใหม่ยาวเกินไป"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"PIN ใหม่เดาง่ายเกินไป รหัสผ่านที่เดายากไม่ควรมีตัวเลขที่เรียงค่ากันหรือตัวเลขซ้ำๆ"</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ไม่สามารถเริ่มการโทรได้"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ไม่สามารถถือสายรอได้"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"เชื่อมต่อเครือข่ายไร้สายเพื่อโทรออก"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"หมายเลขฉุกเฉิน"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"กำลังเปิดวิทยุ…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"ไม่มีบริการ โปรดลองอีกครั้ง…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"สั่น"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"สั่น"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"ข้อความเสียงพร้อมภาพ"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"เปลี่ยน PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"เสียง"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"เสียงเรียกเข้าและสั่น"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"เกิดข้อผิดพลาดขณะถอดรหัสข้อความ"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ซิมการ์ดได้เปิดใช้บริการของคุณและอัปเดตความสามารถในการโรมมิ่งของโทรศัพท์"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"มีสายที่ใช้งานอยู่มากเกินไป โปรดวางสายหรือรวมสายที่มีก่อนโทรออกครั้งใหม่"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 9b643a4..962ebbe 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Ang iyong carrier"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Lumang PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Bagong PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Binabago ang PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Masyadong maikli ang bagong PIN."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Masyadong mahaba ang bagong PIN."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Masyadong mahina ang bagong PIN. Ang isang malakas na password ay hindi dapat magkaroon ng tuloy-tuloy na sequence o paulit-ulit na mga digit."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Hindi mailabas ang (mga) tawag."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Hindi makakapag-hold ng mga tawag."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Kumonekta sa isang wireless network upang makatawag."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency na tawag"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ino-on ang radyo…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Walang serbisyo. Sinusubukang muli…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Mag-vibrate"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Mag-vibrate"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visual Voicemail"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Baguhin ang PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Tunog"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringtone at Pag-vibrate"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Nagkaroon ng error habang dine-decode ang mensahe."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Na-activate ng isang SIM card ang iyong serbisyo at na-update ang mga kakayahang roaming ng iyong telepono."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Masyadong maraming aktibong tawag. Mangyaring tapusin o pagsamahin ang mga umiiral na tawag bago gumawa ng bago."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 9b62fa7..fed96e6 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Operatörünüz"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Eski PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Yeni PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN değiştiriliyor"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Yeni PIN çok kısa."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Yeni PIN çok uzun."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Yeni PIN çok zayıf. Güçlü bir şifrede birbirini sıralı şekilde takip eden veya yinelenen rakamlar bulunmamalıdır."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Çağrılar bırakılamıyor."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Çağrılar beklemeye alınamıyor."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Telefon etmek için kablosuz ağa bağlanın."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Acil durum çağrısı"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Radyo açılıyor..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Servis yok. Tekrar deneniyor…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Titreşim"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Titreşim"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Görsel Sesli Mesaj"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN\'i değiştirin"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Ses"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Zil Sesi ve Titreşim"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"İletinin kodu çözülürken bir hata oluştu."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Bir SIM kart, hizmetinizi etkinleştirdi ve telefonunuzun dolaşım özelliklerini güncelledi."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Etkin çağrıların sayısı çok fazla. Yeni bir çağrı yapmadan önce lütfen mevcut çağrıları sonlandırın veya birleştirin."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index a818d3a..387d9ca 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Ваш оператор"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Старий PIN-код"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Новий PIN-код"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Змінення PIN-коду"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Новий PIN-код закороткий."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Новий PIN-код задовгий."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Новий PIN-код недостатньо надійний. Надійний PIN-код не має містити прямих послідовностей або повторюваних цифр."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Неможливо телефонувати."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Не можна призупиняти виклики."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Щоб зателефонувати, під’єднайтеся до бездротової мережі."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Аварійний виклик"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Увімкнення радіо…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Зв’язку немає. Повторна спроба…"</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Вібросигнал"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Вібросигнал"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Візуальна голосова пошта"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Змінити PIN-код"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Звук"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Сигнал дзвінка та вібросигнал"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Під час розшифрування повідомлення сталася помилка."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Коли ви вставили SIM-карту, було активовано мобільний зв’язок і оновлено можливості роумінгу вашого телефона."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Забагато активних викликів. Перш ніж зателефонувати новому абоненту, завершіть або об’єднайте поточні виклики."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index 0ecee83..2ba80b8 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"آپ کا کیریئر"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"‏پرانا PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"‏نیا PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"‏PIN تبدیل ہو رہا ہے"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"‏نیا PIN بہت ہی مختصر ہے۔"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"‏نیا PIN بہت ہی طویل ہے۔"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"‏نیا PIN بہت ہی کمزور ہے۔ مضبوط پاسورڈ میں مسلسل ترتیب یا دہرے عدد نہیں ہونے چاہئیں۔"</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"کال(ز) ریلیز نہیں کر سکتے۔"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"کالز کو ہولڈ نہیں کیا جا سکتا۔"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"کال کرنے کیلئے کسی وائرلیس نیٹ ورک سے منسلک ہوں۔"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"ہنگامی کال"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ریڈیو آن کر رہا ہے…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"کوئی سروس نہیں ہے۔ دوبارہ کوشش کی جا رہی ہے…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"وائبریٹ"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"وائبریٹ"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"بصری صوتی میل"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"‏PIN تبدیل کریں"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"آواز"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"رنگ ٹون اور وائبریٹ"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"پیغام کو ڈیکوڈ کرتے وقت ایک خرابی پیش آ گئی۔"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"‏ایک SIM کارڈ نے آپ کی سروس فعال کر دی ہے اور آپ کے فون کی رومنگ اہلیتیں اپ ڈیٹ کر دی ہیں۔"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"بہت زیادہ فعال کالیں ہیں۔ براہ کرم نئی کال کرنے سے پہلے موجودہ کالوں کو ضم کریں یا ختم کریں۔"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index daec968..1c27a32 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Aloqa operatoringiz"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Eski PIN kod"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Yangi PIN kod"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"PIN kod o‘zgartirilmoqda"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Yangi PIN kod juda qisqa."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Yangi PIN kod juda uzun."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Yangi PIN kod juda sodda. Ishonchli PIN kodda ketma-ket takrorlanadigan raqamlar bo‘lmasligi lozim."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Qo‘ng‘iroq(lar)ni chiqarib bo‘lmadi."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Qo‘ng‘iroqlarni ushlab turib bo‘lmadi."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Qo‘ng‘iroq qilish uchun simsiz tarmoqqa ulaning"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Favqulodda chaqiruv"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Radio yoqilmoqda…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Aloqa yo‘q. Qayta urinilmoqda…"</string>
@@ -514,7 +517,7 @@
     <string name="ota_spc_failure" msgid="3909983542575030796">"SPC XATOLARI KO‘PAYIB KETDI"</string>
     <string name="ota_call_end" msgid="4537279738134612388">"Orqaga"</string>
     <string name="ota_try_again" msgid="7685477206465902290">"Yana urinib ko‘ring"</string>
-    <string name="ota_next" msgid="3904945374358235910">"Keyingi"</string>
+    <string name="ota_next" msgid="3904945374358235910">"Keyingisi"</string>
     <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
     <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Favqulodda teskari qo‘ng‘iroq rejimi kiritildi"</string>
     <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Favqulodda teskari qo‘ng‘iroq rejimi"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Tebranish"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Tebratish"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Vizual ovozli pochta"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN kodni o‘zgartirish"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Ovoz"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Qo‘ng‘iroq ohangi &amp; tebranish"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Xabarni kodsizlashda xatolik yuz berdi."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Telefoningizda rouming xizmati sozlangan va SIM karta faollashtirilgan."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Hozir bir nechta qo‘ng‘iroqlar amalda. Boshqa abonentga qo‘ng‘iroq qilishdan avval, amaldagi qo‘ng‘iroqlarni tugating yoki ularni konferens-aloqaga birlashtiring."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 13ac8c8..fd283da 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Nhà cung cấp dịch vụ của bạn"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Mã PIN cũ"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"Mã PIN mới"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Đang thay đổi mã PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"Mã PIN mới quá ngắn."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"Mã PIN mới quá dài."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"Mã PIN mới quá yếu. Một mật khẩu mạnh không nên có các chữ số lặp lại hoặc chuỗi liên tiếp."</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Không thực hiện được cuộc gọi."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Không thể giữ cuộc gọi."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Kết nối với mạng không dây để thực hiện cuộc gọi."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Cuộc gọi khẩn cấp"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Đang bật radio..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Không có dịch vụ nào. Đang thử lại…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Rung"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Rung"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Thư thoại kèm theo hình ảnh"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Thay đổi mã PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Âm thanh"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Nhạc chuông và rung"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Đã xảy ra lỗi khi giải mã tin nhắn."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Thẻ SIM đã kích hoạt dịch vụ của bạn và đã cập nhật chức năng chuyển vùng của điện thoại."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Có quá nhiều cuộc gọi hiện hoạt. Vui lòng kết thúc hoặc hợp nhất các cuộc gọi hiện có trước khi thực hiện cuộc gọi mới."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index aa61e49..c4a2cc7 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"您的运营商"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"旧的 PIN 码"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"新的 PIN 码"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"正在更改 PIN 码"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"新的 PIN 码太短。"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"新的 PIN 码太长。"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"新的 PIN 码安全系数太低。如要提高密码强度,请勿使用连续或重复的数字。"</string>
@@ -455,6 +456,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"无法挂断电话。"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"无法保持通话。"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"需连接至无线网络才能拨打电话。"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"紧急呼救"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"正在打开天线..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"无服务,正在重试…"</string>
@@ -549,6 +552,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"振动"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"振动"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"可视语音邮箱"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"更改 PIN 码"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"提示音"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"铃声和振动"</string>
@@ -567,4 +572,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"对邮件解码时出错。"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM 卡已启用您的服务,并更新了您手机的漫游功能。"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"进行中的通话过多。请结束现有通话或将其合并,然后再拨打新的电话。"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 6323d12..84246c2 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"您的流動網絡供應商"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"舊的 PIN"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"新的 PIN"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"正在變更 PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"新的 PIN 太短。"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"新的 PIN 太長。"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"新的 PIN 太弱。強效密碼不應包含連續序列或重複數字。"</string>
@@ -461,6 +462,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"無法釋放通話。"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"無法保留通話。"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"連接無線網絡,以撥打電話。"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"緊急電話"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"正在開啟無線電..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"沒有服務。請再試一次…"</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"震動"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"震動"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visual Voicemail"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"變更 PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"音效"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"鈴聲與震動"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"為訊息解碼時發生錯誤。"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM 卡已啟動您的服務,並更新了您的手機漫遊功能。"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"進行中的通話過多。請先結束或合併現有通話,再重新撥打。"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 09c6406..505452e 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"您的行動通訊業者"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"舊的 PIN 碼"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"新的 PIN 碼"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"正在變更 PIN 碼"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"新的 PIN 碼太短。"</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"新的 PIN 碼太長。"</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"新的 PIN 碼不夠安全。安全強度高的密碼不得使用連續或重複的數字。"</string>
@@ -461,6 +462,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"無法掛斷電話。"</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"無法保留通話。"</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"連上無線網路即可撥打電話。"</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"緊急電話"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"開啟無線通訊中…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"找不到服務訊號,正在重試…"</string>
@@ -555,6 +558,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"震動"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"震動"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"具有畫面的語音信箱"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"變更 PIN 碼"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"音效"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"鈴聲與震動"</string>
@@ -573,4 +578,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"為郵件解碼時發生錯誤。"</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"SIM 卡已啟用您的服務並更新了手機的漫遊功能。"</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"進行中的通話過多。請先結束或合併現有通話,再撥打新的電話。"</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 28316e8..2804321 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -149,7 +149,8 @@
     <string name="voicemail_default" msgid="2001233554889016880">"Inkampani yakho yenethiwekhi"</string>
     <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"I-PIN endala"</string>
     <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"I-PIN entsha"</string>
-    <string name="vm_change_pin_progress_message" msgid="6727847908454506025">"Ishintsha i-PIN"</string>
+    <!-- no translation found for vm_change_pin_progress_message (3977357361934350336) -->
+    <skip />
     <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"I-PIN entsha imfushane kakhulu."</string>
     <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"I-PIN entsha yinde kakhulu."</string>
     <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"I-PIN entsha ibuthakathaka. Iphasiwedi eqinile akufanele ibe nokulandelana okuqhubekayo noma amadijithi aphindaphindiwe."</string>
@@ -459,6 +460,8 @@
     <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Ayikwazi ukukhipha amakholi."</string>
     <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Ayikwazi ukubamba amakholi."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Xhumeka kunethiwekhi engenantambo ukuze wenze ikholi."</string>
+    <!-- no translation found for incall_error_promote_wfc (106510757624022064) -->
+    <skip />
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Ikholi ephuthumayo"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ivula umsakazo..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Ayikho isevisi. Iyazama futhi…"</string>
@@ -553,6 +556,8 @@
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Dlidliza"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Dlidliza"</string>
     <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Ivoyisimeyili ebonakalayo"</string>
+    <!-- no translation found for voicemail_set_pin_dialog_title (2797924461029093837) -->
+    <skip />
     <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Shintsha i-PIN"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Umsindo"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ithoni yokukhala nokudlidliza"</string>
@@ -571,4 +576,28 @@
     <string name="message_decode_error" msgid="3456481534066924855">"Kube nephutha ngenkathi kukhishwa ikhodi kumlayezo."</string>
     <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Ikhadi le-SIM lenze kwasebenza isevisi yakho laphinde labuyekeza amakhono okuzula wefoni yakho."</string>
     <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Kunamakholi amaningi asebenzayo. Sicela uphelise noma uhlanganise amakholi akhona ngaphambi kokubeka eyodwa."</string>
+    <!-- no translation found for change_pin_title (7790232089699034029) -->
+    <skip />
+    <!-- no translation found for change_pin_continue_label (2135088662420163447) -->
+    <skip />
+    <!-- no translation found for change_pin_cancel_label (353535488390948596) -->
+    <skip />
+    <!-- no translation found for change_pin_ok_label (6204308560844889926) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_header (419179847657548887) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_old_pin_hint (8579171678763615453) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_header (2611191814590251532) -->
+    <skip />
+    <!-- no translation found for change_pin_enter_new_pin_hint (2322940054329689309) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pin_header (8113764019347322170) -->
+    <skip />
+    <!-- no translation found for change_pin_confirm_pins_dont_match (4795052654904027909) -->
+    <skip />
+    <!-- no translation found for change_pin_succeeded (2022852286442211151) -->
+    <skip />
+    <!-- no translation found for change_pin_system_error (8308462387154257840) -->
+    <skip />
 </resources>
diff --git a/res/values/config.xml b/res/values/config.xml
index 0b1f93c..12b35c4 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -207,6 +207,9 @@
     <!-- Flag indicating whether to allow visual voicemail if available on the device.[DO NOT TRANSLATE] -->
     <bool name="allow_visual_voicemail">true</bool>
 
+    <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
+    <bool name="vvm3_enabled">false</bool>
+
     <!-- Component for custom voicemail notification handling. [DO NOT TRANSLATE] -->
     <string name="config_customVoicemailComponent">@null</string>
 
diff --git a/res/values/strings.xml b/res/values/strings.xml
index a18ee87..d549653 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -336,7 +336,7 @@
     <string name="vm_change_pin_new_pin">New PIN</string>
 
     <!-- Message on the dialog when PIN changing is in progress -->
-    <string name="vm_change_pin_progress_message">Changing PIN</string>
+    <string name="vm_change_pin_progress_message">Please wait.</string>
     <!-- Error message for the voicemail PIN change if the PIN is too short -->
     <string name="vm_change_pin_error_too_short">The new PIN is too short.</string>
     <!-- Error message for the voicemail PIN change if the PIN is too long -->
@@ -1258,6 +1258,8 @@
     <string name="voicemail_visual_voicemail_switch_title">Visual Voicemail</string>
 
     <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
+    <string name="voicemail_set_pin_dialog_title">Set PIN</string>
+    <!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
     <string name="voicemail_change_pin_dialog_title">Change PIN</string>
 
     <!-- Voicemail ringtone title. The user clicks on this preference to select
@@ -1353,4 +1355,28 @@
         There are too many active calls. Please end or merge existing calls before placing a new one.
     </string>
 
+    <!-- The title for the change voicemail PIN activity -->
+    <string name="change_pin_title">Change Voicemail PIN</string>
+    <!-- The label for the continue button in change voicemail PIN activity -->
+    <string name="change_pin_continue_label">Continue</string>
+    <!-- The label for the cancel button in change voicemail PIN activity -->
+    <string name="change_pin_cancel_label">Cancel</string>
+    <!-- The label for the ok button in change voicemail PIN activity -->
+    <string name="change_pin_ok_label">Ok</string>
+    <!-- The title for the enter old pin step in change voicemail PIN activity -->
+    <string name="change_pin_enter_old_pin_header">Confirm your old PIN</string>
+    <!-- The hint for the enter old pin step in change voicemail PIN activity -->
+    <string name="change_pin_enter_old_pin_hint">Enter your voicemail PIN to continue.</string>
+    <!-- The title for the enter new pin step in change voicemail PIN activity -->
+    <string name="change_pin_enter_new_pin_header">Set a new PIN</string>
+    <!-- The hint for the enter new pin step in change voicemail PIN activity -->
+    <string name="change_pin_enter_new_pin_hint">PIN must be <xliff:g id="min" example="4">%1$d</xliff:g>-<xliff:g id="max" example="7">%2$d</xliff:g> digits.</string>
+    <!-- The title for the confirm new pin step in change voicemail PIN activity -->
+    <string name="change_pin_confirm_pin_header">Confirm your PIN</string>
+    <!-- The error message for th confirm new pin step in change voicemail PIN activity, if the pin doen't match the one previously entered -->
+    <string name="change_pin_confirm_pins_dont_match">PINs don\'t match</string>
+    <!-- The toast to show after the voicemail PIN has been successfully changed -->
+    <string name="change_pin_succeeded">Voicemail PIN updated</string>
+    <!-- The error message to show if the server reported an error while attempting to change the voicemail PIN -->
+    <string name="change_pin_system_error">Unable to set PIN</string>
 </resources>
diff --git a/res/xml/voicemail_settings.xml b/res/xml/voicemail_settings.xml
index 734d9d7..e1dafb0 100644
--- a/res/xml/voicemail_settings.xml
+++ b/res/xml/voicemail_settings.xml
@@ -65,8 +65,7 @@
         android:key="@string/voicemail_visual_voicemail_key"
         android:title="@string/voicemail_visual_voicemail_switch_title" />"
 
-    <com.android.phone.settings.VoicemailChangePinDialogPreference
-        android:key="@string/voicemail_change_pin_key"
-        android:title="@string/voicemail_change_pin_dialog_title" />
-
+    <Preference
+      android:key="@string/voicemail_change_pin_key"
+      android:title="@string/voicemail_change_pin_dialog_title" />
 </PreferenceScreen>
diff --git a/res/xml/vvm_config.xml b/res/xml/vvm_config.xml
index d55fdb2..3bfdf75 100644
--- a/res/xml/vvm_config.xml
+++ b/res/xml/vvm_config.xml
@@ -135,5 +135,8 @@
     <string name="vvm_client_prefix_string">//VZWVVM</string>
     <boolean name="vvm_cellular_data_required_bool" value="true"/>
     <boolean name="vvm_legacy_mode_enabled_bool" value="true"/>
+    <!-- VVM3 specific value for the voicemail management gateway to use if the SMS didn't provide
+         one -->
+    <string name="default_vmg_url">https://mobile.vzw.com/VMGIMS/VMServices</string>
   </pbundle_as_map>
 </list>
\ No newline at end of file
diff --git a/sip/res/values-af/strings.xml b/sip/res/values-af/strings.xml
index b621aa9..c30b65c 100644
--- a/sip/res/values-af/strings.xml
+++ b/sip/res/values-af/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Opsionele instellings"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Stawinggebruikernaam"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Gebruikernaam gebruik vir stawing"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Nie gestel nie&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Dieselfde as gebruikernaam&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opsioneel&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Raak om almal te wys"</string>
diff --git a/sip/res/values-am/strings.xml b/sip/res/values-am/strings.xml
index 3d3c7a0..2e16d48 100644
--- a/sip/res/values-am/strings.xml
+++ b/sip/res/values-am/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"አማራጭ ቅንብሮች"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"የማረጋገጫ  የተጠቃሚ ስም"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"ተጠቃሚ ስም ለማረጋገጫ ተጠቅሟል"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;አልተዘጋጀም&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;ከተጠቃሚ ስም ጋር አንድ አይነት&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;አስገዳጅ ያልሆነ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"ሁሉን ለማሳየት ▷ ይንኩ"</string>
diff --git a/sip/res/values-ar/strings.xml b/sip/res/values-ar/strings.xml
index 1e21f1d..10ca49b 100644
--- a/sip/res/values-ar/strings.xml
+++ b/sip/res/values-ar/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"الإعدادات الاختيارية"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"اسم المستخدِم للمصادقة"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"اسم المستخدِم المستخدَم للمصادقة"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"‏&lt;لم يتم التعيين&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"‏&lt;مثل اسم المستخدم&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"‏&lt;اختياري&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ المس لإظهار الكل"</string>
diff --git a/sip/res/values-az-rAZ/strings.xml b/sip/res/values-az-rAZ/strings.xml
index eaeebe7..e8f0cc0 100644
--- a/sip/res/values-az-rAZ/strings.xml
+++ b/sip/res/values-az-rAZ/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Əlavə seçimlər"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Autentifikasiya istifadəçi adı"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Autentifikasiya üçün istifadə edilən istifadəçi adı"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Təyin edilməyib&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;İstifadəçi adı ilə eyni&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;İstəyə görə&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"Hamısını göstərmək üçün toxunun ▷"</string>
diff --git a/sip/res/values-bg/strings.xml b/sip/res/values-bg/strings.xml
index df5cbf9..1afdc2d 100644
--- a/sip/res/values-bg/strings.xml
+++ b/sip/res/values-bg/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Незадължителни настройки"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Потребит. име за удостоверяване"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Потребителско име, използвано за удостоверяване"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Не е зададено&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Същото като потребителското име&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;По избор&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Докоснете за показване на всички"</string>
diff --git a/sip/res/values-bn-rBD/strings.xml b/sip/res/values-bn-rBD/strings.xml
index d77cca9..dc572d7 100644
--- a/sip/res/values-bn-rBD/strings.xml
+++ b/sip/res/values-bn-rBD/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"ঐচ্ছিক সেটিংস"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"প্রমাণীকরণের ব্যবহারকারীর নাম"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"প্রমাণীকরণের জন্য ব্যবহৃত ব্যবহারকারী নাম"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;সেট করা নেই&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;ব্যবহারকারী নামের অনুরূপ&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ঐচ্ছিক&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ সবকিছু দেখানোর জন্য স্পর্শ করুন"</string>
diff --git a/sip/res/values-ca/strings.xml b/sip/res/values-ca/strings.xml
index a626944..da6ec00 100644
--- a/sip/res/values-ca/strings.xml
+++ b/sip/res/values-ca/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Configuració opcional"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nom d\'usuari per a l\'autenticació"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Nom d\'usuari utilitzat per a l\'autenticació"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;No definit&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Igual que el nom d\'usuari&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Toca per mostrar-ho tot."</string>
diff --git a/sip/res/values-cs/strings.xml b/sip/res/values-cs/strings.xml
index 2d7c682..b90772e 100644
--- a/sip/res/values-cs/strings.xml
+++ b/sip/res/values-cs/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Nepovinná nastavení"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Ověřovací uživatelské jméno"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Uživatelské jméno používané k ověření"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Nenastaveno&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Stejné jako uživatelské jméno&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Nepovinné&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Výběrem této položky zobrazíte všechna nastavení"</string>
diff --git a/sip/res/values-da/strings.xml b/sip/res/values-da/strings.xml
index fc5e443..b40e27e 100644
--- a/sip/res/values-da/strings.xml
+++ b/sip/res/values-da/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Valgfri indstillinger"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Brugernavn til godkendelse"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Brugernavn ved godkendelse"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Ikke angivet&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Samme som brugernavn&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Valgfrit&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tryk for at vise alle"</string>
diff --git a/sip/res/values-de/strings.xml b/sip/res/values-de/strings.xml
index 9b1d47a..bb0d4bd 100644
--- a/sip/res/values-de/strings.xml
+++ b/sip/res/values-de/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Optionale Einstellungen"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nutzername für die Authentifizierung"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Für die Authentifizierung verwendeter Nutzername"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Nicht festgelegt&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Wie Nutzername&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Optional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tippen, um alle einzublenden"</string>
diff --git a/sip/res/values-el/strings.xml b/sip/res/values-el/strings.xml
index 01f8270..fc05539 100644
--- a/sip/res/values-el/strings.xml
+++ b/sip/res/values-el/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Προαιρετικές ρυθμίσεις"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Όνομα χρήστη ελέγχου ταυτότητας"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Όνομα χρήστη που χρησιμοποιείται για έλεγχο ταυτότητας"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Δεν έχει οριστεί&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Ίδιο με το όνομα χρήστη&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Προαιρετικό&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Αγγίξτε για εμφάνιση όλων"</string>
diff --git a/sip/res/values-en-rAU/strings.xml b/sip/res/values-en-rAU/strings.xml
index 59a9b16..911657d 100644
--- a/sip/res/values-en-rAU/strings.xml
+++ b/sip/res/values-en-rAU/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Optional settings"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Authentication username"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Username used for authentication"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Not set&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Same as username&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Optional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Touch to show all"</string>
diff --git a/sip/res/values-en-rGB/strings.xml b/sip/res/values-en-rGB/strings.xml
index 59a9b16..911657d 100644
--- a/sip/res/values-en-rGB/strings.xml
+++ b/sip/res/values-en-rGB/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Optional settings"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Authentication username"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Username used for authentication"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Not set&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Same as username&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Optional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Touch to show all"</string>
diff --git a/sip/res/values-en-rIN/strings.xml b/sip/res/values-en-rIN/strings.xml
index 59a9b16..911657d 100644
--- a/sip/res/values-en-rIN/strings.xml
+++ b/sip/res/values-en-rIN/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Optional settings"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Authentication username"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Username used for authentication"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Not set&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Same as username&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Optional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Touch to show all"</string>
diff --git a/sip/res/values-es-rUS/strings.xml b/sip/res/values-es-rUS/strings.xml
index c16d375..8c431fa 100644
--- a/sip/res/values-es-rUS/strings.xml
+++ b/sip/res/values-es-rUS/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Configuración opcional"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nombre de usuario de autenticación"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Nombre de usuario utilizado para autenticación"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Sin configurar&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Igual que el nombre de usuario&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tocar para mostrar todo"</string>
diff --git a/sip/res/values-es/strings.xml b/sip/res/values-es/strings.xml
index 61f8b1c..7dc4f41 100644
--- a/sip/res/values-es/strings.xml
+++ b/sip/res/values-es/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Ajustes opcionales"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nombre de usuario de autenticación"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Nombre de usuario utilizado para la autenticación"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;No definido&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Igual que el nombre de usuario&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tocar para mostrar todo"</string>
diff --git a/sip/res/values-et-rEE/strings.xml b/sip/res/values-et-rEE/strings.xml
index f3b467b..26dc925 100644
--- a/sip/res/values-et-rEE/strings.xml
+++ b/sip/res/values-et-rEE/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Valikulised seaded"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Autentimise kasutajanimi"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Autentimiseks kasutatav kasutajanimi"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Määramata&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Sama kui kasutajanimi&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Valikuline&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Puudutage kõige kuvamiseks"</string>
diff --git a/sip/res/values-eu-rES/strings.xml b/sip/res/values-eu-rES/strings.xml
index b128da6..3b900a7 100644
--- a/sip/res/values-eu-rES/strings.xml
+++ b/sip/res/values-eu-rES/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Aukerako ezarpenak"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Autentifikatzeko erabiltzaile-izena"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Autentifikatzeko erabili den erabiltzaile-izena"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Ezarri gabe&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Erabiltzaile-izenaren berdina&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Aukerakoa&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Guztiak erakusteko, ukitu"</string>
diff --git a/sip/res/values-fa/strings.xml b/sip/res/values-fa/strings.xml
index 7ea3987..caf9332 100644
--- a/sip/res/values-fa/strings.xml
+++ b/sip/res/values-fa/strings.xml
@@ -56,12 +56,17 @@
     <string name="display_name_title" msgid="579241787583079773">"نام نمایشی"</string>
     <string name="proxy_address_title" msgid="6890163365640631841">"آدرس پروکسی خارج از محدوده"</string>
     <string name="port_title" msgid="6693965912656593862">"شماره درگاه"</string>
-    <string name="transport_title" msgid="889155457465372527">"نوع حمل و نقل"</string>
+    <string name="transport_title" msgid="889155457465372527">"نوع حمل‌ونقل"</string>
     <string name="send_keepalive_title" msgid="599627072150501159">"ارسال حفظ اتصال"</string>
     <string name="advanced_settings" msgid="6622996380747040711">"تنظیمات اختیاری"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"نام کاربری برای احراز هویت"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"نام کاربری مورد استفاده برای احراز هویت"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"‏&lt;تنظیم نشده&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"‏&lt;مانند نام کاربری&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"‏&lt;اختیاری&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ جهت نمایش همه لمس کنید"</string>
diff --git a/sip/res/values-fi/strings.xml b/sip/res/values-fi/strings.xml
index 05aa2a1..ae797b8 100644
--- a/sip/res/values-fi/strings.xml
+++ b/sip/res/values-fi/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Lisäasetukset"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Todennuksessa käytettävä käyttäjänimi"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Käyttäjänimeä käytetään todennukseen"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Ei asetettu&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Sama kuin käyttäjänimi&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Valinnainen&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Näytä kaikki koskettamalla"</string>
diff --git a/sip/res/values-fr-rCA/strings.xml b/sip/res/values-fr-rCA/strings.xml
index 60bd945..f79651d 100644
--- a/sip/res/values-fr-rCA/strings.xml
+++ b/sip/res/values-fr-rCA/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Paramètres facultatifs"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nom d\'utilisateur d\'authentification"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Nom d\'utilisateur utilisé pour l\'authentification"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Non défini&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Identique au nom d\'utilisateur&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Facultatif&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"Touchez ▷ pour tout afficher"</string>
diff --git a/sip/res/values-fr/strings.xml b/sip/res/values-fr/strings.xml
index 359576e..4c79680 100644
--- a/sip/res/values-fr/strings.xml
+++ b/sip/res/values-fr/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Paramètres facultatifs"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nom d\'utilisateur d\'authentification"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Nom d\'utilisateur utilisé pour l\'authentification"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Non défini&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Identique au nom d\'utilisateur&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Facultatif&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Appuyer ici pour tout afficher"</string>
diff --git a/sip/res/values-gl-rES/strings.xml b/sip/res/values-gl-rES/strings.xml
index 8368de0..5909559 100644
--- a/sip/res/values-gl-rES/strings.xml
+++ b/sip/res/values-gl-rES/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Configuración opcional"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nome de usuario da autenticación"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Nome de usuario utilizado para a autenticación"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Sen configurar&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Igual que o nome de usuario&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Toca aquí para mostrar todo"</string>
diff --git a/sip/res/values-gu-rIN/strings.xml b/sip/res/values-gu-rIN/strings.xml
index e4e72e9..5992e85 100644
--- a/sip/res/values-gu-rIN/strings.xml
+++ b/sip/res/values-gu-rIN/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"વૈકલ્પિક સેટિંગ્સ"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"પ્રમાણીકરણ વપરાશકર્તાનામ"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"પ્રમાણીકરણ માટે ઉપયોગમાં લેવાયેલ વપરાશકર્તાનામ"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;સેટ કરેલ નથી&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;વપરાશકર્તાનામના સમાન&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;વૈકલ્પિક&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ બધુ દર્શાવવા માટે ટચ કરો"</string>
diff --git a/sip/res/values-hi/strings.xml b/sip/res/values-hi/strings.xml
index ea665cb..8a60431 100644
--- a/sip/res/values-hi/strings.xml
+++ b/sip/res/values-hi/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"वैकल्पिक सेटिंग"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"प्रमाणीकरण उपयोगकर्ता नाम"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"प्रमाणीकरण के लिए उपयोग होने वाला उपयोगकर्ता नाम"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;सेट नहीं है&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;उपयोगकर्ता नाम के समान&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;वैकल्पिक&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ सभी दिखाने के लिए स्पर्श करें"</string>
diff --git a/sip/res/values-hr/strings.xml b/sip/res/values-hr/strings.xml
index cf57269..e623d29 100644
--- a/sip/res/values-hr/strings.xml
+++ b/sip/res/values-hr/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Izborne postavke"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Korisničko ime za autentifikaciju"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Korisničko ime koje se upotrebljava za autentifikaciju"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Nije postavljeno&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Isto kao korisničko ime&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Izborno&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Dodirnite da biste prikazali sve"</string>
diff --git a/sip/res/values-hu/strings.xml b/sip/res/values-hu/strings.xml
index 12aef74..210a45a 100644
--- a/sip/res/values-hu/strings.xml
+++ b/sip/res/values-hu/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"További beállítások"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Azonosításhoz használt felhasználónév"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Azonosításhoz használt felhasználónév"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Nincs beállítva&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Ugyanaz, mint a felhasználónév&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Nem kötelező&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Érintse meg az összes megjelenítéséhez"</string>
diff --git a/sip/res/values-hy-rAM/strings.xml b/sip/res/values-hy-rAM/strings.xml
index cc1d26a..e761fbf 100644
--- a/sip/res/values-hy-rAM/strings.xml
+++ b/sip/res/values-hy-rAM/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Ընտրովի կարգավորումներ"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Նույնականացման օգտանուն"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Օգտանունն օգտագործվել է նույնականացման համար"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Կարգավորված չէ&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Նույնը, ինչ օգտանունը&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Ընտրովի&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Հպեք՝ ցուցադրելու ամենը"</string>
diff --git a/sip/res/values-in/strings.xml b/sip/res/values-in/strings.xml
index 6b4bb10..ba2dba6 100644
--- a/sip/res/values-in/strings.xml
+++ b/sip/res/values-in/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Setelan opsional"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nama pengguna autentikasi"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Nama pengguna yang digunakan untuk autentikasi"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Tidak disetel&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Sama dengan nama pengguna&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opsional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Sentuh untuk menampilkan semua"</string>
diff --git a/sip/res/values-is-rIS/strings.xml b/sip/res/values-is-rIS/strings.xml
index 4033ca7..286ddb3 100644
--- a/sip/res/values-is-rIS/strings.xml
+++ b/sip/res/values-is-rIS/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Valfrjálsar stillingar"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Notandanafn til auðkenningar"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Notandanafn notað til auðkenningar"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Ekki valið&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Sama og notandanafnið&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Valfrjálst&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Snertu til að sýna allt"</string>
diff --git a/sip/res/values-it/strings.xml b/sip/res/values-it/strings.xml
index ab04f42..5ba0445 100644
--- a/sip/res/values-it/strings.xml
+++ b/sip/res/values-it/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Impostazioni facoltative"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nome utente per autenticazione"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Nome utente utilizzato per l\'autenticazione"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Non impostato&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Uguale al nome utente&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Facoltativo&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tocca per mostrare tutto"</string>
diff --git a/sip/res/values-iw/strings.xml b/sip/res/values-iw/strings.xml
index 7505f1d..eccac14 100644
--- a/sip/res/values-iw/strings.xml
+++ b/sip/res/values-iw/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"הגדרות אופציונליות"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"שם משתמש לאימות"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"שם משתמש המשמש לאימות"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"‏&lt;לא הוגדר&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"‏&lt;זהה לשם משתמש&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"‏&lt;אופציונלי&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"גע כדי להציג את הכל"</string>
diff --git a/sip/res/values-ja/strings.xml b/sip/res/values-ja/strings.xml
index 8487e9e..59b2ea0 100644
--- a/sip/res/values-ja/strings.xml
+++ b/sip/res/values-ja/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"オプション設定"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"認証ユーザー名"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"認証に使用するユーザー名"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;未設定&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;ユーザー名と同じ&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;オプション&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷すべて表示"</string>
diff --git a/sip/res/values-ka-rGE/strings.xml b/sip/res/values-ka-rGE/strings.xml
index 87eaa97..1f0e0ed 100644
--- a/sip/res/values-ka-rGE/strings.xml
+++ b/sip/res/values-ka-rGE/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"არასავალდებულო პარამეტრები"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"ავტორიზაციის მომხმარებლის სახელი"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"ავტორიზაციისათვის გამოყენებული მომხმარებლის სახელი"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;არ არის დაყენებული&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;იგივეა, რაც მომხმარებლის სახელი&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;სურვილისამებრ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ შეეხეთ ყველას საჩვენებლად"</string>
diff --git a/sip/res/values-kk-rKZ/strings.xml b/sip/res/values-kk-rKZ/strings.xml
index b07dacd..affe09d 100644
--- a/sip/res/values-kk-rKZ/strings.xml
+++ b/sip/res/values-kk-rKZ/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Қосымша параметрлер"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Аутентификациялау пайдаланушы аты"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Аутентификациялау үшін пайдаланылатын пайдаланушы аты"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Орнатылмаған&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Пайдаланушы атымен бірдей&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Міндетті емес&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Барлығын көрсету үшін түрту"</string>
diff --git a/sip/res/values-km-rKH/strings.xml b/sip/res/values-km-rKH/strings.xml
index cd5a2d9..ae00469 100644
--- a/sip/res/values-km-rKH/strings.xml
+++ b/sip/res/values-km-rKH/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"ការ​កំណត់​​ជា​​ជម្រើស"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"ឈ្មោះ​អ្នកប្រើ​​ប្រាស់​សម្រាប់​​ផ្ទៀងផ្ទាត់"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"ឈ្មោះ​អ្នកប្រើប្រាស់​ដែលបាន​ប្រើ​សម្រាប់​​​ផ្ទៀងផ្ទាត់"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;មិន​បាន​កំណត់&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;ដូច​ឈ្មោះ​អ្នកប្រើ&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ជា​ជម្រើស&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"ប៉ះ ▷ ដើម្បី​បង្ហាញ​ទាំងអស់"</string>
diff --git a/sip/res/values-kn-rIN/strings.xml b/sip/res/values-kn-rIN/strings.xml
index 5698355..6b59d46 100644
--- a/sip/res/values-kn-rIN/strings.xml
+++ b/sip/res/values-kn-rIN/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"ಐಚ್ಛಿಕ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"ದೃಢೀಕರಣ ಬಳಕೆದಾರಹೆಸರು"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"ದೃಢೀಕರಣಕ್ಕಾಗಿ ಬಳಕೆದಾರ ಹೆಸರನ್ನು ಬಳಸಲಾಗಿದೆ"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;ಹೊಂದಿಸಿಲ್ಲ&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;ಬಳಕೆದಾರ ಹೆಸರಿನಂತೆ&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ಐಚ್ಛಿಕ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ ಎಲ್ಲವನ್ನೂ ತೋರಿಸಲು ಸ್ಪರ್ಶಿಸಿ"</string>
diff --git a/sip/res/values-ko/strings.xml b/sip/res/values-ko/strings.xml
index afdb473..82909a9 100644
--- a/sip/res/values-ko/strings.xml
+++ b/sip/res/values-ko/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"설정(선택사항)"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"인증 사용자 이름"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"인증에 사용된 사용자 이름"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;설정 안됨&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;사용자 이름과 동일&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;선택사항&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ 모두 표시하려면 터치"</string>
diff --git a/sip/res/values-ky-rKG/strings.xml b/sip/res/values-ky-rKG/strings.xml
index 5f22df1..2cbea7e 100644
--- a/sip/res/values-ky-rKG/strings.xml
+++ b/sip/res/values-ky-rKG/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Кошумча жөндөөлөр"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Аныктыкты текшерүүчү колдонуучунун ысымы"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Колдонуучунун ысымы аныктыкты текшерүү үчүн колдонулат"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Коюлган эмес&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Колдонуучунун ысымына окшош&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Кошумча&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Бардыгын көрсөтүү үчүн тийип коюңуз"</string>
diff --git a/sip/res/values-lo-rLA/strings.xml b/sip/res/values-lo-rLA/strings.xml
index e5921be..34e6187 100644
--- a/sip/res/values-lo-rLA/strings.xml
+++ b/sip/res/values-lo-rLA/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"ການ​ຕັ້ງ​ຄ່າທາງ​ເລືອກ​ເສີມ"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"ຊື່​ຜູ່ໃຊ້​ສຳລັບ​ການ​ພິສູດ​ຢືນຢັນ​ໂຕ"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"ຊື່​ຜູ່ໃຊ້​ເພື່ອ​ການ​ພິສູດ​ຢືນຢັນ​ໂຕ"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;ຍັງບໍ່ໄດ້ຕັ້ງ&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;ອັນດຽວກັບຊື່ຜູ່ໃຊ້&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ໂຕເລືອກເສີມ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ ແຕະ​ເພື່ອ​ສະແດງ​ທັງໝົດ"</string>
diff --git a/sip/res/values-lt/strings.xml b/sip/res/values-lt/strings.xml
index da52cd5..00c7f75 100644
--- a/sip/res/values-lt/strings.xml
+++ b/sip/res/values-lt/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Pasirenkami nustatymai"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Tapatybės nustatymo naudotojo vardas"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Tapatybei nustatyti naudotas naudotojo vardas"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Nenustatyta&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Kaip naudotojo vardas&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Pasirenkama&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Jei norite viską parodyti, palieskite"</string>
diff --git a/sip/res/values-lv/strings.xml b/sip/res/values-lv/strings.xml
index 48d6eb0..73eb8c7 100644
--- a/sip/res/values-lv/strings.xml
+++ b/sip/res/values-lv/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Neobligāti iestatījumi"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Autentifikācijai izmantotais lietotājvārds"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Autentifikācijai izmantotais lietotājvārds"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Nav iestatīts&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Tāds pats kā lietotājvārds&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Neobligāti&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Pieskarieties, lai rādītu visu"</string>
diff --git a/sip/res/values-mk-rMK/strings.xml b/sip/res/values-mk-rMK/strings.xml
index 0f843c4..438e5bc 100644
--- a/sip/res/values-mk-rMK/strings.xml
+++ b/sip/res/values-mk-rMK/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Изборни поставки"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Корисничко име за автентикација"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Корисничко име што се користи за автентикација"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Нема поставка&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Исто како корисничкото име&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"Изборно"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Допрете за да се прикажат сите"</string>
diff --git a/sip/res/values-ml-rIN/strings.xml b/sip/res/values-ml-rIN/strings.xml
index 18a8ed1..9676ba7 100644
--- a/sip/res/values-ml-rIN/strings.xml
+++ b/sip/res/values-ml-rIN/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"ഓപ്‌ഷണൽ ക്രമീകരണങ്ങൾ"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"പ്രാമാണീകരണ ഉപയോക്തൃനാമം"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"പ്രാമാണീകരണത്തിന് ഉപയോഗിച്ച ഉപയോക്തൃനാമം"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;സജ്ജീകരിച്ചിട്ടില്ല&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;ഉപയോക്തൃനാമത്തിന് സമാനം&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ഓപ്‌ഷണൽ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ എല്ലാം കാണിക്കാൻ സ്‌പർശിക്കുക"</string>
diff --git a/sip/res/values-mn-rMN/strings.xml b/sip/res/values-mn-rMN/strings.xml
index b2a0eab..27cf7ae 100644
--- a/sip/res/values-mn-rMN/strings.xml
+++ b/sip/res/values-mn-rMN/strings.xml
@@ -40,16 +40,16 @@
     <string name="registration_status_registering" msgid="2677183977796278749">"Бүртгэж байна…"</string>
     <string name="registration_status_still_trying" msgid="7648151061205513458">"Оролдож байна…"</string>
     <string name="registration_status_not_receiving" msgid="7620333886153361090">"Дуудлага хүлээж авахгүй байна."</string>
-    <string name="registration_status_no_data" msgid="2541999976218192413">"Интернэт холболтгүй болсон учир акаунтын бүртгэл зогслоо."</string>
-    <string name="registration_status_no_wifi_data" msgid="9154717387473039546">"Wi-Fi холболтгүй болсон учир акаунтын бүртгэл зогслоо"</string>
+    <string name="registration_status_no_data" msgid="2541999976218192413">"Интернэт холболтгүй болсон учир бүртгэлийн бүртгэл зогслоо."</string>
+    <string name="registration_status_no_wifi_data" msgid="9154717387473039546">"Wi-Fi холболтгүй болсон учир бүртгэлийн бүртгэл зогслоо"</string>
     <string name="registration_status_not_running" msgid="514205414303796800">"Акаунтын бүртгэл амжилтгүй."</string>
     <string name="registration_status_done" msgid="3264961069247314253">"Дуудлага хүлээн авч байна."</string>
     <string name="registration_status_failed_try_later" msgid="2199970021756384317">"Акаунтын бүртгэл амжилтгүй боллоо: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); дараа дахин оролдох болно"</string>
     <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"Акаунтын бүртгэл амжилтгүй боллооl: Хэрэглэгчийн нэр буюу нууц үг буруу"</string>
     <string name="registration_status_server_unreachable" msgid="7710275557045148634">"Акаунтын бүртгэл амжилтгүй: Серверийн нэрийг шалгана уу."</string>
     <string name="third_party_account_summary" msgid="9041060473615403041">"Энэ акаунтыг <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> апп одоо ашиглаж байна."</string>
-    <string name="sip_edit_title" msgid="1967247832635750410">"SIP акаунтын мэдээлэл"</string>
-    <string name="sip_edit_new_title" msgid="266414118302574305">"SIP акаунтын мэдээлэл"</string>
+    <string name="sip_edit_title" msgid="1967247832635750410">"SIP бүртгэлийн мэдээлэл"</string>
+    <string name="sip_edit_new_title" msgid="266414118302574305">"SIP бүртгэлийн мэдээлэл"</string>
     <string name="domain_address_title" msgid="1968479941328225423">"Сервер"</string>
     <string name="username_title" msgid="6770064611005663470">"Хэрэглэгчийн нэр"</string>
     <string name="password_title" msgid="5289013731515564295">"Нууц үг"</string>
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Сонголтын тохиргоо"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Гэрчлэлийн хэрэглэгчийн нэр"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Гэрчлэлд ашигласан хэрэглэгчийн нэр"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Тохируулаагүй&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Хэрэглэгчийн нэртэй адил&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Сонголтын&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Бүгдийг харуулахын тулд хүрнэ үү"</string>
diff --git a/sip/res/values-mr-rIN/strings.xml b/sip/res/values-mr-rIN/strings.xml
index 9148071..b4567c6 100644
--- a/sip/res/values-mr-rIN/strings.xml
+++ b/sip/res/values-mr-rIN/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"पर्यायी सेटिंग्ज"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"प्रमाणीकरण वापरकर्तानाव"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"प्रमाणीकरणासाठी वापरकर्तानाव वापरले"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;सेट नाही&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;वापरकर्तानावासमान&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;पर्यायी&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ सर्व दर्शविण्‍यासाठी स्‍पर्श करा"</string>
diff --git a/sip/res/values-ms-rMY/strings.xml b/sip/res/values-ms-rMY/strings.xml
index 2ac1040..cf51489 100644
--- a/sip/res/values-ms-rMY/strings.xml
+++ b/sip/res/values-ms-rMY/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Tetapan pilihan"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nama pengguna pengesahan"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Nama pengguna yang digunakan untuk pengesahan"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Tidak ditetapkan&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Sama dengan nama pengguna&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Pilihan&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Sentuh untuk menunjukkan semua"</string>
diff --git a/sip/res/values-my-rMM/strings.xml b/sip/res/values-my-rMM/strings.xml
index 03d6257..74569fb 100644
--- a/sip/res/values-my-rMM/strings.xml
+++ b/sip/res/values-my-rMM/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"ရွေးနိုင်သော ဆက်တင်များ"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"အသုံးပြုသူ အမည် အထောက်အထားကို စိစစ်ခြင်း"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"အသုံးပြုသူ အမည်ကို အထောက်အထား စိစစ်ရန် သုံးခဲ့"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;သတ်မှတ်မထားပါ&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;အသုံးပြုသူ အမည်နှင့် တူညီသော&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;လိုချင်မှ လုပ်ရန်&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ အားလုံးပြရန် ထိပါ"</string>
diff --git a/sip/res/values-nb/strings.xml b/sip/res/values-nb/strings.xml
index 57bff86..878f85b 100644
--- a/sip/res/values-nb/strings.xml
+++ b/sip/res/values-nb/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Valgfrie innstillinger"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Brukernavn for autentisering"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Brukernavn som brukes til autentisering"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Ikke angitt&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Samme som brukernavn&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Valgfritt&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Trykk for å vise alle"</string>
diff --git a/sip/res/values-ne-rNP/strings.xml b/sip/res/values-ne-rNP/strings.xml
index d2c2223..46250c7 100644
--- a/sip/res/values-ne-rNP/strings.xml
+++ b/sip/res/values-ne-rNP/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"वैकल्पिक सेटिङहरू"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"प्रमाणीकरणको एक-पटके पाठ सन्देश"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"प्रमाणीकरणको लागि एक-पटके पाठ सन्देश प्रयोग भएको"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;सेट गरिएको छैन&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;एक-पटके पाठ सन्देश जस्तै&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;वैकल्पिकgt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ छोएर सबै देखाउनुहोस्"</string>
diff --git a/sip/res/values-nl/strings.xml b/sip/res/values-nl/strings.xml
index 7375c4b..6aa5618 100644
--- a/sip/res/values-nl/strings.xml
+++ b/sip/res/values-nl/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Optionele instellingen"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Gebruikersnaam voor verificatie"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Gebruikersnaam die voor de verificatie wordt gebruikt"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Niet ingesteld&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Gelijk aan gebruikersnaam&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Optioneel&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tikken om alles weer te geven"</string>
diff --git a/sip/res/values-pa-rIN/strings.xml b/sip/res/values-pa-rIN/strings.xml
index 15dccb0..9294e0b 100644
--- a/sip/res/values-pa-rIN/strings.xml
+++ b/sip/res/values-pa-rIN/strings.xml
@@ -20,7 +20,7 @@
     <string name="sip_accounts" msgid="85559497282185405">"SIP ਖਾਤੇ"</string>
     <string name="sip_accounts_title" msgid="2082527045326874519">"ਖਾਤੇ"</string>
     <string name="sip_receive_calls" msgid="426678617137462173">"ਇਨਕਮਿੰਗ ਕਾਲਾਂ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
-    <string name="sip_receive_calls_summary" msgid="946161517528227523">"ਵੱਧ ਬੈਟਰੀ ਸਮਰੱਥਾ ਵਰਤਦਾ ਹੈ"</string>
+    <string name="sip_receive_calls_summary" msgid="946161517528227523">"ਬੈਟਰੀ ਦੀ ਖਪਤ ਵਧ ਜਾਂਦੀ ਹੈ"</string>
     <string name="sip_call_options_title" msgid="8421210494703869806">"SIP ਕਾਲਿੰਗ ਵਰਤੋ"</string>
     <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"SIP ਕਾਲਿੰਗ ਵਰਤੋ (ਕੇਵਲ Wi-Fi)"</string>
     <string name="sip_call_options_entry_1" msgid="7217659161237099900">"ਜਦੋਂ ਡਾਟਾ ਨੈਟਵਰਕ ਉਪਲਬਧ ਹੋਵੇ ਤਾਂ ਸਾਰੀਆਂ ਕਾਲਾਂ ਲਈ"</string>
@@ -45,27 +45,32 @@
     <string name="registration_status_not_running" msgid="514205414303796800">"ਖਾਤਾ ਰਜਿਸਟਰੇਸ਼ਨ ਅਸਫਲ।"</string>
     <string name="registration_status_done" msgid="3264961069247314253">"ਕਾਲਾਂ ਪ੍ਰਾਪਤ ਕਰ ਰਿਹਾ ਹੈ।"</string>
     <string name="registration_status_failed_try_later" msgid="2199970021756384317">"ਖਾਤਾ ਰਜਿਸਟਰੇਸ਼ਨ ਅਸਫਲ: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); ਬਾਅਦ ਵਿੱਚ ਕੋਸ਼ਿਸ਼ ਕਰੇਗਾ"</string>
-    <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"ਖਾਤਾ ਰਜਿਸਟਰੇਸ਼ਨ ਅਸਫਲ: ਗ਼ਲਤ ਉਪਭੋਗਤਾ ਨਾਮ ਜਾਂ ਪਾਸਵਰਡ।"</string>
+    <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"ਖਾਤਾ ਰਜਿਸਟਰੇਸ਼ਨ ਅਸਫਲ: ਗ਼ਲਤ ਵਰਤੋਂਕਾਰ ਨਾਮ ਜਾਂ ਪਾਸਵਰਡ।"</string>
     <string name="registration_status_server_unreachable" msgid="7710275557045148634">"ਖਾਤਾ ਰਜਿਸਟਰੇਸ਼ਨ ਅਸਫਲ: ਸਰਵਰ ਨਾਮ ਦੀ ਜਾਂਚ ਕਰੋ।"</string>
     <string name="third_party_account_summary" msgid="9041060473615403041">"ਇਹ ਖਾਤਾ ਇਸ ਵੇਲੇ <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ਐਪ ਵੱਲੋਂ ਵਰਤੋਂ ਵਿੱਚ ਹੈ।"</string>
     <string name="sip_edit_title" msgid="1967247832635750410">"SIP ਖਾਤਾ ਵੇਰਵੇ"</string>
     <string name="sip_edit_new_title" msgid="266414118302574305">"SIP ਖਾਤਾ ਵੇਰਵੇ"</string>
     <string name="domain_address_title" msgid="1968479941328225423">"ਸਰਵਰ"</string>
-    <string name="username_title" msgid="6770064611005663470">"ਉਪਭੋਗਤਾ ਨਾਮ"</string>
+    <string name="username_title" msgid="6770064611005663470">"ਵਰਤੋਂਕਾਰ ਨਾਮ"</string>
     <string name="password_title" msgid="5289013731515564295">"ਪਾਸਵਰਡ"</string>
     <string name="display_name_title" msgid="579241787583079773">"ਡਿਸਪਲੇ ਨਾਮ"</string>
     <string name="proxy_address_title" msgid="6890163365640631841">"ਆਊਟਬਾਊਂਡ ਪ੍ਰੌਕਸੀ ਪਤਾ"</string>
     <string name="port_title" msgid="6693965912656593862">"ਪੋਰਟ ਨੰਬਰ"</string>
-    <string name="transport_title" msgid="889155457465372527">"ਟ੍ਰਾਂਸਪੋਰਟ ਪ੍ਰਕਾਰ"</string>
+    <string name="transport_title" msgid="889155457465372527">"ਟ੍ਰਾਂਸਪੋਰਟ ਦੀ ਕਿਸਮ"</string>
     <string name="send_keepalive_title" msgid="599627072150501159">"ਕੀਪ-ਅਲਾਈਵ ਭੇਜੋ"</string>
-    <string name="advanced_settings" msgid="6622996380747040711">"ਚੋਣ ਸੰਬੰਧੀ ਸੈਟਿੰਗਾਂ"</string>
-    <string name="auth_username_title" msgid="8262491689004708265">"ਪ੍ਰਮਾਣੀਕਰਨ ਉਪਭੋਗਤਾ ਨਾਮ"</string>
-    <string name="auth_username_summary" msgid="941160241371436473">"ਪ੍ਰਮਾਣੀਕਰਨ ਲਈ ਵਰਤਿਆ ਗਿਆ ਉਪਭੋਗਤਾ ਨਾਮ"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;ਸੈਟ ਨਹੀਂ ਕੀਤਾ&gt;"</string>
-    <string name="display_name_summary" msgid="7155076491675565407">"&lt;ਉਪਭੋਗਤਾ ਨਾਮ ਦੇ ਸਮਾਨ&gt;"</string>
-    <string name="optional_summary" msgid="2363105560396317624">"&lt;ਚੋਣਵਾਂ&gt;"</string>
-    <string name="advanced_settings_show" msgid="7838761602853998622">"▷ ਸਾਰੇ ਦਿਖਾਉਣ ਲਈ ਛੋਹਵੋ"</string>
-    <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ ਸਾਰੇ ਲੁਕਾਉਣ ਲਈ ਛੋਹਵੋ"</string>
+    <string name="advanced_settings" msgid="6622996380747040711">"ਵਿਕਲਪਕ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="auth_username_title" msgid="8262491689004708265">"ਪ੍ਰਮਾਣੀਕਰਨ ਵਰਤੋਂਕਾਰ ਨਾਮ"</string>
+    <string name="auth_username_summary" msgid="941160241371436473">"ਪ੍ਰਮਾਣੀਕਰਨ ਲਈ ਵਰਤਿਆ ਗਿਆ ਵਰਤੋਂਕਾਰ ਨਾਮ"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
+    <string name="display_name_summary" msgid="7155076491675565407">"&lt;ਉਹੀ ਹੈ ਜੋ ਵਰਤੋਂਕਾਰ ਨਾਮ ਹੈ&gt;"</string>
+    <string name="optional_summary" msgid="2363105560396317624">"&lt;ਵਿਕਲਪਕ&gt;"</string>
+    <string name="advanced_settings_show" msgid="7838761602853998622">"▷ ਸਾਰੇ ਦਿਖਾਉਣ ਲਈ ਸਪੱਰਸ਼ ਕਰੋ"</string>
+    <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ ਸਾਰੇ ਲੁਕਾਉਣ ਲਈ ਸਪੱਰਸ਼ ਕਰੋ"</string>
     <string name="all_empty_alert" msgid="4087734950375192387">"ਨਵੇਂ SIP ਖਾਤੇ ਦੇ ਵੇਰਵੇ ਦਾਖ਼ਲ ਕਰੋ।"</string>
     <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ਲੁੜੀਂਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਖਾਲੀ ਨਹੀਂ ਛੱਡਿਆ ਜਾ ਸਕਦਾ।"</string>
     <string name="not_a_valid_port" msgid="7931422555587011830">"ਪੋਰਟ ਨੰਬਰ 1000 ਅਤੇ 65534 ਵਿਚਕਾਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।"</string>
diff --git a/sip/res/values-pl/strings.xml b/sip/res/values-pl/strings.xml
index 651af45..0bec1fa 100644
--- a/sip/res/values-pl/strings.xml
+++ b/sip/res/values-pl/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Ustawienia opcjonalne"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nazwa do uwierzytelniania"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Nazwa użytkownika używana do uwierzytelniania"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Nie ustawiono&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Taka sama jak nazwa użytkownika&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcjonalny&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Dotknij, by wyświetlić wszystkie ustawienia"</string>
diff --git a/sip/res/values-pt-rPT/strings.xml b/sip/res/values-pt-rPT/strings.xml
index 81652de..9303334 100644
--- a/sip/res/values-pt-rPT/strings.xml
+++ b/sip/res/values-pt-rPT/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Definições opcionais"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nome de utilizador para autenticação"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Nome de utilizador usado para autenticação"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Não definido&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Igual ao nome de utilizador&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Toque para mostrar tudo"</string>
diff --git a/sip/res/values-pt/strings.xml b/sip/res/values-pt/strings.xml
index 21c89a9..d783297 100644
--- a/sip/res/values-pt/strings.xml
+++ b/sip/res/values-pt/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Configurações opcionais"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nome de usuário da autenticação"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Nome de usuário utilizado para autenticação"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Não definido&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Igual ao nome de usuário&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Toque para mostrar todas"</string>
diff --git a/sip/res/values-ro/strings.xml b/sip/res/values-ro/strings.xml
index 158be24..cd783fe 100644
--- a/sip/res/values-ro/strings.xml
+++ b/sip/res/values-ro/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Setări opționale"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Nume de utilizator pentru autentificare"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Numele de utilizator folosit pentru autentificare"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Nesetat&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Identic cu numele de utilizator&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opțional&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Atingeți pentru a afișa tot"</string>
diff --git a/sip/res/values-ru/strings.xml b/sip/res/values-ru/strings.xml
index ea678c8..7381986 100644
--- a/sip/res/values-ru/strings.xml
+++ b/sip/res/values-ru/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Расширенные настройки"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Имя пользователя"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Имя пользователя для аутентификации"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Не задано&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Совпадает с именем пользователя&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Необязательно&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Нажмите, чтобы показать все"</string>
diff --git a/sip/res/values-si-rLK/strings.xml b/sip/res/values-si-rLK/strings.xml
index c710b8b..3e4f296 100644
--- a/sip/res/values-si-rLK/strings.xml
+++ b/sip/res/values-si-rLK/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"වෛකල්පිත සැකසුම්"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"සත්‍යාපන පරිශීලක නාමය"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"සත්‍යාපනය සඳහා භාවිතා වන පරිශීලක නාමය"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;පිහිටුවා නැත&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;පරිශීලක නාමය වාගේම&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;වෛකල්පිත&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ සියල්ල පෙන්වීමට ස්පර්ශ කරන්න"</string>
diff --git a/sip/res/values-sk/strings.xml b/sip/res/values-sk/strings.xml
index a278b55..bb65a2d 100644
--- a/sip/res/values-sk/strings.xml
+++ b/sip/res/values-sk/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Voliteľné nastavenia"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Používateľské meno na overenie"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Používateľské meno použité na overenie"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Nenastavené&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Rovnaké ako používateľské meno&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Voliteľné&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Klepnutím všetko zobrazíte"</string>
diff --git a/sip/res/values-sl/strings.xml b/sip/res/values-sl/strings.xml
index ae994e3..f1c1ccc 100644
--- a/sip/res/values-sl/strings.xml
+++ b/sip/res/values-sl/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Izbirne nastavitve"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Uporabniško ime za preverjanje pristnosti"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Uporabniško ime za preverjanje pristnosti"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Ni nastavljeno&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Enako kot uporabniško ime&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Izbirno&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Dotaknite se, da prikažete vse"</string>
diff --git a/sip/res/values-sq-rAL/strings.xml b/sip/res/values-sq-rAL/strings.xml
index 3e42c58..c59c6d5 100644
--- a/sip/res/values-sq-rAL/strings.xml
+++ b/sip/res/values-sq-rAL/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Cilësimet opsionale"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Emri i përdoruesit për vërtetim"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Emri i përdoruesit i përdorur për vërtetim"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;I pavendosur&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Njësoj si emri i përdoruesit&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Jo e detyrueshme&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Prek për t\'i shfaqur të gjitha"</string>
diff --git a/sip/res/values-sr/strings.xml b/sip/res/values-sr/strings.xml
index 0c6b48a..2f84412 100644
--- a/sip/res/values-sr/strings.xml
+++ b/sip/res/values-sr/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Опционална подешавања"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Корисничко име за потврду идентитета"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"За потврду идентитета користи се корисничко име"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Није подешено&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Исто као корисничко име&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Опционално&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Додирните да бисте приказали све"</string>
diff --git a/sip/res/values-sv/strings.xml b/sip/res/values-sv/strings.xml
index f08ebbc..9b391c0 100644
--- a/sip/res/values-sv/strings.xml
+++ b/sip/res/values-sv/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Valfria inställningar"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Användarnamn vid autentisering"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Användarnamn som används vid autentisering"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Har inte angetts&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Samma som användarnamn&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Valfritt&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tryck om du vill visa alla"</string>
diff --git a/sip/res/values-sw/strings.xml b/sip/res/values-sw/strings.xml
index 64f2101..e6f2189 100644
--- a/sip/res/values-sw/strings.xml
+++ b/sip/res/values-sw/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Mipangilio ya hiari"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Jina la mtumiaji la uthibitishaji"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Jina la mtumiaji hutumika kwa uthibitishaji"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Haijawekwa&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Sawa na jina la mtumiaji&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&amp;lt Ni hiari &gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Gusa ili uonyeshe yote"</string>
diff --git a/sip/res/values-ta-rIN/strings.xml b/sip/res/values-ta-rIN/strings.xml
index b31891e..7d243ea 100644
--- a/sip/res/values-ta-rIN/strings.xml
+++ b/sip/res/values-ta-rIN/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"விருப்ப அமைப்பு"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"அங்கீகாரப் பயனர்பெயர்"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"அங்கீகரிப்பிற்குப் பயன்படுத்தப்படும் பயனர்பெயர்"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;அமைக்கப்படவில்லை&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;பயனர்பெயர் போன்றது&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;விரும்பினால்&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ எல்லாவற்றையும் காட்ட தொடவும்"</string>
diff --git a/sip/res/values-te-rIN/strings.xml b/sip/res/values-te-rIN/strings.xml
index 4f5cef3..0c5ca9a 100644
--- a/sip/res/values-te-rIN/strings.xml
+++ b/sip/res/values-te-rIN/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"ఐచ్ఛిక సెట్టింగ్‌లు"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"ప్రామాణీకరణ వినియోగదారు పేరు"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"ప్రామాణీకరణ కోసం వినియోగదారు పేరు ఉపయోగించబడింది"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;సెట్ చేయలేదు&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;వినియోగదారు పేరు మాదిరే&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ఐచ్ఛికం&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ అన్నీ చూపడానికి తాకండి"</string>
diff --git a/sip/res/values-th/strings.xml b/sip/res/values-th/strings.xml
index 92e1a3f..75a52ca 100644
--- a/sip/res/values-th/strings.xml
+++ b/sip/res/values-th/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"การตั้งค่าที่ไม่บังคับ"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"ชื่อผู้ใช้สำหรับตรวจสอบสิทธิ์"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"ชื่อผู้ใช้ที่ใช้ในการตรวจสอบสิทธิ์"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;ไม่ได้ตั้งค่า&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;เหมือนกับชื่อผู้ใช้&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;ไม่บังคับ&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ แตะเพื่อแสดงทั้งหมด"</string>
diff --git a/sip/res/values-tl/strings.xml b/sip/res/values-tl/strings.xml
index a2a9e82..9d971d9 100644
--- a/sip/res/values-tl/strings.xml
+++ b/sip/res/values-tl/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Mga opsyonal na setting"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Username sa pagpapatunay"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Ginamit ang username para sa pagpapatunay"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Hindi nakatakda&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Katulad ng username&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Opsyonal&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Pindutin upang ipakita lahat"</string>
diff --git a/sip/res/values-tr/strings.xml b/sip/res/values-tr/strings.xml
index 168eb79..b3ff657 100644
--- a/sip/res/values-tr/strings.xml
+++ b/sip/res/values-tr/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"İsteğe bağlı ayarlar"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Kimlik doğrulama kullanıcı adı"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Kimlik doğrulama için kullanılan kullanıcı adı"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Ayarlanmadı&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Kullanıcı adıyla aynı&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;İsteğe bağlı&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tümünü görmek için dokunun"</string>
diff --git a/sip/res/values-uk/strings.xml b/sip/res/values-uk/strings.xml
index be20a10..feff72d 100644
--- a/sip/res/values-uk/strings.xml
+++ b/sip/res/values-uk/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Додаткові налаштування"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Ім’я користувача для автентифікації"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Ім’я користувача, використане для автентифікації"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Не встановлено&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Те саме, що й ім’я користувача&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Додатково&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Торкніться, щоб показати все"</string>
diff --git a/sip/res/values-ur-rPK/strings.xml b/sip/res/values-ur-rPK/strings.xml
index ccd53c6..16c4664 100644
--- a/sip/res/values-ur-rPK/strings.xml
+++ b/sip/res/values-ur-rPK/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"اختیاری ترتیبات"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"توثیق کیلئے صارف نام"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"توثیق کیلئے استعمال کردہ صارف نام"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"‏&lt;سیٹ نہیں ہے&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"‏&lt;بالکل وہی جو صارف نام ہے&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"‏&lt;اختیاری&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"◁ سبھی کو دکھانے کیلئے ٹچ کریں"</string>
diff --git a/sip/res/values-uz-rUZ/strings.xml b/sip/res/values-uz-rUZ/strings.xml
index e777336..1dad08a 100644
--- a/sip/res/values-uz-rUZ/strings.xml
+++ b/sip/res/values-uz-rUZ/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Kengaytirilgan sozlamalar"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Foydalanuvchi nomi"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Haqiqiylikni tekshirish uchun foydalanuvchi nomi"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Ko‘rsatilmagan&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Foydalanuvchi nomi bilan bir xil&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Ixtiyoriy&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Hammasini ko‘rsatish uchun bosing"</string>
diff --git a/sip/res/values-vi/strings.xml b/sip/res/values-vi/strings.xml
index df6cfde..38c2ced 100644
--- a/sip/res/values-vi/strings.xml
+++ b/sip/res/values-vi/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Cài đặt tùy chọn"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Tên người dùng xác thực"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Tên người dùng để xác thực"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Chưa đặt&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Giống như tên người dùng&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Tùy chọn&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Chạm để hiển thị tất cả"</string>
diff --git a/sip/res/values-zh-rCN/strings.xml b/sip/res/values-zh-rCN/strings.xml
index 625c4af..cd6cf85 100644
--- a/sip/res/values-zh-rCN/strings.xml
+++ b/sip/res/values-zh-rCN/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"可选设置"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"身份验证用户名"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"用于验证身份的用户名"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;未设置&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;与用户名相同&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;可选&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ 触摸可全部显示"</string>
diff --git a/sip/res/values-zh-rHK/strings.xml b/sip/res/values-zh-rHK/strings.xml
index a62745b..fd8f97a 100644
--- a/sip/res/values-zh-rHK/strings.xml
+++ b/sip/res/values-zh-rHK/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"可選設定"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"驗證使用者名稱"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"用於驗證的使用者名稱"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;未設定&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;與使用者名稱相同&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;非必填&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ 輕觸即可全部顯示"</string>
diff --git a/sip/res/values-zh-rTW/strings.xml b/sip/res/values-zh-rTW/strings.xml
index 7f25be7..c0643aa 100644
--- a/sip/res/values-zh-rTW/strings.xml
+++ b/sip/res/values-zh-rTW/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"選用設定"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"驗證使用者名稱"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"用於進行驗證的使用者名稱"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;未設定&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;與使用者名稱相同&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;選擇性&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ 輕觸即可全部顯示"</string>
diff --git a/sip/res/values-zu/strings.xml b/sip/res/values-zu/strings.xml
index 3a6b00a..05e86c5 100644
--- a/sip/res/values-zu/strings.xml
+++ b/sip/res/values-zu/strings.xml
@@ -61,7 +61,12 @@
     <string name="advanced_settings" msgid="6622996380747040711">"Izilungiselelo ongazikhetha"</string>
     <string name="auth_username_title" msgid="8262491689004708265">"Igama lomsebenzisi lokufakazela ubuqiniso"</string>
     <string name="auth_username_summary" msgid="941160241371436473">"Igama lomsebenzisi elisetshenziselwa ukufakazela ubuqiniso"</string>
-    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Ayisethiwe&gt;"</string>
+    <!-- no translation found for default_preference_summary_username (8404717434312826082) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_password (4464464672997027904) -->
+    <skip />
+    <!-- no translation found for default_preference_summary_domain_address (4871971710197441673) -->
+    <skip />
     <string name="display_name_summary" msgid="7155076491675565407">"&lt;Ifana negama lomsebenzisi&gt;"</string>
     <string name="optional_summary" msgid="2363105560396317624">"&lt;Ongakukhetha&gt;"</string>
     <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Thinta ukuze ubonise konke"</string>
diff --git a/src/com/android/phone/Assert.java b/src/com/android/phone/Assert.java
index d4233b2..143e66f 100644
--- a/src/com/android/phone/Assert.java
+++ b/src/com/android/phone/Assert.java
@@ -24,17 +24,39 @@
  */
 public class Assert {
 
+    private static Boolean sIsMainThreadForTest;
+
     public static void isTrue(boolean condition) {
         if (!condition) {
             throw new AssertionError("Expected condition to be true");
         }
     }
 
+    public static void isMainThread() {
+        if (sIsMainThreadForTest != null) {
+            isTrue(sIsMainThreadForTest);
+            return;
+        }
+        isTrue(Looper.getMainLooper().equals(Looper.myLooper()));
+    }
+
     public static void isNotMainThread() {
+        if (sIsMainThreadForTest != null) {
+            isTrue(!sIsMainThreadForTest);
+            return;
+        }
         isTrue(!Looper.getMainLooper().equals(Looper.myLooper()));
     }
 
     public static void fail() {
         throw new AssertionError("Fail");
     }
+
+    /**
+     * Override the main thread status for tests. Set to null to revert to normal behavior
+     */
+    @NeededForTesting
+    public static void setIsMainThreadForTesting(Boolean isMainThread) {
+        sIsMainThreadForTest = isMainThread;
+    }
 }
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index 33aba17..c753b3c 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -262,7 +262,8 @@
             }
         }
 
-        if (ImsManager.isVtEnabledByPlatform(mPhone.getContext())) {
+        if (ImsManager.isVtEnabledByPlatform(mPhone.getContext()) &&
+                mPhone.mDcTracker.isDataEnabled(true)) {
             boolean currentValue =
                     ImsManager.isEnhanced4gLteModeSettingEnabledByUser(mPhone.getContext())
                     ? PhoneGlobals.getInstance().phoneMgr.isVideoCallingEnabled(
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 808a5d6..4ff8d8e 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -34,10 +34,8 @@
 import android.os.Message;
 import android.os.PersistableBundle;
 import android.os.PowerManager;
-import android.os.ServiceManager;
 import android.os.SystemClock;
 import android.os.SystemProperties;
-import android.os.SystemService;
 import android.os.UpdateLock;
 import android.os.UserManager;
 import android.preference.PreferenceManager;
@@ -59,7 +57,6 @@
 import com.android.internal.telephony.TelephonyIntents;
 import com.android.phone.common.CallLogAsync;
 import com.android.phone.settings.SettingsConstants;
-import com.android.server.sip.SipService;
 import com.android.services.telephony.activation.SimActivationManager;
 import com.android.services.telephony.sip.SipUtil;
 
@@ -851,6 +848,8 @@
      * @param subId the subscription id we should dismiss the notification for.
      */
     public void clearMwiIndicator(int subId) {
-        notificationMgr.updateMwi(subId, false);
+        // Setting voiceMessageCount to 0 will remove the current notification and clear the system
+        // cached value.
+        getPhone(subId).setVoiceMessageCount(0);
     }
 }
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index d050576..b3f3be5 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -3332,4 +3332,19 @@
         }
         return total;
     }
+
+    /**
+     * Policy control of data connection. Usually used when data limit is passed.
+     * @param enabled True if enabling the data, otherwise disabling.
+     * @param subId Subscription index
+     * {@hide}
+     */
+    @Override
+    public void setPolicyDataEnabled(boolean enabled, int subId) {
+        enforceModifyPermission();
+        Phone phone = getPhone(subId);
+        if (phone != null) {
+            phone.setPolicyDataEnabled(enabled);
+        }
+    }
 }
diff --git a/src/com/android/phone/common/mail/store/ImapFolder.java b/src/com/android/phone/common/mail/store/ImapFolder.java
index 9b51f34..4abb7f5 100644
--- a/src/com/android/phone/common/mail/store/ImapFolder.java
+++ b/src/com/android/phone/common/mail/store/ImapFolder.java
@@ -94,23 +94,7 @@
     public void open(String mode) throws MessagingException {
         try {
             if (isOpen()) {
-                if (mMode == mode) {
-                    // Make sure the connection is valid.
-                    // If it's not we'll close it down and continue on to get a new one.
-                    try {
-                        mConnection.executeSimpleCommand(ImapConstants.NOOP);
-                        return;
-
-                    } catch (IOException ioe) {
-                        mStore.getImapHelper().handleEvent(OmtpEvents.DATA_GENERIC_IMAP_IOE);
-                        ioExceptionHandler(mConnection, ioe);
-                    } finally {
-                        destroyResponses();
-                    }
-                } else {
-                    // Return the connection to the pool, if exists.
-                    close(false);
-                }
+                throw new AssertionError("Duplicated open on ImapFolder");
             }
             synchronized (this) {
                 mConnection = mStore.getConnection();
diff --git a/src/com/android/phone/settings/VisualVoicemailSettingsUtil.java b/src/com/android/phone/settings/VisualVoicemailSettingsUtil.java
index d7e573e..c38b595 100644
--- a/src/com/android/phone/settings/VisualVoicemailSettingsUtil.java
+++ b/src/com/android/phone/settings/VisualVoicemailSettingsUtil.java
@@ -16,49 +16,31 @@
 package com.android.phone.settings;
 
 import android.content.Context;
-import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
 import android.telecom.PhoneAccountHandle;
 
 import com.android.internal.telephony.Phone;
 import com.android.phone.PhoneUtils;
 import com.android.phone.R;
-import com.android.phone.vvm.omtp.OmtpConstants;
 import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
-import com.android.phone.vvm.omtp.sms.StatusMessage;
+import com.android.phone.vvm.omtp.VisualVoicemailPreferences;
 import com.android.phone.vvm.omtp.utils.PhoneAccountHandleConverter;
 
 /**
- * Save visual voicemail login values and whether or not a particular account is enabled in shared
- * preferences to be retrieved later.
- * Because a voicemail source is tied 1:1 to a phone account, the phone account handle is used in
- * the key for each voicemail source and the associated data.
+ * Save whether or not a particular account is enabled in shared to be retrieved later.
  */
 public class VisualVoicemailSettingsUtil {
-    private static final String VISUAL_VOICEMAIL_SHARED_PREFS_KEY_PREFIX =
-            "visual_voicemail_";
 
     private static final String IS_ENABLED_KEY = "is_enabled";
-    // Record the timestamp of the last full sync so that duplicate syncs can be reduced.
-    private static final String LAST_FULL_SYNC_TIMESTAMP = "last_full_sync_timestamp";
-    // Constant indicating that there has never been a full sync.
-    public static final long NO_PRIOR_FULL_SYNC = -1;
 
-    // Setting for how often retries should be done.
-    private static final String SYNC_RETRY_INTERVAL = "sync_retry_interval";
-    private static final long MAX_SYNC_RETRY_INTERVAL_MS = 86400000;   // 24 hours
-    private static final long DEFAULT_SYNC_RETRY_INTERVAL_MS = 900000; // 15 minutes
 
-    public static void setVisualVoicemailEnabled(Context context, PhoneAccountHandle phoneAccount,
+    public static void setEnabled(Context context, PhoneAccountHandle phoneAccount,
             boolean isEnabled) {
-        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-        prefs.edit()
-                .putBoolean(getVisualVoicemailSharedPrefsKey(IS_ENABLED_KEY, phoneAccount),
-                        isEnabled)
+        new VisualVoicemailPreferences(context, phoneAccount).edit()
+                .putBoolean(IS_ENABLED_KEY, isEnabled)
                 .apply();
     }
 
-    public static boolean isVisualVoicemailEnabled(Context context,
+    public static boolean isEnabled(Context context,
             PhoneAccountHandle phoneAccount) {
         if (phoneAccount == null) {
             return false;
@@ -67,19 +49,18 @@
             return false;
         }
 
-        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-        String key = getVisualVoicemailSharedPrefsKey(IS_ENABLED_KEY, phoneAccount);
-        if (prefs.contains(key)) {
+        VisualVoicemailPreferences prefs = new VisualVoicemailPreferences(context, phoneAccount);
+        if (prefs.contains(IS_ENABLED_KEY)) {
             // isEnableByDefault is a bit expensive, so don't use it as default value of
             // getBoolean(). The "false" here should never be actually used.
-            return prefs.getBoolean(key, false);
+            return prefs.getBoolean(IS_ENABLED_KEY, false);
         }
         return new OmtpVvmCarrierConfigHelper(context,
                 PhoneAccountHandleConverter.toSubId(phoneAccount)).isEnabledByDefault();
     }
 
-    public static boolean isVisualVoicemailEnabled(Phone phone) {
-        return isVisualVoicemailEnabled(phone.getContext(),
+    public static boolean isEnabled(Phone phone) {
+        return isEnabled(phone.getContext(),
                 PhoneUtils.makePstnPhoneAccountHandle(phone));
     }
 
@@ -89,82 +70,12 @@
      * VVM app is installed. If the carrier VVM app is installed the client should give priority to
      * it if the settings are not touched.
      */
-    public static boolean isVisualVoicemailUserSet(Context context,
+    public static boolean isEnabledUserSet(Context context,
             PhoneAccountHandle phoneAccount) {
         if (phoneAccount == null) {
             return false;
         }
-        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-        return prefs.contains(getVisualVoicemailSharedPrefsKey(IS_ENABLED_KEY, phoneAccount));
-    }
-
-    public static void setVisualVoicemailCredentialsFromStatusMessage(Context context,
-            PhoneAccountHandle phoneAccount, StatusMessage message) {
-        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-        SharedPreferences.Editor editor = prefs.edit();
-
-        editor.putString(
-                getVisualVoicemailSharedPrefsKey(OmtpConstants.IMAP_PORT, phoneAccount),
-                message.getImapPort());
-        editor.putString(
-                getVisualVoicemailSharedPrefsKey(OmtpConstants.SERVER_ADDRESS, phoneAccount),
-                message.getServerAddress());
-        editor.putString(
-                getVisualVoicemailSharedPrefsKey(OmtpConstants.IMAP_USER_NAME, phoneAccount),
-                message.getImapUserName());
-        editor.putString(
-                getVisualVoicemailSharedPrefsKey(OmtpConstants.IMAP_PASSWORD, phoneAccount),
-                message.getImapPassword());
-        editor.commit();
-    }
-
-    public static String getVisualVoicemailCredentials(Context context, String key,
-            PhoneAccountHandle phoneAccount) {
-        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-        return prefs.getString(getVisualVoicemailSharedPrefsKey(key, phoneAccount), null);
-    }
-
-    public static long getVisualVoicemailRetryInterval(Context context,
-            PhoneAccountHandle phoneAccount) {
-        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-        return prefs.getLong(getVisualVoicemailSharedPrefsKey(SYNC_RETRY_INTERVAL, phoneAccount),
-                DEFAULT_SYNC_RETRY_INTERVAL_MS);
-    }
-
-    public static void resetVisualVoicemailRetryInterval(Context context,
-            PhoneAccountHandle phoneAccount) {
-        setVisualVoicemailRetryInterval(context, phoneAccount, DEFAULT_SYNC_RETRY_INTERVAL_MS);
-    }
-
-    public static void setVisualVoicemailRetryInterval(Context context,
-            PhoneAccountHandle phoneAccount, long interval) {
-        SharedPreferences.Editor editor =
-                PreferenceManager.getDefaultSharedPreferences(context).edit();
-        editor.putLong(getVisualVoicemailSharedPrefsKey(SYNC_RETRY_INTERVAL, phoneAccount),
-                Math.min(interval, MAX_SYNC_RETRY_INTERVAL_MS));
-        editor.commit();
-    }
-
-    public static void setVisualVoicemailLastFullSyncTime(Context context,
-            PhoneAccountHandle phoneAccount, long timestamp) {
-        SharedPreferences.Editor editor =
-                PreferenceManager.getDefaultSharedPreferences(context).edit();
-        editor.putLong(getVisualVoicemailSharedPrefsKey(LAST_FULL_SYNC_TIMESTAMP, phoneAccount),
-                timestamp);
-        editor.commit();
-
-    }
-
-    public static long getVisualVoicemailLastFullSyncTime(Context context,
-            PhoneAccountHandle phoneAccount) {
-        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-        return prefs.getLong(
-                getVisualVoicemailSharedPrefsKey(LAST_FULL_SYNC_TIMESTAMP, phoneAccount),
-                NO_PRIOR_FULL_SYNC);
-    }
-
-    public static String getVisualVoicemailSharedPrefsKey(String key,
-            PhoneAccountHandle phoneAccount) {
-        return VISUAL_VOICEMAIL_SHARED_PREFS_KEY_PREFIX + key + "_" + phoneAccount.getId();
+        VisualVoicemailPreferences prefs = new VisualVoicemailPreferences(context, phoneAccount);
+        return prefs.contains(IS_ENABLED_KEY);
     }
 }
diff --git a/src/com/android/phone/settings/VoicemailChangePinActivity.java b/src/com/android/phone/settings/VoicemailChangePinActivity.java
new file mode 100644
index 0000000..fcf5bd3
--- /dev/null
+++ b/src/com/android/phone/settings/VoicemailChangePinActivity.java
@@ -0,0 +1,615 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.settings;
+
+import android.annotation.Nullable;
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnDismissListener;
+import android.content.SharedPreferences;
+import android.net.Network;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.PreferenceManager;
+import android.telecom.PhoneAccountHandle;
+import android.text.Editable;
+import android.text.InputFilter;
+import android.text.InputFilter.LengthFilter;
+import android.text.TextWatcher;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.widget.TextView.OnEditorActionListener;
+import android.widget.Toast;
+import com.android.phone.PhoneUtils;
+import com.android.phone.R;
+import com.android.phone.common.mail.MessagingException;
+import com.android.phone.vvm.omtp.OmtpConstants;
+import com.android.phone.vvm.omtp.OmtpConstants.ChangePinResult;
+import com.android.phone.vvm.omtp.OmtpEvents;
+import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
+import com.android.phone.vvm.omtp.VisualVoicemailPreferences;
+import com.android.phone.vvm.omtp.VvmLog;
+import com.android.phone.vvm.omtp.imap.ImapHelper;
+import com.android.phone.vvm.omtp.imap.ImapHelper.InitializingException;
+import com.android.phone.vvm.omtp.sync.VvmNetworkRequestCallback;
+
+/**
+ * Dialog to change the voicemail PIN. The TUI (Telephony User Interface) PIN is used when accessing
+ * traditional voicemail through phone call. The intent to launch this activity must contain {@link
+ * #EXTRA_PHONE_ACCOUNT_HANDLE}
+ */
+public class VoicemailChangePinActivity extends Activity implements OnClickListener,
+        OnEditorActionListener, TextWatcher {
+
+    private static final String TAG = "VmChangePinActivity";
+
+    public static final String EXTRA_PHONE_ACCOUNT_HANDLE = "extra_phone_account_handle";
+
+    private static final String KEY_DEFAULT_OLD_PIN = "default_old_pin";
+
+    private static final int MESSAGE_HANDLE_RESULT = 1;
+
+    private PhoneAccountHandle mPhoneAccountHandle;
+    private OmtpVvmCarrierConfigHelper mConfig;
+
+    private int mPinMinLength;
+    private int mPinMaxLength;
+
+    private State mUiState = State.Initial;
+    private String mOldPin;
+    private String mFirstPin;
+
+    private ProgressDialog mProgressDialog;
+
+    private TextView mHeaderText;
+    private TextView mHintText;
+    private TextView mErrorText;
+    private EditText mPinEntry;
+    private Button mCancelButton;
+    private Button mNextButton;
+
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message message) {
+            if (message.what == MESSAGE_HANDLE_RESULT) {
+                mUiState.handleResult(VoicemailChangePinActivity.this, message.arg1);
+            }
+        }
+    };
+
+    private enum State {
+        /**
+         * Empty state to handle initial state transition. Will immediately switch into {@link
+         * #VerifyOldPin} if a default PIN has been set by the OMTP client, or {@link #EnterOldPin}
+         * if not.
+         */
+        Initial,
+        /**
+         * Prompt the user to enter old PIN. The PIN will be verified with the server before
+         * proceeding to {@link #EnterNewPin}.
+         */
+        EnterOldPin {
+            @Override
+            public void onEnter(VoicemailChangePinActivity activity) {
+                activity.setHeader(R.string.change_pin_enter_old_pin_header);
+                activity.mHintText.setText(R.string.change_pin_enter_old_pin_hint);
+                activity.mNextButton.setText(R.string.change_pin_continue_label);
+                activity.mErrorText.setText(null);
+            }
+
+            @Override
+            public void onInputChanged(VoicemailChangePinActivity activity) {
+                activity.setNextEnabled(activity.getCurrentPasswordInput().length() > 0);
+            }
+
+
+            @Override
+            public void handleNext(VoicemailChangePinActivity activity) {
+                activity.mOldPin = activity.getCurrentPasswordInput();
+                activity.verifyOldPin();
+            }
+
+            @Override
+            public void handleResult(VoicemailChangePinActivity activity,
+                    @ChangePinResult int result) {
+                if (result == OmtpConstants.CHANGE_PIN_SUCCESS) {
+                    activity.updateState(State.EnterNewPin);
+                } else {
+                    CharSequence message = activity.getChangePinResultMessage(result);
+                    activity.showError(message);
+                    activity.mPinEntry.setText("");
+                }
+            }
+        },
+        /**
+         * The default old PIN is found. Show a blank screen while verifying with the server to make
+         * sure the PIN is still valid. If the PIN is still valid, proceed to {@link #EnterNewPin}.
+         * If not, the user probably changed the PIN through other means, proceed to {@link
+         * #EnterOldPin}. If any other issue caused the verifying to fail, show an error and exit.
+         */
+        VerifyOldPin {
+            @Override
+            public void onEnter(VoicemailChangePinActivity activity) {
+                activity.findViewById(android.R.id.content).setVisibility(View.INVISIBLE);
+                activity.verifyOldPin();
+            }
+
+            @Override
+            public void handleResult(VoicemailChangePinActivity activity,
+                    @ChangePinResult int result) {
+                if (result == OmtpConstants.CHANGE_PIN_SUCCESS) {
+                    activity.updateState(State.EnterNewPin);
+                } else if (result == OmtpConstants.CHANGE_PIN_SYSTEM_ERROR) {
+                    activity.getWindow().setSoftInputMode(
+                            WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
+                    activity.showError(activity.getString(R.string.change_pin_system_error),
+                            new OnDismissListener() {
+                                @Override
+                                public void onDismiss(DialogInterface dialog) {
+                                    activity.finish();
+                                }
+                            });
+                } else {
+                    VvmLog.e(TAG, "invalid default old PIN: " + activity
+                            .getChangePinResultMessage(result));
+                    // If the default old PIN is rejected by the server, the PIN is probably changed
+                    // through other means, or the generated pin is invalid
+                    // Wipe the default old PIN so the old PIN input box will be shown to the user
+                    // on the next time.
+                    setDefaultOldPIN(activity, activity.mPhoneAccountHandle, null);
+                    activity.mConfig.handleEvent(OmtpEvents.CONFIG_PIN_SET);
+                    activity.updateState(State.EnterOldPin);
+                }
+            }
+
+            @Override
+            public void onLeave(VoicemailChangePinActivity activity) {
+                activity.findViewById(android.R.id.content).setVisibility(View.VISIBLE);
+            }
+        },
+        /**
+         * Let the user enter the new PIN and validate the format. Only length is enforced, PIN
+         * strength check relies on the server. After a valid PIN is entered, proceed to {@link
+         * #ConfirmNewPin}
+         */
+        EnterNewPin {
+            @Override
+            public void onEnter(VoicemailChangePinActivity activity) {
+                activity.mHeaderText.setText(R.string.change_pin_enter_new_pin_header);
+                activity.mNextButton.setText(R.string.change_pin_continue_label);
+                activity.mHintText.setText(
+                        activity.getString(R.string.change_pin_enter_new_pin_hint,
+                                activity.mPinMinLength, activity.mPinMaxLength));
+            }
+
+            @Override
+            public void onInputChanged(VoicemailChangePinActivity activity) {
+                String password = activity.getCurrentPasswordInput();
+                CharSequence error = activity.validatePassword(password);
+                if (error != null) {
+                    activity.mErrorText.setText(error);
+                    activity.setNextEnabled(false);
+                } else {
+                    activity.mErrorText.setText(null);
+                    activity.setNextEnabled(true);
+                }
+            }
+
+            @Override
+            public void handleNext(VoicemailChangePinActivity activity) {
+                CharSequence errorMsg;
+                errorMsg = activity.validatePassword(activity.getCurrentPasswordInput());
+                if (errorMsg != null) {
+                    activity.showError(errorMsg);
+                    return;
+                }
+                activity.mFirstPin = activity.getCurrentPasswordInput();
+                activity.updateState(State.ConfirmNewPin);
+            }
+        },
+        /**
+         * Let the user type in the same PIN again to avoid typos. If the PIN matches then perform a
+         * PIN change to the server. Finish the activity if succeeded. Return to {@link
+         * #EnterOldPin} if the old PIN is rejected, {@link #EnterNewPin} for other failure.
+         */
+        ConfirmNewPin {
+            @Override
+            public void onEnter(VoicemailChangePinActivity activity) {
+                activity.mHeaderText.setText(R.string.change_pin_confirm_pin_header);
+                activity.mHintText.setText(null);
+                activity.mNextButton.setText(R.string.change_pin_ok_label);
+            }
+
+            @Override
+            public void onInputChanged(VoicemailChangePinActivity activity) {
+
+                if (activity.getCurrentPasswordInput().equals(activity.mFirstPin)) {
+                    activity.setNextEnabled(true);
+                    activity.mErrorText.setText(null);
+                } else {
+                    activity.setNextEnabled(false);
+                    activity.mErrorText.setText(R.string.change_pin_confirm_pins_dont_match);
+                }
+            }
+
+            @Override
+            public void handleResult(VoicemailChangePinActivity activity,
+                    @ChangePinResult int result) {
+                if (result == OmtpConstants.CHANGE_PIN_SUCCESS) {
+                    // If the PIN change succeeded we no longer know what the old (current) PIN is.
+                    // Wipe the default old PIN so the old PIN input box will be shown to the user
+                    // on the next time.
+                    setDefaultOldPIN(activity, activity.mPhoneAccountHandle, null);
+                    activity.mConfig.handleEvent(OmtpEvents.CONFIG_PIN_SET);
+
+                    activity.finish();
+
+                    Toast.makeText(activity, activity.getString(R.string.change_pin_succeeded),
+                            Toast.LENGTH_SHORT).show();
+                } else {
+                    CharSequence message = activity.getChangePinResultMessage(result);
+                    activity.showError(message);
+                    if (result == OmtpConstants.CHANGE_PIN_MISMATCH) {
+                        // Somehow the PIN has changed, prompt to enter the old PIN again.
+                        activity.updateState(State.EnterOldPin);
+                    } else {
+                        // The new PIN failed to fulfil other restrictions imposed by the server.
+                        activity.updateState(State.EnterNewPin);
+                    }
+
+                }
+
+            }
+
+            @Override
+            public void handleNext(VoicemailChangePinActivity activity) {
+                activity.processPinChange(activity.mOldPin, activity.mFirstPin);
+            }
+        };
+
+        /**
+         * The activity has switched from another state to this one.
+         */
+        public void onEnter(VoicemailChangePinActivity activity) {
+            // Do nothing
+        }
+
+        /**
+         * The user has typed something into the PIN input field. Also called after {@link
+         * #onEnter(VoicemailChangePinActivity)}
+         */
+        public void onInputChanged(VoicemailChangePinActivity activity) {
+            // Do nothing
+        }
+
+        /**
+         * The asynchronous call to change the PIN on the server has returned.
+         */
+        public void handleResult(VoicemailChangePinActivity activity, @ChangePinResult int result) {
+            // Do nothing
+        }
+
+        /**
+         * The user has pressed the "next" button.
+         */
+        public void handleNext(VoicemailChangePinActivity activity) {
+            // Do nothing
+        }
+
+        /**
+         * The activity has switched from this state to another one.
+         */
+        public void onLeave(VoicemailChangePinActivity activity) {
+            // Do nothing
+        }
+
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mPhoneAccountHandle = getIntent().getParcelableExtra(EXTRA_PHONE_ACCOUNT_HANDLE);
+        mConfig = new OmtpVvmCarrierConfigHelper(this, mPhoneAccountHandle);
+        setContentView(R.layout.voicemail_change_pin);
+        setTitle(R.string.change_pin_title);
+
+        readPinLength();
+
+        View view = findViewById(android.R.id.content);
+
+        mCancelButton = (Button) view.findViewById(R.id.cancel_button);
+        mCancelButton.setOnClickListener(this);
+        mNextButton = (Button) view.findViewById(R.id.next_button);
+        mNextButton.setOnClickListener(this);
+
+        mPinEntry = (EditText) view.findViewById(R.id.pin_entry);
+        mPinEntry.setOnEditorActionListener(this);
+        mPinEntry.addTextChangedListener(this);
+        if (mPinMaxLength != 0) {
+            mPinEntry.setFilters(new InputFilter[]{new LengthFilter(mPinMaxLength)});
+        }
+
+
+        mHeaderText = (TextView) view.findViewById(R.id.headerText);
+        mHintText = (TextView) view.findViewById(R.id.hintText);
+        mErrorText = (TextView) view.findViewById(R.id.errorText);
+
+        migrateDefaultOldPin();
+
+        if (isDefaultOldPinSet(this, mPhoneAccountHandle)) {
+            mOldPin = getDefaultOldPin(this, mPhoneAccountHandle);
+            updateState(State.VerifyOldPin);
+        } else {
+            updateState(State.EnterOldPin);
+        }
+    }
+
+    /**
+     * Extracts the pin length requirement sent by the server with a STATUS SMS.
+     */
+    private void readPinLength() {
+        VisualVoicemailPreferences preferences = new VisualVoicemailPreferences(this,
+                mPhoneAccountHandle);
+        // The OMTP pin length format is {min}-{max}
+        String[] lengths = preferences.getString(OmtpConstants.TUI_PASSWORD_LENGTH, "").split("-");
+        if (lengths.length == 2) {
+            try {
+                mPinMinLength = Integer.parseInt(lengths[0]);
+                mPinMaxLength = Integer.parseInt(lengths[1]);
+            } catch (NumberFormatException e) {
+                mPinMinLength = 0;
+                mPinMaxLength = 0;
+            }
+        } else {
+            mPinMinLength = 0;
+            mPinMaxLength = 0;
+        }
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        updateState(mUiState);
+
+    }
+
+    public void handleNext() {
+        if (mPinEntry.length() == 0) {
+            return;
+        }
+        mUiState.handleNext(this);
+    }
+
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.next_button:
+                handleNext();
+                break;
+
+            case R.id.cancel_button:
+                finish();
+                break;
+        }
+    }
+
+    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+        // Check if this was the result of hitting the enter or "done" key
+        if (actionId == EditorInfo.IME_NULL
+                || actionId == EditorInfo.IME_ACTION_DONE
+                || actionId == EditorInfo.IME_ACTION_NEXT) {
+            handleNext();
+            return true;
+        }
+        return false;
+    }
+
+    public void afterTextChanged(Editable s) {
+        mUiState.onInputChanged(this);
+    }
+
+    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+        // Do nothing
+    }
+
+    public void onTextChanged(CharSequence s, int start, int before, int count) {
+        // Do nothing
+    }
+
+    /**
+     * After replacing the default PIN with a random PIN, call this to store the random PIN. The
+     * stored PIN will be automatically entered when the user attempts to change the PIN.
+     */
+    public static void setDefaultOldPIN(Context context, PhoneAccountHandle phoneAccountHandle,
+            String pin) {
+        new VisualVoicemailPreferences(context, phoneAccountHandle)
+                .edit().putString(KEY_DEFAULT_OLD_PIN, pin).apply();
+    }
+
+    public static boolean isDefaultOldPinSet(Context context,
+            PhoneAccountHandle phoneAccountHandle) {
+        return getDefaultOldPin(context, phoneAccountHandle) != null;
+    }
+
+    private static String getDefaultOldPin(Context context, PhoneAccountHandle phoneAccountHandle) {
+        return new VisualVoicemailPreferences(context, phoneAccountHandle)
+                .getString(KEY_DEFAULT_OLD_PIN);
+    }
+
+    /**
+     * Storage location has changed mid development. Migrate from the old location to avoid losing
+     * tester's default old pin.
+     */
+    private void migrateDefaultOldPin() {
+        String key = "voicemail_pin_dialog_preference_"
+                + PhoneUtils.getSubIdForPhoneAccountHandle(mPhoneAccountHandle)
+                + "_default_old_pin";
+
+        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
+        if (preferences.contains(key)) {
+            setDefaultOldPIN(this, mPhoneAccountHandle, preferences.getString(key, null));
+            preferences.edit().putString(key, null).apply();
+        }
+    }
+
+    private String getCurrentPasswordInput() {
+        return mPinEntry.getText().toString();
+    }
+
+    private void updateState(State state) {
+        State previousState = mUiState;
+        mUiState = state;
+        if (previousState != state) {
+            previousState.onLeave(this);
+            mPinEntry.setText("");
+            mUiState.onEnter(this);
+        }
+        mUiState.onInputChanged(this);
+    }
+
+    /**
+     * Validates PIN and returns a message to display if PIN fails test.
+     *
+     * @param password the raw password the user typed in
+     * @return error message to show to user or null if password is OK
+     */
+    private CharSequence validatePassword(String password) {
+        if (mPinMinLength == 0 && mPinMaxLength == 0) {
+            // Invalid length requirement is sent by the server, just accept anything and let the
+            // server decide.
+            return null;
+        }
+
+        if (password.length() < mPinMinLength) {
+            return getString(R.string.vm_change_pin_error_too_short);
+        }
+        return null;
+    }
+
+    private void setHeader(int text) {
+        mHeaderText.setText(text);
+        mPinEntry.setContentDescription(mHeaderText.getText());
+    }
+
+    /**
+     * Get the corresponding message for the {@link ChangePinResult}.<code>result</code> must not
+     * {@link OmtpConstants#CHANGE_PIN_SUCCESS}
+     */
+    private CharSequence getChangePinResultMessage(@ChangePinResult int result) {
+        switch (result) {
+            case OmtpConstants.CHANGE_PIN_TOO_SHORT:
+                return getString(R.string.vm_change_pin_error_too_short);
+            case OmtpConstants.CHANGE_PIN_TOO_LONG:
+                return getString(R.string.vm_change_pin_error_too_long);
+            case OmtpConstants.CHANGE_PIN_TOO_WEAK:
+                return getString(R.string.vm_change_pin_error_too_weak);
+            case OmtpConstants.CHANGE_PIN_INVALID_CHARACTER:
+                return getString(R.string.vm_change_pin_error_invalid);
+            case OmtpConstants.CHANGE_PIN_MISMATCH:
+                return getString(R.string.vm_change_pin_error_mismatch);
+            case OmtpConstants.CHANGE_PIN_SYSTEM_ERROR:
+                return getString(R.string.vm_change_pin_error_system_error);
+            default:
+                VvmLog.wtf(TAG, "Unexpected ChangePinResult " + result);
+                return null;
+        }
+    }
+
+    private void verifyOldPin() {
+        processPinChange(mOldPin, mOldPin);
+    }
+
+    private void setNextEnabled(boolean enabled) {
+        mNextButton.setEnabled(enabled);
+    }
+
+
+    private void showError(CharSequence message) {
+        showError(message, null);
+    }
+
+    private void showError(CharSequence message, @Nullable OnDismissListener callback) {
+        new AlertDialog.Builder(this)
+                .setMessage(message)
+                .setPositiveButton(android.R.string.ok, null)
+                .setOnDismissListener(callback)
+                .show();
+    }
+
+    /**
+     * Asynchronous call to change the PIN on the server.
+     */
+    private void processPinChange(String oldPin, String newPin) {
+        mProgressDialog = new ProgressDialog(this);
+        mProgressDialog.setCancelable(false);
+        mProgressDialog.setMessage(getString(R.string.vm_change_pin_progress_message));
+        mProgressDialog.show();
+
+        ChangePinNetworkRequestCallback callback = new ChangePinNetworkRequestCallback(oldPin,
+                newPin);
+        callback.requestNetwork();
+    }
+
+    private class ChangePinNetworkRequestCallback extends VvmNetworkRequestCallback {
+
+        private final String mOldPin;
+        private final String mNewPin;
+
+        public ChangePinNetworkRequestCallback(String oldPin, String newPin) {
+            super(mConfig, mPhoneAccountHandle);
+            mOldPin = oldPin;
+            mNewPin = newPin;
+        }
+
+        @Override
+        public void onAvailable(Network network) {
+            super.onAvailable(network);
+            try (ImapHelper helper =
+                new ImapHelper(VoicemailChangePinActivity.this, mPhoneAccountHandle, network)){
+
+                @ChangePinResult int result =
+                        helper.changePin(mOldPin, mNewPin);
+                sendResult(result);
+            } catch (InitializingException | MessagingException e) {
+                sendResult(OmtpConstants.CHANGE_PIN_SYSTEM_ERROR);
+            }
+        }
+
+        @Override
+        public void onFailed(String reason) {
+            super.onFailed(reason);
+            sendResult(OmtpConstants.CHANGE_PIN_SYSTEM_ERROR);
+        }
+
+        private void sendResult(@ChangePinResult int result) {
+            mProgressDialog.dismiss();
+            mHandler.obtainMessage(MESSAGE_HANDLE_RESULT, result, 0).sendToTarget();
+            releaseNetwork();
+        }
+    }
+
+}
diff --git a/src/com/android/phone/settings/VoicemailChangePinDialogPreference.java b/src/com/android/phone/settings/VoicemailChangePinDialogPreference.java
deleted file mode 100644
index 3411228..0000000
--- a/src/com/android/phone/settings/VoicemailChangePinDialogPreference.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone.settings;
-
-import android.annotation.Nullable;
-import android.app.AlertDialog;
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.net.Network;
-import android.preference.DialogPreference;
-import android.preference.PreferenceManager;
-import android.telecom.PhoneAccountHandle;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.View;
-import android.widget.EditText;
-
-import com.android.phone.PhoneUtils;
-import com.android.phone.R;
-import com.android.phone.common.mail.MessagingException;
-import com.android.phone.vvm.omtp.OmtpConstants;
-import com.android.phone.vvm.omtp.OmtpConstants.ChangePinResult;
-import com.android.phone.vvm.omtp.OmtpEvents;
-import com.android.phone.vvm.omtp.imap.ImapHelper;
-import com.android.phone.vvm.omtp.sync.VvmNetworkRequestCallback;
-
-/**
- * Dialog to change the voicemail PIN. The TUI PIN is used when accessing traditional voicemail through
- * phone call.
- */
-public class VoicemailChangePinDialogPreference extends DialogPreference {
-
-    private static final String TAG = "VmChangePinDialog";
-
-    private EditText mOldPin;
-    private EditText mNewPin;
-    private PhoneAccountHandle mPhoneAccountHandle;
-
-    private ProgressDialog mProgressDialog;
-
-    private static final String DEFAULT_OLD_PIN_KEY = "default_old_pin";
-
-    public VoicemailChangePinDialogPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public VoicemailChangePinDialogPreference(Context context, AttributeSet attrs,
-            int defStyle) {
-        super(context, attrs, defStyle);
-    }
-
-    @Override
-    protected View onCreateDialogView() {
-        setDialogLayoutResource(R.layout.voicemail_dialog_change_pin);
-
-        View dialog = super.onCreateDialogView();
-
-        mOldPin = (EditText) dialog.findViewById(R.id.vm_old_pin);
-        mNewPin = (EditText) dialog.findViewById(R.id.vm_new_pin);
-        String defaultOldPin = getDefaultOldPin(getContext(), mPhoneAccountHandle);
-        if (defaultOldPin != null) {
-            // If the old PIN was set by the system, read its' value and hide the input box.
-            mOldPin.setText(defaultOldPin);
-            mOldPin.setVisibility(View.GONE);
-            dialog.findViewById(R.id.vm_old_pin_label).setVisibility(View.GONE);
-        }
-        return dialog;
-    }
-
-    @Override
-    protected void onDialogClosed(boolean positiveResult) {
-        if (positiveResult) {
-            processPinChange();
-        }
-        super.onDialogClosed(positiveResult);
-    }
-
-    public VoicemailChangePinDialogPreference setPhoneAccountHandle(PhoneAccountHandle handle) {
-        mPhoneAccountHandle = handle;
-        return this;
-    }
-
-    @Nullable
-    public static String getDefaultOldPin(Context context, PhoneAccountHandle handle) {
-        return getSharedPreference(context)
-                .getString(getPerPhoneAccountKey(handle, DEFAULT_OLD_PIN_KEY), null);
-    }
-
-    public static void setDefaultOldPIN(Context context, PhoneAccountHandle handle,
-            @Nullable String pin) {
-        SharedPreferences preferences = getSharedPreference(context);
-        preferences.edit()
-                .putString(getPerPhoneAccountKey(handle, DEFAULT_OLD_PIN_KEY), pin)
-                .apply();
-    }
-
-    private static String getPerPhoneAccountKey(PhoneAccountHandle handle, String key) {
-        return "voicemail_pin_dialog_preference_"
-                + PhoneUtils.getSubIdForPhoneAccountHandle(handle) + "_" + key;
-    }
-
-    private static SharedPreferences getSharedPreference(Context context) {
-        return PreferenceManager.getDefaultSharedPreferences(context);
-    }
-
-    private void processPinChange() {
-        mProgressDialog = new ProgressDialog(getContext());
-        mProgressDialog.setCancelable(false);
-        mProgressDialog.setMessage(getContext().getString(R.string.vm_change_pin_progress_message));
-        mProgressDialog.show();
-
-        ChangePinNetworkRequestCallback callback = new ChangePinNetworkRequestCallback();
-        callback.requestNetwork();
-    }
-
-    private void finishPinChange() {
-        mProgressDialog.dismiss();
-    }
-
-    private void showError(@ChangePinResult int result) {
-        if (result != OmtpConstants.CHANGE_PIN_SUCCESS) {
-            CharSequence message;
-            switch (result) {
-                case OmtpConstants.CHANGE_PIN_TOO_SHORT:
-                    message = getContext().getString(R.string.vm_change_pin_error_too_short);
-                    break;
-                case OmtpConstants.CHANGE_PIN_TOO_LONG:
-                    message = getContext().getString(R.string.vm_change_pin_error_too_long);
-                    break;
-
-                case OmtpConstants.CHANGE_PIN_TOO_WEAK:
-                    message = getContext().getString(R.string.vm_change_pin_error_too_weak);
-                    break;
-                case OmtpConstants.CHANGE_PIN_INVALID_CHARACTER:
-                    message = getContext().getString(R.string.vm_change_pin_error_invalid);
-                    break;
-                case OmtpConstants.CHANGE_PIN_MISMATCH:
-                    message = getContext().getString(R.string.vm_change_pin_error_mismatch);
-                    break;
-                case OmtpConstants.CHANGE_PIN_SYSTEM_ERROR:
-                    message = getContext().getString(R.string.vm_change_pin_error_system_error);
-                    break;
-                default:
-                    Log.wtf(TAG, "Unexpected ChangePinResult " + result);
-                    return;
-            }
-            new AlertDialog.Builder(getContext())
-                    .setMessage(message)
-                    .setPositiveButton(android.R.string.ok, null)
-                    .show();
-        }
-    }
-
-    private class ChangePinNetworkRequestCallback extends VvmNetworkRequestCallback {
-
-        public ChangePinNetworkRequestCallback() {
-            super(getContext(), mPhoneAccountHandle);
-        }
-
-        @Override
-        public void onAvailable(Network network) {
-            super.onAvailable(network);
-            try (ImapHelper helper = new ImapHelper(getContext(), mPhoneAccountHandle, network)) {
-                @ChangePinResult int result =
-                        helper.changePin(mOldPin.getText().toString(),
-                                mNewPin.getText().toString());
-                finishPinChange();
-                if (result != OmtpConstants.CHANGE_PIN_SUCCESS) {
-                    showError(result);
-                }
-
-                if (result == OmtpConstants.CHANGE_PIN_SUCCESS
-                        || result == OmtpConstants.CHANGE_PIN_MISMATCH) {
-                    // If the PIN change succeeded we no longer know what the old (current) PIN is.
-                    // If the default old PIN is rejected by the server, the PIN is probably changed
-                    // through other means.
-                    // Wipe the default old PIN so the old PIN input box will be shown to the user
-                    // on the next time.
-                    setDefaultOldPIN(mContext, mPhoneAccountHandle, null);
-                    helper.handleEvent(OmtpEvents.CONFIG_PIN_SET);
-                }
-            } catch (MessagingException e) {
-                finishPinChange();
-                showError(OmtpConstants.CHANGE_PIN_SYSTEM_ERROR);
-            }
-
-        }
-
-        @Override
-        public void onFailed(String reason) {
-            super.onFailed(reason);
-            finishPinChange();
-            showError(OmtpConstants.CHANGE_PIN_SYSTEM_ERROR);
-        }
-    }
-}
diff --git a/src/com/android/phone/settings/VoicemailSettingsActivity.java b/src/com/android/phone/settings/VoicemailSettingsActivity.java
index b10af6e..af4f2ad 100644
--- a/src/com/android/phone/settings/VoicemailSettingsActivity.java
+++ b/src/com/android/phone/settings/VoicemailSettingsActivity.java
@@ -205,7 +205,7 @@
     private VoicemailRingtonePreference mVoicemailNotificationRingtone;
     private CheckBoxPreference mVoicemailNotificationVibrate;
     private SwitchPreference mVoicemailVisualVoicemail;
-    private VoicemailChangePinDialogPreference mVoicemailChangePinPreference;
+    private Preference mVoicemailChangePinPreference;
 
     //*********************************************************************************************
     // Preference Activity Methods
@@ -266,18 +266,24 @@
         mVoicemailVisualVoicemail = (SwitchPreference) findPreference(
                 getResources().getString(R.string.voicemail_visual_voicemail_key));
 
-        mVoicemailChangePinPreference = (VoicemailChangePinDialogPreference) findPreference(
+        mVoicemailChangePinPreference = findPreference(
                 getResources().getString(R.string.voicemail_change_pin_key));
-        mVoicemailChangePinPreference
-                .setPhoneAccountHandle(PhoneUtils.makePstnPhoneAccountHandle(mPhone));
+        PhoneAccountHandle phoneAccountHandle = PhoneUtils.makePstnPhoneAccountHandle(mPhone);
+        Intent changePinIntent = new Intent(new Intent(this, VoicemailChangePinActivity.class));
+        changePinIntent.putExtra(VoicemailChangePinActivity.EXTRA_PHONE_ACCOUNT_HANDLE,
+                phoneAccountHandle);
+
+        mVoicemailChangePinPreference.setIntent(changePinIntent);
+        if (VoicemailChangePinActivity.isDefaultOldPinSet(this, phoneAccountHandle)) {
+            mVoicemailChangePinPreference.setTitle(R.string.voicemail_set_pin_dialog_title);
+        } else {
+            mVoicemailChangePinPreference.setTitle(R.string.voicemail_change_pin_dialog_title);
+        }
 
         if (mOmtpVvmCarrierConfigHelper.isValid()) {
             mVoicemailVisualVoicemail.setOnPreferenceChangeListener(this);
             mVoicemailVisualVoicemail.setChecked(
-                    VisualVoicemailSettingsUtil.isVisualVoicemailEnabled(mPhone));
-
-            mVoicemailChangePinPreference
-                    .setPhoneAccountHandle(PhoneUtils.makePstnPhoneAccountHandle(mPhone));
+                    VisualVoicemailSettingsUtil.isEnabled(mPhone));
         } else {
             prefSet.removePreference(mVoicemailVisualVoicemail);
             prefSet.removePreference(mVoicemailChangePinPreference);
@@ -405,7 +411,7 @@
             boolean isEnabled = (boolean) objValue;
             PhoneAccountHandle handle = PhoneUtils.makePstnPhoneAccountHandle(mPhone);
             VisualVoicemailSettingsUtil
-                    .setVisualVoicemailEnabled(mPhone.getContext(), handle, isEnabled);
+                    .setEnabled(mPhone.getContext(), handle, isEnabled);
             PreferenceScreen prefSet = getPreferenceScreen();
             if (isEnabled) {
                 OmtpVvmSourceManager.getInstance(mPhone.getContext()).addPhoneStateListener(mPhone);
diff --git a/src/com/android/phone/vvm/omtp/ActivationTask.java b/src/com/android/phone/vvm/omtp/ActivationTask.java
new file mode 100644
index 0000000..101a96f
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/ActivationTask.java
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp;
+
+import android.annotation.Nullable;
+import android.annotation.WorkerThread;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.telecom.PhoneAccountHandle;
+import com.android.phone.Assert;
+import com.android.phone.PhoneGlobals;
+import com.android.phone.vvm.omtp.protocol.VisualVoicemailProtocol;
+import com.android.phone.vvm.omtp.scheduling.BaseTask;
+import com.android.phone.vvm.omtp.scheduling.RetryPolicy;
+import com.android.phone.vvm.omtp.sms.StatusMessage;
+import com.android.phone.vvm.omtp.sms.StatusSmsFetcher;
+import com.android.phone.vvm.omtp.sync.OmtpVvmSourceManager;
+import com.android.phone.vvm.omtp.sync.OmtpVvmSyncService;
+import com.android.phone.vvm.omtp.sync.SyncTask;
+import com.android.phone.vvm.omtp.utils.PhoneAccountHandleConverter;
+import java.io.IOException;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeoutException;
+
+/**
+ * Task to activate the visual voicemail service. A request to activate VVM will be sent to the
+ * carrier, which will respond with a STATUS SMS. The credentials will be updated from the SMS. If
+ * the user is not provisioned provisioning will be attempted. Activation happens when the phone
+ * boots, the SIM is inserted, signal returned when VVM is not activated yet, and when the carrier
+ * spontaneously sent a STATUS SMS.
+ */
+public class ActivationTask extends BaseTask {
+
+    private static final String TAG = "ActivationTask";
+
+    private static final int RETRY_TIMES = 4;
+    private static final int RETRY_INTERVAL_MILLIS = 5_000;
+
+    private static final String EXTRA_MESSAGE_DATA_BUNDLE = "extra_message_data_bundle";
+
+    private Bundle mData;
+
+    public ActivationTask() {
+        super(TASK_ACTIVATION);
+        addPolicy(new RetryPolicy(RETRY_TIMES, RETRY_INTERVAL_MILLIS));
+    }
+
+    public static void start(Context context, int subId, @Nullable Bundle data) {
+        Intent intent = BaseTask.createIntent(context, ActivationTask.class, subId);
+        if (data != null) {
+            intent.putExtra(EXTRA_MESSAGE_DATA_BUNDLE, data);
+        }
+        context.startService(intent);
+    }
+
+    public void onCreate(Context context, Intent intent, int flags, int startId) {
+        super.onCreate(context, intent, flags, startId);
+        mData = intent.getParcelableExtra(EXTRA_MESSAGE_DATA_BUNDLE);
+    }
+
+    @Override
+    public Intent createRestartIntent() {
+        Intent intent = super.createRestartIntent();
+        // mData is discarded, request a fresh STATUS SMS for retries.
+        return intent;
+    }
+
+    @Override
+    @WorkerThread
+    public void onExecuteInBackgroundThread() {
+        Assert.isNotMainThread();
+        int subId = getSubId();
+
+        OmtpVvmCarrierConfigHelper helper = new OmtpVvmCarrierConfigHelper(getContext(), subId);
+        helper.handleEvent(OmtpEvents.CONFIG_ACTIVATING);
+        helper.activateSmsFilter();
+        PhoneAccountHandle phoneAccountHandle = PhoneAccountHandleConverter.fromSubId(subId);
+
+        VisualVoicemailProtocol protocol = helper.getProtocol();
+
+        Bundle data;
+        if (mData != null) {
+            // The content of STATUS SMS is provided to launch this task, no need to request it
+            // again.
+            data = mData;
+        } else {
+            try (StatusSmsFetcher fetcher = new StatusSmsFetcher(getContext(), subId)) {
+                protocol.startActivation(helper);
+                // Both the fetcher and OmtpMessageReceiver will be triggered, but
+                // OmtpMessageReceiver will just route the SMS back to ActivationTask, which will be
+                // rejected because the task is still running.
+                data = fetcher.get();
+            } catch (TimeoutException e) {
+                // The carrier is expected to return an STATUS SMS within STATUS_SMS_TIMEOUT_MILLIS
+                // handleEvent() will do the logging.
+                helper.handleEvent(OmtpEvents.CONFIG_STATUS_SMS_TIME_OUT);
+                fail();
+                return;
+            } catch (InterruptedException | ExecutionException | IOException e) {
+                VvmLog.e(TAG, "can't get future STATUS SMS", e);
+                fail();
+                return;
+            }
+        }
+
+        StatusMessage message = new StatusMessage(data);
+        VvmLog.d(TAG, "STATUS SMS received: st=" + message.getProvisioningStatus()
+                + ", rc=" + message.getReturnCode());
+
+        if (message.getProvisioningStatus().equals(OmtpConstants.SUBSCRIBER_READY)) {
+            VvmLog.d(TAG, "subscriber ready, no activation required");
+            updateSource(getContext(), phoneAccountHandle, getSubId(), message);
+        } else {
+            if (helper.supportsProvisioning()) {
+                VvmLog.i(TAG, "Subscriber not ready, start provisioning");
+                helper.startProvisioning(this, phoneAccountHandle, message, data);
+
+            } else {
+                VvmLog.i(TAG, "Subscriber not ready but provisioning is not supported");
+                // Ignore the non-ready state and attempt to use the provided info as is.
+                // This is probably caused by not completing the new user tutorial.
+                updateSource(getContext(), phoneAccountHandle, getSubId(), message);
+            }
+        }
+    }
+
+    public static void updateSource(Context context, PhoneAccountHandle phone, int subId,
+            StatusMessage message) {
+        OmtpVvmSourceManager vvmSourceManager =
+                OmtpVvmSourceManager.getInstance(context);
+
+        if (OmtpConstants.SUCCESS.equals(message.getReturnCode())) {
+            OmtpVvmCarrierConfigHelper helper = new OmtpVvmCarrierConfigHelper(context, subId);
+            helper.handleEvent(OmtpEvents.CONFIG_REQUEST_STATUS_SUCCESS);
+
+            // Save the IMAP credentials in preferences so they are persistent and can be retrieved.
+            VisualVoicemailPreferences prefs = new VisualVoicemailPreferences(context, phone);
+            message.putStatus(prefs.edit()).apply();
+
+            // Add the source to indicate that it is active.
+            vvmSourceManager.addSource(phone);
+
+            SyncTask.start(context, phone, OmtpVvmSyncService.SYNC_FULL_SYNC);
+            // Remove the message waiting indicator, which is a stick notification fo traditional
+            // voicemails.
+            PhoneGlobals.getInstance().clearMwiIndicator(subId);
+        } else {
+            VvmLog.e(TAG, "Visual voicemail not available for subscriber.");
+        }
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/DefaultOmtpEventHandler.java b/src/com/android/phone/vvm/omtp/DefaultOmtpEventHandler.java
index c49df64..45ed406 100644
--- a/src/com/android/phone/vvm/omtp/DefaultOmtpEventHandler.java
+++ b/src/com/android/phone/vvm/omtp/DefaultOmtpEventHandler.java
@@ -57,6 +57,15 @@
                         .setNotificationChannelState(Status.NOTIFICATION_CHANNEL_STATE_OK)
                         .apply();
                 break;
+            case CONFIG_ACTIVATING:
+                VoicemailStatus.edit(context, config.getSubId())
+                        .setConfigurationState(Status.CONFIGURATION_STATE_CONFIGURING).apply();
+                break;
+            case CONFIG_STATUS_SMS_TIME_OUT:
+                VoicemailStatus.edit(context, config.getSubId())
+                        .setConfigurationState(Status.CONFIGURATION_STATE_FAILED)
+                        .apply();
+                break;
             default:
                 VvmLog.wtf(TAG, "invalid configuration event " + event);
         }
diff --git a/src/com/android/phone/vvm/omtp/OmtpConstants.java b/src/com/android/phone/vvm/omtp/OmtpConstants.java
index 8975b59..3f5722f 100644
--- a/src/com/android/phone/vvm/omtp/OmtpConstants.java
+++ b/src/com/android/phone/vvm/omtp/OmtpConstants.java
@@ -125,6 +125,7 @@
     public static final String SERVER_ADDRESS = "srv";
     /** Phone number to access voicemails through Telephony User Interface */
     public static final String TUI_ACCESS_NUMBER = "tui";
+    public static final String TUI_PASSWORD_LENGTH = "pw_len";
     /** Number to send client origination SMS */
     public static final String CLIENT_SMS_DESTINATION_NUMBER = "dn";
     public static final String IMAP_PORT = "ipt";
diff --git a/src/com/android/phone/vvm/omtp/OmtpEvents.java b/src/com/android/phone/vvm/omtp/OmtpEvents.java
index f42db72..787cb35 100644
--- a/src/com/android/phone/vvm/omtp/OmtpEvents.java
+++ b/src/com/android/phone/vvm/omtp/OmtpEvents.java
@@ -34,6 +34,8 @@
     CONFIG_PIN_SET(Type.CONFIGURATION, true),
     // The voicemail PIN is replaced with a generated PIN, user should change it.
     CONFIG_DEFAULT_PIN_REPLACED(Type.CONFIGURATION, true),
+    CONFIG_ACTIVATING(Type.CONFIGURATION, true),
+    CONFIG_STATUS_SMS_TIME_OUT(Type.CONFIGURATION),
 
     // Data channel State
 
@@ -103,7 +105,8 @@
     VVM3_STATUS_SMS_TIMEOUT,
 
     VVM3_SUBSCRIBER_PROVISIONED,
-    VVM3_SUBSCRIBER_BLOCKED;
+    VVM3_SUBSCRIBER_BLOCKED,
+    VVM3_SUBSCRIBER_UNKNOWN;
 
     public static class Type {
 
diff --git a/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java b/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java
index b570744..00a70be 100644
--- a/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java
+++ b/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelper.java
@@ -27,13 +27,12 @@
 import android.telephony.VisualVoicemailSmsFilterSettings;
 import android.text.TextUtils;
 import android.util.ArraySet;
-
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.phone.VoicemailStatus;
 import com.android.phone.vvm.omtp.protocol.VisualVoicemailProtocol;
 import com.android.phone.vvm.omtp.protocol.VisualVoicemailProtocolFactory;
 import com.android.phone.vvm.omtp.sms.StatusMessage;
-
+import com.android.phone.vvm.omtp.utils.PhoneAccountHandleConverter;
 import java.util.Arrays;
 import java.util.Set;
 
@@ -96,6 +95,8 @@
     private final VisualVoicemailProtocol mProtocol;
     private final PersistableBundle mTelephonyConfig;
 
+    private PhoneAccountHandle mPhoneAccountHandle;
+
     public OmtpVvmCarrierConfigHelper(Context context, int subId) {
         mContext = context;
         mSubId = subId;
@@ -107,18 +108,23 @@
                 .getConfig(telephonyManager.getSimOperator(subId));
 
         mVvmType = getVvmType();
-        mProtocol = VisualVoicemailProtocolFactory.create(mVvmType);
+        mProtocol = VisualVoicemailProtocolFactory.create(mContext.getResources(), mVvmType);
+    }
+
+    public OmtpVvmCarrierConfigHelper(Context context, PhoneAccountHandle handle) {
+        this(context, PhoneAccountHandleConverter.toSubId(handle));
+        mPhoneAccountHandle = handle;
     }
 
     @VisibleForTesting
-    OmtpVvmCarrierConfigHelper(PersistableBundle carrierConfig,
+    OmtpVvmCarrierConfigHelper(Context context, PersistableBundle carrierConfig,
             PersistableBundle telephonyConfig) {
-        mContext = null;
+        mContext = context;
         mSubId = 0;
         mCarrierConfig = carrierConfig;
         mTelephonyConfig = telephonyConfig;
         mVvmType = getVvmType();
-        mProtocol = VisualVoicemailProtocolFactory.create(mVvmType);
+        mProtocol = VisualVoicemailProtocolFactory.create(mContext.getResources(), mVvmType);
     }
 
     public Context getContext() {
@@ -129,6 +135,13 @@
         return mSubId;
     }
 
+    public PhoneAccountHandle getPhoneAccountHandle() {
+        if (mPhoneAccountHandle == null) {
+            mPhoneAccountHandle = PhoneAccountHandleConverter.fromSubId(mSubId);
+        }
+        return mPhoneAccountHandle;
+    }
+
     /**
      * return whether the carrier's visual voicemail is supported, with KEY_VVM_TYPE_STRING set as a
      * known protocol.
@@ -147,6 +160,14 @@
         return mProtocol;
     }
 
+    /**
+     * @returns arbitrary String stored in the config file. Used for protocol specific values.
+     */
+    @Nullable
+    public String getString(String key) {
+        return (String) getValue(key);
+    }
+
     @Nullable
     public Set<String> getCarrierVvmPackageNames() {
         Set<String> names = getCarrierVvmPackageNames(mCarrierConfig);
@@ -291,7 +312,7 @@
         activateSmsFilter();
 
         if (mProtocol != null) {
-            mProtocol.startActivation(this);
+            ActivationTask.start(mContext, mSubId, null);
         }
     }
 
@@ -313,9 +334,17 @@
         }
     }
 
-    public void startProvisioning(PhoneAccountHandle phone, StatusMessage message, Bundle data) {
+    public boolean supportsProvisioning() {
         if (mProtocol != null) {
-            mProtocol.startProvisioning(phone, this, message, data);
+            return mProtocol.supportsProvisioning();
+        }
+        return false;
+    }
+
+    public void startProvisioning(ActivationTask task, PhoneAccountHandle phone,
+            StatusMessage message, Bundle data) {
+        if (mProtocol != null) {
+            mProtocol.startProvisioning(task, phone, this, message, data);
         }
     }
 
@@ -395,4 +424,5 @@
         }
         return defaultValue;
     }
+
 }
\ No newline at end of file
diff --git a/src/com/android/phone/vvm/omtp/SimChangeReceiver.java b/src/com/android/phone/vvm/omtp/SimChangeReceiver.java
index f22711a..24f7a2a 100644
--- a/src/com/android/phone/vvm/omtp/SimChangeReceiver.java
+++ b/src/com/android/phone/vvm/omtp/SimChangeReceiver.java
@@ -24,6 +24,7 @@
 import android.os.UserManager;
 import android.telecom.PhoneAccountHandle;
 import android.telephony.CarrierConfigManager;
+import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
@@ -88,15 +89,23 @@
         if (carrierConfigHelper.isValid()) {
             PhoneAccountHandle phoneAccount = PhoneAccountHandleConverter.fromSubId(subId);
 
-            if (VisualVoicemailSettingsUtil.isVisualVoicemailEnabled(context, phoneAccount)) {
-                VvmLog.i(TAG, "Sim state or carrier config changed: requesting"
-                        + " activation for " + subId);
-
+            if (VisualVoicemailSettingsUtil.isEnabled(context, phoneAccount)) {
+                VvmLog.i(TAG, "Sim state or carrier config changed for " + subId);
                 // Add a phone state listener so that changes to the communication channels
                 // can be recorded.
                 OmtpVvmSourceManager.getInstance(context).addPhoneStateListener(
                         phoneAccount);
-                carrierConfigHelper.startActivation();
+                // Check for signal before activating. The event often happen while boot and the
+                // network is not connected yet. Launching activation will likely to cause the SMS
+                // sending to fail and waste unnecessary time waiting for time out.
+                if (context.getSystemService(TelephonyManager.class)
+                        .getServiceStateForSubscriber(subId).getState()
+                        == ServiceState.STATE_IN_SERVICE) {
+                    VvmLog.i(TAG, "Sim/config changed while in service, requesting activation");
+                    carrierConfigHelper.startActivation();
+                } else {
+                    VvmLog.i(TAG, "Sim/config changed while not in service.");
+                }
             } else {
                 if (carrierConfigHelper.isLegacyModeEnabled()) {
                     // SMS still need to be filtered under legacy mode.
diff --git a/src/com/android/phone/vvm/omtp/VisualVoicemailPreferences.java b/src/com/android/phone/vvm/omtp/VisualVoicemailPreferences.java
new file mode 100644
index 0000000..be51ea9
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/VisualVoicemailPreferences.java
@@ -0,0 +1,146 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.phone.vvm.omtp;
+
+import android.annotation.Nullable;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.telecom.PhoneAccountHandle;
+
+import com.android.phone.NeededForTesting;
+
+import java.util.Set;
+
+/**
+ * Save visual voicemail values in shared preferences to be retrieved later. Because a voicemail
+ * source is tied 1:1 to a phone account, the phone account handle is used in the key for each
+ * voicemail source and the associated data.
+ */
+public class VisualVoicemailPreferences {
+
+    private static final String VISUAL_VOICEMAIL_SHARED_PREFS_KEY_PREFIX =
+            "visual_voicemail_";
+
+    private final SharedPreferences mPreferences;
+    private final PhoneAccountHandle mPhoneAccountHandle;
+
+    public VisualVoicemailPreferences(Context context, PhoneAccountHandle phoneAccountHandle) {
+        mPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+        mPhoneAccountHandle = phoneAccountHandle;
+    }
+
+    public class Editor {
+
+        private final SharedPreferences.Editor mEditor;
+
+        private Editor() {
+            mEditor = mPreferences.edit();
+        }
+
+        public void apply() {
+            mEditor.apply();
+        }
+
+        public Editor putBoolean(String key, boolean value) {
+            mEditor.putBoolean(getKey(key), value);
+            return this;
+        }
+
+        @NeededForTesting
+        public Editor putFloat(String key, float value) {
+            mEditor.putFloat(getKey(key), value);
+            return this;
+        }
+
+        public Editor putInt(String key, int value) {
+            mEditor.putInt(getKey(key), value);
+            return this;
+        }
+
+        @NeededForTesting
+        public Editor putLong(String key, long value) {
+            mEditor.putLong(getKey(key), value);
+            return this;
+        }
+
+        public Editor putString(String key, String value) {
+            mEditor.putString(getKey(key), value);
+            return this;
+        }
+
+        @NeededForTesting
+        public Editor putStringSet(String key, Set<String> value) {
+            mEditor.putStringSet(getKey(key), value);
+            return this;
+        }
+    }
+
+    public Editor edit() {
+        return new Editor();
+    }
+
+    public boolean getBoolean(String key, boolean defValue) {
+        return getValue(key, defValue);
+    }
+
+    @NeededForTesting
+    public float getFloat(String key, float defValue) {
+        return getValue(key, defValue);
+    }
+
+    public int getInt(String key, int defValue) {
+        return getValue(key, defValue);
+    }
+
+    @NeededForTesting
+    public long getLong(String key, long defValue) {
+        return getValue(key, defValue);
+    }
+
+    public String getString(String key, String defValue) {
+        return getValue(key, defValue);
+    }
+
+    @Nullable
+    public String getString(String key) {
+        return getValue(key, null);
+    }
+
+    @NeededForTesting
+    public Set<String> getStringSet(String key, Set<String> defValue) {
+        return getValue(key, defValue);
+    }
+
+    public boolean contains(String key) {
+        return mPreferences.contains(getKey(key));
+    }
+
+    private <T> T getValue(String key, T defValue) {
+        if (!contains(key)) {
+            return defValue;
+        }
+        Object object = mPreferences.getAll().get(getKey(key));
+        if (object == null) {
+            return defValue;
+        }
+        return (T) object;
+    }
+
+    private String getKey(String key) {
+        return VISUAL_VOICEMAIL_SHARED_PREFS_KEY_PREFIX + key + "_" + mPhoneAccountHandle.getId();
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/VvmPackageInstallReceiver.java b/src/com/android/phone/vvm/omtp/VvmPackageInstallReceiver.java
index 8a0495b..7c20065 100644
--- a/src/com/android/phone/vvm/omtp/VvmPackageInstallReceiver.java
+++ b/src/com/android/phone/vvm/omtp/VvmPackageInstallReceiver.java
@@ -48,7 +48,7 @@
         OmtpVvmSourceManager vvmSourceManager = OmtpVvmSourceManager.getInstance(context);
         Set<PhoneAccountHandle> phoneAccounts = vvmSourceManager.getOmtpVvmSources();
         for (PhoneAccountHandle phoneAccount : phoneAccounts) {
-            if (VisualVoicemailSettingsUtil.isVisualVoicemailUserSet(context, phoneAccount)) {
+            if (VisualVoicemailSettingsUtil.isEnabledUserSet(context, phoneAccount)) {
                 // Skip the check if this voicemail source's setting is overridden by the user.
                 continue;
             }
diff --git a/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java b/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
index 64b37c6..1cb23d4 100644
--- a/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
+++ b/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
@@ -16,7 +16,6 @@
 package com.android.phone.vvm.omtp;
 
 import android.content.Context;
-import android.content.Intent;
 import android.telecom.PhoneAccountHandle;
 import android.telephony.PhoneStateListener;
 import android.telephony.ServiceState;
@@ -25,6 +24,7 @@
 import com.android.phone.PhoneUtils;
 import com.android.phone.vvm.omtp.sync.OmtpVvmSourceManager;
 import com.android.phone.vvm.omtp.sync.OmtpVvmSyncService;
+import com.android.phone.vvm.omtp.sync.SyncTask;
 import com.android.phone.vvm.omtp.sync.VoicemailStatusQueryHelper;
 import com.android.phone.vvm.omtp.utils.PhoneAccountHandleConverter;
 
@@ -76,10 +76,7 @@
                         .v(TAG, "Signal returned: requesting resync for " + subId);
                 // If the source is already registered, run a full sync in case something was missed
                 // while signal was down.
-                Intent serviceIntent = OmtpVvmSyncService.getSyncIntent(
-                        mContext, OmtpVvmSyncService.SYNC_FULL_SYNC, mPhoneAccount,
-                        true /* firstAttempt */);
-                mContext.startService(serviceIntent);
+                SyncTask.start(mContext, mPhoneAccount, OmtpVvmSyncService.SYNC_FULL_SYNC);
             } else {
                 VvmLog.v(TAG,
                         "Signal returned: reattempting activation for " + subId);
@@ -90,9 +87,6 @@
             }
         } else {
             VvmLog.v(TAG, "Notifications channel is inactive for " + subId);
-            mContext.stopService(OmtpVvmSyncService.getSyncIntent(
-                    mContext, OmtpVvmSyncService.SYNC_FULL_SYNC, mPhoneAccount,
-                    true /* firstAttempt */));
 
             if (!OmtpVvmSourceManager.getInstance(mContext).isVvmSourceRegistered(mPhoneAccount)) {
                 return;
diff --git a/src/com/android/phone/vvm/omtp/fetch/FetchVoicemailReceiver.java b/src/com/android/phone/vvm/omtp/fetch/FetchVoicemailReceiver.java
index d267e68..5ec190f 100644
--- a/src/com/android/phone/vvm/omtp/fetch/FetchVoicemailReceiver.java
+++ b/src/com/android/phone/vvm/omtp/fetch/FetchVoicemailReceiver.java
@@ -35,6 +35,7 @@
 import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
 import com.android.phone.vvm.omtp.VvmLog;
 import com.android.phone.vvm.omtp.imap.ImapHelper;
+import com.android.phone.vvm.omtp.imap.ImapHelper.InitializingException;
 import com.android.phone.vvm.omtp.sync.OmtpVvmSourceManager;
 import com.android.phone.vvm.omtp.sync.VvmNetworkRequestCallback;
 
@@ -161,11 +162,6 @@
                         VvmLog.i(TAG, "fetching voicemail, retry count=" + mRetryCount);
                         try (ImapHelper imapHelper = new ImapHelper(mContext, mPhoneAccount,
                                 network)) {
-                            if (!imapHelper.isSuccessfullyInitialized()) {
-                                VvmLog.w(TAG, "Can't retrieve Imap credentials.");
-                                return;
-                            }
-
                             boolean success = imapHelper.fetchVoicemailPayload(
                                     new VoicemailFetchedCallback(mContext, mUri), mUid);
                             if (!success && mRetryCount > 0) {
@@ -174,6 +170,9 @@
                             } else {
                                 return;
                             }
+                        } catch (InitializingException e) {
+                          VvmLog.w(TAG, "Can't retrieve Imap credentials ", e);
+                            return;
                         }
                     }
                 } finally {
diff --git a/src/com/android/phone/vvm/omtp/imap/ImapHelper.java b/src/com/android/phone/vvm/omtp/imap/ImapHelper.java
index 908d0f7..532991f 100644
--- a/src/com/android/phone/vvm/omtp/imap/ImapHelper.java
+++ b/src/com/android/phone/vvm/omtp/imap/ImapHelper.java
@@ -16,16 +16,13 @@
 package com.android.phone.vvm.omtp.imap;
 
 import android.content.Context;
-import android.content.SharedPreferences;
 import android.net.ConnectivityManager;
 import android.net.Network;
 import android.net.NetworkInfo;
-import android.preference.PreferenceManager;
 import android.provider.VoicemailContract;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.Voicemail;
 import android.util.Base64;
-
 import com.android.phone.PhoneUtils;
 import com.android.phone.VoicemailStatus;
 import com.android.phone.common.mail.Address;
@@ -44,17 +41,14 @@
 import com.android.phone.common.mail.store.imap.ImapConstants;
 import com.android.phone.common.mail.store.imap.ImapResponse;
 import com.android.phone.common.mail.utils.LogUtils;
-import com.android.phone.settings.VisualVoicemailSettingsUtil;
 import com.android.phone.vvm.omtp.OmtpConstants;
 import com.android.phone.vvm.omtp.OmtpConstants.ChangePinResult;
 import com.android.phone.vvm.omtp.OmtpEvents;
 import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
+import com.android.phone.vvm.omtp.VisualVoicemailPreferences;
 import com.android.phone.vvm.omtp.VvmLog;
 import com.android.phone.vvm.omtp.fetch.VoicemailFetchedCallback;
 import com.android.phone.vvm.omtp.sync.OmtpVvmSyncService.TranscriptionFetchedCallback;
-
-import libcore.io.IoUtils;
-
 import java.io.BufferedOutputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.Closeable;
@@ -63,6 +57,7 @@
 import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
+import libcore.io.IoUtils;
 
 /**
  * A helper interface to abstract commands sent across IMAP interface for a given account.
@@ -78,7 +73,7 @@
     private final PhoneAccountHandle mPhoneAccount;
     private final Network mNetwork;
 
-    SharedPreferences mPrefs;
+    VisualVoicemailPreferences mPrefs;
     private static final String PREF_KEY_QUOTA_OCCUPIED = "quota_occupied_";
     private static final String PREF_KEY_QUOTA_TOTAL = "quota_total_";
 
@@ -87,24 +82,36 @@
 
     private final OmtpVvmCarrierConfigHelper mConfig;
 
-    public ImapHelper(Context context, PhoneAccountHandle phoneAccount, Network network) {
+    public class InitializingException extends Exception {
+
+        public InitializingException(String message) {
+            super(message);
+        }
+    }
+
+    public ImapHelper(Context context, PhoneAccountHandle phoneAccount, Network network)
+        throws InitializingException {
+        this(context, new OmtpVvmCarrierConfigHelper(context,
+                PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccount)), phoneAccount, network);
+    }
+
+    public ImapHelper(Context context, OmtpVvmCarrierConfigHelper config,
+        PhoneAccountHandle phoneAccount, Network network) throws InitializingException {
         mContext = context;
         mPhoneAccount = phoneAccount;
         mNetwork = network;
-        mConfig = new OmtpVvmCarrierConfigHelper(context,
-                PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccount));
+        mConfig = config;
+        mPrefs = new VisualVoicemailPreferences(context,
+                phoneAccount);
+
         try {
             TempDirectory.setTempDirectory(context);
 
-            String username = VisualVoicemailSettingsUtil.getVisualVoicemailCredentials(context,
-                    OmtpConstants.IMAP_USER_NAME, phoneAccount);
-            String password = VisualVoicemailSettingsUtil.getVisualVoicemailCredentials(context,
-                    OmtpConstants.IMAP_PASSWORD, phoneAccount);
-            String serverName = VisualVoicemailSettingsUtil.getVisualVoicemailCredentials(context,
-                    OmtpConstants.SERVER_ADDRESS, phoneAccount);
+            String username = mPrefs.getString(OmtpConstants.IMAP_USER_NAME, null);
+            String password = mPrefs.getString(OmtpConstants.IMAP_PASSWORD, null);
+            String serverName = mPrefs.getString(OmtpConstants.SERVER_ADDRESS, null);
             int port = Integer.parseInt(
-                    VisualVoicemailSettingsUtil.getVisualVoicemailCredentials(context,
-                            OmtpConstants.IMAP_PORT, phoneAccount));
+                    mPrefs.getString(OmtpConstants.IMAP_PORT, null));
             int auth = ImapStore.FLAG_NONE;
 
             int sslPort = mConfig.getSslPort();
@@ -118,13 +125,13 @@
         } catch (NumberFormatException e) {
             mConfig.handleEvent(OmtpEvents.DATA_INVALID_PORT);
             LogUtils.w(TAG, "Could not parse port number");
+            throw new InitializingException("cannot initialize ImapHelper:" + e.toString());
         }
 
-        mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
-        mQuotaOccupied = mPrefs.getInt(getSharedPrefsKey(PREF_KEY_QUOTA_OCCUPIED),
-                VoicemailContract.Status.QUOTA_UNAVAILABLE);
-        mQuotaTotal = mPrefs.getInt(getSharedPrefsKey(PREF_KEY_QUOTA_TOTAL),
-                VoicemailContract.Status.QUOTA_UNAVAILABLE);
+        mQuotaOccupied = mPrefs
+                .getInt(PREF_KEY_QUOTA_OCCUPIED, VoicemailContract.Status.QUOTA_UNAVAILABLE);
+        mQuotaTotal = mPrefs
+                .getInt(PREF_KEY_QUOTA_TOTAL, VoicemailContract.Status.QUOTA_UNAVAILABLE);
     }
 
     @Override
@@ -132,15 +139,6 @@
         mImapStore.closeConnection();
     }
 
-    /**
-     * If mImapStore is null, this means that there was a missing or badly formatted port number,
-     * which means there aren't sufficient credentials for login. If mImapStore is succcessfully
-     * initialized, then ImapHelper is ready to go.
-     */
-    public boolean isSuccessfullyInitialized() {
-        return mImapStore != null;
-    }
-
     public boolean isRoaming() {
         ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(
                 Context.CONNECTIVITY_SERVICE);
@@ -500,8 +498,8 @@
                 .setQuota(mQuotaOccupied, mQuotaTotal)
                 .apply();
         mPrefs.edit()
-                .putInt(getSharedPrefsKey(PREF_KEY_QUOTA_OCCUPIED), mQuotaOccupied)
-                .putInt(getSharedPrefsKey(PREF_KEY_QUOTA_TOTAL), mQuotaTotal)
+                .putInt(PREF_KEY_QUOTA_OCCUPIED, mQuotaOccupied)
+                .putInt(PREF_KEY_QUOTA_TOTAL, mQuotaTotal)
                 .apply();
         VvmLog.v(TAG, "Quota changed to " + mQuotaOccupied + "/" + mQuotaTotal);
     }
@@ -576,6 +574,8 @@
                     messageStructureWrapper.messageStructure = message;
                 } else if (bodyPartMimeType.startsWith("text/")) {
                     messageStructureWrapper.transcriptionBodyPart = bodyPart;
+                } else {
+                    VvmLog.v(TAG, "Unknown bodyPart MIME: " + bodyPartMimeType);
                 }
             }
 
@@ -702,8 +702,4 @@
             IoUtils.closeQuietly(out);
         }
     }
-
-    private String getSharedPrefsKey(String key) {
-        return VisualVoicemailSettingsUtil.getVisualVoicemailSharedPrefsKey(key, mPhoneAccount);
-    }
 }
\ No newline at end of file
diff --git a/src/com/android/phone/vvm/omtp/protocol/VisualVoicemailProtocol.java b/src/com/android/phone/vvm/omtp/protocol/VisualVoicemailProtocol.java
index be2a77f..5f89471 100644
--- a/src/com/android/phone/vvm/omtp/protocol/VisualVoicemailProtocol.java
+++ b/src/com/android/phone/vvm/omtp/protocol/VisualVoicemailProtocol.java
@@ -16,11 +16,12 @@
 
 package com.android.phone.vvm.omtp.protocol;
 
+import android.annotation.Nullable;
 import android.content.Context;
 import android.os.Bundle;
 import android.telecom.PhoneAccountHandle;
 import android.telephony.SmsManager;
-
+import com.android.phone.vvm.omtp.ActivationTask;
 import com.android.phone.vvm.omtp.DefaultOmtpEventHandler;
 import com.android.phone.vvm.omtp.OmtpEvents;
 import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
@@ -29,6 +30,9 @@
 
 public abstract class VisualVoicemailProtocol {
 
+    /**
+     * Activation should cause the carrier to respond with a STATUS SMS.
+     */
     public void startActivation(OmtpVvmCarrierConfigHelper config) {
         OmtpMessageSender messageSender = ProtocolHelper.getMessageSender(this, config);
         if (messageSender != null) {
@@ -43,8 +47,12 @@
         }
     }
 
-    public void startProvisioning(PhoneAccountHandle handle, OmtpVvmCarrierConfigHelper config,
-            StatusMessage message, Bundle data) {
+    public boolean supportsProvisioning() {
+        return false;
+    }
+
+    public void startProvisioning(ActivationTask task, PhoneAccountHandle handle,
+            OmtpVvmCarrierConfigHelper config, StatusMessage message, Bundle data) {
         // Do nothing
     }
 
@@ -74,4 +82,14 @@
             OmtpEvents event) {
         DefaultOmtpEventHandler.handleEvent(context, config, event);
     }
+
+    /**
+     * Given an VVM SMS with an unknown {@code event}, let the protocol attempt to translate it into
+     * an equivalent STATUS SMS. Returns {@code null} if it cannot be translated.
+     */
+    @Nullable
+    public Bundle translateStatusSmsBundle(OmtpVvmCarrierConfigHelper config, String event,
+            Bundle data) {
+        return null;
+    }
 }
diff --git a/src/com/android/phone/vvm/omtp/protocol/VisualVoicemailProtocolFactory.java b/src/com/android/phone/vvm/omtp/protocol/VisualVoicemailProtocolFactory.java
index 5f54a50..4d39ae2 100644
--- a/src/com/android/phone/vvm/omtp/protocol/VisualVoicemailProtocolFactory.java
+++ b/src/com/android/phone/vvm/omtp/protocol/VisualVoicemailProtocolFactory.java
@@ -17,8 +17,10 @@
 package com.android.phone.vvm.omtp.protocol;
 
 import android.annotation.Nullable;
+import android.content.res.Resources;
 import android.telephony.TelephonyManager;
 
+import com.android.phone.R;
 import com.android.phone.vvm.omtp.VvmLog;
 
 public class VisualVoicemailProtocolFactory {
@@ -28,7 +30,7 @@
     private static final String VVM_TYPE_VVM3 = "vvm_type_vvm3";
 
     @Nullable
-    public static VisualVoicemailProtocol create(String type) {
+    public static VisualVoicemailProtocol create(Resources resources, String type) {
         if (type == null) {
             return null;
         }
@@ -38,7 +40,12 @@
             case TelephonyManager.VVM_TYPE_CVVM:
                 return new CvvmProtocol();
             case VVM_TYPE_VVM3:
-                return new Vvm3Protocol();
+                if (resources.getBoolean(R.bool.vvm3_enabled)) {
+                    return new Vvm3Protocol();
+                } else {
+                    VvmLog.e(TAG, "VVM3 is disabled");
+                    return null;
+                }
             default:
                 VvmLog.e(TAG, "Unexpected visual voicemail type: " + type);
         }
diff --git a/src/com/android/phone/vvm/omtp/protocol/Vvm3EventHandler.java b/src/com/android/phone/vvm/omtp/protocol/Vvm3EventHandler.java
index 8eacb99..3a3adb8 100644
--- a/src/com/android/phone/vvm/omtp/protocol/Vvm3EventHandler.java
+++ b/src/com/android/phone/vvm/omtp/protocol/Vvm3EventHandler.java
@@ -20,15 +20,13 @@
 import android.content.Context;
 import android.telecom.PhoneAccountHandle;
 import android.util.Log;
-
 import com.android.phone.VoicemailStatus;
-import com.android.phone.settings.VoicemailChangePinDialogPreference;
+import com.android.phone.settings.VoicemailChangePinActivity;
 import com.android.phone.vvm.omtp.DefaultOmtpEventHandler;
 import com.android.phone.vvm.omtp.OmtpEvents;
 import com.android.phone.vvm.omtp.OmtpEvents.Type;
 import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
 import com.android.phone.vvm.omtp.utils.PhoneAccountHandleConverter;
-
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
@@ -83,6 +81,9 @@
     // Non VVM3 codes:
     public static final int VMG_UNKNOWN_ERROR = -1;
     public static final int PIN_NOT_SET = -100;
+    // STATUS SMS returned st=U and rc!=2. The user cannot be provisioned and must contact customer
+    // support.
+    public static final int SUBSCRIBER_UNKNOWN = -99;
 
 
     public static void handleEvent(Context context, OmtpVvmCarrierConfigHelper config,
@@ -116,7 +117,7 @@
             case CONFIG_REQUEST_STATUS_SUCCESS:
                 PhoneAccountHandle handle = PhoneAccountHandleConverter
                         .fromSubId(config.getSubId());
-                if (VoicemailChangePinDialogPreference.getDefaultOldPin(context, handle) == null) {
+                if (!VoicemailChangePinActivity.isDefaultOldPinSet(context, handle)) {
                     return false;
                 } else {
                     postError(context, config, PIN_NOT_SET);
@@ -125,6 +126,9 @@
             case CONFIG_DEFAULT_PIN_REPLACED:
                 postError(context, config, PIN_NOT_SET);
                 break;
+            case CONFIG_STATUS_SMS_TIME_OUT:
+                postError(context, config, STATUS_SMS_TIMEOUT);
+                break;
             default:
                 return false;
         }
@@ -136,8 +140,14 @@
         switch (event) {
             case DATA_NO_CONNECTION:
             case DATA_NO_CONNECTION_CELLULAR_REQUIRED:
+            case DATA_ALL_SOCKET_CONNECTION_FAILED:
                 postError(context, config, VMS_NO_CELLULAR);
                 break;
+            case DATA_SSL_INVALID_HOST_NAME:
+            case DATA_CANNOT_ESTABLISH_SSL_SESSION:
+            case DATA_IOE_ON_OPEN:
+                postError(context, config, VMS_TIMEOUT);
+                break;
             case DATA_CANNOT_RESOLVE_HOST_ON_NETWORK:
                 postError(context, config, VMS_DNS_FAILURE);
                 break;
@@ -165,18 +175,11 @@
             case DATA_AUTH_USER_IS_BLOCKED:
                 postError(context, config, USER_BLOCKED);
                 break;
-
-            case DATA_INVALID_PORT:
-            case DATA_SSL_INVALID_HOST_NAME:
-            case DATA_CANNOT_ESTABLISH_SSL_SESSION:
-            case DATA_IOE_ON_OPEN:
             case DATA_REJECTED_SERVER_RESPONSE:
             case DATA_INVALID_INITIAL_SERVER_RESPONSE:
             case DATA_SSL_EXCEPTION:
-            case DATA_ALL_SOCKET_CONNECTION_FAILED:
                 postError(context, config, IMAP_ERROR);
                 break;
-
             default:
                 return false;
         }
@@ -209,11 +212,15 @@
             case VVM3_VMG_TIMEOUT:
                 postError(context, config, VMG_TIMEOUT);
                 break;
-
             case VVM3_SUBSCRIBER_PROVISIONED:
                 postError(context, config, SERVICE_NOT_ACTIVATED);
+                break;
             case VVM3_SUBSCRIBER_BLOCKED:
                 postError(context, config, SUBSCRIBER_BLOCKED);
+                break;
+            case VVM3_SUBSCRIBER_UNKNOWN:
+                postError(context, config, SUBSCRIBER_UNKNOWN);
+                break;
             default:
                 return false;
         }
@@ -244,6 +251,7 @@
             case VMG_DB_ERROR:
             case VMG_COMMUNICATION_ERROR:
             case PIN_NOT_SET:
+            case SUBSCRIBER_UNKNOWN:
                 editor.setConfigurationState(errorCode);
                 break;
             case VMS_NO_CELLULAR:
diff --git a/src/com/android/phone/vvm/omtp/protocol/Vvm3Protocol.java b/src/com/android/phone/vvm/omtp/protocol/Vvm3Protocol.java
index b238c8d..c6dd434 100644
--- a/src/com/android/phone/vvm/omtp/protocol/Vvm3Protocol.java
+++ b/src/com/android/phone/vvm/omtp/protocol/Vvm3Protocol.java
@@ -22,19 +22,24 @@
 import android.os.Bundle;
 import android.telecom.PhoneAccountHandle;
 import android.telephony.SmsManager;
+import android.text.TextUtils;
 
 import com.android.phone.common.mail.MessagingException;
 import com.android.phone.settings.VisualVoicemailSettingsUtil;
-import com.android.phone.settings.VoicemailChangePinDialogPreference;
+import com.android.phone.settings.VoicemailChangePinActivity;
+import com.android.phone.vvm.omtp.ActivationTask;
 import com.android.phone.vvm.omtp.OmtpConstants;
 import com.android.phone.vvm.omtp.OmtpEvents;
 import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
+import com.android.phone.vvm.omtp.VisualVoicemailPreferences;
 import com.android.phone.vvm.omtp.VvmLog;
 import com.android.phone.vvm.omtp.imap.ImapHelper;
+import com.android.phone.vvm.omtp.imap.ImapHelper.InitializingException;
 import com.android.phone.vvm.omtp.sms.OmtpMessageSender;
 import com.android.phone.vvm.omtp.sms.StatusMessage;
 import com.android.phone.vvm.omtp.sms.Vvm3MessageSender;
-import com.android.phone.vvm.omtp.sync.VvmNetworkRequestCallback;
+import com.android.phone.vvm.omtp.sync.VvmNetworkRequest;
+import com.android.phone.vvm.omtp.sync.VvmNetworkRequest.NetworkWrapper;
 
 import java.io.IOException;
 import java.security.SecureRandom;
@@ -47,21 +52,34 @@
  */
 public class Vvm3Protocol extends VisualVoicemailProtocol {
 
-    private static String TAG = "Vvm3Protocol";
+    private static final String TAG = "Vvm3Protocol";
 
-    private static String IMAP_CHANGE_TUI_PWD_FORMAT = "CHANGE_TUI_PWD PWD=%1$s OLD_PWD=%2$s";
-    private static String IMAP_CHANGE_VM_LANG_FORMAT = "CHANGE_VM_LANG Lang=%1$s";
-    private static String IMAP_CLOSE_NUT = "CLOSE_NUT";
+    private static final String SMS_EVENT_UNRECOGNIZED = "UNRECOGNIZED";
+    private static final String SMS_EVENT_UNRECOGNIZED_CMD = "cmd";
+    private static final String SMS_EVENT_UNRECOGNIZED_STATUS = "STATUS";
+    private static final String DEFAULT_VMG_URL_KEY = "default_vmg_url";
 
-    private static String ISO639_Spanish = "es";
+    private static final String IMAP_CHANGE_TUI_PWD_FORMAT = "CHANGE_TUI_PWD PWD=%1$s OLD_PWD=%2$s";
+    private static final String IMAP_CHANGE_VM_LANG_FORMAT = "CHANGE_VM_LANG Lang=%1$s";
+    private static final String IMAP_CLOSE_NUT = "CLOSE_NUT";
+
+    private static final String ISO639_Spanish = "es";
+
+    /**
+     * For VVM3, if the STATUS SMS returns {@link StatusMessage#getProvisioningStatus()} of {@link
+     * OmtpConstants#SUBSCRIBER_UNKNOWN} and {@link StatusMessage#getReturnCode()} of this value,
+     * the user can self-provision visual voicemail service. For other response codes, the user must
+     * contact customer support to resolve the issue.
+     */
+    private static final String VVM3_UNKNOWN_SUBSCRIBER_CAN_SUBSCRIBE_RESPONSE_CODE = "2";
 
     // Default prompt level when using the telephone user interface.
     // Standard prompt when the user call into the voicemail, and no prompts when someone else is
     // leaving a voicemail.
-    private static String VVM3_VM_LANGUAGE_ENGLISH_STANDARD_NO_GUEST_PROMPTS = "5";
-    private static String VVM3_VM_LANGUAGE_SPANISH_STANDARD_NO_GUEST_PROMPTS = "6";
+    private static final String VVM3_VM_LANGUAGE_ENGLISH_STANDARD_NO_GUEST_PROMPTS = "5";
+    private static final String VVM3_VM_LANGUAGE_SPANISH_STANDARD_NO_GUEST_PROMPTS = "6";
 
-    private static final int PIN_LENGTH = 6;
+    private static final int DEFAULT_PIN_LENGTH = 6;
 
     @Override
     public void startActivation(OmtpVvmCarrierConfigHelper config) {
@@ -79,21 +97,35 @@
     }
 
     @Override
-    public void startProvisioning(PhoneAccountHandle phoneAccountHandle,
+    public boolean supportsProvisioning() {
+        return true;
+    }
+
+    @Override
+    public void startProvisioning(ActivationTask task, PhoneAccountHandle phoneAccountHandle,
             OmtpVvmCarrierConfigHelper config, StatusMessage message, Bundle data) {
         VvmLog.i(TAG, "start vvm3 provisioning");
         if (OmtpConstants.SUBSCRIBER_UNKNOWN.equals(message.getProvisioningStatus())) {
-            VvmLog.i(TAG, "Provisioning status: Unknown, subscribing");
-            new Vvm3Subscriber(phoneAccountHandle, config, data).subscribe();
+            VvmLog.i(TAG, "Provisioning status: Unknown");
+            if (VVM3_UNKNOWN_SUBSCRIBER_CAN_SUBSCRIBE_RESPONSE_CODE
+                    .equals(message.getReturnCode())) {
+                VvmLog.i(TAG, "Self provisioning available, subscribing");
+                new Vvm3Subscriber(task, phoneAccountHandle, config, data).subscribe();
+            } else {
+                config.handleEvent(OmtpEvents.VVM3_SUBSCRIBER_UNKNOWN);
+            }
         } else if (OmtpConstants.SUBSCRIBER_NEW.equals(message.getProvisioningStatus())) {
             VvmLog.i(TAG, "setting up new user");
-            VisualVoicemailSettingsUtil.setVisualVoicemailCredentialsFromStatusMessage(
-                    config.getContext(), phoneAccountHandle, message);
+            // Save the IMAP credentials in preferences so they are persistent and can be retrieved.
+            VisualVoicemailPreferences prefs =
+                    new VisualVoicemailPreferences(config.getContext(), phoneAccountHandle);
+            message.putStatus(prefs.edit()).apply();
+
             startProvisionNewUser(phoneAccountHandle, config, message);
         } else if (OmtpConstants.SUBSCRIBER_PROVISIONED.equals(message.getProvisioningStatus())) {
             VvmLog.i(TAG, "User provisioned but not activated, disabling VVM");
             VisualVoicemailSettingsUtil
-                    .setVisualVoicemailEnabled(config.getContext(), phoneAccountHandle, false);
+                    .setEnabled(config.getContext(), phoneAccountHandle, false);
         } else if (OmtpConstants.SUBSCRIBER_BLOCKED.equals(message.getProvisioningStatus())) {
             VvmLog.i(TAG, "User blocked");
             config.handleEvent(OmtpEvents.VVM3_SUBSCRIBER_BLOCKED);
@@ -125,30 +157,40 @@
         return super.getCommand(command);
     }
 
-    private void startProvisionNewUser(PhoneAccountHandle phoneAccountHandle,
-            OmtpVvmCarrierConfigHelper config, StatusMessage message) {
-        new Vvm3ProvisioningNetworkRequestCallback(config, phoneAccountHandle, message)
-                .requestNetwork();
+    @Override
+    public Bundle translateStatusSmsBundle(OmtpVvmCarrierConfigHelper config, String event,
+            Bundle data) {
+        // UNRECOGNIZED?cmd=STATUS is the response of a STATUS request when the user is provisioned
+        // with iPhone visual voicemail without VoLTE. Translate it into an unprovisioned status
+        // so provisioning can be done.
+        if (!SMS_EVENT_UNRECOGNIZED.equals(event)) {
+            return null;
+        }
+        if (!SMS_EVENT_UNRECOGNIZED_STATUS.equals(data.getString(SMS_EVENT_UNRECOGNIZED_CMD))) {
+            return null;
+        }
+        Bundle bundle = new Bundle();
+        bundle.putString(OmtpConstants.PROVISIONING_STATUS, OmtpConstants.SUBSCRIBER_UNKNOWN);
+        bundle.putString(OmtpConstants.RETURN_CODE,
+                VVM3_UNKNOWN_SUBSCRIBER_CAN_SUBSCRIBE_RESPONSE_CODE);
+        String vmgUrl = config.getString(DEFAULT_VMG_URL_KEY);
+        if (TextUtils.isEmpty(vmgUrl)) {
+            VvmLog.e(TAG, "Unable to translate STATUS SMS: VMG URL is not set in config");
+            return null;
+        }
+        bundle.putString(Vvm3Subscriber.VMG_URL_KEY, vmgUrl);
+        VvmLog.i(TAG, "UNRECOGNIZED?cmd=STATUS translated into unprovisioned STATUS SMS");
+        return bundle;
     }
 
-    private static class Vvm3ProvisioningNetworkRequestCallback extends VvmNetworkRequestCallback {
+    private void startProvisionNewUser(PhoneAccountHandle phoneAccountHandle,
+            OmtpVvmCarrierConfigHelper config, StatusMessage message) {
+        try (NetworkWrapper wrapper = VvmNetworkRequest.getNetwork(config, phoneAccountHandle)) {
+            Network network = wrapper.get();
 
-        private final OmtpVvmCarrierConfigHelper mConfig;
-        private final StatusMessage mMessage;
-
-        public Vvm3ProvisioningNetworkRequestCallback(OmtpVvmCarrierConfigHelper config,
-                PhoneAccountHandle phoneAccountHandle, StatusMessage message) {
-            super(config, phoneAccountHandle);
-            mConfig = config;
-            mMessage = message;
-        }
-
-        @Override
-        public void onAvailable(Network network) {
-            super.onAvailable(network);
             VvmLog.i(TAG, "new user: network available");
-            ImapHelper helper = new ImapHelper(mContext, mPhoneAccount, network);
-            try {
+            try (ImapHelper helper = new ImapHelper(config.getContext(), phoneAccountHandle,
+                network)) {
                 // VVM3 has inconsistent error language code to OMTP. Just issue a raw command
                 // here.
                 // TODO(b/29082671): use LocaleList
@@ -164,68 +206,83 @@
                 }
                 VvmLog.i(TAG, "new user: language set");
 
-                if (setPin(helper)) {
+                if (setPin(config.getContext(), phoneAccountHandle, helper, message)) {
                     // Only close new user tutorial if the PIN has been changed.
                     helper.closeNewUserTutorial();
                     VvmLog.i(TAG, "new user: NUT closed");
 
-                    mConfig.requestStatus();
+                    config.requestStatus();
                 }
-            } catch (MessagingException | IOException e) {
-                helper.handleEvent(OmtpEvents.VVM3_NEW_USER_SETUP_FAILED);
+            } catch (InitializingException | MessagingException | IOException e) {
+                config.handleEvent(OmtpEvents.VVM3_NEW_USER_SETUP_FAILED);
                 VvmLog.e(TAG, e.toString());
-            } finally {
-                helper.close();
             }
 
         }
 
-        private boolean setPin(ImapHelper helper) throws IOException, MessagingException {
-            String defaultPin = getDefaultPin();
-            if (defaultPin == null) {
-                VvmLog.i(TAG, "cannot generate default PIN");
-                return false;
-            }
+    }
 
-            if (VoicemailChangePinDialogPreference.getDefaultOldPin(mContext, mPhoneAccount)
-                    != null) {
-                // The pin was already set
-                VvmLog.i(TAG, "PIN already set");
-                return true;
-            }
-            String newPin = generatePin();
-            if (helper.changePin(defaultPin, newPin) == OmtpConstants.CHANGE_PIN_SUCCESS) {
-                VoicemailChangePinDialogPreference
-                        .setDefaultOldPIN(mContext, mPhoneAccount, newPin);
-                helper.handleEvent(OmtpEvents.CONFIG_DEFAULT_PIN_REPLACED);
-            }
-            VvmLog.i(TAG, "new user: PIN set");
+
+    private static boolean setPin(Context context, PhoneAccountHandle phoneAccountHandle,
+            ImapHelper helper, StatusMessage message)
+            throws IOException, MessagingException {
+        String defaultPin = getDefaultPin(message);
+        if (defaultPin == null) {
+            VvmLog.i(TAG, "cannot generate default PIN");
+            return false;
+        }
+
+        if (VoicemailChangePinActivity.isDefaultOldPinSet(context, phoneAccountHandle)) {
+            // The pin was already set
+            VvmLog.i(TAG, "PIN already set");
             return true;
         }
+        String newPin = generatePin(getMinimumPinLength(context, phoneAccountHandle));
+        if (helper.changePin(defaultPin, newPin) == OmtpConstants.CHANGE_PIN_SUCCESS) {
+            VoicemailChangePinActivity.setDefaultOldPIN(context, phoneAccountHandle, newPin);
+            helper.handleEvent(OmtpEvents.CONFIG_DEFAULT_PIN_REPLACED);
+        }
+        VvmLog.i(TAG, "new user: PIN set");
+        return true;
+    }
 
-        @Nullable
-        private String getDefaultPin() {
-            // The IMAP username is [phone number]@example.com
-            String username = mMessage.getImapUserName();
-            try {
-                String number = username.substring(0, username.indexOf('@'));
-                if (number.length() < 4) {
-                    VvmLog.e(TAG, "unable to extract number from IMAP username");
-                    return null;
-                }
-                return "1" + number.substring(number.length() - 4);
-            } catch (StringIndexOutOfBoundsException e) {
+    @Nullable
+    private static String getDefaultPin(StatusMessage message) {
+        // The IMAP username is [phone number]@example.com
+        String username = message.getImapUserName();
+        try {
+            String number = username.substring(0, username.indexOf('@'));
+            if (number.length() < 4) {
                 VvmLog.e(TAG, "unable to extract number from IMAP username");
                 return null;
             }
-
+            return "1" + number.substring(number.length() - 4);
+        } catch (StringIndexOutOfBoundsException e) {
+            VvmLog.e(TAG, "unable to extract number from IMAP username");
+            return null;
         }
+
     }
 
-    private static String generatePin() {
+    private static int getMinimumPinLength(Context context, PhoneAccountHandle phoneAccountHandle) {
+        VisualVoicemailPreferences preferences = new VisualVoicemailPreferences(context,
+                phoneAccountHandle);
+        // The OMTP pin length format is {min}-{max}
+        String[] lengths = preferences.getString(OmtpConstants.TUI_PASSWORD_LENGTH, "").split("-");
+        if (lengths.length == 2) {
+            try {
+                return Integer.parseInt(lengths[0]);
+            } catch (NumberFormatException e) {
+                return DEFAULT_PIN_LENGTH;
+            }
+        }
+        return DEFAULT_PIN_LENGTH;
+    }
+
+    private static String generatePin(int length) {
         SecureRandom random = new SecureRandom();
-        // TODO(b/29102412): generate base on the length requirement from the server
-        return String.format("%010d", Math.abs(random.nextLong())).substring(0, PIN_LENGTH);
+        return String.format(Locale.US, "%010d", Math.abs(random.nextLong()))
+                .substring(0, length);
 
     }
 }
diff --git a/src/com/android/phone/vvm/omtp/protocol/Vvm3Subscriber.java b/src/com/android/phone/vvm/omtp/protocol/Vvm3Subscriber.java
index 980701e..7562275 100644
--- a/src/com/android/phone/vvm/omtp/protocol/Vvm3Subscriber.java
+++ b/src/com/android/phone/vvm/omtp/protocol/Vvm3Subscriber.java
@@ -26,12 +26,13 @@
 import android.text.Spanned;
 import android.text.style.URLSpan;
 import android.util.ArrayMap;
-
 import com.android.phone.Assert;
+import com.android.phone.vvm.omtp.ActivationTask;
 import com.android.phone.vvm.omtp.OmtpEvents;
 import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
 import com.android.phone.vvm.omtp.VvmLog;
-import com.android.phone.vvm.omtp.sync.VvmNetworkRequestCallback;
+import com.android.phone.vvm.omtp.sync.VvmNetworkRequest;
+import com.android.phone.vvm.omtp.sync.VvmNetworkRequest.NetworkWrapper;
 import com.android.volley.AuthFailureError;
 import com.android.volley.Request;
 import com.android.volley.RequestQueue;
@@ -39,7 +40,6 @@
 import com.android.volley.toolbox.RequestFuture;
 import com.android.volley.toolbox.StringRequest;
 import com.android.volley.toolbox.Volley;
-
 import java.io.IOException;
 import java.net.CookieHandler;
 import java.net.CookieManager;
@@ -91,7 +91,7 @@
             + "  </MessageBody>"
             + "</VMGVVMRequest>";
 
-    private static final String VMG_URL_KEY = "vmg_url";
+    static final String VMG_URL_KEY = "vmg_url";
 
     // Self provisioning POST key/values. VVM3 API 2.1.0 12.3
     private static final String SPG_VZW_MDN_PARAM = "VZW_MDN";
@@ -109,6 +109,7 @@
 
     private static final int REQUEST_TIMEOUT_SECONDS = 30;
 
+    private final ActivationTask mTask;
     private final PhoneAccountHandle mHandle;
     private final OmtpVvmCarrierConfigHelper mHelper;
     private final Bundle mData;
@@ -134,9 +135,10 @@
     }
 
     @WorkerThread
-    public Vvm3Subscriber(PhoneAccountHandle handle, OmtpVvmCarrierConfigHelper helper,
-            Bundle data) {
+    public Vvm3Subscriber(ActivationTask task, PhoneAccountHandle handle,
+            OmtpVvmCarrierConfigHelper helper, Bundle data) {
         Assert.isNotMainThread();
+        mTask = task;
         mHandle = handle;
         mHelper = helper;
         mData = data;
@@ -153,7 +155,14 @@
         // Cellular data is required to subscribe.
         // processSubscription() is called after network is available.
         VvmLog.i(TAG, "Subscribing");
-        new Vvm3ProvisioningNetworkRequestCallback(mHelper, mHandle).requestNetwork();
+
+        try (NetworkWrapper wrapper = VvmNetworkRequest.getNetwork(mHelper, mHandle)) {
+            Network network = wrapper.get();
+            VvmLog.d(TAG, "provisioning: network available");
+            mRequestQueue = Volley
+                    .newRequestQueue(mHelper.getContext(), new NetworkSpecifiedHurlStack(network));
+            processSubscription();
+        }
     }
 
     private void processSubscription() {
@@ -164,6 +173,7 @@
             clickSubscribeLink(subscribeLink);
         } catch (ProvisioningException e) {
             VvmLog.e(TAG, e.toString());
+            mTask.fail();
         }
     }
 
@@ -217,13 +227,16 @@
         StringRequest stringRequest = new StringRequest(Request.Method.POST,
                 subscribeLink, future, future);
         mRequestQueue.add(stringRequest);
-
         try {
+            // A new STATUS SMS will be sent after this request.
             future.get(REQUEST_TIMEOUT_SECONDS, TimeUnit.SECONDS);
-        } catch (InterruptedException | ExecutionException | TimeoutException e) {
+        } catch (TimeoutException | ExecutionException | InterruptedException e) {
             mHelper.handleEvent(OmtpEvents.VVM3_SPG_CONNECTION_FAILED);
             throw new ProvisioningException(e.toString());
         }
+        // It could take very long for the STATUS SMS to return. Waiting for it is unreliable.
+        // Just leave the CONFIG STATUS as CONFIGURING and end the task. The user can always
+        // manually retry if it took too long.
     }
 
     private String vvm3XmlRequest(String operation) throws ProvisioningException {
@@ -262,13 +275,15 @@
     private String findSubscribeLink(String response) throws ProvisioningException {
         Spanned doc = Html.fromHtml(response, Html.FROM_HTML_MODE_LEGACY);
         URLSpan[] spans = doc.getSpans(0, doc.length(), URLSpan.class);
+        StringBuilder fulltext = new StringBuilder();
         for (URLSpan span : spans) {
             String text = doc.subSequence(doc.getSpanStart(span), doc.getSpanEnd(span)).toString();
             if (BASIC_SUBSCRIBE_LINK_TEXT.equals(text)) {
                 return span.getURL();
             }
+            fulltext.append(text);
         }
-        throw new ProvisioningException("Subscribe link not found");
+        throw new ProvisioningException("Subscribe link not found: " + fulltext);
     }
 
     private String createTransactionId() {
@@ -284,23 +299,6 @@
         throw new ProvisioningException("Tag " + tag + " not found in xml response");
     }
 
-    private class Vvm3ProvisioningNetworkRequestCallback extends VvmNetworkRequestCallback {
-
-        public Vvm3ProvisioningNetworkRequestCallback(OmtpVvmCarrierConfigHelper config,
-                PhoneAccountHandle phoneAccountHandle) {
-            super(config, phoneAccountHandle);
-        }
-
-        @Override
-        public void onAvailable(Network network) {
-            super.onAvailable(network);
-            VvmLog.d(TAG, "provisioning: network available");
-            mRequestQueue = Volley
-                    .newRequestQueue(mContext, new NetworkSpecifiedHurlStack(network));
-            processSubscription();
-        }
-    }
-
     private static class NetworkSpecifiedHurlStack extends HurlStack {
 
         private final Network mNetwork;
diff --git a/src/com/android/phone/vvm/omtp/scheduling/BaseTask.java b/src/com/android/phone/vvm/omtp/scheduling/BaseTask.java
new file mode 100644
index 0000000..8b3e88e
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/scheduling/BaseTask.java
@@ -0,0 +1,204 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import android.annotation.CallSuper;
+import android.annotation.MainThread;
+import android.annotation.WorkerThread;
+import android.content.Context;
+import android.content.Intent;
+import android.os.SystemClock;
+import android.support.annotation.NonNull;
+
+import com.android.phone.Assert;
+import com.android.phone.NeededForTesting;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Provides common utilities for task implementations, such as execution time and managing {@link
+ * Policy}
+ */
+public abstract class BaseTask implements Task {
+
+    private static final String EXTRA_SUB_ID = "extra_sub_id";
+
+    private Context mContext;
+
+    private int mId;
+    private int mSubId = TaskId.SUB_ID_ANY;
+
+    private boolean mHasStarted;
+    private volatile boolean mHasFailed;
+
+    @NonNull
+    private final List<Policy> mPolicies = new ArrayList<>();
+
+    private long mExecutionTime;
+
+    private static Clock sClock = new Clock();
+
+    protected BaseTask(int id) {
+        mId = id;
+        mExecutionTime = getTimeMillis();
+    }
+
+    /**
+     * Modify the task ID to prevent arbitrary task from executing. Can only be called before {@link
+     * #onCreate(Context, Intent, int, int)} returns.
+     */
+    @MainThread
+    public void setId(int id) {
+        Assert.isMainThread();
+        mId = id;
+    }
+
+    @MainThread
+    public boolean hasStarted() {
+        Assert.isMainThread();
+        return mHasStarted;
+    }
+
+    @MainThread
+    public boolean hasFailed() {
+        Assert.isMainThread();
+        return mHasFailed;
+    }
+
+    public Context getContext() {
+        return mContext;
+    }
+
+    public int getSubId() {
+        return mSubId;
+    }
+    /**
+     * Should be call in the constructor or {@link Policy#onCreate(BaseTask, Intent, int, int)} will
+     * be missed.
+     */
+    @MainThread
+    public BaseTask addPolicy(Policy policy) {
+        Assert.isMainThread();
+        mPolicies.add(policy);
+        return this;
+    }
+
+    /**
+     * Indicate the task has failed. {@link Policy#onFail()} will be triggered once the execution
+     * ends. This mechanism is used by policies for actions such as determining whether to schedule
+     * a retry. Must be call inside {@link #onExecuteInBackgroundThread()}
+     */
+    @WorkerThread
+    public void fail() {
+        Assert.isNotMainThread();
+        mHasFailed = true;
+    }
+
+    @MainThread
+    public void setExecutionTime(long timeMillis) {
+        Assert.isMainThread();
+        mExecutionTime = timeMillis;
+    }
+
+    public long getTimeMillis() {
+        return sClock.getTimeMillis();
+    }
+
+    /**
+     * Creates an intent that can be used to restart the current task. Derived class should build
+     * their intent upon this.
+     */
+    public Intent createRestartIntent() {
+        return createIntent(getContext(), this.getClass(), mSubId);
+    }
+
+    /**
+     * Creates an intent that can be used to start the {@link TaskSchedulerService}. Derived class
+     * should build their intent upon this.
+     */
+    public static Intent createIntent(Context context, Class<? extends BaseTask> task, int subId) {
+        Intent intent = TaskSchedulerService.createIntent(context, task);
+        intent.putExtra(EXTRA_SUB_ID, subId);
+        return intent;
+    }
+
+    @Override
+    public TaskId getId() {
+        return new TaskId(mId, mSubId);
+    }
+
+    @Override
+    @CallSuper
+    public void onCreate(Context context, Intent intent, int flags, int startId) {
+        mContext = context;
+        mSubId = intent.getIntExtra(EXTRA_SUB_ID, TaskId.SUB_ID_ANY);
+        for (Policy policy : mPolicies) {
+            policy.onCreate(this, intent, flags, startId);
+        }
+    }
+
+    @Override
+    public long getReadyInMilliSeconds() {
+        return mExecutionTime - getTimeMillis();
+    }
+
+    @Override
+    @CallSuper
+    public void onBeforeExecute() {
+        for (Policy policy : mPolicies) {
+            policy.onBeforeExecute();
+        }
+        mHasStarted = true;
+    }
+
+    @Override
+    public void onCompleted() {
+        if (mHasFailed) {
+            for (Policy policy : mPolicies) {
+                policy.onFail();
+            }
+        }
+
+        for (Policy policy : mPolicies) {
+            policy.onCompleted();
+        }
+    }
+
+    @Override
+    public void onDuplicatedTaskAdded(Task task) {
+        for (Policy policy : mPolicies) {
+            policy.onDuplicatedTaskAdded();
+        }
+    }
+
+    @NeededForTesting
+    static class Clock {
+
+        public long getTimeMillis() {
+            return SystemClock.elapsedRealtime();
+        }
+    }
+
+    /**
+     * Used to replace the clock with an deterministic clock
+     */
+    @NeededForTesting
+    static void setClockForTesting(Clock clock) {
+        sClock = clock;
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/scheduling/BlockerTask.java b/src/com/android/phone/vvm/omtp/scheduling/BlockerTask.java
new file mode 100644
index 0000000..9d91828
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/scheduling/BlockerTask.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import android.content.Context;
+import android.content.Intent;
+
+import com.android.phone.vvm.omtp.VvmLog;
+
+/**
+ * Task to block another task of the same ID from being queued for a certain amount of time.
+ */
+public class BlockerTask extends BaseTask {
+
+    private static final String TAG = "BlockerTask";
+
+    public static final String EXTRA_TASK_ID = "extra_task_id";
+    public static final String EXTRA_BLOCK_FOR_MILLIS = "extra_block_for_millis";
+
+    public BlockerTask() {
+        super(TASK_INVALID);
+    }
+
+    @Override
+    public void onCreate(Context context, Intent intent, int flags, int startId) {
+        super.onCreate(context, intent, flags, startId);
+        setId(intent.getIntExtra(EXTRA_TASK_ID, TASK_INVALID));
+        setExecutionTime(getTimeMillis() + intent.getIntExtra(EXTRA_BLOCK_FOR_MILLIS, 0));
+    }
+
+    @Override
+    public void onExecuteInBackgroundThread() {
+        // Do nothing.
+    }
+
+    @Override
+    public void onDuplicatedTaskAdded(Task task) {
+        VvmLog
+            .v(TAG, task.toString() + "blocked, " + getReadyInMilliSeconds() + "millis remaining");
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/scheduling/MinimalIntervalPolicy.java b/src/com/android/phone/vvm/omtp/scheduling/MinimalIntervalPolicy.java
new file mode 100644
index 0000000..8bb22ca
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/scheduling/MinimalIntervalPolicy.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import android.content.Intent;
+
+import com.android.phone.vvm.omtp.scheduling.Task.TaskId;
+
+/**
+ * If a task with this policy succeeds, a {@link BlockerTask} with the same {@link TaskId} of the
+ * task will be queued immediately, preventing the same task from running for a certain amount of
+ * time.
+ */
+public class MinimalIntervalPolicy implements Policy {
+
+    BaseTask mTask;
+    TaskId mId;
+    int mBlockForMillis;
+
+    public MinimalIntervalPolicy(int blockForMillis) {
+        mBlockForMillis = blockForMillis;
+    }
+
+    @Override
+    public void onCreate(BaseTask task, Intent intent, int flags, int startId) {
+        mTask = task;
+        mId = mTask.getId();
+    }
+
+    @Override
+    public void onBeforeExecute() {
+
+    }
+
+    @Override
+    public void onCompleted() {
+        if (!mTask.hasFailed()) {
+            Intent intent = mTask
+                    .createIntent(mTask.getContext(), BlockerTask.class, mId.subId);
+            intent.putExtra(BlockerTask.EXTRA_TASK_ID, mId.id);
+            intent.putExtra(BlockerTask.EXTRA_BLOCK_FOR_MILLIS, mBlockForMillis);
+            mTask.getContext().startService(intent);
+        }
+    }
+
+    @Override
+    public void onFail() {
+
+    }
+
+    @Override
+    public void onDuplicatedTaskAdded() {
+
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/scheduling/Policy.java b/src/com/android/phone/vvm/omtp/scheduling/Policy.java
new file mode 100644
index 0000000..fcb01b8
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/scheduling/Policy.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import android.content.Intent;
+
+/**
+ * A set of listeners managed by {@link BaseTask} for common behaviors such as retrying. Call {@link
+ * BaseTask#addPolicy(Policy)} to add a policy.
+ */
+public interface Policy {
+
+    void onCreate(BaseTask task, Intent intent, int flags, int startId);
+
+    void onBeforeExecute();
+
+    void onCompleted();
+
+    void onFail();
+
+    void onDuplicatedTaskAdded();
+}
diff --git a/src/com/android/phone/vvm/omtp/scheduling/PostponePolicy.java b/src/com/android/phone/vvm/omtp/scheduling/PostponePolicy.java
new file mode 100644
index 0000000..f23d7f7
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/scheduling/PostponePolicy.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import android.content.Intent;
+
+import com.android.phone.vvm.omtp.VvmLog;
+
+/**
+ * A task with Postpone policy will not be executed immediately. It will wait for a while and if a
+ * duplicated task is queued during the duration, the task will be postponed further. The task will
+ * only be executed if no new task was added in postponeMillis. Useful to batch small tasks in quick
+ * succession together.
+ */
+public class PostponePolicy implements Policy {
+
+    private static final String TAG = "PostponePolicy";
+
+    private final int mPostponeMillis;
+    private BaseTask mTask;
+
+    public PostponePolicy(int postponeMillis) {
+        mPostponeMillis = postponeMillis;
+    }
+
+    @Override
+    public void onCreate(BaseTask task, Intent intent, int flags, int startId) {
+        mTask = task;
+        mTask.setExecutionTime(mTask.getTimeMillis() + mPostponeMillis);
+    }
+
+    @Override
+    public void onBeforeExecute() {
+        // Do nothing
+    }
+
+    @Override
+    public void onCompleted() {
+        // Do nothing
+    }
+
+    @Override
+    public void onFail() {
+        // Do nothing
+    }
+
+    @Override
+    public void onDuplicatedTaskAdded() {
+        if (mTask.hasStarted()) {
+            return;
+        }
+        VvmLog.d(TAG, "postponing " + mTask);
+        mTask.setExecutionTime(mTask.getTimeMillis() + mPostponeMillis);
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/scheduling/RetryPolicy.java b/src/com/android/phone/vvm/omtp/scheduling/RetryPolicy.java
new file mode 100644
index 0000000..3c2274f
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/scheduling/RetryPolicy.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import android.content.Intent;
+
+import com.android.phone.vvm.omtp.VvmLog;
+
+/**
+ * A task with this policy will automatically re-queue itself if {@link BaseTask#fail()} has been
+ * called during {@link BaseTask#onExecuteInBackgroundThread()}. A task will be retried at most
+ * <code>retryLimit</code> times and with a <code>retryDelayMillis</code> interval in between.
+ */
+public class RetryPolicy implements Policy {
+
+    private static final String TAG = "RetryPolicy";
+    private static final String EXTRA_RETRY_COUNT = "extra_retry_count";
+
+    private final int mRetryLimit;
+    private final int mRetryDelayMillis;
+
+    private BaseTask mTask;
+
+    private int mRetryCount;
+    private boolean mFailed;
+
+    public RetryPolicy(int retryLimit, int retryDelayMillis) {
+        mRetryLimit = retryLimit;
+        mRetryDelayMillis = retryDelayMillis;
+    }
+
+    @Override
+    public void onCreate(BaseTask task, Intent intent, int flags, int startId) {
+        mTask = task;
+        mRetryCount = intent.getIntExtra(EXTRA_RETRY_COUNT, 0);
+        if (mRetryCount > 0) {
+            VvmLog.d(TAG, "retry #" + mRetryCount + " for " + mTask + " queued, executing in "
+                    + mRetryDelayMillis);
+            mTask.setExecutionTime(mTask.getTimeMillis() + mRetryDelayMillis);
+        }
+    }
+
+    @Override
+    public void onBeforeExecute() {
+
+    }
+
+    @Override
+    public void onCompleted() {
+        if (!mFailed) {
+            return;
+        }
+        if (mRetryCount >= mRetryLimit) {
+            VvmLog.d(TAG, "Retry limit for " + mTask + " reached");
+            return;
+        }
+
+        Intent intent = mTask.createRestartIntent();
+        intent.putExtra(EXTRA_RETRY_COUNT, mRetryCount + 1);
+
+        mTask.getContext().startService(intent);
+    }
+
+    @Override
+    public void onFail() {
+        mFailed = true;
+    }
+
+    @Override
+    public void onDuplicatedTaskAdded() {
+
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/scheduling/Task.java b/src/com/android/phone/vvm/omtp/scheduling/Task.java
new file mode 100644
index 0000000..68dbad9
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/scheduling/Task.java
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import android.annotation.MainThread;
+import android.annotation.WorkerThread;
+import android.content.Context;
+import android.content.Intent;
+
+import java.util.Objects;
+
+/**
+ * A task for {@link TaskSchedulerService} to execute. Since the task is sent through a intent to
+ * the scheduler, The task must be constructable with the intent. Specifically, It must have a
+ * constructor with zero arguments, and have all relevant data packed inside the intent. Use {@link
+ * TaskSchedulerService#createIntent(Context, Class)} to create a intent that will construct the
+ * Task.
+ *
+ * <p>Only {@link #onExecuteInBackgroundThread()} is run on the worker thread.
+ */
+public interface Task {
+
+    /**
+     * TaskId to indicate it has not be set. If a task does not provide a default TaskId it should
+     * be set before {@link Task#onCreate(Context, Intent, int, int) returns}
+     */
+    int TASK_INVALID = -1;
+
+    /**
+     * TaskId to indicate it should always be queued regardless of duplicates. {@link
+     * Task#onDuplicatedTaskAdded(Task)} will never be called on tasks with this TaskId.
+     */
+    int TASK_ALLOW_DUPLICATES = -2;
+
+    int TASK_UPLOAD = 1;
+    int TASK_SYNC = 2;
+    int TASK_ACTIVATION = 3;
+
+    /**
+     * Used to differentiate between types of tasks. If a task with the same TaskId is already in
+     * the queue the new task will be rejected.
+     */
+    class TaskId {
+
+        /**
+         * Special subId value to indicate unspecified subId. Having SUB_ID_ANY does NOT prevent
+         * task on other subId from executing.
+         */
+        public static final int SUB_ID_ANY = -1;
+
+        /**
+         * Indicates the operation type of the task.
+         */
+        public final int id;
+        /**
+         * Same operation for a different subId is allowed. subId is used to differentiate phone
+         * accounts in multi-SIM scenario. For example, each SIM can queue a sync task for their
+         * own.
+         */
+        public final int subId;
+
+        public TaskId(int id, int subId) {
+            this.id = id;
+            this.subId = subId;
+        }
+
+        @Override
+        public boolean equals(Object object) {
+            if (!(object instanceof TaskId)) {
+                return false;
+            }
+            TaskId other = (TaskId) object;
+            return id == other.id && subId == other.subId;
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(id, subId);
+        }
+    }
+
+    TaskId getId();
+
+    @MainThread
+    void onCreate(Context context, Intent intent, int flags, int startId);
+
+    /**
+     * @return number of milliSeconds the scheduler should wait before running this task. A value
+     * less than {@link TaskSchedulerService#READY_TOLERANCE_MILLISECONDS} will be considered ready.
+     * If no tasks are ready, the scheduler will sleep for this amount of time before doing another
+     * check (it will still wake if a new task is added). The first task in the queue that is ready
+     * will be executed.
+     */
+    @MainThread
+    long getReadyInMilliSeconds();
+
+    /**
+     * Called on the main thread when the scheduler is about to send the task into the worker
+     * thread, calling {@link #onExecuteInBackgroundThread()}
+     */
+    @MainThread
+    void onBeforeExecute();
+
+    /**
+     * The actual payload of the task, executed on the worker thread.
+     */
+    @WorkerThread
+    void onExecuteInBackgroundThread();
+
+    /**
+     * Called on the main thread when {@link #onExecuteInBackgroundThread()} has finished or thrown
+     * an uncaught exception. The task is already removed from the queue at this point, and a same
+     * task can be queued again.
+     */
+    @MainThread
+    void onCompleted();
+
+    /**
+     * Another task with the same TaskId has been added. Necessary data can be retrieved from the
+     * other task, and after this returns the task will be discarded.
+     */
+    @MainThread
+    void onDuplicatedTaskAdded(Task task);
+}
diff --git a/src/com/android/phone/vvm/omtp/scheduling/TaskSchedulerService.java b/src/com/android/phone/vvm/omtp/scheduling/TaskSchedulerService.java
new file mode 100644
index 0000000..a965795
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/scheduling/TaskSchedulerService.java
@@ -0,0 +1,344 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import android.annotation.MainThread;
+import android.annotation.Nullable;
+import android.annotation.WorkerThread;
+import android.app.Service;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Binder;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.Message;
+import android.os.PowerManager;
+import android.os.PowerManager.WakeLock;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.phone.Assert;
+import com.android.phone.NeededForTesting;
+import com.android.phone.vvm.omtp.VvmLog;
+import com.android.phone.vvm.omtp.scheduling.Task.TaskId;
+
+import java.util.ArrayDeque;
+import java.util.Queue;
+
+/**
+ * A service to queue and run {@link Task} on a worker thread. Only one task will be ran at a time,
+ * and same task cannot exist in the queue at the same time. The service will be started when a
+ * intent is received, and stopped when there are no more tasks in the queue.
+ */
+public class TaskSchedulerService extends Service {
+
+    private static final String TAG = "TaskSchedulerService";
+
+    private static final int READY_TOLERANCE_MILLISECONDS = 100;
+    /**
+     * When there are no more tasks to be run the service should be stopped. But when all tasks has
+     * finished there might still be more tasks in the message queue waiting to be processed,
+     * especially the ones submitted in {@link Task#onCompleted()}. Wait for a while before stopping
+     * the service to make sure there are no pending messages.
+     */
+    private static final int STOP_DELAY_MILLISECONDS = 5_000;
+    private static final String EXTRA_CLASS_NAME = "extra_class_name";
+
+    private static final String WAKE_LOCK_TAG = "TaskSchedulerService_wakelock";
+
+    // The thread to run tasks on
+    private volatile WorkerThreadHandler mWorkerThreadHandler;
+
+    private Context mContext = this;
+    /**
+     * Used by tests to turn task handling into a single threaded process by calling {@link
+     * Handler#handleMessage(Message)} directly
+     */
+    private MessageSender mMessageSender = new MessageSender();
+
+    private MainThreadHandler mMainThreadHandler;
+
+    private WakeLock mWakeLock;
+
+    /**
+     * Main thread only, access through {@link #getTasks()}
+     */
+    private final Queue<Task> mTasks = new ArrayDeque<>();
+    private boolean mWorkerThreadIsBusy = false;
+
+    private final Runnable mStopServiceWithDelay = new Runnable() {
+        @Override
+        public void run() {
+            VvmLog.d(TAG, "Stopping service");
+            stopSelf();
+        }
+    };
+    /**
+     * Should attempt to run the next task when a task has finished or been added.
+     */
+    private boolean mTaskAutoRunDisabledForTesting = false;
+
+    @VisibleForTesting
+    final class WorkerThreadHandler extends Handler {
+
+        public WorkerThreadHandler(Looper looper) {
+            super(looper);
+        }
+
+        @Override
+        @WorkerThread
+        public void handleMessage(Message msg) {
+            Assert.isNotMainThread();
+            Task task = (Task) msg.obj;
+            try {
+                VvmLog.v(TAG, "executing task " + task);
+                task.onExecuteInBackgroundThread();
+            } catch (Throwable throwable) {
+                VvmLog.e(TAG, "Exception while executing task " + task + ":" + throwable);
+            }
+
+            Message schedulerMessage = mMainThreadHandler.obtainMessage();
+            schedulerMessage.obj = task;
+            mMessageSender.send(schedulerMessage);
+        }
+    }
+
+    @VisibleForTesting
+    final class MainThreadHandler extends Handler {
+
+        public MainThreadHandler(Looper looper) {
+            super(looper);
+        }
+
+        @Override
+        @MainThread
+        public void handleMessage(Message msg) {
+            Assert.isMainThread();
+            Task task = (Task) msg.obj;
+            getTasks().remove(task);
+            task.onCompleted();
+            mWorkerThreadIsBusy = false;
+            maybeRunNextTask();
+        }
+    }
+
+    @Override
+    @MainThread
+    public void onCreate() {
+        super.onCreate();
+        mWakeLock = getSystemService(PowerManager.class)
+                .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, WAKE_LOCK_TAG);
+        mWakeLock.acquire();
+        HandlerThread thread = new HandlerThread("VvmTaskSchedulerService");
+        thread.start();
+
+        mWorkerThreadHandler = new WorkerThreadHandler(thread.getLooper());
+        mMainThreadHandler = new MainThreadHandler(Looper.getMainLooper());
+    }
+
+    @Override
+    public void onDestroy() {
+        mWorkerThreadHandler.getLooper().quit();
+        mWakeLock.release();
+    }
+
+    @Override
+    @MainThread
+    public int onStartCommand(@Nullable Intent intent, int flags, int startId) {
+        Assert.isMainThread();
+        Task task = createTask(intent, flags, startId);
+        if (task == null) {
+            VvmLog.e(TAG, "cannot create task form intent");
+        } else {
+            addTask(task);
+        }
+        // STICKY means the service will be automatically restarted will the last intent if it is
+        // killed.
+        return START_NOT_STICKY;
+    }
+
+    @MainThread
+    @VisibleForTesting
+    void addTask(Task task) {
+        Assert.isMainThread();
+        if (task.getId().id == Task.TASK_INVALID) {
+            throw new AssertionError("Task id was not set to a valid value before adding.");
+        }
+        if (task.getId().id != Task.TASK_ALLOW_DUPLICATES) {
+            Task oldTask = getTask(task.getId());
+            if (oldTask != null) {
+                oldTask.onDuplicatedTaskAdded(task);
+                return;
+            }
+        }
+        mMainThreadHandler.removeCallbacks(mStopServiceWithDelay);
+        getTasks().add(task);
+        maybeRunNextTask();
+
+    }
+
+    @MainThread
+    @Nullable
+    private Task getTask(TaskId taskId) {
+        Assert.isMainThread();
+        for (Task task : getTasks()) {
+            if (task.getId().equals(taskId)) {
+                return task;
+            }
+        }
+        return null;
+    }
+
+    @MainThread
+    private Queue<Task> getTasks() {
+        Assert.isMainThread();
+        return mTasks;
+    }
+
+    /**
+     * Create an intent that will queue the <code>task</code>
+     */
+    public static Intent createIntent(Context context, Class<? extends Task> task) {
+        Intent intent = new Intent(context, TaskSchedulerService.class);
+        intent.putExtra(EXTRA_CLASS_NAME, task.getName());
+        return intent;
+    }
+
+    @VisibleForTesting
+    @MainThread
+    @Nullable
+    Task createTask(@Nullable Intent intent, int flags, int startId) {
+        Assert.isMainThread();
+        if (intent == null) {
+            return null;
+        }
+        String className = intent.getStringExtra(EXTRA_CLASS_NAME);
+        VvmLog.d(TAG, "create task:" + className);
+        if (className == null) {
+            throw new IllegalArgumentException("EXTRA_CLASS_NAME expected");
+        }
+        try {
+            Task task = (Task) Class.forName(className).newInstance();
+            task.onCreate(mContext, intent, flags, startId);
+            return task;
+        } catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) {
+            throw new IllegalArgumentException(e);
+        }
+    }
+
+    @MainThread
+    private void maybeRunNextTask() {
+        Assert.isMainThread();
+        if (mWorkerThreadIsBusy) {
+            return;
+        }
+        if (mTaskAutoRunDisabledForTesting) {
+            // If mTaskAutoRunDisabledForTesting is true, runNextTask() must be explicitly called
+            // to run the next task.
+            return;
+        }
+
+        runNextTask();
+    }
+
+    @VisibleForTesting
+    @MainThread
+    void runNextTask() {
+        Assert.isMainThread();
+        if (getTasks().isEmpty()) {
+            prepareStop();
+            return;
+        }
+        Long minimalWaitTime = null;
+        for (Task task : getTasks()) {
+            long waitTime = task.getReadyInMilliSeconds();
+            if (waitTime < READY_TOLERANCE_MILLISECONDS) {
+                task.onBeforeExecute();
+                Message message = mWorkerThreadHandler.obtainMessage();
+                message.obj = task;
+                mWorkerThreadIsBusy = true;
+                mMessageSender.send(message);
+                return;
+            } else {
+                if (minimalWaitTime == null || waitTime < minimalWaitTime) {
+                    minimalWaitTime = waitTime;
+                }
+            }
+        }
+        VvmLog.d(TAG, "minimal wait time:" + minimalWaitTime);
+        if (!mTaskAutoRunDisabledForTesting && minimalWaitTime != null) {
+            // No tests are currently ready. Sleep until the next one should be.
+            // If a new task is added during the sleep the service will wake immediately.
+            mMainThreadHandler.postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    maybeRunNextTask();
+                }
+            }, minimalWaitTime);
+        }
+    }
+
+    private void prepareStop() {
+        VvmLog.d(TAG,
+                "No more tasks, stopping service if no task are added in "
+                        + STOP_DELAY_MILLISECONDS + " millis");
+        mMainThreadHandler.postDelayed(mStopServiceWithDelay, STOP_DELAY_MILLISECONDS);
+    }
+
+    static class MessageSender {
+
+        public void send(Message message) {
+            message.sendToTarget();
+        }
+    }
+
+    @NeededForTesting
+    void setContextForTest(Context context) {
+        mContext = context;
+    }
+
+    @NeededForTesting
+    void setTaskAutoRunDisabledForTest(boolean value) {
+        mTaskAutoRunDisabledForTesting = value;
+    }
+
+    @NeededForTesting
+    void setMessageSenderForTest(MessageSender sender) {
+        mMessageSender = sender;
+    }
+
+    @NeededForTesting
+    void clearTasksForTest() {
+        mTasks.clear();
+    }
+
+    @Override
+    @Nullable
+    public IBinder onBind(Intent intent) {
+        return new LocalBinder();
+    }
+
+    @NeededForTesting
+    class LocalBinder extends Binder {
+
+        @NeededForTesting
+        public TaskSchedulerService getService() {
+            return TaskSchedulerService.this;
+        }
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java b/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
index c930a98..7b4d2c3 100644
--- a/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
+++ b/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
@@ -25,15 +25,15 @@
 import android.provider.VoicemailContract;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.Voicemail;
-
-import com.android.phone.PhoneGlobals;
 import com.android.phone.settings.VisualVoicemailSettingsUtil;
+import com.android.phone.vvm.omtp.ActivationTask;
 import com.android.phone.vvm.omtp.OmtpConstants;
-import com.android.phone.vvm.omtp.OmtpEvents;
 import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
 import com.android.phone.vvm.omtp.VvmLog;
-import com.android.phone.vvm.omtp.sync.OmtpVvmSourceManager;
+import com.android.phone.vvm.omtp.protocol.VisualVoicemailProtocol;
 import com.android.phone.vvm.omtp.sync.OmtpVvmSyncService;
+import com.android.phone.vvm.omtp.sync.SyncOneTask;
+import com.android.phone.vvm.omtp.sync.SyncTask;
 import com.android.phone.vvm.omtp.sync.VoicemailsQueryHelper;
 import com.android.phone.vvm.omtp.utils.PhoneAccountHandleConverter;
 
@@ -41,18 +41,13 @@
  * Receive SMS messages and send for processing by the OMTP visual voicemail source.
  */
 public class OmtpMessageReceiver extends BroadcastReceiver {
+
     private static final String TAG = "OmtpMessageReceiver";
 
     private Context mContext;
 
     @Override
     public void onReceive(Context context, Intent intent) {
-        if (!UserManager.get(context).isUserUnlocked()) {
-            VvmLog.i(TAG, "Received message on locked device");
-            // A full sync will happen after the device is unlocked, so nothing need to be done.
-            return;
-        }
-
         mContext = context;
         int subId = intent.getExtras().getInt(VoicemailContract.EXTRA_VOICEMAIL_SMS_SUBID);
         PhoneAccountHandle phone = PhoneAccountHandleConverter.fromSubId(subId);
@@ -62,8 +57,17 @@
             return;
         }
 
+        if (!UserManager.get(context).isUserUnlocked()) {
+            VvmLog.i(TAG, "Received message on locked device");
+            // LegacyModeSmsHandler can handle new message notifications without storage access
+            LegacyModeSmsHandler.handle(context, intent, phone);
+            // A full sync will happen after the device is unlocked, so nothing else need to be
+            // done.
+            return;
+        }
+
         OmtpVvmCarrierConfigHelper helper = new OmtpVvmCarrierConfigHelper(mContext, subId);
-        if (!VisualVoicemailSettingsUtil.isVisualVoicemailEnabled(mContext, phone)) {
+        if (!VisualVoicemailSettingsUtil.isEnabled(mContext, phone)) {
             if (helper.isLegacyModeEnabled()) {
                 LegacyModeSmsHandler.handle(context, intent, phone);
             } else {
@@ -84,15 +88,23 @@
             processSync(phone, message);
         } else if (eventType.equals(OmtpConstants.STATUS_SMS_PREFIX)) {
             VvmLog.v(TAG, "Received Status sms for " + subId);
-            StatusMessage message = new StatusMessage(data);
-            if (message.getProvisioningStatus().equals(OmtpConstants.SUBSCRIBER_READY)) {
-                updateSource(phone, subId, message);
-            } else {
-                VvmLog.v(TAG, "Subscriber not ready, start provisioning");
-                mContext.startService(OmtpProvisioningService.getProvisionIntent(mContext, intent));
-            }
+            // If the STATUS SMS is initiated by ActivationTask the TaskSchedulerService will reject
+            // the follow request. Providing the data will also prevent ActivationTask from
+            // requesting another STATUS SMS. The following task will only run if the carrier
+            // spontaneous send a STATUS SMS, in that case, the VVM service should be reactivated.
+            ActivationTask.start(context, subId, data);
         } else {
-            VvmLog.e(TAG, "Unknown prefix: " + eventType);
+            VvmLog.w(TAG, "Unknown prefix: " + eventType);
+            VisualVoicemailProtocol protocol = helper.getProtocol();
+            if (protocol == null) {
+                return;
+            }
+            Bundle statusData = helper.getProtocol()
+                    .translateStatusSmsBundle(helper, eventType, data);
+            if (statusData != null) {
+                VvmLog.i(TAG, "Protocol recognized the SMS as STATUS, activating");
+                ActivationTask.start(context, subId, data);
+            }
         }
     }
 
@@ -108,6 +120,12 @@
         Intent serviceIntent = null;
         switch (message.getSyncTriggerEvent()) {
             case OmtpConstants.NEW_MESSAGE:
+                if (!OmtpConstants.VOICE.equals(message.getContentType())) {
+                    VvmLog.i(TAG, "Non-voice message of type '" + message.getContentType()
+                        + "' received, ignoring");
+                    return;
+                }
+
                 Voicemail.Builder builder = Voicemail.createForInsertion(
                         message.getTimestampMillis(), message.getSender())
                         .setPhoneAccount(phone)
@@ -120,15 +138,11 @@
                 if (queryHelper.isVoicemailUnique(voicemail)) {
                     Uri uri = VoicemailContract.Voicemails.insert(mContext, voicemail);
                     voicemail = builder.setId(ContentUris.parseId(uri)).setUri(uri).build();
-                    serviceIntent = OmtpVvmSyncService.getSyncIntent(mContext,
-                            OmtpVvmSyncService.SYNC_DOWNLOAD_ONE_TRANSCRIPTION, phone,
-                            voicemail, true /* firstAttempt */);
+                    SyncOneTask.start(mContext, phone, voicemail);
                 }
                 break;
             case OmtpConstants.MAILBOX_UPDATE:
-                serviceIntent = OmtpVvmSyncService.getSyncIntent(
-                        mContext, OmtpVvmSyncService.SYNC_DOWNLOAD_ONLY, phone,
-                        true /* firstAttempt */);
+                SyncTask.start(mContext, phone, OmtpVvmSyncService.SYNC_DOWNLOAD_ONLY);
                 break;
             case OmtpConstants.GREETINGS_UPDATE:
                 // Not implemented in V1
@@ -136,39 +150,7 @@
             default:
                 VvmLog.e(TAG,
                         "Unrecognized sync trigger event: " + message.getSyncTriggerEvent());
-               break;
-        }
-
-        if (serviceIntent != null) {
-            mContext.startService(serviceIntent);
-        }
-    }
-
-    private void updateSource(PhoneAccountHandle phone, int subId, StatusMessage message) {
-        OmtpVvmSourceManager vvmSourceManager =
-                OmtpVvmSourceManager.getInstance(mContext);
-
-        if (OmtpConstants.SUCCESS.equals(message.getReturnCode())) {
-            OmtpVvmCarrierConfigHelper helper = new OmtpVvmCarrierConfigHelper(mContext, subId);
-            helper.handleEvent(OmtpEvents.CONFIG_REQUEST_STATUS_SUCCESS);
-
-            // Save the IMAP credentials in preferences so they are persistent and can be retrieved.
-            VisualVoicemailSettingsUtil.setVisualVoicemailCredentialsFromStatusMessage(
-                    mContext,
-                    phone,
-                    message);
-
-            // Add the source to indicate that it is active.
-            vvmSourceManager.addSource(phone);
-
-            Intent serviceIntent = OmtpVvmSyncService.getSyncIntent(
-                    mContext, OmtpVvmSyncService.SYNC_FULL_SYNC, phone,
-                    true /* firstAttempt */);
-            mContext.startService(serviceIntent);
-
-            PhoneGlobals.getInstance().clearMwiIndicator(subId);
-        } else {
-            VvmLog.e(TAG, "Visual voicemail not available for subscriber.");
+                break;
         }
     }
 }
diff --git a/src/com/android/phone/vvm/omtp/sms/OmtpProvisioningService.java b/src/com/android/phone/vvm/omtp/sms/OmtpProvisioningService.java
index ced9490..154eeeb 100644
--- a/src/com/android/phone/vvm/omtp/sms/OmtpProvisioningService.java
+++ b/src/com/android/phone/vvm/omtp/sms/OmtpProvisioningService.java
@@ -65,6 +65,6 @@
     private void startProvisioning(PhoneAccountHandle phone, StatusMessage message, Bundle data) {
         OmtpVvmCarrierConfigHelper helper = new OmtpVvmCarrierConfigHelper(this,
                 PhoneUtils.getSubIdForPhoneAccountHandle(phone));
-        helper.startProvisioning(phone, message, data);
+
     }
 }
diff --git a/src/com/android/phone/vvm/omtp/sms/StatusMessage.java b/src/com/android/phone/vvm/omtp/sms/StatusMessage.java
index f9d972f..65455d0 100644
--- a/src/com/android/phone/vvm/omtp/sms/StatusMessage.java
+++ b/src/com/android/phone/vvm/omtp/sms/StatusMessage.java
@@ -20,6 +20,7 @@
 
 import com.android.phone.NeededForTesting;
 import com.android.phone.vvm.omtp.OmtpConstants;
+import com.android.phone.vvm.omtp.VisualVoicemailPreferences;
 
 /**
  * Structured data representation of OMTP STATUS message.
@@ -44,6 +45,7 @@
     private final String mSmtpPort;
     private final String mSmtpUserName;
     private final String mSmtpPassword;
+    private final String mTuiPasswordLength;
 
     @Override
     public String toString() {
@@ -58,7 +60,8 @@
                 + ", mImapPassword=" + Log.pii(mImapPassword)
                 + ", mSmtpPort=" + mSmtpPort
                 + ", mSmtpUserName=" + mSmtpUserName
-                + ", mSmtpPassword=" + Log.pii(mSmtpPassword) + "]";
+                + ", mSmtpPassword=" + Log.pii(mSmtpPassword)
+                + ", mTuiPasswordLength=" + mTuiPasswordLength + "]";
     }
 
     public StatusMessage(Bundle wrappedData) {
@@ -75,6 +78,7 @@
         mSmtpPort = getString(wrappedData, OmtpConstants.SMTP_PORT);
         mSmtpUserName = getString(wrappedData, OmtpConstants.SMTP_USER_NAME);
         mSmtpPassword = getString(wrappedData, OmtpConstants.SMTP_PASSWORD);
+        mTuiPasswordLength = getString(wrappedData, OmtpConstants.TUI_PASSWORD_LENGTH);
     }
 
     private static String unquote(String string) {
@@ -180,6 +184,10 @@
         return mSmtpPassword;
     }
 
+    public String getTuiPasswordLength() {
+        return mTuiPasswordLength;
+    }
+
     private static String getString(Bundle bundle, String key) {
         String value = bundle.getString(key);
         if (value == null) {
@@ -187,4 +195,16 @@
         }
         return value;
     }
+
+    /**
+     * Saves a StatusMessage to the {@link VisualVoicemailPreferences}. Not all fields are saved.
+     */
+    public VisualVoicemailPreferences.Editor putStatus(VisualVoicemailPreferences.Editor editor) {
+        return editor
+                .putString(OmtpConstants.IMAP_PORT, getImapPort())
+                .putString(OmtpConstants.SERVER_ADDRESS, getServerAddress())
+                .putString(OmtpConstants.IMAP_USER_NAME, getImapUserName())
+                .putString(OmtpConstants.IMAP_PASSWORD, getImapPassword())
+                .putString(OmtpConstants.TUI_PASSWORD_LENGTH, getTuiPasswordLength());
+    }
 }
\ No newline at end of file
diff --git a/src/com/android/phone/vvm/omtp/sms/StatusSmsFetcher.java b/src/com/android/phone/vvm/omtp/sms/StatusSmsFetcher.java
new file mode 100644
index 0000000..2c37dd9
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/sms/StatusSmsFetcher.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.sms;
+
+import android.annotation.MainThread;
+import android.annotation.WorkerThread;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+import android.provider.VoicemailContract;
+import com.android.phone.Assert;
+import com.android.phone.vvm.omtp.OmtpConstants;
+import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
+import com.android.phone.vvm.omtp.VvmLog;
+import com.android.phone.vvm.omtp.protocol.VisualVoicemailProtocol;
+import java.io.Closeable;
+import java.io.IOException;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+/**
+ * Intercepts a incoming STATUS SMS with a blocking call.
+ */
+public class StatusSmsFetcher extends BroadcastReceiver implements Closeable {
+
+    private static final String TAG = "VvmStatusSmsFetcher";
+
+    private static final long STATUS_SMS_TIMEOUT_MILLIS = 60_000;
+
+    private CompletableFuture<Bundle> mFuture = new CompletableFuture<>();
+
+    private final Context mContext;
+    private final int mSubId;
+
+    public StatusSmsFetcher(Context context, int subId) {
+        mContext = context;
+        mSubId = subId;
+        IntentFilter filter = new IntentFilter(VoicemailContract.ACTION_VOICEMAIL_SMS_RECEIVED);
+        context.registerReceiver(this, filter);
+    }
+
+    @Override
+    public void close() throws IOException {
+        mContext.unregisterReceiver(this);
+    }
+
+    @WorkerThread
+    public Bundle get()
+            throws InterruptedException, ExecutionException, TimeoutException {
+        Assert.isNotMainThread();
+        return mFuture.get(STATUS_SMS_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
+    }
+
+    @Override
+    @MainThread
+    public void onReceive(Context context, Intent intent) {
+        Assert.isMainThread();
+        int subId = intent.getExtras().getInt(VoicemailContract.EXTRA_VOICEMAIL_SMS_SUBID);
+
+        if (mSubId != subId) {
+            return;
+        }
+        String eventType = intent.getExtras()
+                .getString(VoicemailContract.EXTRA_VOICEMAIL_SMS_PREFIX);
+
+        if (eventType.equals(OmtpConstants.STATUS_SMS_PREFIX)) {
+            mFuture.complete(intent.getBundleExtra(VoicemailContract.EXTRA_VOICEMAIL_SMS_FIELDS));
+            return;
+        }
+
+        if (eventType.equals(OmtpConstants.SYNC_SMS_PREFIX)) {
+            return;
+        }
+
+        VvmLog.i(TAG, "VVM SMS with event " + eventType
+                + " received, attempting to translate to STATUS SMS");
+        OmtpVvmCarrierConfigHelper helper = new OmtpVvmCarrierConfigHelper(context, subId);
+        VisualVoicemailProtocol protocol = helper.getProtocol();
+        if (protocol == null) {
+            return;
+        }
+        Bundle translatedBundle = protocol.translateStatusSmsBundle(helper, eventType,
+                intent.getBundleExtra(VoicemailContract.EXTRA_VOICEMAIL_SMS_FIELDS));
+
+        if (translatedBundle != null) {
+            VvmLog.i(TAG, "Translated to STATUS SMS");
+            mFuture.complete(translatedBundle);
+        }
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/sync/OmtpVvmSourceManager.java b/src/com/android/phone/vvm/omtp/sync/OmtpVvmSourceManager.java
index 1b9e53f..1972ca6 100644
--- a/src/com/android/phone/vvm/omtp/sync/OmtpVvmSourceManager.java
+++ b/src/com/android/phone/vvm/omtp/sync/OmtpVvmSourceManager.java
@@ -111,7 +111,6 @@
                 .handleEvent(OmtpEvents.OTHER_SOURCE_REMOVED);
         removePhoneStateListener(phoneAccount);
         mActiveVvmSources.remove(phoneAccount);
-        OmtpVvmSyncService.cancelAllRetries(mContext, phoneAccount);
     }
 
     public void addPhoneStateListener(Phone phone) {
diff --git a/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncReceiver.java b/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncReceiver.java
index 415fc91..b424281 100644
--- a/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncReceiver.java
+++ b/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncReceiver.java
@@ -31,10 +31,7 @@
     public void onReceive(final Context context, Intent intent) {
         if (VoicemailContract.ACTION_SYNC_VOICEMAIL.equals(intent.getAction())) {
             VvmLog.v(TAG, "Sync intent received");
-            Intent syncIntent = OmtpVvmSyncService
-                    .getSyncIntent(context, OmtpVvmSyncService.SYNC_FULL_SYNC, null, true);
-            intent.putExtra(OmtpVvmSyncService.EXTRA_IS_MANUAL_SYNC, true);
-            context.startService(syncIntent);
+            SyncTask.start(context, null, OmtpVvmSyncService.SYNC_FULL_SYNC);
         }
     }
 }
diff --git a/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncService.java b/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncService.java
index 9884e9d..2140e02 100644
--- a/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncService.java
+++ b/src/com/android/phone/vvm/omtp/sync/OmtpVvmSyncService.java
@@ -15,28 +15,25 @@
  */
 package com.android.phone.vvm.omtp.sync;
 
-import android.app.AlarmManager;
-import android.app.IntentService;
-import android.app.PendingIntent;
 import android.content.Context;
-import android.content.Intent;
 import android.net.Network;
-import android.net.NetworkInfo;
 import android.net.Uri;
 import android.provider.VoicemailContract;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.Voicemail;
 import android.text.TextUtils;
-
 import com.android.phone.PhoneUtils;
-import com.android.phone.VoicemailStatus;
 import com.android.phone.settings.VisualVoicemailSettingsUtil;
+import com.android.phone.vvm.omtp.ActivationTask;
 import com.android.phone.vvm.omtp.OmtpEvents;
 import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
 import com.android.phone.vvm.omtp.VvmLog;
 import com.android.phone.vvm.omtp.fetch.VoicemailFetchedCallback;
 import com.android.phone.vvm.omtp.imap.ImapHelper;
-
+import com.android.phone.vvm.omtp.imap.ImapHelper.InitializingException;
+import com.android.phone.vvm.omtp.scheduling.BaseTask;
+import com.android.phone.vvm.omtp.sync.VvmNetworkRequest.NetworkWrapper;
+import com.android.phone.vvm.omtp.utils.PhoneAccountHandleConverter;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -45,13 +42,10 @@
 /**
  * Sync OMTP visual voicemail.
  */
-public class OmtpVvmSyncService extends IntentService {
+public class OmtpVvmSyncService {
 
     private static final String TAG = OmtpVvmSyncService.class.getSimpleName();
 
-    // Number of retries
-    private static final int NETWORK_RETRY_COUNT = 3;
-
     /**
      * Signifies a sync with both uploading to the server and downloading from the server.
      */
@@ -69,208 +63,81 @@
      */
     public static final String SYNC_DOWNLOAD_ONE_TRANSCRIPTION =
             "download_one_transcription";
-    /**
-     * The account to sync.
-     */
-    public static final String EXTRA_PHONE_ACCOUNT = "phone_account";
-    /**
-     * The voicemail to fetch.
-     */
-    public static final String EXTRA_VOICEMAIL = "voicemail";
-    /**
-     * The sync request is initiated by the user, should allow shorter sync interval.
-     */
-    public static final String EXTRA_IS_MANUAL_SYNC = "is_manual_sync";
-    // Minimum time allowed between full syncs
-    private static final int MINIMUM_FULL_SYNC_INTERVAL_MILLIS = 60 * 1000;
 
-    // Minimum time allowed between manual syncs
-    private static final int MINIMUM_MANUAL_SYNC_INTERVAL_MILLIS = 3 * 1000;
+    private final Context mContext;
+
+    // Record the timestamp of the last full sync so that duplicate syncs can be reduced.
+    private static final String LAST_FULL_SYNC_TIMESTAMP = "last_full_sync_timestamp";
+    // Constant indicating that there has never been a full sync.
+    public static final long NO_PRIOR_FULL_SYNC = -1;
 
     private VoicemailsQueryHelper mQueryHelper;
 
-    public OmtpVvmSyncService() {
-        super("OmtpVvmSyncService");
+    public OmtpVvmSyncService(Context context) {
+        mContext = context;
+        mQueryHelper = new VoicemailsQueryHelper(mContext);
     }
 
-    public static Intent getSyncIntent(Context context, String action,
-            PhoneAccountHandle phoneAccount, boolean firstAttempt) {
-        return getSyncIntent(context, action, phoneAccount, null, firstAttempt);
-    }
-
-    public static Intent getSyncIntent(Context context, String action,
-            PhoneAccountHandle phoneAccount, Voicemail voicemail, boolean firstAttempt) {
-        if (firstAttempt) {
-            if (phoneAccount != null) {
-                VisualVoicemailSettingsUtil.resetVisualVoicemailRetryInterval(context,
-                        phoneAccount);
-            } else {
-                OmtpVvmSourceManager vvmSourceManager =
-                        OmtpVvmSourceManager.getInstance(context);
-                Set<PhoneAccountHandle> sources = vvmSourceManager.getOmtpVvmSources();
-                for (PhoneAccountHandle source : sources) {
-                    VisualVoicemailSettingsUtil.resetVisualVoicemailRetryInterval(context, source);
-                }
-            }
-        }
-
-        Intent serviceIntent = new Intent(context, OmtpVvmSyncService.class);
-        serviceIntent.setAction(action);
-        if (phoneAccount != null) {
-            serviceIntent.putExtra(EXTRA_PHONE_ACCOUNT, phoneAccount);
-        }
-        if (voicemail != null) {
-            serviceIntent.putExtra(EXTRA_VOICEMAIL, voicemail);
-        }
-
-        cancelRetriesForIntent(context, serviceIntent);
-        return serviceIntent;
-    }
-
-    /**
-     * Cancel all retry syncs for an account.
-     *
-     * @param context The context the service runs in.
-     * @param phoneAccount The phone account for which to cancel syncs.
-     */
-    public static void cancelAllRetries(Context context, PhoneAccountHandle phoneAccount) {
-        cancelRetriesForIntent(context, getSyncIntent(context, SYNC_FULL_SYNC, phoneAccount,
-                false));
-    }
-
-    /**
-     * A helper method to cancel all pending alarms for intents that would be identical to the given
-     * intent.
-     *
-     * @param context The context the service runs in.
-     * @param intent The intent to search and cancel.
-     */
-    private static void cancelRetriesForIntent(Context context, Intent intent) {
-        AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
-        alarmManager.cancel(PendingIntent.getService(context, 0, intent, 0));
-
-        Intent copyIntent = new Intent(intent);
-        if (SYNC_FULL_SYNC.equals(copyIntent.getAction())) {
-            // A full sync action should also cancel both of the other types of syncs
-            copyIntent.setAction(SYNC_DOWNLOAD_ONLY);
-            alarmManager.cancel(PendingIntent.getService(context, 0, copyIntent, 0));
-            copyIntent.setAction(SYNC_UPLOAD_ONLY);
-            alarmManager.cancel(PendingIntent.getService(context, 0, copyIntent, 0));
-        }
-    }
-
-    @Override
-    public void onCreate() {
-        super.onCreate();
-        mQueryHelper = new VoicemailsQueryHelper(this);
-    }
-
-    @Override
-    protected void onHandleIntent(Intent intent) {
-        if (intent == null) {
-            VvmLog.d(TAG, "onHandleIntent: could not handle null intent");
-            return;
-        }
-        String action = intent.getAction();
-        PhoneAccountHandle phoneAccount = intent.getParcelableExtra(EXTRA_PHONE_ACCOUNT);
+    public void sync(BaseTask task, String action, PhoneAccountHandle phoneAccount,
+            Voicemail voicemail) {
         VvmLog.log(TAG, "Sync requested: " + action +
                 " for all accounts: " + String.valueOf(phoneAccount == null));
-
-        boolean isManualSync = intent.getBooleanExtra(EXTRA_IS_MANUAL_SYNC, false);
-        Voicemail voicemail = intent.getParcelableExtra(EXTRA_VOICEMAIL);
         if (phoneAccount != null) {
             VvmLog.v(TAG, "Sync requested: " + action + " - for account: " + phoneAccount);
-            setupAndSendRequest(phoneAccount, voicemail, action, isManualSync);
+            setupAndSendRequest(task, phoneAccount, voicemail, action);
         } else {
             VvmLog.v(TAG, "Sync requested: " + action + " - for all accounts");
             OmtpVvmSourceManager vvmSourceManager =
-                    OmtpVvmSourceManager.getInstance(this);
+                    OmtpVvmSourceManager.getInstance(mContext);
             Set<PhoneAccountHandle> sources = vvmSourceManager.getOmtpVvmSources();
             for (PhoneAccountHandle source : sources) {
-                setupAndSendRequest(source, null, action, isManualSync);
+                setupAndSendRequest(task, source, null, action);
             }
         }
     }
 
-    private void setupAndSendRequest(PhoneAccountHandle phoneAccount, Voicemail voicemail,
-            String action, boolean isManualSync) {
-        if (!VisualVoicemailSettingsUtil.isVisualVoicemailEnabled(this, phoneAccount)) {
+    private void setupAndSendRequest(BaseTask task, PhoneAccountHandle phoneAccount,
+            Voicemail voicemail, String action) {
+        if (!VisualVoicemailSettingsUtil.isEnabled(mContext, phoneAccount)) {
             VvmLog.v(TAG, "Sync requested for disabled account");
             return;
         }
-
-        if (SYNC_FULL_SYNC.equals(action)) {
-            long lastSyncTime = VisualVoicemailSettingsUtil.getVisualVoicemailLastFullSyncTime(
-                    this, phoneAccount);
-            long currentTime = System.currentTimeMillis();
-            int minimumInterval = isManualSync ? MINIMUM_MANUAL_SYNC_INTERVAL_MILLIS
-                    : MINIMUM_MANUAL_SYNC_INTERVAL_MILLIS;
-            if (currentTime - lastSyncTime < minimumInterval) {
-                // If it's been less than a minute since the last sync, bail.
-                VvmLog.v(TAG, "Avoiding duplicate full sync: synced recently for "
-                        + phoneAccount.getId());
-
-                /**
-                 *  Perform a NOOP change to the database so the sender can observe the sync is
-                 *  completed.
-                 *  TODO: Instead of this hack, refactor the sync to be synchronous so the sender
-                 *  can use sendOrderedBroadcast() to register a callback once all syncs are
-                 *  finished
-                 *  b/26937720
-                 */
-                VoicemailStatus.edit(this, phoneAccount).apply();
-                return;
-            }
-            VisualVoicemailSettingsUtil.setVisualVoicemailLastFullSyncTime(
-                    this, phoneAccount, currentTime);
+        int subId = PhoneAccountHandleConverter.toSubId(phoneAccount);
+        if (!OmtpVvmSourceManager.getInstance(mContext).isVvmSourceRegistered(phoneAccount)) {
+            ActivationTask.start(mContext, subId, null);
+            return;
         }
 
-        VvmNetworkRequestCallback networkCallback = new SyncNetworkRequestCallback(this,
-                phoneAccount, voicemail, action);
-        networkCallback.requestNetwork();
+        OmtpVvmCarrierConfigHelper config = new OmtpVvmCarrierConfigHelper(mContext, subId);
+        try (NetworkWrapper network = VvmNetworkRequest.getNetwork(config, phoneAccount)) {
+            if (network == null) {
+                VvmLog.e(TAG, "unable to acquire network");
+                task.fail();
+                return;
+            }
+            doSync(task, network.get(), phoneAccount, voicemail, action);
+        }
     }
 
-    private void doSync(Network network, VvmNetworkRequestCallback callback,
-            PhoneAccountHandle phoneAccount, Voicemail voicemail, String action) {
-        int retryCount = NETWORK_RETRY_COUNT;
-        try {
-            while (retryCount > 0) {
-                try (ImapHelper imapHelper = new ImapHelper(this, phoneAccount, network)) {
-                    if (!imapHelper.isSuccessfullyInitialized()) {
-                        VvmLog.w(TAG, "Can't retrieve Imap credentials.");
-                        VisualVoicemailSettingsUtil.resetVisualVoicemailRetryInterval(this,
-                                phoneAccount);
-                        return;
-                    }
-
-                    boolean success = true;
-                    if (voicemail == null) {
-                        success = syncAll(action, imapHelper, phoneAccount);
-                    } else {
-                        success = syncOne(imapHelper, voicemail, phoneAccount);
-                    }
-                    imapHelper.updateQuota();
-
-                    // Need to check again for whether visual voicemail is enabled because it could
-                    // have been disabled while waiting for the response from the network.
-                    if (VisualVoicemailSettingsUtil.isVisualVoicemailEnabled(this, phoneAccount) &&
-                            !success) {
-                        retryCount--;
-                        VvmLog.v(TAG, "Retrying " + action);
-                    } else {
-                        // Nothing more to do here, just exit.
-                        VisualVoicemailSettingsUtil.resetVisualVoicemailRetryInterval(this,
-                                phoneAccount);
-
-                        imapHelper.handleEvent(OmtpEvents.DATA_IMAP_OPERATION_COMPLETED);
-                        return;
-                    }
-                }
+    private void doSync(BaseTask task, Network network, PhoneAccountHandle phoneAccount,
+            Voicemail voicemail, String action) {
+        try(ImapHelper imapHelper = new ImapHelper(mContext, phoneAccount, network)) {
+            boolean success;
+            if (voicemail == null) {
+                success = syncAll(action, imapHelper, phoneAccount);
+            } else {
+                success = syncOne(imapHelper, voicemail, phoneAccount);
             }
-        } finally {
-            if (callback != null) {
-                callback.releaseNetwork();
+            imapHelper.updateQuota();
+
+            if (success) {
+                imapHelper.handleEvent(OmtpEvents.DATA_IMAP_OPERATION_COMPLETED);
+            } else {
+                task.fail();
             }
+        } catch (InitializingException e) {
+            VvmLog.w(TAG, "Can't retrieve Imap credentials.", e);
+            return;
         }
     }
 
@@ -288,58 +155,22 @@
         VvmLog.v(TAG, "upload succeeded: [" + String.valueOf(uploadSuccess)
                 + "] download succeeded: [" + String.valueOf(downloadSuccess) + "]");
 
-        boolean success = uploadSuccess && downloadSuccess;
-        if (!uploadSuccess || !downloadSuccess) {
-            if (uploadSuccess) {
-                action = SYNC_DOWNLOAD_ONLY;
-            } else if (downloadSuccess) {
-                action = SYNC_UPLOAD_ONLY;
-            }
-        }
-
-        return success;
+        return uploadSuccess && downloadSuccess;
     }
 
     private boolean syncOne(ImapHelper imapHelper, Voicemail voicemail,
             PhoneAccountHandle account) {
         if (shouldPerformPrefetch(account, imapHelper)) {
-            VoicemailFetchedCallback callback = new VoicemailFetchedCallback(this,
+            VoicemailFetchedCallback callback = new VoicemailFetchedCallback(mContext,
                     voicemail.getUri());
             imapHelper.fetchVoicemailPayload(callback, voicemail.getSourceData());
         }
 
         return imapHelper.fetchTranscription(
-                new TranscriptionFetchedCallback(this, voicemail),
+                new TranscriptionFetchedCallback(mContext, voicemail),
                 voicemail.getSourceData());
     }
 
-    private class SyncNetworkRequestCallback extends VvmNetworkRequestCallback {
-
-        Voicemail mVoicemail;
-        private String mAction;
-
-        public SyncNetworkRequestCallback(Context context, PhoneAccountHandle phoneAccount,
-                Voicemail voicemail, String action) {
-            super(context, phoneAccount);
-            mAction = action;
-            mVoicemail = voicemail;
-        }
-
-        @Override
-        public void onAvailable(Network network) {
-            super.onAvailable(network);
-            NetworkInfo info = getConnectivityManager().getNetworkInfo(network);
-            if (info == null) {
-                VvmLog.d(TAG, "Network Type: Unknown");
-            } else {
-                VvmLog.d(TAG, "Network Type: " + info.getTypeName());
-            }
-
-            doSync(network, this, mPhoneAccount, mVoicemail, mAction);
-        }
-
-    }
-
     private boolean upload(ImapHelper imapHelper) {
         List<Voicemail> readVoicemails = mQueryHelper.getReadVoicemails();
         List<Voicemail> deletedVoicemails = mQueryHelper.getDeletedVoicemails();
@@ -404,9 +235,10 @@
         // The leftover messages are messages that exist on the server but not locally.
         boolean prefetchEnabled = shouldPerformPrefetch(account, imapHelper);
         for (Voicemail remoteVoicemail : remoteMap.values()) {
-            Uri uri = VoicemailContract.Voicemails.insert(this, remoteVoicemail);
+            Uri uri = VoicemailContract.Voicemails.insert(mContext, remoteVoicemail);
             if (prefetchEnabled) {
-                VoicemailFetchedCallback fetchedCallback = new VoicemailFetchedCallback(this, uri);
+                VoicemailFetchedCallback fetchedCallback =
+                        new VoicemailFetchedCallback(mContext, uri);
                 imapHelper.fetchVoicemailPayload(fetchedCallback, remoteVoicemail.getSourceData());
             }
         }
@@ -416,28 +248,10 @@
 
     private boolean shouldPerformPrefetch(PhoneAccountHandle account, ImapHelper imapHelper) {
         OmtpVvmCarrierConfigHelper carrierConfigHelper = new OmtpVvmCarrierConfigHelper(
-                this, PhoneUtils.getSubIdForPhoneAccountHandle(account));
+                mContext, PhoneUtils.getSubIdForPhoneAccountHandle(account));
         return carrierConfigHelper.isPrefetchEnabled() && !imapHelper.isRoaming();
     }
 
-    protected void setRetryAlarm(PhoneAccountHandle phoneAccount, String action) {
-        Intent serviceIntent = new Intent(this, OmtpVvmSyncService.class);
-        serviceIntent.setAction(action);
-        serviceIntent.putExtra(OmtpVvmSyncService.EXTRA_PHONE_ACCOUNT, phoneAccount);
-        PendingIntent pendingIntent = PendingIntent.getService(this, 0, serviceIntent, 0);
-        long retryInterval = VisualVoicemailSettingsUtil.getVisualVoicemailRetryInterval(this,
-                phoneAccount);
-
-        VvmLog.v(TAG, "Retrying " + action + " in " + retryInterval + "ms");
-
-        AlarmManager alarmManager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
-        alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + retryInterval,
-                pendingIntent);
-
-        VisualVoicemailSettingsUtil.setVisualVoicemailRetryInterval(this, phoneAccount,
-                retryInterval * 2);
-    }
-
     /**
      * Builds a map from provider data to message for the given collection of voicemails.
      */
diff --git a/src/com/android/phone/vvm/omtp/sync/SyncOneTask.java b/src/com/android/phone/vvm/omtp/sync/SyncOneTask.java
new file mode 100644
index 0000000..165f043
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/sync/SyncOneTask.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone.vvm.omtp.sync;
+
+import android.content.Context;
+import android.content.Intent;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.Voicemail;
+
+import com.android.phone.vvm.omtp.scheduling.BaseTask;
+import com.android.phone.vvm.omtp.scheduling.RetryPolicy;
+import com.android.phone.vvm.omtp.utils.PhoneAccountHandleConverter;
+
+/**
+ * Task to download a single voicemail from the server. This task is initiated by a SMS notifying
+ * the new voicemail arrival, and ignores the duplicated tasks constraint.
+ */
+public class SyncOneTask extends BaseTask {
+
+    private static final int RETRY_TIMES = 2;
+    private static final int RETRY_INTERVAL_MILLIS = 5_000;
+
+    private static final String EXTRA_PHONE_ACCOUNT_HANDLE = "extra_phone_account_handle";
+    private static final String EXTRA_SYNC_TYPE = "extra_sync_type";
+    private static final String EXTRA_VOICEMAIL = "extra_voicemail";
+
+    private PhoneAccountHandle mPhone;
+    private String mSyncType;
+    private Voicemail mVoicemail;
+
+    public static void start(Context context, PhoneAccountHandle phone, Voicemail voicemail) {
+        Intent intent = BaseTask
+                .createIntent(context, SyncOneTask.class,
+                        PhoneAccountHandleConverter.toSubId(phone));
+        intent.putExtra(EXTRA_PHONE_ACCOUNT_HANDLE, phone);
+        intent.putExtra(EXTRA_SYNC_TYPE, OmtpVvmSyncService.SYNC_DOWNLOAD_ONE_TRANSCRIPTION);
+        intent.putExtra(EXTRA_VOICEMAIL, voicemail);
+        context.startService(intent);
+    }
+
+    public SyncOneTask() {
+        super(TASK_ALLOW_DUPLICATES);
+        addPolicy(new RetryPolicy(RETRY_TIMES, RETRY_INTERVAL_MILLIS));
+    }
+
+    public void onCreate(Context context, Intent intent, int flags, int startId) {
+        super.onCreate(context, intent, flags, startId);
+        mPhone = intent.getParcelableExtra(EXTRA_PHONE_ACCOUNT_HANDLE);
+        mSyncType = intent.getStringExtra(EXTRA_SYNC_TYPE);
+        mVoicemail = intent.getParcelableExtra(EXTRA_VOICEMAIL);
+    }
+
+    @Override
+    public void onExecuteInBackgroundThread() {
+        OmtpVvmSyncService service = new OmtpVvmSyncService(getContext());
+        service.sync(this, mSyncType, mPhone, mVoicemail);
+    }
+
+    @Override
+    public Intent createRestartIntent() {
+        Intent intent = super.createRestartIntent();
+        intent.putExtra(EXTRA_PHONE_ACCOUNT_HANDLE, mPhone);
+        intent.putExtra(EXTRA_SYNC_TYPE, mSyncType);
+        intent.putExtra(EXTRA_VOICEMAIL, mVoicemail);
+        return intent;
+    }
+
+}
diff --git a/src/com/android/phone/vvm/omtp/sync/SyncTask.java b/src/com/android/phone/vvm/omtp/sync/SyncTask.java
new file mode 100644
index 0000000..d4efc6e
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/sync/SyncTask.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.sync;
+
+import android.content.Context;
+import android.content.Intent;
+import android.telecom.PhoneAccountHandle;
+
+import com.android.phone.vvm.omtp.scheduling.BaseTask;
+import com.android.phone.vvm.omtp.scheduling.MinimalIntervalPolicy;
+import com.android.phone.vvm.omtp.scheduling.RetryPolicy;
+import com.android.phone.vvm.omtp.utils.PhoneAccountHandleConverter;
+
+/**
+ * System initiated sync request.
+ */
+public class SyncTask extends BaseTask {
+
+    private static final int RETRY_TIMES = 2;
+    private static final int RETRY_INTERVAL_MILLIS = 5_000;
+    private static final int MINIMAL_INTERVAL_MILLIS = 60_000;
+
+    private static final String EXTRA_PHONE_ACCOUNT_HANDLE = "extra_phone_account_handle";
+    private static final String EXTRA_SYNC_TYPE = "extra_sync_type";
+
+    private PhoneAccountHandle mPhone;
+    private String mSyncType;
+
+    public static void start(Context context, PhoneAccountHandle phone, String syncType) {
+        Intent intent = BaseTask
+                .createIntent(context, SyncTask.class, PhoneAccountHandleConverter.toSubId(phone));
+        intent.putExtra(EXTRA_PHONE_ACCOUNT_HANDLE, phone);
+        intent.putExtra(EXTRA_SYNC_TYPE, syncType);
+        context.startService(intent);
+    }
+
+    public SyncTask() {
+        super(TASK_SYNC);
+        addPolicy(new RetryPolicy(RETRY_TIMES, RETRY_INTERVAL_MILLIS));
+        addPolicy(new MinimalIntervalPolicy(MINIMAL_INTERVAL_MILLIS));
+    }
+
+    public void onCreate(Context context, Intent intent, int flags, int startId) {
+        super.onCreate(context, intent, flags, startId);
+        mPhone = intent.getParcelableExtra(EXTRA_PHONE_ACCOUNT_HANDLE);
+        mSyncType = intent.getStringExtra(EXTRA_SYNC_TYPE);
+    }
+
+    @Override
+    public void onExecuteInBackgroundThread() {
+        OmtpVvmSyncService service = new OmtpVvmSyncService(getContext());
+        service.sync(this, mSyncType, mPhone, null);
+    }
+
+    @Override
+    public Intent createRestartIntent() {
+        Intent intent = super.createRestartIntent();
+        intent.putExtra(EXTRA_PHONE_ACCOUNT_HANDLE, mPhone);
+        intent.putExtra(EXTRA_SYNC_TYPE, mSyncType);
+        return intent;
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/sync/UploadTask.java b/src/com/android/phone/vvm/omtp/sync/UploadTask.java
new file mode 100644
index 0000000..afdee58
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/sync/UploadTask.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.sync;
+
+import android.content.Context;
+import android.content.Intent;
+
+import com.android.phone.vvm.omtp.scheduling.BaseTask;
+import com.android.phone.vvm.omtp.scheduling.PostponePolicy;
+
+/**
+ * Upload task triggered by database changes. Will wait until the database has been stable for
+ * {@link #POSTPONE_MILLIS} to execute.
+ */
+public class UploadTask extends BaseTask {
+
+    private static final int POSTPONE_MILLIS = 5_000;
+
+    public UploadTask() {
+        super(TASK_UPLOAD);
+        addPolicy(new PostponePolicy(POSTPONE_MILLIS));
+    }
+
+    public static void start(Context context) {
+        Intent intent = BaseTask
+                .createIntent(context, UploadTask.class, TaskId.SUB_ID_ANY);
+        context.startService(intent);
+    }
+
+    @Override
+    public void onExecuteInBackgroundThread() {
+        OmtpVvmSyncService service = new OmtpVvmSyncService(getContext());
+        service.sync(this, OmtpVvmSyncService.SYNC_UPLOAD_ONLY, null, null);
+    }
+}
diff --git a/src/com/android/phone/vvm/omtp/sync/VoicemailProviderChangeReceiver.java b/src/com/android/phone/vvm/omtp/sync/VoicemailProviderChangeReceiver.java
index c2e6178..bf2e125 100644
--- a/src/com/android/phone/vvm/omtp/sync/VoicemailProviderChangeReceiver.java
+++ b/src/com/android/phone/vvm/omtp/sync/VoicemailProviderChangeReceiver.java
@@ -24,15 +24,14 @@
  * Receives changes to the voicemail provider so they can be sent to the voicemail server.
  */
 public class VoicemailProviderChangeReceiver extends BroadcastReceiver {
+
     @Override
     public void onReceive(Context context, Intent intent) {
         boolean isSelfChanged = intent.getBooleanExtra(VoicemailContract.EXTRA_SELF_CHANGE, false);
         OmtpVvmSourceManager vvmSourceManager =
                 OmtpVvmSourceManager.getInstance(context);
         if (vvmSourceManager.getOmtpVvmSources().size() > 0 && !isSelfChanged) {
-            Intent serviceIntent = OmtpVvmSyncService.getSyncIntent(
-                    context, OmtpVvmSyncService.SYNC_UPLOAD_ONLY, null, true /* firstAttempt */);
-            context.startService(serviceIntent);
+            UploadTask.start(context);
         }
     }
 }
diff --git a/src/com/android/phone/vvm/omtp/sync/VvmNetworkRequest.java b/src/com/android/phone/vvm/omtp/sync/VvmNetworkRequest.java
new file mode 100644
index 0000000..fba6a26
--- /dev/null
+++ b/src/com/android/phone/vvm/omtp/sync/VvmNetworkRequest.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.sync;
+
+import android.net.Network;
+import android.telecom.PhoneAccountHandle;
+
+import com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper;
+import com.android.phone.vvm.omtp.VvmLog;
+
+import java.io.Closeable;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+
+/**
+ * Class to retrieve a {@link Network} synchronously. {@link #getNetwork(OmtpVvmCarrierConfigHelper,
+ * PhoneAccountHandle)} will block until a suitable network is retrieved or it has failed.
+ */
+public class VvmNetworkRequest {
+
+    private static final String TAG = "VvmNetworkRequest";
+
+    /**
+     * A wrapper around a Network returned by a {@link VvmNetworkRequestCallback}, which should be
+     * closed once not needed anymore.
+     */
+    public static class NetworkWrapper implements Closeable {
+
+        private final Network mNetwork;
+        private final VvmNetworkRequestCallback mCallback;
+
+        private NetworkWrapper(Network network, VvmNetworkRequestCallback callback) {
+            mNetwork = network;
+            mCallback = callback;
+        }
+
+        public Network get() {
+            return mNetwork;
+        }
+
+        @Override
+        public void close() {
+            mCallback.releaseNetwork();
+        }
+    }
+
+    public static NetworkWrapper getNetwork(OmtpVvmCarrierConfigHelper config,
+            PhoneAccountHandle handle) {
+        FutureNetworkRequestCallback callback = new FutureNetworkRequestCallback(config, handle);
+        callback.requestNetwork();
+        try {
+            return callback.getFuture().get();
+        } catch (InterruptedException | ExecutionException e) {
+            VvmLog.e(TAG, "can't get future network", e);
+            return null;
+        }
+    }
+
+    private static class FutureNetworkRequestCallback extends VvmNetworkRequestCallback {
+
+        /**
+         * {@link CompletableFuture#get()} will block until {@link CompletableFuture#
+         * complete(Object) } has been called on the other thread.
+         */
+        private final CompletableFuture<NetworkWrapper> mFuture = new CompletableFuture<>();
+
+        public FutureNetworkRequestCallback(OmtpVvmCarrierConfigHelper config,
+                PhoneAccountHandle phoneAccount) {
+            super(config, phoneAccount);
+        }
+
+        public Future<NetworkWrapper> getFuture() {
+            return mFuture;
+        }
+
+        @Override
+        public void onAvailable(Network network) {
+            super.onAvailable(network);
+            mFuture.complete(new NetworkWrapper(network, this));
+        }
+
+        @Override
+        public void onFailed(String reason) {
+            super.onFailed(reason);
+            mFuture.complete(null);
+        }
+
+    }
+}
diff --git a/src/com/android/services/telephony/DisconnectCauseUtil.java b/src/com/android/services/telephony/DisconnectCauseUtil.java
index 2965968..48fc2a4 100644
--- a/src/com/android/services/telephony/DisconnectCauseUtil.java
+++ b/src/com/android/services/telephony/DisconnectCauseUtil.java
@@ -223,9 +223,11 @@
 
             case android.telephony.DisconnectCause.CALL_PULLED:
                 resourceId = R.string.callEnded_pulled;
+                break;
 
             case android.telephony.DisconnectCause.MAXIMUM_NUMBER_OF_CALLS_REACHED:
                 resourceId = R.string.callFailed_maximum_reached;
+                break;
 
             default:
                 break;
diff --git a/src/com/android/services/telephony/ImsConference.java b/src/com/android/services/telephony/ImsConference.java
index 5a29e17..639cc03 100644
--- a/src/com/android/services/telephony/ImsConference.java
+++ b/src/com/android/services/telephony/ImsConference.java
@@ -175,7 +175,10 @@
             Log.d(this, "onConnectionCapabilitiesChanged: Connection: %s," +
                     " connectionCapabilities: %s", c, connectionCapabilities);
             int capabilites = ImsConference.this.getConnectionCapabilities();
-            setConnectionCapabilities(applyHostCapabilities(capabilites, connectionCapabilities));
+            boolean isVideoConferencingSupported = mConferenceHost == null ? false :
+                    mConferenceHost.isCarrierVideoConferencingSupported();
+            setConnectionCapabilities(applyHostCapabilities(capabilites, connectionCapabilities,
+                    isVideoConferencingSupported));
         }
 
         @Override
@@ -277,7 +280,8 @@
         int capabilities = Connection.CAPABILITY_SUPPORT_HOLD | Connection.CAPABILITY_HOLD |
                 Connection.CAPABILITY_MUTE | Connection.CAPABILITY_CONFERENCE_HAS_NO_CHILDREN;
         capabilities = applyHostCapabilities(capabilities,
-                mConferenceHost.getConnectionCapabilities());
+                mConferenceHost.getConnectionCapabilities(),
+                mConferenceHost.isCarrierVideoConferencingSupported());
         setConnectionCapabilities(capabilities);
 
     }
@@ -287,24 +291,36 @@
      *
      * @param conferenceCapabilities The current conference capabilities.
      * @param capabilities The new conference host capabilities.
+     * @param isVideoConferencingSupported Whether video conferencing is supported.
      * @return The merged capabilities to be applied to the conference.
      */
-    private int applyHostCapabilities(int conferenceCapabilities, int capabilities) {
+    private int applyHostCapabilities(int conferenceCapabilities, int capabilities,
+            boolean isVideoConferencingSupported) {
+
         conferenceCapabilities = changeBitmask(conferenceCapabilities,
                     Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL,
                     can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL));
 
-        conferenceCapabilities = changeBitmask(conferenceCapabilities,
+        if (isVideoConferencingSupported) {
+            conferenceCapabilities = changeBitmask(conferenceCapabilities,
                     Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL,
                     can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL));
-
-        conferenceCapabilities = changeBitmask(conferenceCapabilities,
-                    Connection.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO,
-                    can(capabilities, Connection.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO));
-
-        conferenceCapabilities = changeBitmask(conferenceCapabilities,
+            conferenceCapabilities = changeBitmask(conferenceCapabilities,
                     Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO,
                     can(capabilities, Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO));
+        } else {
+            // If video conferencing is not supported, explicitly turn off the remote video
+            // capability and the ability to upgrade to video.
+            Log.v(this, "applyHostCapabilities : video conferencing not supported");
+            conferenceCapabilities = changeBitmask(conferenceCapabilities,
+                    Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL, false);
+            conferenceCapabilities = changeBitmask(conferenceCapabilities,
+                    Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO, false);
+        }
+
+        conferenceCapabilities = changeBitmask(conferenceCapabilities,
+                Connection.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO,
+                can(capabilities, Connection.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO));
 
         return conferenceCapabilities;
     }
@@ -572,7 +588,8 @@
         mConferenceHost.addConnectionListener(mConferenceHostListener);
         mConferenceHost.addTelephonyConnectionListener(mTelephonyConnectionListener);
         setConnectionCapabilities(applyHostCapabilities(getConnectionCapabilities(),
-                mConferenceHost.getConnectionCapabilities()));
+                mConferenceHost.getConnectionCapabilities(),
+                mConferenceHost.isCarrierVideoConferencingSupported()));
         setConnectionProperties(applyHostProperties(getConnectionProperties(),
                 mConferenceHost.getConnectionProperties()));
 
@@ -831,6 +848,9 @@
                 GsmConnection c = new GsmConnection(originalConnection, getTelecomCallId());
                 // This is a newly created conference connection as a result of SRVCC
                 c.setConferenceSupported(true);
+                c.addCapability(Connection.CAPABILITY_CONFERENCE_HAS_NO_CHILDREN);
+                c.setConnectionProperties(
+                        c.getConnectionProperties() | Connection.PROPERTY_IS_DOWNGRADED_CONFERENCE);
                 c.updateState();
                 // Copy the connect time from the conferenceHost
                 c.setConnectTimeMillis(mConferenceHost.getConnectTimeMillis());
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index c14208f..d931f32 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -46,6 +46,7 @@
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.imsphone.ImsPhone;
 import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
+import com.android.phone.ImsUtil;
 import com.android.phone.PhoneUtils;
 import com.android.phone.R;
 
@@ -234,6 +235,13 @@
     };
 
     /**
+     * @return {@code true} if carrier video conferencing is supported, {@code false} otherwise.
+     */
+    public boolean isCarrierVideoConferencingSupported() {
+        return mIsCarrierVideoConferencingSupported;
+    }
+
+    /**
      * A listener/callback mechanism that is specific communication from TelephonyConnections
      * to TelephonyConnectionService (for now). It is more specific that Connection.Listener
      * because it is only exposed in Telephony.
@@ -411,6 +419,13 @@
     private boolean mIsConferenceSupported;
 
     /**
+     * Indicates whether the carrier supports video conferencing; captures the current state of the
+     * carrier config
+     * {@link android.telephony.CarrierConfigManager#KEY_SUPPORT_VIDEO_CONFERENCE_CALL_BOOL}.
+     */
+    private boolean mIsCarrierVideoConferencingSupported;
+
+    /**
      * Indicates whether or not this connection has CDMA Enhanced Voice Privacy enabled.
      */
     private boolean mIsCdmaVoicePrivacyEnabled;
@@ -830,7 +845,6 @@
         }
         boolean isCurrentVideoCall = false;
         boolean wasVideoCall = false;
-        boolean isWifiCall = false;
         boolean isVowifiEnabled = false;
         if (phone instanceof ImsPhone) {
             ImsPhone imsPhone = (ImsPhone) phone;
@@ -839,15 +853,14 @@
                 ImsCall call = imsPhone.getForegroundCall().getImsCall();
                 isCurrentVideoCall = call.isVideoCall();
                 wasVideoCall = call.wasVideoCall();
-                isWifiCall = call.isWifiCall();
             }
 
-            isVowifiEnabled = ((ImsPhoneCallTracker) imsPhone.getCallTracker()).isVowifiEnabled();
+            isVowifiEnabled = ImsUtil.isWfcEnabled(phone.getContext());
         }
 
         if (isCurrentVideoCall) {
             return true;
-        } else if (wasVideoCall && isWifiCall && !isVowifiEnabled) {
+        } else if (wasVideoCall && mIsWifi && !isVowifiEnabled) {
             return true;
         }
         return false;
@@ -1322,6 +1335,7 @@
         mIsWifi = isWifi;
         updateConnectionProperties();
         updateStatusHints();
+        refreshDisableAddCall();
     }
 
     /**
@@ -1515,15 +1529,15 @@
                 .getInstance(getPhone().getContext());
         boolean isConferencingSupported = telecomAccountRegistry
                 .isMergeCallSupported(phoneAccountHandle);
-        boolean isVideoConferencingSupported = telecomAccountRegistry
+        mIsCarrierVideoConferencingSupported = telecomAccountRegistry
                 .isVideoConferencingSupported(phoneAccountHandle);
         boolean isMergeOfWifiCallsAllowedWhenVoWifiOff = telecomAccountRegistry
                 .isMergeOfWifiCallsAllowedWhenVoWifiOff(phoneAccountHandle);
 
         Log.v(this, "refreshConferenceSupported : isConfSupp=%b, isVidConfSupp=%b, " +
                 "isMergeOfWifiAllowed=%b, isWifi=%b, isVoWifiEnabled=%b", isConferencingSupported,
-                isVideoConferencingSupported, isMergeOfWifiCallsAllowedWhenVoWifiOff, isWifi(),
-                isVoWifiEnabled);
+                mIsCarrierVideoConferencingSupported, isMergeOfWifiCallsAllowedWhenVoWifiOff,
+                isWifi(), isVoWifiEnabled);
         boolean isConferenceSupported = true;
         if (mTreatAsEmergencyCall) {
             isConferenceSupported = false;
@@ -1531,7 +1545,7 @@
         } else if (!isConferencingSupported) {
             isConferenceSupported = false;
             Log.d(this, "refreshConferenceSupported = false; carrier doesn't support conf.");
-        } else if (isVideoCall && !isVideoConferencingSupported) {
+        } else if (isVideoCall && !mIsCarrierVideoConferencingSupported) {
             isConferenceSupported = false;
             Log.d(this, "refreshConferenceSupported = false; video conf not supported.");
         } else if (!isMergeOfWifiCallsAllowedWhenVoWifiOff && isWifi() && !isVoWifiEnabled) {
diff --git a/tests/Android.mk b/tests/Android.mk
index e1b564f..59cba42 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -25,7 +25,7 @@
 
 LOCAL_MODULE_TAGS := tests
 
-LOCAL_JAVA_LIBRARIES := telephony-common
+LOCAL_JAVA_LIBRARIES := telephony-common android-support-test
 
 LOCAL_INSTRUMENTATION_FOR := TeleService
 
diff --git a/tests/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelperTest.java b/tests/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelperTest.java
index 63c7f60..bc0192c 100644
--- a/tests/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelperTest.java
+++ b/tests/src/com/android/phone/vvm/omtp/OmtpVvmCarrierConfigHelperTest.java
@@ -28,14 +28,13 @@
 import static com.android.phone.vvm.omtp.OmtpVvmCarrierConfigHelper.KEY_VVM_TYPE_STRING;
 
 import android.os.PersistableBundle;
-
-import junit.framework.TestCase;
+import android.test.AndroidTestCase;
 
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
-public class OmtpVvmCarrierConfigHelperTest extends TestCase {
+public class OmtpVvmCarrierConfigHelperTest extends AndroidTestCase {
 
     private static final String CARRIER_TYPE = "omtp.carrier";
     private static final String CARRIER_PACKAGE_NAME = "omtp.carrier.package";
@@ -58,19 +57,20 @@
     private OmtpVvmCarrierConfigHelper mHelper;
 
     public void testCarrierConfig() {
-        mHelper = new OmtpVvmCarrierConfigHelper(createCarrierConfig(), null);
+        mHelper = new OmtpVvmCarrierConfigHelper(getContext(), createCarrierConfig(), null);
         verifyCarrierConfig();
         verifyDefaultExtraConfig();
     }
 
     public void testTelephonyConfig() {
-        mHelper = new OmtpVvmCarrierConfigHelper(null, createTelephonyConfig());
+        mHelper = new OmtpVvmCarrierConfigHelper(getContext(), null, createTelephonyConfig());
         verifyTelephonyConfig();
         verifyTelephonyExtraConfig();
     }
 
     public void testMixedConfig() {
-        mHelper = new OmtpVvmCarrierConfigHelper(createCarrierConfig(), createTelephonyConfig());
+        mHelper = new OmtpVvmCarrierConfigHelper(getContext(), createCarrierConfig(),
+                createTelephonyConfig());
         verifyCarrierConfig();
         verifyTelephonyExtraConfig();
     }
diff --git a/tests/src/com/android/phone/vvm/omtp/StatusMessageTest.java b/tests/src/com/android/phone/vvm/omtp/StatusMessageTest.java
index fd3aa2c..707463a 100644
--- a/tests/src/com/android/phone/vvm/omtp/StatusMessageTest.java
+++ b/tests/src/com/android/phone/vvm/omtp/StatusMessageTest.java
@@ -40,6 +40,7 @@
         bundle.putString(OmtpConstants.SMTP_PORT, "s1234");
         bundle.putString(OmtpConstants.SMTP_USER_NAME, "susername");
         bundle.putString(OmtpConstants.SMTP_PASSWORD, "spassword");
+        bundle.putString(OmtpConstants.TUI_PASSWORD_LENGTH, "4-7");
 
         StatusMessage message = new StatusMessage(bundle);
         assertEquals("status", message.getProvisioningStatus());
@@ -54,6 +55,7 @@
         assertEquals("s1234", message.getSmtpPort());
         assertEquals("susername", message.getSmtpUserName());
         assertEquals("spassword", message.getSmtpPassword());
+        assertEquals("4-7", message.getTuiPasswordLength());
     }
 
     public void testSyncMessage_EmptyBundle() {
@@ -70,5 +72,6 @@
         assertEquals("", message.getSmtpPort());
         assertEquals("", message.getSmtpUserName());
         assertEquals("", message.getSmtpPassword());
+        assertEquals("", message.getTuiPasswordLength());
     }
 }
diff --git a/tests/src/com/android/phone/vvm/omtp/VisualVoicemailPreferencesTest.java b/tests/src/com/android/phone/vvm/omtp/VisualVoicemailPreferencesTest.java
new file mode 100644
index 0000000..1ae7899
--- /dev/null
+++ b/tests/src/com/android/phone/vvm/omtp/VisualVoicemailPreferencesTest.java
@@ -0,0 +1,81 @@
+package com.android.phone.vvm.omtp;
+
+import android.content.ComponentName;
+import android.telecom.PhoneAccountHandle;
+import android.test.AndroidTestCase;
+import android.util.ArraySet;
+
+import java.util.Arrays;
+
+public class VisualVoicemailPreferencesTest extends AndroidTestCase {
+
+    public void testWriteRead() {
+        VisualVoicemailPreferences preferences = new VisualVoicemailPreferences(getContext(),
+                createFakeHandle("testWriteRead"));
+        preferences.edit()
+                .putBoolean("boolean", true)
+                .putFloat("float", 0.5f)
+                .putInt("int", 123)
+                .putLong("long", 456)
+                .putString("string", "foo")
+                .putStringSet("stringset", new ArraySet<>(Arrays.asList("bar", "baz")))
+                .apply();
+
+        assertTrue(preferences.contains("boolean"));
+        assertTrue(preferences.contains("float"));
+        assertTrue(preferences.contains("int"));
+        assertTrue(preferences.contains("long"));
+        assertTrue(preferences.contains("string"));
+        assertTrue(preferences.contains("stringset"));
+
+        assertEquals(true, preferences.getBoolean("boolean", false));
+        assertEquals(0.5f, preferences.getFloat("float", 0));
+        assertEquals(123, preferences.getInt("int", 0));
+        assertEquals(456, preferences.getLong("long", 0));
+        assertEquals("foo", preferences.getString("string", null));
+        assertEquals(new ArraySet<>(Arrays.asList("bar", "baz")),
+                preferences.getStringSet("stringset", null));
+    }
+
+    public void testReadDefault() {
+        VisualVoicemailPreferences preferences = new VisualVoicemailPreferences(getContext(),
+                createFakeHandle("testReadDefault"));
+
+        assertFalse(preferences.contains("boolean"));
+        assertFalse(preferences.contains("float"));
+        assertFalse(preferences.contains("int"));
+        assertFalse(preferences.contains("long"));
+        assertFalse(preferences.contains("string"));
+        assertFalse(preferences.contains("stringset"));
+
+        assertEquals(true, preferences.getBoolean("boolean", true));
+        assertEquals(2.5f, preferences.getFloat("float", 2.5f));
+        assertEquals(321, preferences.getInt("int", 321));
+        assertEquals(654, preferences.getLong("long", 654));
+        assertEquals("foo2", preferences.getString("string", "foo2"));
+        assertEquals(new ArraySet<>(Arrays.asList("bar2", "baz2")),
+                preferences.getStringSet(
+                        "stringset", new ArraySet<>(Arrays.asList("bar2", "baz2"))));
+    }
+
+    public void testReadDefaultNull() {
+        VisualVoicemailPreferences preferences = new VisualVoicemailPreferences(getContext(),
+                createFakeHandle("testReadDefaultNull"));
+        assertNull(preferences.getString("string", null));
+        assertNull(preferences.getStringSet("stringset", null));
+    }
+
+    public void testDifferentHandle() {
+        VisualVoicemailPreferences preferences1 = new VisualVoicemailPreferences(getContext(),
+                createFakeHandle("testDifferentHandle1"));
+        VisualVoicemailPreferences preferences2 = new VisualVoicemailPreferences(getContext(),
+                createFakeHandle("testDifferentHandle1"));
+
+        preferences1.edit().putString("string", "foo");
+        assertFalse(preferences2.contains("string"));
+    }
+
+    private PhoneAccountHandle createFakeHandle(String id) {
+        return new PhoneAccountHandle(new ComponentName(getContext(), this.getClass()), id);
+    }
+}
diff --git a/tests/src/com/android/phone/vvm/omtp/scheduling/BaseTaskTest.java b/tests/src/com/android/phone/vvm/omtp/scheduling/BaseTaskTest.java
new file mode 100644
index 0000000..27dd87e
--- /dev/null
+++ b/tests/src/com/android/phone/vvm/omtp/scheduling/BaseTaskTest.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.support.test.runner.AndroidJUnit4;
+
+import com.android.phone.vvm.omtp.scheduling.Task.TaskId;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class BaseTaskTest extends BaseTaskTestBase {
+
+
+    @Test
+    public void testBaseTask() {
+        DummyBaseTask task = (DummyBaseTask) submitTask(
+                BaseTask.createIntent(mTestContext, DummyBaseTask.class, 123));
+        assertTrue(task.getId().equals(new TaskId(1, 123)));
+        assertTrue(!task.hasStarted());
+        assertTrue(!task.hasRun);
+        mService.runNextTask();
+        assertTrue(task.hasStarted());
+        assertTrue(task.hasRun);
+        verify(task.policy).onBeforeExecute();
+        verify(task.policy).onCompleted();
+    }
+
+    @Test
+    public void testFail() {
+        FailingBaseTask task = (FailingBaseTask) submitTask(
+                BaseTask.createIntent(mTestContext, FailingBaseTask.class, 0));
+        mService.runNextTask();
+        verify(task.policy).onFail();
+    }
+
+    @Test
+    public void testDuplicated() {
+        DummyBaseTask task1 = (DummyBaseTask) submitTask(
+                BaseTask.createIntent(mTestContext, DummyBaseTask.class, 123));
+        verify(task1.policy, never()).onDuplicatedTaskAdded();
+
+        DummyBaseTask task2 = (DummyBaseTask) submitTask(
+                BaseTask.createIntent(mTestContext, DummyBaseTask.class, 123));
+        verify(task1.policy).onDuplicatedTaskAdded();
+
+        mService.runNextTask();
+        assertTrue(task1.hasRun);
+        assertTrue(!task2.hasRun);
+    }
+
+    @Test
+    public void testDuplicated_DifferentSubId() {
+        DummyBaseTask task1 = (DummyBaseTask) submitTask(
+                BaseTask.createIntent(mTestContext, DummyBaseTask.class, 123));
+        verify(task1.policy, never()).onDuplicatedTaskAdded();
+
+        DummyBaseTask task2 = (DummyBaseTask) submitTask(
+                BaseTask.createIntent(mTestContext, DummyBaseTask.class, 456));
+        verify(task1.policy, never()).onDuplicatedTaskAdded();
+        mService.runNextTask();
+        assertTrue(task1.hasRun);
+        assertTrue(!task2.hasRun);
+
+        mService.runNextTask();
+        assertTrue(task2.hasRun);
+    }
+
+    @Test
+    public void testReadyTime() {
+        BaseTask task = spy(new DummyBaseTask());
+        assertTrue(task.getReadyInMilliSeconds() == 0);
+        mTime = 500;
+        assertTrue(task.getReadyInMilliSeconds() == -500);
+        task.setExecutionTime(1000);
+        assertTrue(task.getReadyInMilliSeconds() == 500);
+    }
+
+    public static class DummyBaseTask extends BaseTask {
+
+        public Policy policy;
+        public boolean hasRun = false;
+
+        public DummyBaseTask() {
+            super(1);
+            policy = mock(Policy.class);
+            addPolicy(policy);
+        }
+
+        @Override
+        public void onExecuteInBackgroundThread() {
+            hasRun = true;
+        }
+    }
+
+    public static class FailingBaseTask extends BaseTask {
+
+        public Policy policy;
+        public FailingBaseTask() {
+            super(1);
+            policy = mock(Policy.class);
+            addPolicy(policy);
+        }
+
+        @Override
+        public void onExecuteInBackgroundThread() {
+            fail();
+        }
+    }
+}
diff --git a/tests/src/com/android/phone/vvm/omtp/scheduling/BaseTaskTestBase.java b/tests/src/com/android/phone/vvm/omtp/scheduling/BaseTaskTestBase.java
new file mode 100644
index 0000000..1ffd3c4
--- /dev/null
+++ b/tests/src/com/android/phone/vvm/omtp/scheduling/BaseTaskTestBase.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import com.android.phone.vvm.omtp.scheduling.BaseTask.Clock;
+
+import org.junit.After;
+import org.junit.Before;
+
+public class BaseTaskTestBase extends TaskSchedulerServiceTestBase {
+
+    /**
+     * "current time" of the deterministic clock.
+     */
+    public long mTime;
+
+    @Before
+    public void setUpBaseTaskTest() {
+        mTime = 0;
+        BaseTask.setClockForTesting(new TestClock());
+    }
+
+    @After
+    public void tearDownBaseTaskTest() {
+        BaseTask.setClockForTesting(new Clock());
+    }
+
+
+    private class TestClock extends Clock {
+
+        @Override
+        public long getTimeMillis() {
+            return mTime;
+        }
+    }
+}
diff --git a/tests/src/com/android/phone/vvm/omtp/scheduling/PolicyTest.java b/tests/src/com/android/phone/vvm/omtp/scheduling/PolicyTest.java
new file mode 100644
index 0000000..9761d01
--- /dev/null
+++ b/tests/src/com/android/phone/vvm/omtp/scheduling/PolicyTest.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class PolicyTest extends BaseTaskTestBase {
+
+    private static int sExecuteCounter;
+
+    @Before
+    public void setUpPolicyTest() {
+        sExecuteCounter = 0;
+    }
+
+    @Test
+    public void testPostponePolicy() {
+        Task task = submitTask(BaseTask.createIntent(mTestContext, PostponeTask.class, 0));
+        mService.runNextTask();
+        assertTrue(task.getReadyInMilliSeconds() == 1000);
+        submitTask(BaseTask.createIntent(mTestContext, PostponeTask.class, 0));
+        assertTrue(task.getReadyInMilliSeconds() == 1000);
+        mTime = 500;
+        submitTask(BaseTask.createIntent(mTestContext, PostponeTask.class, 0));
+        assertTrue(task.getReadyInMilliSeconds() == 1000);
+        mTime = 2500;
+        mService.runNextTask();
+        assertTrue(sExecuteCounter == 1);
+    }
+
+    @Test
+    public void testRetryPolicy() {
+        Task task = submitTask(BaseTask.createIntent(mTestContext, FailingRetryTask.class, 0));
+        mService.runNextTask();
+        // Should queue retry at 1000
+        assertTrue(sExecuteCounter == 1);
+        mService.runNextTask();
+        assertTrue(sExecuteCounter == 1);
+        mTime = 1500;
+        mService.runNextTask();
+        // Should queue retry at 2500
+        assertTrue(sExecuteCounter == 2);
+        mService.runNextTask();
+        assertTrue(sExecuteCounter == 2);
+        mTime = 2000;
+        mService.runNextTask();
+        assertTrue(sExecuteCounter == 2);
+        mTime = 3000;
+        mService.runNextTask();
+        // No more retries are queued.
+        assertTrue(sExecuteCounter == 3);
+        mService.runNextTask();
+        assertTrue(sExecuteCounter == 3);
+        mTime = 4500;
+        mService.runNextTask();
+        assertTrue(sExecuteCounter == 3);
+    }
+
+    @Test
+    public void testMinimalIntervalPolicy() {
+        MinimalIntervalPolicyTask task1 = (MinimalIntervalPolicyTask) submitTask(
+                BaseTask.createIntent(mTestContext, MinimalIntervalPolicyTask.class, 0));
+        mService.runNextTask();
+        assertTrue(task1.hasRan);
+        MinimalIntervalPolicyTask task2 = (MinimalIntervalPolicyTask) submitTask(
+                BaseTask.createIntent(mTestContext, MinimalIntervalPolicyTask.class, 0));
+        mService.runNextTask();
+        assertTrue(!task2.hasRan);
+
+        mTime = 1500;
+        mService.runNextTask();
+
+        MinimalIntervalPolicyTask task3 = (MinimalIntervalPolicyTask) submitTask(
+                BaseTask.createIntent(mTestContext, MinimalIntervalPolicyTask.class, 0));
+        mService.runNextTask();
+        assertTrue(task3.hasRan);
+    }
+
+    public abstract static class PolicyTestTask extends BaseTask {
+
+        public PolicyTestTask() {
+            super(1);
+        }
+
+        @Override
+        public void onExecuteInBackgroundThread() {
+            sExecuteCounter++;
+        }
+    }
+
+    public static class PostponeTask extends PolicyTestTask {
+
+        PostponeTask() {
+            addPolicy(new PostponePolicy(1000));
+        }
+    }
+
+    public static class FailingRetryTask extends PolicyTestTask {
+
+        public FailingRetryTask() {
+            addPolicy(new RetryPolicy(2, 1000));
+        }
+
+        @Override
+        public void onExecuteInBackgroundThread() {
+            super.onExecuteInBackgroundThread();
+            fail();
+        }
+    }
+
+    public static class MinimalIntervalPolicyTask extends PolicyTestTask {
+
+        boolean hasRan;
+
+        MinimalIntervalPolicyTask() {
+            addPolicy(new MinimalIntervalPolicy(1000));
+        }
+
+        @Override
+        public void onExecuteInBackgroundThread() {
+            super.onExecuteInBackgroundThread();
+            hasRan = true;
+        }
+    }
+
+}
diff --git a/tests/src/com/android/phone/vvm/omtp/scheduling/TaskSchedulerServiceTest.java b/tests/src/com/android/phone/vvm/omtp/scheduling/TaskSchedulerServiceTest.java
new file mode 100644
index 0000000..2dd4ecf
--- /dev/null
+++ b/tests/src/com/android/phone/vvm/omtp/scheduling/TaskSchedulerServiceTest.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.support.test.runner.AndroidJUnit4;
+
+import com.android.phone.vvm.omtp.scheduling.Task.TaskId;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.concurrent.TimeoutException;
+
+@RunWith(AndroidJUnit4.class)
+public class TaskSchedulerServiceTest extends TaskSchedulerServiceTestBase {
+
+    @Test
+    public void testTaskIdComparison() {
+        TaskId id1 = new TaskId(1, 1);
+        TaskId id2 = new TaskId(1, 1);
+        TaskId id3 = new TaskId(1, 2);
+        assertTrue(id1.equals(id2));
+        assertTrue(id1.equals(id1));
+        assertTrue(!id1.equals(id3));
+    }
+
+    @Test
+    public void testAddDuplicatedTask() throws TimeoutException {
+        TestTask task1 = (TestTask) submitTask(
+                TaskSchedulerService.createIntent(mTestContext, TestTask.class));
+        TestTask task2 = (TestTask) submitTask(
+                TaskSchedulerService.createIntent(mTestContext, TestTask.class));
+        assertTrue(task1.onDuplicatedTaskAddedCounter.invokedOnce());
+        mService.runNextTask();
+        verifyRanOnce(task1);
+        verifyNotRan(task2);
+        mService.runNextTask();
+        verifyRanOnce(task1);
+        verifyNotRan(task2);
+    }
+
+    @Test
+    public void testAddDuplicatedTaskAfterFirstCompleted() throws TimeoutException {
+        TestTask task1 = (TestTask) submitTask(
+                TaskSchedulerService.createIntent(mTestContext, TestTask.class));
+        mService.runNextTask();
+        verifyRanOnce(task1);
+        TestTask task2 = (TestTask) submitTask(
+                TaskSchedulerService.createIntent(mTestContext, TestTask.class));
+        assertTrue(task1.onDuplicatedTaskAddedCounter.neverInvoked());
+        mService.runNextTask();
+        verifyRanOnce(task2);
+    }
+
+    @Test
+    public void testAddMultipleTask() {
+        TestTask task1 = (TestTask) submitTask(
+                putTaskId(TaskSchedulerService.createIntent(mTestContext, TestTask.class),
+                        new TaskId(1, 0)));
+        TestTask task2 = (TestTask) submitTask(
+                putTaskId(TaskSchedulerService.createIntent(mTestContext, TestTask.class),
+                        new TaskId(2, 0)));
+        TestTask task3 = (TestTask) submitTask(
+                putTaskId(TaskSchedulerService.createIntent(mTestContext, TestTask.class),
+                        new TaskId(1, 1)));
+        assertTrue(task1.onDuplicatedTaskAddedCounter.neverInvoked());
+        mService.runNextTask();
+        verifyRanOnce(task1);
+        verifyNotRan(task2);
+        verifyNotRan(task3);
+        mService.runNextTask();
+        verifyRanOnce(task1);
+        verifyRanOnce(task2);
+        verifyNotRan(task3);
+        mService.runNextTask();
+        verifyRanOnce(task1);
+        verifyRanOnce(task2);
+        verifyRanOnce(task3);
+    }
+
+    @Test
+    public void testNotReady() {
+        TestTask task1 = (TestTask) submitTask(
+                putTaskId(TaskSchedulerService.createIntent(mTestContext, TestTask.class),
+                        new TaskId(1, 0)));
+        task1.readyInMilliseconds = 1000;
+        mService.runNextTask();
+        verifyNotRan(task1);
+        TestTask task2 = (TestTask) submitTask(
+                putTaskId(TaskSchedulerService.createIntent(mTestContext, TestTask.class),
+                        new TaskId(2, 0)));
+        mService.runNextTask();
+        verifyNotRan(task1);
+        verifyRanOnce(task2);
+        task1.readyInMilliseconds = 50;
+        mService.runNextTask();
+        verifyRanOnce(task1);
+        verifyRanOnce(task2);
+    }
+
+    @Test
+    public void testInvalidTaskId() {
+        Task task = mock(Task.class);
+        when(task.getId()).thenReturn(new TaskId(Task.TASK_INVALID, 0));
+        thrown.expect(AssertionError.class);
+        mService.addTask(task);
+    }
+
+    @Test
+    public void testDuplicatesAllowedTaskId() {
+        TestTask task1 = (TestTask) submitTask(
+                putTaskId(TaskSchedulerService.createIntent(mTestContext, TestTask.class),
+                        new TaskId(Task.TASK_ALLOW_DUPLICATES, 0)));
+        TestTask task2 = (TestTask) submitTask(
+                putTaskId(TaskSchedulerService.createIntent(mTestContext, TestTask.class),
+                        new TaskId(Task.TASK_ALLOW_DUPLICATES, 0)));
+        assertTrue(task1.onDuplicatedTaskAddedCounter.neverInvoked());
+        mService.runNextTask();
+        verifyRanOnce(task1);
+        verifyNotRan(task2);
+        mService.runNextTask();
+        verifyRanOnce(task1);
+        verifyRanOnce(task2);
+    }
+}
diff --git a/tests/src/com/android/phone/vvm/omtp/scheduling/TaskSchedulerServiceTestBase.java b/tests/src/com/android/phone/vvm/omtp/scheduling/TaskSchedulerServiceTestBase.java
new file mode 100644
index 0000000..63f5c2f
--- /dev/null
+++ b/tests/src/com/android/phone/vvm/omtp/scheduling/TaskSchedulerServiceTestBase.java
@@ -0,0 +1,230 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.phone.vvm.omtp.scheduling;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.os.IBinder;
+import android.os.Message;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.rule.ServiceTestRule;
+import android.support.test.runner.AndroidJUnit4;
+
+import com.android.phone.Assert;
+import com.android.phone.vvm.omtp.scheduling.Task.TaskId;
+import com.android.phone.vvm.omtp.scheduling.TaskSchedulerService.MainThreadHandler;
+import com.android.phone.vvm.omtp.scheduling.TaskSchedulerService.WorkerThreadHandler;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+
+import java.util.concurrent.TimeoutException;
+
+@RunWith(AndroidJUnit4.class)
+public class TaskSchedulerServiceTestBase {
+
+    private static final String EXTRA_ID = "test_extra_id";
+    private static final String EXTRA_SUB_ID = "test_extra_sub_id";
+
+    public TaskSchedulerService mService;
+
+    @Rule
+    public final ExpectedException thrown = ExpectedException.none();
+
+    @Rule
+    public final ServiceTestRule mServiceRule = new ServiceTestRule();
+
+    public Context mTargetContext;
+    public Context mTestContext;
+
+    private static boolean sIsMainThread = true;
+
+    private final TestMessageSender mMessageSender = new TestMessageSender();
+
+    public static Intent putTaskId(Intent intent, TaskId taskId) {
+        intent.putExtra(EXTRA_ID, taskId.id);
+        intent.putExtra(EXTRA_SUB_ID, taskId.subId);
+        return intent;
+    }
+
+    public static TaskId getTaskId(Intent intent) {
+        return new TaskId(intent.getIntExtra(EXTRA_ID, 0), intent.getIntExtra(EXTRA_SUB_ID, 0));
+    }
+
+    @Before
+    public void setUp() throws TimeoutException {
+        Assert.setIsMainThreadForTesting(true);
+        mTargetContext = InstrumentationRegistry.getTargetContext();
+        IBinder binder = null;
+        // bindService() might returns null on 2nd invocation because the service is not unbinded
+        // yet. See https://code.google.com/p/android/issues/detail?id=180396
+        while (binder == null) {
+            binder = mServiceRule
+                    .bindService(new Intent(mTargetContext, TaskSchedulerService.class));
+        }
+        mService = ((TaskSchedulerService.LocalBinder) binder).getService();
+        mTestContext = createTestContext(mTargetContext, mService);
+        mService.setMessageSenderForTest(mMessageSender);
+        mService.setTaskAutoRunDisabledForTest(true);
+        mService.setContextForTest(mTestContext);
+    }
+
+    @After
+    public void tearDown() {
+        Assert.setIsMainThreadForTesting(null);
+        mService.setTaskAutoRunDisabledForTest(false);
+        mService.clearTasksForTest();
+        mService.stopSelf();
+    }
+
+    public Task submitTask(Intent intent) {
+        Task task = mService.createTask(intent, 0, 0);
+        mService.addTask(task);
+        return task;
+    }
+
+    public static void verifyRanOnce(TestTask task) {
+        assertTrue(task.onBeforeExecuteCounter.invokedOnce());
+        assertTrue(task.executeCounter.invokedOnce());
+        assertTrue(task.onCompletedCounter.invokedOnce());
+    }
+
+    public static void verifyNotRan(TestTask task) {
+        assertTrue(task.onBeforeExecuteCounter.neverInvoked());
+        assertTrue(task.executeCounter.neverInvoked());
+        assertTrue(task.onCompletedCounter.neverInvoked());
+    }
+
+    public static class TestTask implements Task {
+
+        public int readyInMilliseconds;
+
+        private TaskId mId;
+
+        public final InvocationCounter onCreateCounter = new InvocationCounter();
+        public final InvocationCounter onBeforeExecuteCounter = new InvocationCounter();
+        public final InvocationCounter executeCounter = new InvocationCounter();
+        public final InvocationCounter onCompletedCounter = new InvocationCounter();
+        public final InvocationCounter onDuplicatedTaskAddedCounter = new InvocationCounter();
+
+        @Override
+        public void onCreate(Context context, Intent intent, int flags, int startId) {
+            onCreateCounter.invoke();
+            mId = getTaskId(intent);
+        }
+
+        @Override
+        public TaskId getId() {
+            return mId;
+        }
+
+        @Override
+        public long getReadyInMilliSeconds() {
+            Assert.isMainThread();
+            return readyInMilliseconds;
+        }
+
+        @Override
+        public void onBeforeExecute() {
+            Assert.isMainThread();
+            onBeforeExecuteCounter.invoke();
+        }
+
+        @Override
+        public void onExecuteInBackgroundThread() {
+            Assert.isNotMainThread();
+            executeCounter.invoke();
+        }
+
+        @Override
+        public void onCompleted() {
+            Assert.isMainThread();
+            onCompletedCounter.invoke();
+        }
+
+        @Override
+        public void onDuplicatedTaskAdded(Task task) {
+            Assert.isMainThread();
+            onDuplicatedTaskAddedCounter.invoke();
+        }
+    }
+
+    public static class InvocationCounter {
+
+        private int mCounter;
+
+        public void invoke() {
+            mCounter++;
+        }
+
+        public boolean invokedOnce() {
+            return mCounter == 1;
+        }
+
+        public boolean neverInvoked() {
+            return mCounter == 0;
+        }
+    }
+
+    private class TestMessageSender extends TaskSchedulerService.MessageSender {
+
+        @Override
+        public void send(Message message) {
+            if (message.getTarget() instanceof MainThreadHandler) {
+                Assert.setIsMainThreadForTesting(true);
+            } else if (message.getTarget() instanceof WorkerThreadHandler) {
+                Assert.setIsMainThreadForTesting(false);
+            } else {
+                throw new AssertionError("unexpected Handler " + message.getTarget());
+            }
+            message.getTarget().handleMessage(message);
+        }
+    }
+
+    public static void assertTrue(boolean condition) {
+        if (!condition) {
+            throw new AssertionError();
+        }
+    }
+
+    private static Context createTestContext(Context targetContext, TaskSchedulerService service) {
+        TestContext context = mock(TestContext.class);
+        when(context.getService()).thenReturn(service);
+        when(context.startService(any())).thenCallRealMethod();
+        when(context.getPackageName()).thenReturn(targetContext.getPackageName());
+        return context;
+    }
+
+    public abstract class TestContext extends Context {
+
+        @Override
+        public ComponentName startService(Intent service) {
+            getService().onStartCommand(service, 0, 0);
+            return null;
+        }
+
+        public abstract TaskSchedulerService getService();
+    }
+}