Merge "Rename TelephonyMonitor to ConnectivityMonitor"
diff --git a/Android.mk b/Android.mk
index eeaad0c..c59d938 100644
--- a/Android.mk
+++ b/Android.mk
@@ -30,7 +30,6 @@
 
 LOCAL_JAVA_LIBRARIES := \
     bouncycastle \
-    core-oj \
     telephony-common \
     ims-common
 
diff --git a/res/layout/confirm_lock_password_internal.xml b/res/layout/confirm_lock_password_internal.xml
index 558522c..05bd4a0 100644
--- a/res/layout/confirm_lock_password_internal.xml
+++ b/res/layout/confirm_lock_password_internal.xml
@@ -81,10 +81,14 @@
             android:visibility="gone"/>
 
         <Button
-            style="@style/SetupWizardButton.Negative"
             android:id="@+id/cancelButton"
+            style="@style/SuwGlifButton.Secondary"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_marginStart="?attr/suwMarginSides"
+            android:layout_marginEnd="?attr/suwMarginSides"
+            android:layout_marginBottom="80dp"
+            android:layout_gravity="center_horizontal"
             android:text="@string/cancel" />
 
     </com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient>
diff --git a/res/layout/confirm_lock_pattern_internal_base.xml b/res/layout/confirm_lock_pattern_internal_base.xml
index d0ce769..2b09a7e 100644
--- a/res/layout/confirm_lock_pattern_internal_base.xml
+++ b/res/layout/confirm_lock_pattern_internal_base.xml
@@ -100,16 +100,17 @@
                 android:contentDescription="@string/confirm_fingerprint_icon_content_description"
                 android:visibility="gone"/>
 
-        </LinearLayout>
+            <Button
+                android:id="@+id/cancelButton"
+                style="@style/SuwGlifButton.Secondary"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="?attr/suwMarginSides"
+                android:layout_marginEnd="?attr/suwMarginSides"
+                android:layout_marginBottom="80dp"
+                android:text="@string/cancel" />
 
-        <Button
-            android:id="@+id/cancelButton"
-            style="@style/SuwGlifButton.Secondary"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="?attr/suwMarginSides"
-            android:layout_marginEnd="?attr/suwMarginSides"
-            android:text="@string/cancel" />
+        </LinearLayout>
 
     </com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient>
 
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 79adba2..755f045 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Stel \'n skermslot"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Stel \'n wagwoord vir sekuriteit"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Stel wagwoord vir vingerafdruk"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Kies jou patroon"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Stel patroon vir vingerafdruk"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Stel \'n PIN vir sekuriteit"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Stel PIN vir vingerafdruk"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Voer jou wagwoord weer in"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Bevestig jou patroon"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Voer jou PIN weer in"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 52a1d3c..b372f8b 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"የማያ ገጽ ቁልፍ ያቀናብሩ"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"ለደህንነት የይለፍ ቃል ያቀናብሩ"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"የጣት አሻራን ለመጠቀም የይለፍ ቃል ያቀናብሩ"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"የእርስዎን ስርዓተ ጥለት ይምረጡ"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"የጣት አሻራን ለመጠቀም፣ ሥርዓተ ጥለትን ያቀናብሩ"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"ለደህንነት አንድ ፒን ያቀናብሩ"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"የጣት አሻራን ለመጠቀም ፒን ያቀናብሩ"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"የእርስዎን ይለፍ ቃል ደግመው ያስገቡ"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"ስርዓተ ጥለትዎን ያረጋግጡ"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"የእርስዎን ፒን ደግመው ያስገቡ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 8e9aef1..3d82b2c 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -1524,10 +1524,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"تعيين قفل شاشة"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"يجب تعيين كلمة مرور لأغراض أمنية"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"لاستخدام بصمة الإصبع، عيّن كلمة مرور"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"اختيار نقشك"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"لاستخدام بصمة الإصبع، يُرجى رسم نقش من ابتكارك"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"يجب تعيين رقم تعريف شخصي لأغراض أمنية"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"لاستخدام بصمة الإصبع، عيّن رقم التعريف الشخصي"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"أعد إدخال كلمة المرور"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"تأكيد نقشك"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"أعد إدخال رقم التعريف الشخصي"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index e8788e1..10bc6aa 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Ekran kilidi ayarlayın"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Təhlükəsizlik üçün parol ayarlayın"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Barmaq izi üçün parol seçin"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Modelinizi seçin"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Barmaq izi üçün nümunə seçin"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Təhlükəsizlik üçün PIN ayarlayın"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Barmaq izi üçün PIN ayarlayın"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Parolu yenidən daxil edin."</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Modeli təsdiq edin"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN\'i yenidən daxil edin"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 3fc1cff..0fa5dc2 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -1485,10 +1485,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Podesite zaključavanje ekrana"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Podesite lozinku iz bezbednosnih razloga"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Podesite lozinku da biste koristili otisak"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Izaberite šablon"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Podesite šablon da biste koristili otisak"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Podesite PIN iz bezbednosnih razloga"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Podesite PIN da biste koristili otisak"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Ponovo unesite lozinku"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potvrdite šablon"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Ponovo unesite PIN"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index e5ca816..7abf1a3 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -1499,10 +1499,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Задайце блакіроўку экрана"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Для большай бяспекі задайце пароль"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Перш чым карыстацца адбіткам пальца, задайце пароль"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Выберыце ўзор разблакіроўкі"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Спачатку задайце ўзор"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Для большай бяспекі задайце PIN-код"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Каб карыст. адбіт. пальца, задайце PIN-код"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Увядзіце пароль яшчэ раз"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Пацвердзіце ўзор"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Увядзіце PIN-код яшчэ раз"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index e2b998a..c6d0fff 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Задайте опция за заключване на екрана"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"От съображения за сигурност задайте парола"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Задайте парола, за да ползвате отпечатък"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Изберете фигурата си"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Задайте фигура, за да ползвате отпечатък"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"От съображения за сигурност задайте ПИН код"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Задайте ПИН, за да ползвате отпечатък"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Въведете отново паролата си"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Потвърдете фигурата си"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Въведете отново ПИН кода си"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 49b7c1e..1c79aaa 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"একটি স্ক্রিন লক সেট করুন"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"নিরাপত্তার জন্য একটি পাসওয়ার্ড সেট করুন"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"আঙ্গুলের ছাপ ব্যবহার করার জন্য পাসওয়ার্ড সেট করুন"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"আপনার প্যাটার্ন বেছে নিন"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"আঙ্গুলের ছাপ ব্যবহার করার জন্য প্যাটার্ন সেট করুন"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"নিরাপত্তার জন্য একটি পিন সেট করুন"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"আঙ্গুলের ছাপ ব্যবহার করার জন্য পিন সেট করুন"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"আপনার পাসওয়ার্ডটি আবার লিখুন"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"আপনার প্যাটার্ন নিশ্চিত করুন"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"আপনার পিনটি আবার লিখুন"</string>
@@ -3408,8 +3409,7 @@
     <string name="telephony_monitor_toast" msgid="7003764250271195384">"টেলিফোনি মনিটর এ করা পরিবর্তন প্রয়োগ করতে ডিভাইসটি বন্ধ করে আবার চালু করুন"</string>
     <string name="camera_hal_hdrplus_switch" msgid="8377365197105267466">"ক্যামেরায় HAL HDR+"</string>
     <string name="camera_hal_hdrplus_toast" msgid="2063703797270055299">"ক্যামেরায় HAL HDR+ পরিবর্তনটি প্রয়োগ করতে ডিভাইসটি বন্ধ করে আবার চালু করুন"</string>
-    <!-- no translation found for camera_laser_sensor_switch (8913588990743234440) -->
-    <skip />
+    <string name="camera_laser_sensor_switch" msgid="8913588990743234440">"ক্যামেরা লেজার সেন্সর"</string>
     <string name="ota_disable_automatic_update" msgid="2319639631655915050">"স্বয়ংক্রিয় সিস্টেম আপডেটগুলি"</string>
     <string name="usage" msgid="2977875522080448986">"ব্যবহার"</string>
     <string name="cellular_data_usage" msgid="2155683719898158203">"মোবাইল ডেটার ব্যবহার"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index f6ee50e..b8593e9 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -1485,10 +1485,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Postavite zaključavanje ekrana"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Postavite lozinku radi sigurnosti"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Da koristite otisak prsta, postavite lozinku"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Odaberite uzorak"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Da koristite otisak prsta, postavite uzorak"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Postavite PIN kôd radi sigurnosti"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Da koristite otisak prsta, postavite PIN kôd"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Ponovo unesite lozinku"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potvrdite uzorak"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Ponovo unesite PIN kôd"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 2c72053..07577ac 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Defineix un bloqueig de pantalla"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Per motius de seguretat, cal que defineixis una contrasenya"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Defineix una contrasenya"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Tria el teu patró"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Defineix un patró"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Per motius de seguretat, cal que defineixis un PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Defineix un PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Torna a introduir la contrasenya"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirma el patró"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Torna a introduir el PIN"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 2359279..e3c6a29 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -1498,10 +1498,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Nastavení zámku obrazovky"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Z bezpečnostních důvodů nastavte heslo"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Otisk vyžaduje nastavení hesla"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Vyberte gesto"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Otisk vyžaduje nastavení gesta"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Z bezpečnostních důvodů nastavte PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Otisk vyžaduje nastavení PINu"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Znovu zadejte heslo"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potvrďte své gesto"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Znovu zadejte PIN"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 86a38fb..243c948 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Konfigurer en skærmlås"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Konfigurer en adgangskode af hensyn til sikkerheden"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Angiv adgangskode for at bruge fingeraftryk"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Vælg dit mønster"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Angiv mønster for at bruge fingeraftryk"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Konfigurer en pinkode af hensyn til sikkerheden"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Angiv pinkode for at bruge fingeraftryk"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Angiv din adgangskode igen"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Bekræft dit mønster"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Angiv din pinkode igen"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index edf4da0..5ceb528 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Displaysperre einrichten"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Richte aus Sicherheitsgründen ein Passwort ein"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Passwort festlegen, um Fingerabdruck zu verwenden"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Muster wählen"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Muster festlegen, um Fingerabdruck zu verwenden"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Richte aus Sicherheitsgründen eine PIN ein"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"PIN festlegen, um Fingerabdruck zu verwenden"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Passwort noch einmal eingeben"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Muster bestätigen"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN noch einmal eingeben"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 98271a1..7d06404 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Ορισμός κλειδώματος οθόνης"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Για λόγους ασφαλείας, ορίστε έναν κωδικό πρόσβασης"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Για χρήση δακτ. αποτ. ορίστε κωδ. πρόσβ."</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Επιλέξτε το μοτίβο σας"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Για χρήση δακτ. αποτ. ορίστε μοτίβο"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Για λόγους ασφαλείας, ορίστε έναν αριθμό PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Για χρήση δακτ. αποτ. ορίστε αρ. PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Εισαγάγετε ξανά τον κωδικό πρόσβασής σας"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Επιβεβαίωση μοτίβου"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Εισαγάγετε ξανά τον αριθμό PIN"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 4e82075..accb94a 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Set a screen lock"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"For security, set a password"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"To use fingerprint, set password"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Choose your pattern"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"To use fingerprint, set pattern"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"For security, set a PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"To use fingerprint, set PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Re-enter your password"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirm your pattern"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Re-enter your PIN"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 77c6ebc..2059824 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Set a screen lock"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"For security, set a password"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"To use fingerprint, set password"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Choose your pattern"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"To use fingerprint, set pattern"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"For security, set a PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"To use fingerprint, set PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Re-enter your password"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirm your pattern"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Re-enter your PIN"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 4e82075..accb94a 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Set a screen lock"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"For security, set a password"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"To use fingerprint, set password"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Choose your pattern"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"To use fingerprint, set pattern"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"For security, set a PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"To use fingerprint, set PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Re-enter your password"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirm your pattern"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Re-enter your PIN"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 4e82075..accb94a 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Set a screen lock"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"For security, set a password"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"To use fingerprint, set password"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Choose your pattern"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"To use fingerprint, set pattern"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"For security, set a PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"To use fingerprint, set PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Re-enter your password"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirm your pattern"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Re-enter your PIN"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 8a6b781..53e7c0f 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -1471,10 +1471,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‏‏‎‏‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎Set a screen lock‎‏‎‎‏‎"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‏‏‎‏‎‎‏‏‏‏‎‏‏‏‎‏‎‏‏‎‎‎‏‏‎‏‎‎‏‏‎‏‎‏‎‏‏‎‎‏‏‏‏‏‏‎‎‎‏‎‎‎For security, set a password‎‏‎‎‏‎"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‎‎‏‎‏‎‏‏‎‏‎‎‎‏‎‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‎‎‏‎‎‎‎‎‎‏‎‏‎‎To use fingerprint, set password‎‏‎‎‏‎"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‎‎‏‎‏‎‎‎‎‎‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‏‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎Choose your pattern‎‏‎‎‏‎"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‎‎‏‎‎‏‏‏‎‎‏‏‏‏‏‏‎‎‎‎‎‎‎‏‎‎‎‏‏‏‎‎‏‎‎‎‎‎‏‎‏‎‎‏‎‏‎‎‎‏‎‏‏‎To use fingerprint, set pattern‎‏‎‎‏‎"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎‏‎‏‎‏‎‏‏‎‎‏‏‏‏‏‏‏‏‏‎‎For security, set a PIN‎‏‎‎‏‎"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‎‎‏‏‏‏‏‎‎‎‎‏‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‎‎‎‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‏‏‏‎To use fingerprint, set PIN‎‏‎‎‏‎"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‏‏‎‏‎‏‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‏‎Re-enter your password‎‏‎‎‏‎"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‎‎‎‏‏‎‏‏‎‏‏‎‎‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‎‎‎‏‎‏‎Confirm your pattern‎‏‎‎‏‎"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‎‏‎‎‎‎‎‏‎‏‎‎‏‎‎‎‎‏‎‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‏‎‏‏‏‎‎‏‎‎‎‎‎‎‏‏‎‎Re-enter your PIN‎‏‎‎‏‎"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 4fa12f3..881b139 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Establece un bloqueo de pantalla"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Por motivos de seguridad, establece una contraseña"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Configura tu contraseña"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Elige un patrón"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Configura el patrón"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Por motivos de seguridad, establece un PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Configura el PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Vuelve a ingresar tu contraseña"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirma el patrón"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Vuelve a ingresar el PIN"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 97c66d8..1fa7020 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -74,8 +74,8 @@
     <string name="radioInfo_display_asu" msgid="1422248392727818082">"asu"</string>
     <string name="radioInfo_lac" msgid="8415219164758307156">"LAC"</string>
     <string name="radioInfo_cid" msgid="4362599198392643138">"CID"</string>
-    <string name="sdcard_unmount" product="nosdcard" msgid="6325292633327972272">"Desactivar USB"</string>
-    <string name="sdcard_unmount" product="default" msgid="3364184561355611897">"Desactivar tarjeta SD"</string>
+    <string name="sdcard_unmount" product="nosdcard" msgid="6325292633327972272">"Desconectar USB"</string>
+    <string name="sdcard_unmount" product="default" msgid="3364184561355611897">"Desconectar tarjeta SD"</string>
     <string name="sdcard_format" product="nosdcard" msgid="6285310523155166716">"Borrar almacenamiento USB"</string>
     <string name="sdcard_format" product="default" msgid="6713185532039187532">"Borrar tarjeta SD"</string>
     <string name="preview_pager_content_description" msgid="8926235999291761243">"Vista previa"</string>
@@ -1141,8 +1141,8 @@
     <string name="storage_settings" msgid="4211799979832404953">"Almacenamiento"</string>
     <string name="storage_usb_settings" msgid="7293054033137078060">"Almacenamiento"</string>
     <string name="storage_settings_title" msgid="8746016738388094064">"Ajustes de almacenamiento"</string>
-    <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"Desactivar almacenamiento USB, ver almacenamiento disponible"</string>
-    <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"Desactivar tarjeta SD, ver almacenamiento disponible."</string>
+    <string name="storage_settings_summary" product="nosdcard" msgid="3543813623294870759">"Desconectar almacenamiento USB, ver almacenamiento disponible"</string>
+    <string name="storage_settings_summary" product="default" msgid="9176693537325988610">"Desconectar tarjeta SD, ver almacenamiento disponible."</string>
     <string name="status_number" product="tablet" msgid="1138837891091222272">"MDN"</string>
     <string name="status_number" product="default" msgid="5123197324870153205">"Mi número de teléfono"</string>
     <string name="status_min_number" msgid="3519504522179420597">"MIN"</string>
@@ -1177,10 +1177,10 @@
     <string name="memory_music_usage" msgid="1363785144783011606">"Audio (música, tonos, etc.)"</string>
     <string name="memory_media_misc_usage" msgid="6094866738586451683">"Otros archivos"</string>
     <string name="memory_media_cache_usage" msgid="6704293333141177910">"Datos almacenados en caché"</string>
-    <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Desactivar almacenam comp"</string>
-    <string name="sd_eject" product="default" msgid="6915293408836853020">"Desactivar tarjeta SD"</string>
-    <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Desactivar almacenamiento USB interno"</string>
-    <string name="sd_eject_summary" product="default" msgid="3300599435073550246">"Desactivar la tarjeta SD para extraerla de forma segura"</string>
+    <string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Desconectar almacenamiento compartido"</string>
+    <string name="sd_eject" product="default" msgid="6915293408836853020">"Desconectar tarjeta SD"</string>
+    <string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Desconectar almacenamiento USB interno"</string>
+    <string name="sd_eject_summary" product="default" msgid="3300599435073550246">"Desconectar la tarjeta SD para extraerla de forma segura"</string>
     <string name="sd_insert_summary" product="nosdcard" msgid="5264016886409577313">"Inserta USB para activar almacenamiento"</string>
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Insertar una tarjeta SD para el montaje"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Activar almacenamiento USB"</string>
@@ -1194,18 +1194,18 @@
     <string name="memory_clear_cache_title" msgid="5423840272171286191">"¿Borrar datos almacenados en caché?"</string>
     <string name="memory_clear_cache_message" msgid="4550262490807415948">"Se borrarán los datos en caché de las aplicaciones."</string>
     <string name="mtp_ptp_mode_summary" msgid="3710436114807789270">"La función MTP o PTP está activa."</string>
-    <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="3077285629197874055">"¿Desactivar almacenamiento USB?"</string>
-    <string name="dlg_confirm_unmount_title" product="default" msgid="3634502237262534381">"¿Desactivar tarjeta SD?"</string>
-    <string name="dlg_confirm_unmount_text" product="nosdcard" msgid="4322636662873269018">"Si desactivas el almacenamiento USB, se detendrán algunas aplicaciones que estás usando y no estarán disponibles hasta que vuelvas a activarlo."</string>
-    <string name="dlg_confirm_unmount_text" product="default" msgid="6998379994779187692">"Si desactivas la tarjeta SD, se detendrán algunas aplicaciones en ejecución y no estarán disponibles hasta que la vuelvas a activar."</string>
+    <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="3077285629197874055">"¿Desconectar almacenamiento USB?"</string>
+    <string name="dlg_confirm_unmount_title" product="default" msgid="3634502237262534381">"¿Desconectar tarjeta SD?"</string>
+    <string name="dlg_confirm_unmount_text" product="nosdcard" msgid="4322636662873269018">"Si desconectas el almacenamiento USB, se detendrán algunas aplicaciones que estás usando y no estarán disponibles hasta que vuelvas a activarlo."</string>
+    <string name="dlg_confirm_unmount_text" product="default" msgid="6998379994779187692">"Si desconectas la tarjeta SD, se detendrán algunas aplicaciones en ejecución y no estarán disponibles hasta que la vuelvas a activar."</string>
     <string name="dlg_error_unmount_title" product="nosdcard" msgid="4642742385125426529"></string>
     <string name="dlg_error_unmount_title" product="default" msgid="4642742385125426529"></string>
-    <string name="dlg_error_unmount_text" product="nosdcard" msgid="9191518889746166147">"No se ha podido desactivar el almacenamiento USB. Inténtalo de nuevo más tarde."</string>
-    <string name="dlg_error_unmount_text" product="default" msgid="3500976899159848422">"No se ha podido desactivar la tarjeta SD. Inténtalo de nuevo más tarde."</string>
+    <string name="dlg_error_unmount_text" product="nosdcard" msgid="9191518889746166147">"No se ha podido desconectar el almacenamiento USB. Inténtalo de nuevo más tarde."</string>
+    <string name="dlg_error_unmount_text" product="default" msgid="3500976899159848422">"No se ha podido desconectar la tarjeta SD. Inténtalo de nuevo más tarde."</string>
     <string name="unmount_inform_text" product="nosdcard" msgid="7120241136790744265">"Se desactivará el almacenamiento USB."</string>
     <string name="unmount_inform_text" product="default" msgid="1904212716075458402">"Se desactivará la tarjeta SD."</string>
     <string name="sd_ejecting_title" msgid="8824572198034365468">"Desactivando"</string>
-    <string name="sd_ejecting_summary" msgid="2028753069184908491">"La tarjeta SD se está desactivando."</string>
+    <string name="sd_ejecting_summary" msgid="2028753069184908491">"La tarjeta SD se está desconectando."</string>
     <string name="storage_low_title" msgid="1388569749716225155">"No queda espacio de almacenamiento"</string>
     <string name="storage_low_summary" msgid="7737465774892563129">"Es posible que algunas funciones del sistema, como la sincronización, no funcionen correctamente. Prueba a eliminar o a desactivar elementos para liberar espacio (por ejemplo, aplicaciones o contenido multimedia)."</string>
     <string name="storage_menu_rename" msgid="7141058657592615390">"Cambiar nombre"</string>
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Establece el bloqueo de pantalla"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Por seguridad, establece una contraseña"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Para usar huella, añade contraseña"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Elige un patrón"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Para usar huellas, añade un patrón"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Por seguridad, establece un PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Para usar huella, añade PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Vuelve a introducir tu contraseña"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirma el patrón"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Vuelve a introducir tu PIN"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 28b1dcc..b30ddb7 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Ekraaniluku seadistamine"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Turvalisuse huvides määrake parool"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Sõrmejälje kasutamiseks määrake parool"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Mustri valimine"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Sõrmejälje kasutamiseks määrake muster"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Turvalisuse huvides määrake PIN-kood"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Sõrmejälje kasutamiseks määrake PIN-kood"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Sisestage oma parool uuesti"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Mustri kinnitamine"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Sisestage oma PIN-kood uuesti"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index f3f6971..b4bd196 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Ezarri pantailaren blokeo bat"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Babestuta egoteko, ezarri pasahitz bat"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Hatz-marka erabiltzeko, ezarri pasahitza"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Aukeratu eredua"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Hatz-marka erabiltzeko, ezarri eredua"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Babestuta egoteko, ezarri PIN bat"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Hatz-marka erabiltzeko, ezarri PIN kodea"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Idatzi berriro pasahitza"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Berretsi eredua"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Idatzi berriro PIN kodea"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 85a0559..dd3a48e 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"قفل صفحه‌ای تنظیم کنید"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"برای حفظ امنیت، گذرواژه‌‌ای تنظیم کنید"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"تنظیم گذرواژه برای استفاده از اثر انگشت"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"انتخاب الگو"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"تنظیم الگو برای استفاده از اثر انگشت"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"برای حفظ امنیت، پین تنظیم کنید"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"تنظیم پین برای استفاده از اثر انگشت"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"گذرواژه‌ خود را دوباره وارد کنید"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"تأیید الگو"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"پین خود را دوباره وارد کنید"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 519e850..1285f77 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Näytön lukituksen käyttöönotto"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Aseta salasana suojauksen parantamiseksi."</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Sormenjälki: aseta salasana"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Valitse kuvio"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Sormenjälki: aseta kuvio"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Aseta PIN-koodi suojauksen parantamiseksi."</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Sormenjälki: aseta PIN-koodi"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Anna salasana uudelleen"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Vahvista kuvio"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Anna PIN-koodi uudelleen"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 0b0bb5b..7441903 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Configurer le verrouillage de l\'écran"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Pour plus de sécurité, définissez un mot de passe"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Pour util. empr. digit., config. m. de passe"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Choisir votre schéma"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Pour utiliser empreinte digitale, configurer schéma"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Pour plus de sécurité, définissez un NIP"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Pour util. empr. digit., config. NIP"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Entrez de nouveau votre mot de passe"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirmez votre schéma"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Entrez de nouveau votre NIP"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 5423127..515030f 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Configurer le verrouillage de l\'écran"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Pour des raisons de sécurité, définissez un mot de passe"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Pour utiliser votre empreinte, définissez un mot de passe"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Choisir votre schéma"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Pour utiliser votre empreinte, définissez un schéma"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Pour des raisons de sécurité, définissez un code"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Pour utiliser votre empreinte, définissez un code PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Saisissez de nouveau votre mot de passe"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirmez votre schéma"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Saisissez de nouveau votre code"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 6565d15..e383cce 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Define un bloqueo de pantalla"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Por cuestións de seguranza, configura un contrasinal"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Impresión dixital: contrasinal"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Selecciona o teu padrón"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Impresión dixital: padrón"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Por cuestións de seguranza, configura un PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Impresión dixital: PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Volve introducir o teu contrasinal"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirma o teu padrón"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Volve introducir o teu PIN"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 4ca959c..32105e5 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"સ્ક્રીન લૉક સેટ કરો"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"સુરક્ષા માટે, પાસવર્ડ સેટ કરો"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"ફિંગરપ્રિન્ટ વાપરવા પાસવર્ડ સેટ કરો"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"તમારી પૅટર્ન પસંદ કરો"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"ફિંગરપ્રિન્ટ વાપરવા પૅટર્ન સેટ કરો"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"સુરક્ષા માટે, પિન સેટ કરો"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"ફિંગરપ્રિન્ટ વાપરવા પિન સેટ કરો"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"તમારો પાસવર્ડ ફરી દાખલ કરો"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"તમારા પેટર્નની પુષ્ટિ કરો"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"તમારો પિન ફરી દાખલ કરો"</string>
@@ -3408,8 +3409,7 @@
     <string name="telephony_monitor_toast" msgid="7003764250271195384">"Telephony Monitor ના ફેરફારો લાગુ કરવા, ઉપકરણને રીબૂટ કરો"</string>
     <string name="camera_hal_hdrplus_switch" msgid="8377365197105267466">"કૅમેરા HAL HDR+"</string>
     <string name="camera_hal_hdrplus_toast" msgid="2063703797270055299">"કૅમેરા HAL HDR+ ફેરફાર લાગુ કરવા માટે, ઉપકરણને રીબૂટ કરો."</string>
-    <!-- no translation found for camera_laser_sensor_switch (8913588990743234440) -->
-    <skip />
+    <string name="camera_laser_sensor_switch" msgid="8913588990743234440">"કૅમેરાનું લેસર સેન્સર"</string>
     <string name="ota_disable_automatic_update" msgid="2319639631655915050">"સ્વચાલિત સિસ્ટમ અપડેટ્સ"</string>
     <string name="usage" msgid="2977875522080448986">"વપરાશ"</string>
     <string name="cellular_data_usage" msgid="2155683719898158203">"મોબાઇલ ડેટા વપરાશ"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 00e7e59..cc51223 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"स्क्रीन लॉक सेट करें"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"सुरक्षा के लिए, पासवर्ड सेट करें"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"फ़िंगरप्रिंट का उपयोग करने के लिए, पासवर्ड सेट करें"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"अपना आकार चुनें"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"फ़िंगरप्रिंट का उपयोग करने के लिए, पैटर्न सेट करें"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"सुरक्षा के लिए, पिन सेट करें"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"फ़िंगरप्रिंट का उपयोग करने के लिए, पिन सेट करें"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"पासवर्ड फिर से दर्ज करें"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"अपने पैटर्न की पुष्टि करें"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"पिन फिर से दर्ज करें"</string>
@@ -3408,8 +3409,7 @@
     <string name="telephony_monitor_toast" msgid="7003764250271195384">"टेलीफ़ोनी मॉनिटर बदलाव लागू करने के लिए, डिवाइस को रीबूट करें"</string>
     <string name="camera_hal_hdrplus_switch" msgid="8377365197105267466">"कैमरा HAL HDR+"</string>
     <string name="camera_hal_hdrplus_toast" msgid="2063703797270055299">"कैमरा HAL HDR+ में किये गए बदलाव लागू करने के लिए, डिवाइस को फिर से चालू करें"</string>
-    <!-- no translation found for camera_laser_sensor_switch (8913588990743234440) -->
-    <skip />
+    <string name="camera_laser_sensor_switch" msgid="8913588990743234440">"कैमरा लेज़र सेंसर"</string>
     <string name="ota_disable_automatic_update" msgid="2319639631655915050">"स्वचालित सिस्टम अपडेट"</string>
     <string name="usage" msgid="2977875522080448986">"उपयोग"</string>
     <string name="cellular_data_usage" msgid="2155683719898158203">"मोबाइल डेटा खर्च"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 90fe273..bf2b5ee 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -1485,10 +1485,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Postavljanje zaključavanja zaslona"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Radi sigurnosti postavite zaporku"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Otisak prsta zahtijeva zaporku"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Odaberite uzorak"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Otisak prsta zahtijeva uzorak"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Radi sigurnosti postavite PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Otisak prsta zahtijeva PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Ponovni unos zaporke"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potvrdite uzorak"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Ponovni unos PIN-a"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index e05d4d5..95305e4 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Képernyőzár beállítása"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"A biztonság érdekében állítson be jelszót"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Jelszó az ujjlenyomathoz"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Válassza ki a mintát"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Minta az ujjlenyomathoz"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"A biztonság érdekében állítson be PIN-kódot"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"PIN-kód az ujjlenyomathoz"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Adja meg újra a jelszót"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Erősítse meg a mintát"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Adja meg újra a PIN-kódot"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index d5923ba..5555e0d 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Էկրանի կողպման կարգավորում"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Անվտանգության նկատառումներից ելնելով՝ ավելացրեք գաղտնաբառ"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Մատնահետքն օգտագործելու համար տեղադրեք գաղտնաբառ"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Ընտրեք ձեր կաղապարը"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Մատնահետքն օգտագործելու համար ստեղծեք նախշ"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Անվտանգության նկատառումներից ելնելով՝ ավելացրեք PIN կոդ"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Մատնահետքն օգտագործելու համար տեղադրեք PIN կոդ"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Նորից մուտքագրեք գաղտնաբառը"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Հաստատեք ձեր կաղապարը"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Նորից մուտքագրեք PIN կոդը"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 61f1115..3ef071e 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Setel kunci layar"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Untuk keamanan, setel sandi"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Setel sandi guna memakai sidik jari"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Pilih pola Anda"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Setel pola untuk fitur sidik jari"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Untuk keamanan, setel PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Setel PIN guna memakai sidik jari"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Masukkan ulang sandi"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Konfirmasi pola Anda"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Masukkan ulang PIN"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 6578c42..1328845 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Setja upp skjálás"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Settu upp aðgangsorð til að gæta fyllsta öryggis"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Aðgangsorð þarf fyrir fingrafar"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Veldu þér mynstur"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Mynstur þarf fyrir fingrafar"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Settu upp PIN-númer til að gæta fyllsta öryggis"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"PIN-númer þarf fyrir fingrafar"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Sláðu aðgangsorðið inn aftur"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Staðfestu mynstrið"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Sláðu PIN-númerið inn aftur"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index a3bdd36..cdd770a 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Imposta il blocco schermo"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Per motivi di sicurezza, imposta una password"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Per usare l\'impronta digitale, imposta la password"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Scegli la tua sequenza"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Per usare l\'impronta digitale, imposta la sequenza"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Per motivi di sicurezza, imposta un PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Per usare l\'impronta digitale, imposta il PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Inserisci di nuovo la password"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Conferma la tua sequenza"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Inserisci di nuovo il PIN"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 2238490..9f0f0df 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -1498,10 +1498,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"הגדרה של נעילת מסך"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"לשיפור האבטחה, מומלץ להגדיר סיסמה"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"כדי להשתמש בטביעת אצבע, הגדר סיסמה"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"הגדרת הקו לביטול נעילה"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"לטביעת האצבע נדרש קו ביטול נעילה"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"לשיפור האבטחה, מומלץ להגדיר קוד גישה"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"כאמצעי גיבוי, הגדר קוד גישה"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"יש להזין את הסיסמה שוב"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"אשר את הקו לביטול נעילה"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"יש להזין שוב את קוד הגישה"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 9e0b132..71fa9d4 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"画面ロックの設定"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"セキュリティを強化するには、パスワードを設定してください"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"指紋認証にはパスワードが必要です"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"パターンの選択"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"指紋認証にはパターンが必要です"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"セキュリティを強化するには、PIN を設定してください"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"指紋認証には PIN が必要です"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"パスワードの再入力"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"パターンの確認"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN の再入力"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 5d198c2..a47a9aa 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"ეკრანის დაბლოკვის მეთოდის დაყენება"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"უსაფრთხოებისთვის, დააყენეთ პაროლი"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"თითის ანაბეჭდის გამოსაყენებლად დააყენეთ პაროლი"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"აირჩიეთ გრაფიკული გასაღები"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"თითის ანაბეჭდისთვის დააყენეთ ნიმუში"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"უსაფრთხოებისთვის, დააყენეთ PIN-კოდი"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"თითის ანაბეჭდის გამოსაყენებლად დააყენეთ PIN-კოდი"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"ხელახლა შეიყვანეთ თქვენი პაროლი"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"დაადასტურეთ ნიმუში"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ხელახლა შეიყვანეთ თქვენი PIN-კოდი"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 1f52b8d..54eb565 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Экранды құлыптауды орнатыңыз"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Қауіпсіздік үшін құпия сөз орнатыңыз"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Саусақ ізін пайдалану үшін құпия сөз орнатыңыз"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Өрнек салу"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Саусақ ізін пайдалану үшін өрнекті орнатыңыз"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Қауіпсіздік үшін PIN кодын орнатыңыз"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Саусақ ізін пайдалану үшін PIN кодын пайдаланыңыз"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Құпия сөзді қайта енгізіңіз"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Өрнекті растаңыз"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN кодын қайта енгізіңіз"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 82114eb..439a9cb 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"កំណត់​ការចាក់​សោអេក្រង់"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"ដើម្បី​ទទួលបាន​សុវត្ថិភាព សូម​កំណត់​ពាក្យសម្ងាត់"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"ដើម្បី​ប្រើប្រាស់​ស្នាម​ម្រាមដៃ សូម​កំណត់​ពាក្យសម្ងាត់"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"ជ្រើស​លំនាំ​របស់​អ្នក"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"ដើម្បី​ប្រើស្នាម​ម្រាមដៃ សូម​កំណត់​លំនាំ"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"ដើម្បី​ទទួលបាន​សុវត្ថិភាព សូម​កំណត់​កូដ PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"ដើម្បី​ប្រើប្រាស់​ស្នាម​ម្រាមដៃ សូម​កំណត់​កូដ PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"បញ្ចូល​ពាក្យ​សម្ងាត់​របស់​អ្នក​ម្តងទៀត"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"បញ្ជាក់​លំនាំដើម​របស់​អ្នក"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"បញ្ចូល​កូដ PIN របស់អ្នក​ម្តងទៀត"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 544d572..6c85260 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"ಪರದೆ ಲಾಕ್ ಹೊಂದಿಸಿ"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"ಸುರಕ್ಷತೆಗಾಗಿ, ಪಾಸ್‌ವರ್ಡ್‌ ಹೊಂದಿಸಿ"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಬಳಸಲು, ಪಾಸ್‌ವರ್ಡ್‌ ಹೊಂದಿಸಿ"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"ಪ್ಯಾಟರ್ನ್ ಆಯ್ಕೆ ಮಾಡಿ"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"ಬೆರಳಚ್ಚು ಬಳಸಲು, ಪ್ಯಾಟರ್ನ್ ಹೊಂದಿಸಿ"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"ಸುರಕ್ಷತೆಗಾಗಿ, ಪಿನ್ ಅನ್ನು ಹೊಂದಿಸಿ"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"ಬೆರಳಚ್ಚು ಬಳಸಲು, ಪಿನ್ ಹೊಂದಿಸಿ"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಮರು ನಮೂದಿಸಿ"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ದೃಢೀಕರಿಸಿ"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ನಿಮ್ಮ ಪಿನ್‌ ಅನ್ನು ಮರು ನಮೂದಿಸಿ"</string>
@@ -3408,8 +3409,7 @@
     <string name="telephony_monitor_toast" msgid="7003764250271195384">"ದೂರವಾಣಿ ಮಾನಿಟರ್ ಬದಲಾವಣೆಯನ್ನು ಅನ್ವಯಿಸಲು, ಸಾಧನವನ್ನು ರೀಬೂಟ್ ಮಾಡಿ"</string>
     <string name="camera_hal_hdrplus_switch" msgid="8377365197105267466">"HAL HDR+ ಕ್ಯಾಮೆರಾ"</string>
     <string name="camera_hal_hdrplus_toast" msgid="2063703797270055299">"HAL HDR+ ಕ್ಯಾಮೆರಾ ಬದಲಾವಣೆಯನ್ನು ಅನ್ವಯಿಸಲು, ಸಾಧನವನ್ನು ರೀಬೂಟ್ ಮಾಡಿ"</string>
-    <!-- no translation found for camera_laser_sensor_switch (8913588990743234440) -->
-    <skip />
+    <string name="camera_laser_sensor_switch" msgid="8913588990743234440">"ಕ್ಯಾಮೆರಾ ಲೇಸರ್ ಸೆನ್ಸಾರ್"</string>
     <string name="ota_disable_automatic_update" msgid="2319639631655915050">"ಸ್ವಯಂಚಾಲಿತ ಸಿಸ್ಟಂ ಅಪ್‌ಡೇಟ್‌ಗಳು"</string>
     <string name="usage" msgid="2977875522080448986">"ಬಳಕೆ"</string>
     <string name="cellular_data_usage" msgid="2155683719898158203">"ಮೊಬೈಲ್ ಡೇಟಾ ಬಳಕೆ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 9bd6673..4e06026 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"화면 잠금 설정"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"보안을 위해 비밀번호를 설정하세요."</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"비밀번호를 설정하여 지문 사용"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"패턴 선택"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"지문 사용 전 입력할 패턴 설정"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"보안을 위해 PIN을 설정하세요."</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"PIN을 설정하여 지문 사용"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"비밀번호 다시 입력"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"패턴 확인"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN 다시 입력"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index ba3f2e6..99684c9 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -1471,10 +1471,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Экран кулпусун коюп алыңыз"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Коопсуздук үчүн сырсөз коюп алыңыз"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Манжа изин колдонуу үчүн сырсөздү жөндөңүз"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Графикалык ачкычты тандаңыз"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Манжа изин колдонуу үчүн графикалык ачкычты жөндөңүз"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Коопсуздук үчүн PIN код коюп алыңыз"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Манжа изин колдонуу үчүн PIN кодду жөндөңүз"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Сырсөзүңүздү кайра киргизиңиз"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Графикалык ачкычыңызды ырастаңыз"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN кодуңузду кайра киргизиңиз"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index c9226d3..07b5166 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"ຕັ້ງໜ້າຈໍລັອກ"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"ເພື່ອຄວາມປອດໄພ, ໃຫ້ຕັ້ງລະຫັດຜ່ານໄວ້"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"ເພື່ອໃຊ້ລາຍນິ້ວມື, ໃຫ້ຕັ້ງລະຫັດຜ່ານກ່ອນ"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"ເລືອກຮູບແບບຂອງທ່ານ"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"ເພື່ອໃຊ້ລາຍນິ້ວມື, ໃຫ້ຕັ້ງຮູບແບບປົດລັອກກ່ອນ"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"ເພື່ອຄວາມປອດໄພ, ໃຫ້ຕັ້ງລະຫັດ PIN ໄວ້"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"ເພື່ອໃຊ້ລາຍນິ້ວມື, ໃຫ້ຕັ້ງລະຫັດ PIN ກ່ອນ"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"ໃສ່ລະຫັດຜ່ານຂອງທ່ານອີກຄັ້ງ"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"ຢືນຢັນຮູບແບບຂອງທ່ານ"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ໃສ່ລະຫັດ PIN ຂອງທ່ານອີກຄັ້ງ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index fa8ce78..31afeb7 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -1498,10 +1498,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Ekrano užrakto nustatymas"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Kad užtikrintumėte saugumą, nustatykite slaptažodį"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Nust. slapt., kad gal. naud. kont. kodą"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Pasirinkite piešinį"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Nust. atrak. pieš., kad gal. naud. kont. kodą"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Kad užtikrintumėte saugumą, nustatykite PIN kodą"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Nus. PIN kodą, kad gal. naud. kon. kodą"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Įveskite slaptažodį iš naujo"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Patvirtinkite piešinį"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Įveskite PIN kodą iš naujo"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 6f23d79..9279824 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -1485,10 +1485,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Ekrāna bloķēšanas iestatīšana"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Drošības nolūkos iestatiet paroli."</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Parole pirksta nosp. lietošanai"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Izvēlieties kombināciju"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Kombinācijas iestatīšana"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Drošības nolūkos iestatiet PIN."</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"PIN pirksta nosp. lietošanai"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Atkārtota paroles ievade"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Apstipriniet kombināciju"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Atkārtota PIN ievade"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 1044b90..5c4a2dc 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Поставете заклучување екран"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"За безбедност, поставете лозинка"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Поставете лозинка за отпечаток"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Изберете шема"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Поставете шема за отпечаток"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"За безбедност, поставете PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Поставете PIN за отпечаток"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Внесете ја лозинката повторно"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Потврдете ја шемата"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Внесете го PIN-кодот повторно"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 3ce73f3..006c6b7 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -386,7 +386,7 @@
     <string name="skip_anyway_button_label" msgid="2323522873558834513">"ഏതുവിധേയനയും ഒഴിവാക്കുക"</string>
     <string name="go_back_button_label" msgid="4745265266186209467">"തിരിച്ചുപോവുക"</string>
     <string name="security_settings_fingerprint_enroll_find_sensor_title" msgid="3051496861358227199">"സെൻസർ സ്പർശിക്കുക"</string>
-    <string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="8793966374365960368">"ഫോണിന്റെ പിൻവശത്താണ് അതുള്ളത്. നിങ്ങളുടെ ചൂണ്ടുവിരൽ ഉപയോഗിക്കുക."</string>
+    <string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="8793966374365960368">"ഫോണിന്റെ പിൻവശത്താണ് അതുള്ളത്. ചൂണ്ടുവിരൽ ഉപയോഗിക്കുക."</string>
     <string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="2058830032070449160">"ഉപകരണത്തിലെ ചിത്രീകരണവും ഫിംഗർപ്രിന്റ് സെൻസർ ലൊക്കേഷനും"</string>
     <string name="security_settings_fingerprint_enroll_dialog_name_label" msgid="7086763077909041106">"പേര്"</string>
     <string name="security_settings_fingerprint_enroll_dialog_ok" msgid="4150384963879569750">"ശരി"</string>
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"ഒരു സ്‌ക്രീൻ ലോക്ക് സജ്ജമാക്കുക"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"സുരക്ഷയ്‌ക്കായി, ഒരു പാസ്‌വേഡ് സജ്ജമാക്കുക"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"വിരലടയാളം ഉപയോഗിക്കാൻ, പാസ്‌വേഡ് സജ്ജമാക്കുക"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"പാറ്റേൺ തിരഞ്ഞെടുക്കൂ"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"വിരലടയാളം ഉപയോഗിക്കാൻ, പാറ്റേൺ സജ്ജമാക്കുക"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"സുരക്ഷയ്‌ക്കായി, ഒരു പിൻ സജ്ജമാക്കുക"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"വിരലടയാളം ഉപയോഗിക്കാൻ, പിൻ സജ്ജമാക്കുക"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"നിങ്ങളുടെ പാസ്‌വേഡ് വീണ്ടും നൽകുക"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"നിങ്ങളുടെ പാറ്റേൺ സ്ഥിരീകരിക്കുക"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"നിങ്ങളുടെ പിൻ വീണ്ടും നൽകുക"</string>
@@ -2749,7 +2750,7 @@
     <string name="network_dashboard_summary_mobile" msgid="3851083934739500429">"മൊബൈല്‍"</string>
     <string name="network_dashboard_summary_data_usage" msgid="3843261364705042212">"ഡാറ്റ ഉപയോഗം"</string>
     <string name="network_dashboard_summary_hotspot" msgid="8494210248613254574">"ഹോട്ട്‌സ്‌പോട്ട്"</string>
-    <string name="connected_devices_dashboard_title" msgid="2355264951438890709">"കണക്‌റ്റുചെയ്ത ഉപകരണം"</string>
+    <string name="connected_devices_dashboard_title" msgid="2355264951438890709">"കണക്‌റ്റ് ചെയ്ത ഉപകരണങ്ങൾ"</string>
     <string name="connected_devices_dashboard_summary" msgid="2390582103384791904">"Bluetooth, കാസ്റ്റ്, NFC"</string>
     <string name="connected_devices_dashboard_no_nfc_summary" msgid="9106040742715366495">"Bluetooth, കാസ്‌റ്റ്"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ആപ്‌സും അറിയിപ്പുകളും"</string>
@@ -3408,8 +3409,7 @@
     <string name="telephony_monitor_toast" msgid="7003764250271195384">"ടെലിഫോണി മോണിറ്ററിലെ മാറ്റം പ്രയോഗിക്കാൻ ഉപകരണം റീബൂട്ടുചെയ്യുക"</string>
     <string name="camera_hal_hdrplus_switch" msgid="8377365197105267466">"ക്യാമറ HAL HDR+"</string>
     <string name="camera_hal_hdrplus_toast" msgid="2063703797270055299">"ക്യാമറ HAL HDR+ മാറ്റം പ്രയോഗിക്കാൻ, ഉപകരണം റീബൂട്ട് ചെയ്യുക"</string>
-    <!-- no translation found for camera_laser_sensor_switch (8913588990743234440) -->
-    <skip />
+    <string name="camera_laser_sensor_switch" msgid="8913588990743234440">"ക്യാമറ ലേസർ സെൻസർ"</string>
     <string name="ota_disable_automatic_update" msgid="2319639631655915050">"സ്വയമേവയുള്ള സിസ്റ്റം അപ്ഡേറ്റുകൾ"</string>
     <string name="usage" msgid="2977875522080448986">"ഉപയോഗം"</string>
     <string name="cellular_data_usage" msgid="2155683719898158203">"മൊബൈൽ ഡാറ്റ ഉപയോഗം"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index dce6227..42bed6c 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Дэлгэцийн түгжээ тохируулах"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Аюулгүйн үүднээс нууц үг тохируулах"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Хурууны хээ ашиглахын тулд нууц үг тохируулах"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Өөрийн хээг сонгоно уу"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Хурууны хээ ашиглахын тулд загвар тохируулах"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Аюулгүйн үүднээс ПИН тохируулах"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Хурууны хээ ашиглахын тулд ПИН тохируулах"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Нууц үгээ дахин оруулах"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Хээгээ баталгаажуулна уу"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ПИН-ээ дахин оруулах"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index d760393..e36ea5e 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"स्क्रीन लॉक सेट करा"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"सुरक्षिततेसाठी पासवर्ड सेट करा."</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"फिंगरप्रिंट वापरण्यासाठी पासवर्ड सेट करा"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"आपला पॅटर्न निवडा"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"फिंगरप्रिंट वापरण्यासाठी पॅटर्न सेट करा"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"सुरक्षिततेसाठी पिन सेट करा"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"फिंगरप्रिंट वापरण्यासाठी पिन सेट करा"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"तुमचा पासवर्ड पुन्‍हा टाका"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"आपल्या नमुन्याची पुष्टी करा"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"तुमचा पिन पुन्हा टाका"</string>
@@ -3408,8 +3409,7 @@
     <string name="telephony_monitor_toast" msgid="7003764250271195384">"टेलिफोनी मॉनिटर बदल लागू करण्‍यासाठी, डिव्हाइस रीबूट करा"</string>
     <string name="camera_hal_hdrplus_switch" msgid="8377365197105267466">"कॅमेरा HAL HDR+"</string>
     <string name="camera_hal_hdrplus_toast" msgid="2063703797270055299">"कॅमेरा HAL HDR+ बदल लागू करण्यासाठी डिव्हाइस रीबूट करा"</string>
-    <!-- no translation found for camera_laser_sensor_switch (8913588990743234440) -->
-    <skip />
+    <string name="camera_laser_sensor_switch" msgid="8913588990743234440">"कॅमेरा लेझर सेंसर"</string>
     <string name="ota_disable_automatic_update" msgid="2319639631655915050">"स्वयंचलित सिस्टम अपडेट"</string>
     <string name="usage" msgid="2977875522080448986">"वापर"</string>
     <string name="cellular_data_usage" msgid="2155683719898158203">"मोबाइल डेटा वापर"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index aa3cedb..11fe760 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Tetapkan kunci skrin"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Sebagai langkah keselamatan, tetapkan kata laluan"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Ttpkn kta lluan utk gnakan cp jari"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Pilih corak anda"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Buat corak utk guna cap jari"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Sebagai langkah keselamatan, tetapkan PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Ttpkn PIN utk gunakan cap jari"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Masukkan semula kata laluan anda"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Sahkan corak anda"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Masukkan semula PIN anda"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 69888d0..db54f4d 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"မျက်နှာပြင်လော့ခ်တစ်ခုကို သတ်မှတ်ပါ"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"လုံခြုံရေးအတွက် စကားဝှက်တစ်ခု သတ်မှတ်ပါ"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"လက်ဗွေသုံးရန် စကားဝှက်သတ်မှတ်ပါ"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"သင့်ပုံစံအား ရွေးပါ"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"လက်ဗွေသုံးရန် ပုံစံသတ်မှတ်ပါ"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"လုံခြုံရေးအတွက် ပင်နံပါတ်တစ်ခု သတ်မှတ်ပါ"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"လက်ဗွေသုံးရန် ပင်သတ်မှတ်ပါ"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"သင့်စကားဝှက်ကို ပြန်ထည့်ပါ"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"သင့်ပုံဖော်မှုကို အတည်ပြုပါ"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"သင့်ပင်နံပါတ်ကို ပြန်ထည့်ပါ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index fce6863..9d34307 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Angi en skjermlås"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Angi et passord for sikkerheten"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Angi passord for å bruke fingeravtrykk"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Velg mønster"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Angi mønster for å bruke fingeravtrykk"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Angi en PIN-kode for sikkerheten"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Angi PIN for å bruke fingeravtrykk"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Angi passordet på nytt"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Bekreft mønsteret"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Angi PIN-koden på nytt"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index b7fb7f3..c9b9aa8 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"एउटा स्क्रिन लक सेट गर्नुहोस्"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"सुरक्षाका लागि एउटा पासवर्ड सेट गर्नुहोस्"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"फिंगरप्रिन्ट प्रयोग गर्न पासवर्ड सेट गर्नुहोस्"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"तपाईँको ढाँचा छान्नुहोस्"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"फिंगरप्रिन्ट प्रयोग गर्न ढाँचा सेट गर्नुहोस्"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"सुरक्षाका ला‍गि एउटा PIN सेट गर्नुहोस्"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"फिंगरप्रिन्ट प्रयोग गर्न PIN सेट गर्नुहोस्"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"आफ्नो पासवर्ड पुन: प्रविष्ट गर्नुहोस्"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"तपाईँको ढाँचा निश्चित गर्नुहोस्"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"आफ्नो PIN पुन: प्रविष्ट गर्नुहोस्"</string>
@@ -3408,8 +3409,7 @@
     <string name="telephony_monitor_toast" msgid="7003764250271195384">"टेलिफोनी मनिटरमा गरिएको परिवर्तनलाई लागू गर्न यन्त्रलाई पुनःबुट गर्नुहोस्"</string>
     <string name="camera_hal_hdrplus_switch" msgid="8377365197105267466">"क्यामेरा HAL HDR+"</string>
     <string name="camera_hal_hdrplus_toast" msgid="2063703797270055299">"क्यामेरा HAL HDR+ मा गरिएको परिवर्तनलाई लागू गर्न यन्त्रलाई पुनः बुट गर्नुहोस्"</string>
-    <!-- no translation found for camera_laser_sensor_switch (8913588990743234440) -->
-    <skip />
+    <string name="camera_laser_sensor_switch" msgid="8913588990743234440">"क्यामेरा लेजरको सेन्सर"</string>
     <string name="ota_disable_automatic_update" msgid="2319639631655915050">"स्वचालित प्रणाली अद्यावधिकहरू"</string>
     <string name="usage" msgid="2977875522080448986">"उपयोग"</string>
     <string name="cellular_data_usage" msgid="2155683719898158203">"मोबाइल डेटाको प्रयोग"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 41b8f33..f2f5481 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Een schermvergrendeling instellen"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Stel een wachtwoord in voor betere beveiliging"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Stel wachtwoord in voor gebruik van vingerafdruk"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Je patroon kiezen"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Stel patroon in voor gebruik van vingerafdruk"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Stel een pincode in voor betere beveiliging"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Stel pincode in voor gebruik van vingerafdruk"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Geef je wachtwoord opnieuw op"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Je patroon bevestigen"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Geef je pincode opnieuw op"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index bb9041f..a61f5bb 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -88,7 +88,7 @@
     <string name="font_size_preview_text_headline" msgid="7955317408475392247">"ਨਮੂਨਾ ਲਿਖਤ"</string>
     <string name="font_size_preview_text_title" msgid="1310536233106975546">"ਔਜ਼ ਦਾ ਨਿਰਾਲਾ ਵਿਜ਼ਾਰਡ"</string>
     <string name="font_size_preview_text_subtitle" msgid="4231671528173110093">"ਪਾਠ 11: ਔਜ਼ ਦਾ ਹੀਰਿਆਂ-ਪੰਨਿਆਂ ਵਾਲਾ ਨਿਰਾਲਾ ਸ਼ਹਿਰ"</string>
-    <string name="font_size_preview_text_body" msgid="2846183528684496723">"ਹਰੇ ਰੰਗ ਦੀਆਂ ਐਨਕਾਂ ਲਗਾ ਕੇ ਵੀ ਡੋਰਥੀ ਅਤੇ ਉਸ ਦੇ ਦੋਸਤ ਨਿਰਾਲੇ ਸ਼ਹਿਰ ਦੀ ਚਮਕ-ਦਮਕ ਦੇਖ ਕੇ ਹੈਰਾਨ ਸਨ। ਹਰੇ ਰੰਗ ਦੇ ਮਾਰਬਲ ਨਾਲ ਬਣੇ ਹੋਏ ਸੁੰਦਰ ਘਰ, ਗਲੀਆਂ ਵਿੱਚ ਕਤਾਰਬੱਧ ਸਨ ਅਤੇ ਉਹਨਾਂ ਵਿੱਚ ਚਮਕਦੇ ਪੰਨੇ ਜੜੇ ਹੋਏ ਸਨ। ਉਹ ਉਸੇ ਹਰੇ ਮਾਰਬਲ ਦੇ ਫੁੱਟਪਾਥ \'ਤੇ ਪੈਦਲ ਤੁਰ ਪਏ, ਅਤੇ ਜਿੱਥੇ ਆਲੇ-ਦੁਆਲੇ ਰੱਖੇ ਹੋਏ ਮਾਰਬਲ ਪੱਥਰ ਆਪਸ ਵਿੱਚ ਜੁੜਦੇ ਸਨ ਉੱਥੇ ਨੇੜੇ-ਨੇੜੇ ਲਗਾਏ ਗਏ ਪੰਨਿਆਂ ਦੀਆਂ ਕਤਾਰਾਂ ਸਨ ਅਤੇ ਧੁੱਪ ਵਿੱਚ ਚਮਕ ਰਹੀਆਂ ਸਨ। ਖਿੜਕੀਆਂ ਦੇ ਸ਼ੀਸ਼ੇ ਹਰੇ ਰੰਗ ਦੇ ਸਨ; ਇੱਥੋਂ ਤੱਕ ਕਿ ਸ਼ਹਿਰ ਦੇ ਉੱਤੇ ਅਸਮਾਨ ਵਿੱਚ ਵੀ ਹਰੇ ਰੰਗ ਦੀ ਭਾਅ ਸੀ, ਅਤੇ ਸੂਰਜ ਦੀਆਂ ਕਿਰਨਾਂ ਵੀ ਹਰੇ ਰੰਗ ਦੀਆਂ ਸਨ। \n\nਉੱਥੇ ਬਹੁਤ ਸਾਰੇ ਲੋਕ, ਆਦਮੀ, ਔਰਤਾਂ, ਅਤੇ ਬੱਚੇ ਘੁੰਮ ਰਹੇ ਸਨ, ਅਤੇ ਉਹਨਾਂ ਨੇ ਹਰੇ ਰੰਗ ਦੇ ਕੱਪੜੇ ਪਾਏ ਹੋਏ ਸਨ ਅਤੇ ਉਹਨਾਂ ਦੀ ਚਮੜੀ ਦਾ ਰੰਗ ਵੀ ਹਰਾ ਹੀ ਸੀ। ਉੁਹਨਾਂ ਨੇ ਡੋਰਥੀ ਅਤੇ ਉਸਦੇ ਅਜੀਬੋ-ਗਰੀਬ ਦੋਸਤਾਂ ਵੱਲ ਹੈਰਾਨੀ ਭਰੀਆਂ ਨਜ਼ਰਾਂ ਨਾਲ ਦੇਖਿਆ, ਅਤੇ ਜਦੋਂ ਬੱਚਿਆਂ ਨੇ ਸ਼ੇਰ ਨੂੰ ਦੇਖਿਆ ਤਾਂ ਸਾਰੇ ਬੱਚੇ ਭੱਜ ਗਏ ਅਤੇ ਆਪਣੀਆਂ ਮਾਵਾਂ ਦੇ ਪਿੱਛੇ ਜਾ ਕੇ ਲੁਕ ਗਏ; ਪਰ ਕਿਸੇ ਨੇ ਵੀ ਉਹਨਾਂ ਨਾਲ ਗੱਲ ਨਹੀਂ ਕੀਤੀ। ਗਲੀ ਵਿੱਚ ਬਹੁਤ ਸਾਰੀਆਂ ਦੁਕਾਨਾਂ ਸਨ, ਅਤੇ ਡੋਰਥੀ ਨੇ ਦੇਖਿਆ ਕਿ ਉੱਥੇ ਸਭ ਕੁਝ ਹਰੇ ਰੰਗ ਦਾ ਹੀ ਸੀ। ਹਰੇ ਰੰਗ ਦੀਆਂ ਟੌਫੀਆਂ, ਅਤੇ ਹਰੇ ਰੰਗੇ ਦੇ ਮੱਕੀ ਦੇ ਫੁੱਲੇ ਵੇਚੇ ਜਾ ਰਹੇ ਸਨ, ਹਰੇ ਰੰਗ ਦੇ ਬੂਟ ਵੀ, ਹਰੀਆਂ ਟੋਪੀਆਂ, ਅਤੇ ਸਾਰੀਆਂ ਕਿਸਮਾਂ ਦੇ ਹਰੇ ਰੰਗ ਦੇ ਕੱਪੜੇ। ਇੱਕ ਥਾਂ \'ਤੇ ਇੱਕ ਵਿਅਕਤੀ ਹਰੇ ਰੰਗ ਦੀ ਸ਼ਕੰਜਵੀ ਵੇਚ ਰਿਹਾ ਸੀ, ਅਤੇ ਜਦੋਂ ਬੱਚੇ ਸ਼ਕੰਜਵੀ ਨੂੰ ਖ਼ਰੀਦ ਰਹੇ ਸਨ ਤਾਂ ਡੋਰਥੀ ਦੇਖ ਸਕਦੀ ਸੀ ਕਿ ਉਹ ਉਸ ਵਿਅਕਤੀ ਨੂੰ ਹਰੇ ਰੰਗ ਦੀਆਂ ਪੈਨੀਆਂ (ਪੈਸੇ) ਦੇ ਰਹੇ ਸਨ। \n\nਇੰਝ ਪ੍ਰਤੀਤ ਹੁੰਦਾ ਸੀ ਕਿ ਉੱਥੇ ਕੋਈ ਘੋੜੇ ਜਾਂ ਕਿਸੇ ਵੀ ਕਿਸਮ ਦੇ ਜਾਨਵਰ ਨਹੀਂ ਸਨ: ਬੰਦੇ ਹਰੇ ਰੰਗ ਦੇ ਛੋਟੇ-ਛੋਟੇ ਗੱਡਿਆਂ ਉੱਤੇ ਚੀਜ਼ਾਂ ਨੂੰ ਇੱਧਰ-ਉੱਧਰ ਲੈ ਕੇ ਜਾ ਰਹੇ ਸਨ, ਜਿੰਨ੍ਹਾਂ ਨੂੰ ਉਹ ਆਪਣੇ ਅੱਗੇ ਧਕੇਲ ਕੇ ਲੈ ਜਾ ਰਹੇ ਸਨ। ਹਰ ਕੋਈ ਖੁਸ਼ ਅਤੇ ਸੰਤੁਸ਼ਟ ਅਤੇ ਖ਼ੁਸ਼ਹਾਲ ਪ੍ਰਤੀਤ ਹੋ ਰਿਹਾ ਸੀ।"</string>
+    <string name="font_size_preview_text_body" msgid="2846183528684496723">"ਹਰੇ ਰੰਗ ਦੀਆਂ ਐਨਕਾਂ ਲਗਾ ਕੇ ਵੀ ਡੋਰਥੀ ਅਤੇ ਉਸ ਦੇ ਦੋਸਤ ਨਿਰਾਲੇ ਸ਼ਹਿਰ ਦੀ ਚਮਕ-ਦਮਕ ਦੇਖ ਕੇ ਹੈਰਾਨ ਸਨ। ਹਰੇ ਰੰਗ ਦੇ ਮਾਰਬਲ ਨਾਲ ਬਣੇ ਹੋਏ ਸੁੰਦਰ ਘਰ, ਗਲੀਆਂ ਵਿੱਚ ਕਤਾਰਬੱਧ ਸਨ ਅਤੇ ਉਹਨਾਂ ਵਿੱਚ ਚਮਕਦੇ ਪੰਨੇ ਜੜੇ ਹੋਏ ਸਨ। ਉਹ ਉਸੇ ਹਰੇ ਮਾਰਬਲ ਦੇ ਫੁੱਟਪਾਥ \'ਤੇ ਪੈਦਲ ਤੁਰ ਪਏ, ਅਤੇ ਜਿੱਥੇ ਆਲੇ-ਦੁਆਲੇ ਰੱਖੇ ਹੋਏ ਮਾਰਬਲ ਪੱਥਰ ਆਪਸ ਵਿੱਚ ਜੁੜਦੇ ਸਨ ਉੱਥੇ ਨੇੜੇ-ਨੇੜੇ ਲਗਾਏ ਗਏ ਪੰਨਿਆਂ ਦੀਆਂ ਕਤਾਰਾਂ ਸਨ ਅਤੇ ਧੁੱਪ ਵਿੱਚ ਚਮਕ ਰਹੀਆਂ ਸਨ। ਖਿੜਕੀਆਂ ਦੇ ਸ਼ੀਸ਼ੇ ਹਰੇ ਰੰਗ ਦੇ ਸਨ; ਇੱਥੋਂ ਤੱਕ ਕਿ ਸ਼ਹਿਰ ਦੇ ਉੱਤੇ ਅਸਮਾਨ ਵਿੱਚ ਵੀ ਹਰੇ ਰੰਗ ਦੀ ਭਾਅ ਸੀ, ਅਤੇ ਸੂਰਜ ਦੀਆਂ ਕਿਰਨਾਂ ਵੀ ਹਰੇ ਰੰਗ ਦੀਆਂ ਸਨ। \n\nਉੱਥੇ ਬਹੁਤ ਸਾਰੇ ਲੋਕ, ਆਦਮੀ, ਔਰਤਾਂ, ਅਤੇ ਬੱਚੇ ਘੁੰਮ ਰਹੇ ਸਨ, ਅਤੇ ਉਹਨਾਂ ਨੇ ਹਰੇ ਰੰਗ ਦੇ ਕੱਪੜੇ ਪਾਏ ਹੋਏ ਸਨ ਅਤੇ ਉਹਨਾਂ ਦੀ ਚਮੜੀ ਦਾ ਰੰਗ ਵੀ ਹਰਾ ਹੀ ਸੀ। ਉੁਹਨਾਂ ਨੇ ਡੋਰਥੀ ਅਤੇ ਉਸਦੇ ਅਜੀਬੋ-ਗਰੀਬ ਦੋਸਤਾਂ ਵੱਲ ਹੈਰਾਨੀ ਭਰੀਆਂ ਨਜ਼ਰਾਂ ਨਾਲ ਦੇਖਿਆ, ਅਤੇ ਜਦੋਂ ਬੱਚਿਆਂ ਨੇ ਸ਼ੇਰ ਨੂੰ ਦੇਖਿਆ ਤਾਂ ਸਾਰੇ ਬੱਚੇ ਭੱਜ ਗਏ ਅਤੇ ਆਪਣੀਆਂ ਮਾਵਾਂ ਦੇ ਪਿੱਛੇ ਜਾ ਕੇ ਲੁਕ ਗਏ; ਪਰ ਕਿਸੇ ਨੇ ਵੀ ਉਹਨਾਂ ਨਾਲ ਗੱਲ ਨਹੀਂ ਕੀਤੀ। ਗਲੀ ਵਿੱਚ ਬਹੁਤ ਸਾਰੀਆਂ ਦੁਕਾਨਾਂ ਸਨ, ਅਤੇ ਡੋਰਥੀ ਨੇ ਦੇਖਿਆ ਕਿ ਉੱਥੇ ਸਭ ਕੁਝ ਹਰੇ ਰੰਗ ਦਾ ਹੀ ਸੀ। ਹਰੇ ਰੰਗ ਦੀਆਂ ਟੌਫੀਆਂ, ਅਤੇ ਹਰੇ ਰੰਗੇ ਦੇ ਮੱਕੀ ਦੇ ਫੁੱਲੇ ਵੇਚੇ ਜਾ ਰਹੇ ਸਨ, ਹਰੇ ਰੰਗ ਦੇ ਬੂਟ ਵੀ, ਹਰੀਆਂ ਟੋਪੀਆਂ, ਅਤੇ ਸਾਰੀਆਂ ਕਿਸਮਾਂ ਦੇ ਹਰੇ ਰੰਗ ਦੇ ਕੱਪੜੇ। ਇੱਕ ਥਾਂ \'ਤੇ ਇੱਕ ਵਿਅਕਤੀ ਹਰੇ ਰੰਗ ਦੀ ਸ਼ਕੰਜਵੀ ਵੇਚ ਰਿਹਾ ਸੀ, ਅਤੇ ਜਦੋਂ ਬੱਚੇ ਸ਼ਕੰਜਵੀ ਨੂੰ ਖਰੀਦ ਰਹੇ ਸਨ ਤਾਂ ਡੋਰਥੀ ਦੇਖ ਸਕਦੀ ਸੀ ਕਿ ਉਹ ਉਸ ਵਿਅਕਤੀ ਨੂੰ ਹਰੇ ਰੰਗ ਦੀਆਂ ਪੈਨੀਆਂ (ਪੈਸੇ) ਦੇ ਰਹੇ ਸਨ। \n\nਇੰਝ ਪ੍ਰਤੀਤ ਹੁੰਦਾ ਸੀ ਕਿ ਉੱਥੇ ਕੋਈ ਘੋੜੇ ਜਾਂ ਕਿਸੇ ਵੀ ਕਿਸਮ ਦੇ ਜਾਨਵਰ ਨਹੀਂ ਸਨ: ਬੰਦੇ ਹਰੇ ਰੰਗ ਦੇ ਛੋਟੇ-ਛੋਟੇ ਗੱਡਿਆਂ ਉੱਤੇ ਚੀਜ਼ਾਂ ਨੂੰ ਇੱਧਰ-ਉੱਧਰ ਲੈ ਕੇ ਜਾ ਰਹੇ ਸਨ, ਜਿੰਨ੍ਹਾਂ ਨੂੰ ਉਹ ਆਪਣੇ ਅੱਗੇ ਧਕੇਲ ਕੇ ਲੈ ਜਾ ਰਹੇ ਸਨ। ਹਰ ਕੋਈ ਖੁਸ਼ ਅਤੇ ਸੰਤੁਸ਼ਟ ਅਤੇ ਖ਼ੁਸ਼ਹਾਲ ਪ੍ਰਤੀਤ ਹੋ ਰਿਹਾ ਸੀ।"</string>
     <string name="font_size_save" msgid="3450855718056759095">"ਠੀਕ"</string>
     <string name="sdcard_setting" product="nosdcard" msgid="8281011784066476192">"USB ਸਟੋਰੇਜ"</string>
     <string name="sdcard_setting" product="default" msgid="5922637503871474866">"SD ਕਾਰਡ"</string>
@@ -328,8 +328,8 @@
     <string name="time_picker_title" msgid="483460752287255019">"ਸਮਾਂ"</string>
     <string name="lock_after_timeout" msgid="4590337686681194648">"ਸਵੈਚਲਿਤ ਤਰੀਕੇ ਨਾਲ ਲਾਕ ਕਰੋ"</string>
     <string name="lock_after_timeout_summary" msgid="6128431871360905631">"ਸਲੀਪ ਤੋਂ ਬਾਅਦ <xliff:g id="TIMEOUT_STRING">%1$s</xliff:g>"</string>
-    <string name="lock_immediately_summary_with_exception" msgid="9119632173886172690">"ਸਲੀਪ ਦੇ ਤੁਰੰਤ ਬਾਅਦ, ਇਸਦੇ ਸਿਵਾਏ ਜਦੋਂ <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> ਵੱਲੋਂ ਅਨਲੌਕ ਨਾ ਰੱਖਿਆ ਗਿਆ ਹੋਵੇ"</string>
-    <string name="lock_after_timeout_summary_with_exception" msgid="5579064842797188409">"ਸਲੀਪ ਤੋਂ ਬਾਅਦ <xliff:g id="TIMEOUT_STRING">%1$s</xliff:g>, ਸਿਵਾਏ ਇਸਦੇ ਜਦੋਂ <xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g> ਵੱਲੋਂ ਅਨਲੌਕ ਰੱਖਿਆ ਹੋਵੇ"</string>
+    <string name="lock_immediately_summary_with_exception" msgid="9119632173886172690">"ਸਲੀਪ ਦੇ ਤੁਰੰਤ ਬਾਅਦ, ਇਸਦੇ ਸਿਵਾਏ ਜਦੋਂ <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> ਵੱਲੋਂ ਅਣਲਾਕ ਨਾ ਰੱਖਿਆ ਗਿਆ ਹੋਵੇ"</string>
+    <string name="lock_after_timeout_summary_with_exception" msgid="5579064842797188409">"ਸਲੀਪ ਤੋਂ ਬਾਅਦ <xliff:g id="TIMEOUT_STRING">%1$s</xliff:g>, ਸਿਵਾਏ ਇਸਦੇ ਜਦੋਂ <xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g> ਵੱਲੋਂ ਅਣਲਾਕ ਰੱਖਿਆ ਹੋਵੇ"</string>
     <string name="show_owner_info_on_lockscreen_label" msgid="5074906168357568434">"ਲੌਕ ਸਕ੍ਰੀਨ ਤੇ ਮਾਲਕ ਜਾਣਕਾਰੀ ਦਿਖਾਓ"</string>
     <string name="owner_info_settings_title" msgid="5530285568897386122">"ਲੌਕ ਸਕ੍ਰੀਨ ਸੁਨੇਹਾ"</string>
     <string name="security_enable_widgets_title" msgid="2754833397070967846">"ਵਿਜੇਟ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
@@ -1284,7 +1284,7 @@
     <string name="storage_wizard_migrate_details" msgid="3709728824651136227">"ਮੂਵ ਦੇ ਦੌਰਾਨ \n• <xliff:g id="NAME">^1</xliff:g> ਨੂੰ ਨਾ ਹਟਾਓ. \n• ਕੁਝ ਐਪ ਸਹੀ ਤਰੀਕੇ ਦੇ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰਨ। \n• ਡੀਵਾਈਸ ਨੂੰ ਚਾਰਜ ਰੱਖੋ"</string>
     <string name="storage_wizard_ready_title" msgid="5381632402953258267">"<xliff:g id="NAME">^1</xliff:g> ਤਿਆਰ ਹੈ"</string>
     <string name="storage_wizard_ready_external_body" msgid="2879508114260597474">"ਤੁਹਾਡ <xliff:g id="NAME">^1</xliff:g> ਫ਼ੋਟੋਆਂ ਅਤੇ ਦੂਜੇ ਮੀਡੀਆ ਦੇ ਨਾਲ ਉਪਯੋਗ ਕਰਨ ਲਈ ਬਿਲਕੁਲ ਤਿਆਰ ਹੈ."</string>
-    <string name="storage_wizard_ready_internal_body" msgid="122532674037860197">"ਤੁਹਾਡਾ ਨਵਾਂ <xliff:g id="NAME">^1</xliff:g> ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ। \n\nਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਫੋਟੋਆਂ, ਫ਼ਾਈਲਾਂ, ਅਤੇ ਐਪ ਡਾਟਾ ਨੂੰ ਲੈ ਜਾਣ ਲਈ, ਸੈੱਟਿੰਗਾਂ ਅਤੇ ਸਟੋਰੇਜ \'ਤੇ ਜਾਓ।"</string>
+    <string name="storage_wizard_ready_internal_body" msgid="122532674037860197">"ਤੁਹਾਡਾ ਨਵਾਂ <xliff:g id="NAME">^1</xliff:g> ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ। \n\nਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਫੋਟੋਆਂ, ਫ਼ਾਈਲਾਂ, ਅਤੇ ਐਪ ਡਾਟਾ ਨੂੰ ਲੈ ਜਾਣ ਲਈ, ਸੈਟਿੰਗਾਂ ਅਤੇ ਸਟੋਰੇਜ \'ਤੇ ਜਾਓ।"</string>
     <string name="storage_wizard_move_confirm_title" msgid="292782012677890250">"<xliff:g id="APP">^1</xliff:g> ਨੂੰ ਮੂਵ ਕਰੋ"</string>
     <string name="storage_wizard_move_confirm_body" msgid="5176432115206478941">"<xliff:g id="APP">^1</xliff:g> ਅਤੇ ਇਸਦੇ ਡਾਟਾ ਨੂੰ <xliff:g id="NAME_0">^2</xliff:g> ਵਿੱਚ ਮੂਵ ਕਰਨਾ ਸਿਰਫ਼ ਕੁਝ ਸਮਾਂ ਲੈਂਦਾ ਹੈ। ਤੁਸੀਂ ਉਦੋਂ ਤੱਕ ਇਸ ਐਪ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਯੋਗ ਨਹੀਂ ਹੋਵੋਗੇ ਜਦੋਂ ਤੱਕ ਇਹ ਮੂਵ ਪੂਰਾ ਨਹੀਂ ਹੋ ਜਾਂਦਾ ਹੈ। \n\nਮੂਵ ਦੇ ਦੌਰਾਨ <xliff:g id="NAME_1">^2</xliff:g> ਨੂੰ ਨਾ ਹਟਾਓ।"</string>
     <string name="storage_wizard_move_progress_title" msgid="4443920302548035674">"<xliff:g id="APP">^1</xliff:g> ਨੂੰ ਮੂਵ ਕਰ ਰਿਹਾ ਹੈ…"</string>
@@ -1414,7 +1414,7 @@
     <string name="location_mode_title" msgid="3982009713118421689">"ਮੋਡ"</string>
     <string name="location_mode_high_accuracy_title" msgid="8241802585110932849">"ਉੱਚ ਸ਼ੁੱਧਤਾ"</string>
     <string name="location_mode_battery_saving_title" msgid="711273645208158637">"ਬੈਟਰੀ ਦੀ ਬਚਤ"</string>
-    <string name="location_mode_sensors_only_title" msgid="3040366132175435160">"ਕੇਵਲ ਡਿਵਾਈਸ"</string>
+    <string name="location_mode_sensors_only_title" msgid="3040366132175435160">"ਕੇਵਲ ਡੀਵਾਈਸ"</string>
     <string name="location_mode_location_off_title" msgid="2829713015012529465">"ਟਿਕਾਣਾ ਬੰਦ"</string>
     <string name="location_app_level_permissions" msgid="1825588230817081339">"ਐਪ-ਪੱਧਰ ਇਜਾਜ਼ਤਾਂ"</string>
     <string name="location_category_recent_location_requests" msgid="1938721350424447421">"ਹਾਲੀਆ ਟਿਕਾਣਾ ਬੇਨਤੀਆਂ"</string>
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"ਕੋਈ ਸਕ੍ਰੀਨ ਲੌਕ ਸਥਾਪਤ ਕਰੋ"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"ਸੁਰੱਖਿਆ ਲਈ, ਇੱਕ ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤਣ ਲਈ ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"ਆਪਣਾ ਪੈਟਰਨ ਚੁਣੋ"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤਣ ਲਈ ਪੈਟਰਨ ਸੈੱਟ ਕਰੋ"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"ਸੁਰੱਖਿਆ ਲਈ, ਇੱਕ ਪਿੰਨ ਸਥਾਪਤ ਕਰੋ"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤਣ ਲਈ ਪਿੰਨ ਸੈੱਟ ਕਰੋ"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"ਆਪਣਾ ਪਾਸਵਰਡ ਮੁੜ-ਦਾਖਲ ਕਰੋ"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"ਆਪਣੇ ਪੈਟਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ਆਪਣਾ ਪਿੰਨ ਮੁੜ-ਦਾਖਲ ਕਰੋ"</string>
@@ -1527,7 +1528,7 @@
     <string name="lockpattern_settings_enable_visible_pattern_title_profile" msgid="4864525074768391381">"ਪ੍ਰੋਫਾਈਲ ਪੈਟਰਨ ਨੂੰ ਦਿਖਣਯੋਗ ਬਣਾਓ"</string>
     <string name="lockpattern_settings_enable_tactile_feedback_title" msgid="4389015658335522989">"ਟੈਪ \'ਤੇ ਥਰਥਰਾਹਟ ਕਰੋ"</string>
     <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5735444062633666327">"ਪਾਵਰ ਬਟਨ ਤੁਰੰਤ ਲੌਕ ਹੁੰਦਾ ਹੈ"</string>
-    <string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="8196258755143711694">"ਸਿਵਾਏ ਇਸਦੇ ਜਦੋਂ <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> ਵੱਲੋਂ ਅਨਲੌਕ ਰੱਖਿਆ ਹੋਵੇ"</string>
+    <string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="8196258755143711694">"ਸਿਵਾਏ ਇਸਦੇ ਜਦੋਂ <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> ਵੱਲੋਂ ਅਣਲਾਕ ਰੱਖਿਆ ਹੋਵੇ"</string>
     <string name="lockpattern_settings_choose_lock_pattern" msgid="1652352830005653447">"ਅਣਲਾਕ ਪੈਟਰਨ ਸੈੱਟ ਕਰੋ"</string>
     <string name="lockpattern_settings_change_lock_pattern" msgid="1123908306116495545">"ਅਣਲਾਕ ਪੈਟਰਨ ਬਦਲੋ"</string>
     <string name="lockpattern_settings_help_how_to_record" msgid="2614673439060830433">"ਇੱਕ ਅਣਲਾਕ ਪੈਟਰਨ ਕਿਵੇਂ ਉਲੀਕੀਏ"</string>
@@ -2185,7 +2186,7 @@
     <string name="tts_play" msgid="2628469503798633884">"ਚਲਾਓ"</string>
     <string name="gadget_title" msgid="5519037532720577836">"ਪਾਵਰ ਨਿਯੰਤਰਣ"</string>
     <string name="gadget_toggle_wifi" msgid="319262861956544493">"ਵਾਈ‑ਫਾਈ ਸੈਟਿੰਗ ਅੱਪਡੇਟ ਹੋ ਰਹੀ ਹੈ"</string>
-    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Bluetooth ਸੈਟਿੰਗ ਅਪਡੇਟ ਕਰ ਰਿਹਾ ਹੈ"</string>
+    <string name="gadget_toggle_bluetooth" msgid="7538903239807020826">"Bluetooth ਸੈਟਿੰਗ ਅੱਪਡੇਟ ਕਰ ਰਿਹਾ ਹੈ"</string>
     <string name="gadget_state_template" msgid="5156935629902649932">"<xliff:g id="ID_1">%1$s</xliff:g> <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="gadget_state_on" msgid="6909119593004937688">"ਚਾਲੂ"</string>
     <string name="gadget_state_off" msgid="5220212352953066317">"ਬੰਦ"</string>
@@ -2215,7 +2216,7 @@
     <string name="advanced_security_title" msgid="2434776238010578865">"ਵਿਕਸਿਤ"</string>
     <string name="credential_storage_type" msgid="8629968543494001364">"ਸਟੋਰੇਜ ਦਾ ਪ੍ਰਕਾਰ"</string>
     <string name="credential_storage_type_hardware" msgid="6077193544333904427">"ਹਾਰਡਵੇਅਰ-ਸਮਰਥਿਤ"</string>
-    <string name="credential_storage_type_software" msgid="4403117271207715378">"ਕੇਵਲ ਸੌਫਟਵੇਅਰ"</string>
+    <string name="credential_storage_type_software" msgid="4403117271207715378">"ਕੇਵਲ ਸਾਫਟਵੇਅਰ"</string>
     <string name="credentials_settings_not_available" msgid="7968275634486624215">"ਇਸ ਵਰਤੋਂਕਾਰ ਲਈ ਕ੍ਰੀਡੈਂਸ਼ੀਅਲ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string>
     <string name="credential_for_vpn_and_apps" msgid="4168197158768443365">"VPN ਅਤੇ ਐਪਾਂ ਲਈ ਸਥਾਪਤ ਕੀਤਾ ਗਿਆ"</string>
     <string name="credential_for_wifi" msgid="6228425986551591864">"ਵਾਈ-ਫਾਈ ਲਈ ਸਥਾਪਤ ਕੀਤਾ ਗਿਆ"</string>
@@ -2247,7 +2248,7 @@
     <string name="backup_configure_account_default_summary" msgid="2436933224764745553">"ਵਰਤਮਾਨ ਤੌਰ \'ਤੇ ਕੋਈ ਖਾਤਾ ਉਸ ਡਾਟਾ ਨੂੰ ਸਟੋਰ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ, ਜਿਸ ਦਾ ਬੈਕਅੱਪ ਲਿਆ ਗਿਆ ਹੈ"</string>
     <string name="backup_erase_dialog_title" msgid="1027640829482174106"></string>
     <string name="backup_erase_dialog_message" msgid="5221011285568343155">"ਆਪਣੇ ਵਾਈ-ਫਾਈ ਪਾਸਵਰਡਾਂ, ਬੁੱਕਮਾਰਕਾਂ, ਹੋਰ ਸੈਟਿੰਗਾਂ ਅਤੇ ਐਪ ਡਾਟਾ ਨੂੰ ਬੈਕ ਅੱਪ ਕਰਨਾ ਬੰਦ ਕਰਨਾ ਹੈ ਅਤੇ Google ਸਰਵਰਾਂ ਦੀਆਂ ਸਾਰੀਆਂ ਕਾਪੀਆਂ ਮਿਟਾਉਣੀਆਂ ਹਨ?"</string>
-    <string name="fullbackup_erase_dialog_message" msgid="694766389396659626">"ਕੀ ਡੀਵਾਈਸ ਡਾਟਾ (ਜਿਵੇਂ ਕਿ ਵਾਈ-ਫਾਈ ਪਾਸਵਰਡ ਅਤੇ ਕਾਲ ਇਤਿਹਾਸ) ਅਤੇ ਐਪ ਡਾਟਾ (ਜਿਵੇਂ ਕਿ ਐਪਾਂ ਦਾ ਸਟੋਰ ਕੀਤੀ ਸੈੱਟਿੰਗਾਂ ਅਤੇ ਫ਼ਾਈਲਾਂ) ਦੇ ਬੈੱਕਅੱਪ ਤੋਂ ਰੋਕਣਾ ਹੈ, ਅਤੇ ਇਸਦੇ ਨਾਲ-ਨਾਲ ਰਿਮੋਟ ਸਰਵਰ \'ਤੇ ਸਾਰੀਆਂ ਪ੍ਰਤੀਲਿਪੀਆਂ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?"</string>
+    <string name="fullbackup_erase_dialog_message" msgid="694766389396659626">"ਕੀ ਡੀਵਾਈਸ ਡਾਟਾ (ਜਿਵੇਂ ਕਿ ਵਾਈ-ਫਾਈ ਪਾਸਵਰਡ ਅਤੇ ਕਾਲ ਇਤਿਹਾਸ) ਅਤੇ ਐਪ ਡਾਟਾ (ਜਿਵੇਂ ਕਿ ਐਪਾਂ ਦਾ ਸਟੋਰ ਕੀਤੀ ਸੈਟਿੰਗਾਂ ਅਤੇ ਫ਼ਾਈਲਾਂ) ਦੇ ਬੈੱਕਅੱਪ ਤੋਂ ਰੋਕਣਾ ਹੈ, ਅਤੇ ਇਸਦੇ ਨਾਲ-ਨਾਲ ਰਿਮੋਟ ਸਰਵਰ \'ਤੇ ਸਾਰੀਆਂ ਪ੍ਰਤੀਲਿਪੀਆਂ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?"</string>
     <string name="fullbackup_data_summary" msgid="960850365007767734">"ਡੀਵਾਈਸ ਡਾਟਾ ਰਿਮੋਟ ਦੇ ਰੂਪ ਵਿੱਚ (ਜਿਵੇਂ ਕਿ ਵਾਈ-ਫਾਈ ਪਾਸਵਰਡ ਅਤੇ ਕਾਲ ਇਤਿਹਾਸ) ਅਤੇ ਐਪ ਡਾਟਾ (ਜਿਵੇਂ ਕਿ ਐਪਾਂ ਵੱਲੋਂ ਸਟੋਰ ਕੀਤੀਆਂ ਸੈਟਿੰਗਾਂ ਅਤੇ ਫ਼ਾਈਲਾਂ) ਦਾ ਸਵੈਚਲਿਤ ਬੈੱਕਅੱਪ ਲਓ।\n\nਜਦੋਂ ਤੁਸੀਂ ਸਵੈਚਲਿਤ ਬੈਕਅੱਪ ਨੂੰ ਚਾਲੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਡੀਵਾਈਸ ਅਤੇ ਐਪ ਡਾਟਾ ਨੂੰ ਰਿਮੋਟ ਦੇ ਰੂਪ ਵਿੱਚ ਅਵਧੀ ਅਨੁਸਾਰ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਐਪ ਡਾਟਾ ਕੋਈ ਵੀ ਡਾਟਾ ਹੋ ਸਕਦਾ ਹੈ ਜੋ ਸੰਪਰਕ, ਸੁਨੇਹੇ, ਅਤੇ ਫ਼ੋਟੋਆਂ ਵਰਗੇ ਸੰਭਾਵੀ ਸੰਵੇਦਨਸ਼ੀਲ ਡਾਟਾ ਸਮੇਤ, ਕਿਸੇ ਐਪ ਨੇ ਰੱਖਿਅਤ ਕੀਤਾ ਹੁੰਦਾ ਹੈ (ਵਿਕਾਸਕਾਰ ਸੈਟਿੰਗਾਂ ਦੇ ਅਧਾਰ \'ਤੇ)।"</string>
     <string name="device_admin_settings_title" msgid="4960761799560705902">"ਡੀਵਾਈਸ ਪ੍ਰਸ਼ਾਸਕ ਸੈਟਿੰਗਾਂ"</string>
     <string name="active_device_admin_msg" msgid="578748451637360192">"ਡੀਵਾਈਸ ਪ੍ਰਸ਼ਾਸਕ ਐਪ"</string>
@@ -2795,7 +2796,7 @@
     <string name="keywords_all_apps" msgid="7814015440655563156">"ਐਪਾਂ, ਡਾਊਨਲੋਡ ਕਰੋ, ਐਪਲੀਕੇਸ਼ਨਾਂ, ਸਿਸਟਮ"</string>
     <string name="keywords_app_permissions" msgid="4229936435938011023">"ਐਪ, ਇਜਾਜ਼ਤਾਂ, ਸੁਰੱਖਿਆ"</string>
     <string name="keywords_default_apps" msgid="223872637509160136">"ਐਪਾਂ, ਪੂਰਵ-ਨਿਰਧਾਰਤ"</string>
-    <string name="keywords_ignore_optimizations" msgid="6102579291119055029">"ਅਨੁਕੂਲਨ ਅਣਡਿੱਠ ਕਰੋ, doze, ਐਪ ਸਟੈਂਡਬਾਇ"</string>
+    <string name="keywords_ignore_optimizations" msgid="6102579291119055029">"ਅਨੁਕੂਲਨ ਅਣਡਿੱਠ ਕਰੋ, doze, ਐਪ ਸਟੈਂਡਬਾਏ"</string>
     <string name="keywords_color_mode" msgid="6362744316886077510">"ਚਮਕੀਲਾ, rgb, srgb, ਰੰਗ, ਕੁਦਰਤੀ, ਸਧਾਰਨ"</string>
     <string name="keywords_color_temperature" msgid="2688947724153266364">"ਰੰਗ ਤਾਪਮਾਨ D65 D73 ਚਿੱਟਾ ਪੀਲਾ ਨੀਲਾ ਨਿੱਘਾ ਠੰਡਾ"</string>
     <string name="keywords_lockscreen" msgid="5746561909668570047">"ਅਣਲਾਕ ਕਰਨ ਲਈ ਸਲਾਈਡ ਕਰੋ, ਪਾਸਵਰਡ, ਪੈਟਰਨ, ਪਿੰਨ ਦਾਖਲ ਕਰੋ"</string>
@@ -3318,7 +3319,7 @@
     <string name="camera_gesture_title" msgid="1075838577642393011">"ਕੈਮਰੇ ਲਈ ਦੋ ਵਾਰ ਮੋੜੋ"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"ਆਪਣੇ ਗੁੱਟ ਨੂੰ ਦੋ ਵਾਰ ਮੋੜਕੇ ਕੈਮਰਾ ਐਪ ਖੋਲ੍ਹੋ"</string>
     <string name="camera_double_tap_power_gesture_title" msgid="1651873760405034645">"ਕੈਮਰੇ ਲਈ ਪਾਵਰ ਬਟਨ ਨੂੰ ਦੋ ਵਾਰੀ ਦਬਾਓ"</string>
-    <string name="camera_double_tap_power_gesture_desc" msgid="7355664631775680376">"ਆਪਣੀ ਸਕ੍ਰੀਨ ਨੂੰ ਅਨਲੌਕ ਕੀਤੇ ਬਗੈਰ ਤੁਰੰਤ ਕੈਮਰਾ ਖੋਲ੍ਹੋ"</string>
+    <string name="camera_double_tap_power_gesture_desc" msgid="7355664631775680376">"ਆਪਣੀ ਸਕ੍ਰੀਨ ਨੂੰ ਅਣਲਾਕ ਕੀਤੇ ਬਗੈਰ ਤੁਰੰਤ ਕੈਮਰਾ ਖੋਲ੍ਹੋ"</string>
     <string name="screen_zoom_title" msgid="5233515303733473927">"ਡਿਸਪਲੇ ਆਕਾਰ"</string>
     <string name="screen_zoom_short_summary" msgid="7291960817349834688">"ਸਕ੍ਰੀਨ \'ਤੇ ਪਈਆਂ ਆਈਟਮਾਂ ਨੂੰ ਵੱਡਾ ਜਾਂ ਛੋਟਾ ਕਰੋ"</string>
     <string name="screen_zoom_keywords" msgid="9176477565403352552">"ਡਿਸਪਲੇ ਘਣਤਾ, ਸਕ੍ਰੀਨ ਜ਼ੂਮ, ਪੈਮਾਨਾ, ਸਕੇਲਿੰਗ"</string>
@@ -3408,8 +3409,7 @@
     <string name="telephony_monitor_toast" msgid="7003764250271195384">"ਟੈਲੀਫ਼ੋਨੀ ਮੋਨੀਟਰ ਤਬਦੀਲੀ ਲਾਗੂ ਕਰਨ ਲਈ, ਡੀਵਾਈਸ ਨੂੰ ਰੀਬੂਟ ਕਰੋ"</string>
     <string name="camera_hal_hdrplus_switch" msgid="8377365197105267466">"ਕੈਮਰਾ HAL HDR+"</string>
     <string name="camera_hal_hdrplus_toast" msgid="2063703797270055299">"ਕੈਮਰਾ HAL HDR+ ਤਬਦੀਲੀ ਲਾਗੂ ਕਰਨ ਲਈ, ਡੀਵਾਈਸ ਨੂੰ ਰੀਬੂਟ ਕਰੋ"</string>
-    <!-- no translation found for camera_laser_sensor_switch (8913588990743234440) -->
-    <skip />
+    <string name="camera_laser_sensor_switch" msgid="8913588990743234440">"ਕੈਮਰਾ ਲੇਜ਼ਰ ਸੈਂਸਰ"</string>
     <string name="ota_disable_automatic_update" msgid="2319639631655915050">"ਸਵੈਚਾਲਿਤ ਸਿਸਟਮ ਅੱਪਡੇਟਾਂ"</string>
     <string name="usage" msgid="2977875522080448986">"ਵਰਤੋਂ"</string>
     <string name="cellular_data_usage" msgid="2155683719898158203">"ਮੋਬਾਈਲ ਡਾਟਾ ਵਰਤੋਂ"</string>
@@ -3500,7 +3500,7 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ਐਪ ਗੈਰ-ਪਾਬੰਦੀਸ਼ੁਦਾ ਡਾਟੇ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੀ ਹੈ</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ਐਪਾਂ ਗੈਰ-ਪਾਬੰਦੀਸ਼ੁਦਾ ਡਾਟੇ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੀਆਂ ਹਨ</item>
     </plurals>
-    <string name="confirm_convert_to_fbe_warning" msgid="1487005506049137659">"ਕੀ ਸੱਚਮੁੱਚ ਵਰਤੋਂਕਾਰ ਡੈਟੇ ਨੂੰ ਮਿਟਾਉਣਾ ਅਤੇ ਫ਼ਾਈਲ ਇਨਕ੍ਰਿਪਸ਼ਨ ਵਿੱਚ ਤਬਦੀਲ ਕਰਨਾ ਹੈ?"</string>
+    <string name="confirm_convert_to_fbe_warning" msgid="1487005506049137659">"ਕੀ ਸੱਚਮੁੱਚ ਵਰਤੋਂਕਾਰ  ਡਾਟੇ  ਨੂੰ ਮਿਟਾਉਣਾ ਅਤੇ ਫ਼ਾਈਲ ਇਨਕ੍ਰਿਪਸ਼ਨ ਵਿੱਚ ਤਬਦੀਲ ਕਰਨਾ ਹੈ?"</string>
     <string name="button_confirm_convert_fbe" msgid="7101855374850373091">"ਮਿਟਾਓ ਅਤੇ ਰੁਪਾਂਤਰਣ ਕਰੋ"</string>
     <string name="reset_shortcut_manager_throttling" msgid="6495066467198668994">"ShortcutManager ਰੇਟ-ਲਿਮਟਿੰਗ ਰੀਸੈੱਟ ਕਰੋ"</string>
     <string name="reset_shortcut_manager_throttling_complete" msgid="1826770872063707900">"ShortcutManager ਰੇਟ-ਲਿਮਟਿੰਗ ਰੀਸੈੱਟ ਕੀਤੀ ਜਾ ਚੁੱਕੀ ਹੈ"</string>
@@ -3619,10 +3619,10 @@
     <string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"ਤੁਹਾਡੀ ਸਟੋਰੇਜ ਦਾ ਪ੍ਰਬੰਧਨ ਹੁਣ ਸਟੋਰੇਜ ਪ੍ਰਬੰਧਕ ਵੱਲੋਂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
     <string name="account_for_section_header" msgid="5356566418548737121">"<xliff:g id="USER_NAME">%1$s</xliff:g> ਦੇ ਖਾਤੇ"</string>
     <string name="configure_section_header" msgid="7391183586410814450">"ਰੂਪ-ਰੇਖਾ ਬਦਲੋ"</string>
-    <string name="auto_sync_account_title" msgid="898796354710116383">"ਡੈਟੇ ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
-    <string name="auto_sync_personal_account_title" msgid="8496263182646100610">"ਨਿੱਜੀ ਡੈਟੇ ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
-    <string name="auto_sync_work_account_title" msgid="4489172450037434152">"ਕਾਰਜ ਡੈਟੇ ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
-    <string name="auto_sync_account_summary" msgid="692499211629185107">"ਐਪਾਂ ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਡੈਟੇ ਨੂੰ ਤਾਜ਼ਾ ਕਰਨ ਦਿਓ"</string>
+    <string name="auto_sync_account_title" msgid="898796354710116383">" ਡਾਟੇ  ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
+    <string name="auto_sync_personal_account_title" msgid="8496263182646100610">"ਨਿੱਜੀ  ਡਾਟੇ  ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
+    <string name="auto_sync_work_account_title" msgid="4489172450037434152">"ਕਾਰਜ  ਡਾਟੇ  ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
+    <string name="auto_sync_account_summary" msgid="692499211629185107">"ਐਪਾਂ ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ  ਡਾਟੇ  ਨੂੰ ਤਾਜ਼ਾ ਕਰਨ ਦਿਓ"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"ਖਾਤਾ ਸਮਕਾਲੀਕਰਨ"</string>
     <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_2">%2$d</xliff:g> ਵਿੱਚੋਂ <xliff:g id="ID_1">%1$d</xliff:g> ਆਈਟਮਾਂ ਲਈ ਸਮਕਾਲੀਕਰਨ ਚਾਲੂ ਹੈ"</string>
     <string name="account_sync_summary_all_on" msgid="570431636622254156">"ਸਾਰੀਆਂ ਆਈਟਮਾਂ ਲਈ ਸਮਕਾਲੀਕਰਨ ਚਾਲੂ ਹੈ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index c09c368..c18b03e 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -1498,10 +1498,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Ustawianie blokady ekranu"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Ze względów bezpieczeństwa ustaw hasło"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Aby korzystać z odcisku palca, ustaw hasło"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Wybierz wzór"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Aby korzystać z odcisku palca, ustaw wzór"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Ze względów bezpieczeństwa ustaw kod PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Aby korzystać z odcisku palca, ustaw kod PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Podaj ponownie hasło"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potwierdź wzór"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Podaj ponownie kod PIN"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 97eb778..cec6da8 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Definir um bloqueio de tela"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Por segurança, defina uma senha"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Para usar a impressão digital, defina uma senha"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Escolha seu padrão"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Para usar a impressão digital, defina um padrão"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Por segurança, defina um PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Para usar a impressão digital, defina um PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Digite sua senha novamente"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirme seu padrão"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Digite seu PIN novamente"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index da37cc4..62b43d1 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Definir um bloqueio de ecrã"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Por motivos de segurança, defina uma palavra-passe."</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Defina palavra-passe para usar impressão digital"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Escolher o padrão"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Defina padrão para usar impressão digital"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Por motivos de segurança, defina um PIN."</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Defina PIN para usar impressão digital"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Reintroduzir a palavra-passe"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirmar o padrão"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Reintroduzir o PIN"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 97eb778..cec6da8 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Definir um bloqueio de tela"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Por segurança, defina uma senha"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Para usar a impressão digital, defina uma senha"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Escolha seu padrão"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Para usar a impressão digital, defina um padrão"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Por segurança, defina um PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Para usar a impressão digital, defina um PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Digite sua senha novamente"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirme seu padrão"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Digite seu PIN novamente"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 0b9b6d6..e922432 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -1485,10 +1485,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Setați o blocare a ecranului"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Din motive de securitate, setați o parolă"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Pentru a utiliza amprenta, setați parola"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Alegeți modelul"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Pentru a utiliza amprenta, setați modelul"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Din motive de securitate, setați un cod PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Pentru a utiliza amprenta, setați codul PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Reintroduceți parola"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirmați modelul"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Reintroduceți codul PIN"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index f73d2d0..2db55ef 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -1498,10 +1498,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Настройте блокировку экрана"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Защитите устройство: задайте пароль"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Задайте пароль"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Создайте графический ключ"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Задайте графический ключ"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Защитите устройство: задайте PIN-код"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Задайте PIN-код"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Введите пароль ещё раз"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Подтвердите графический ключ"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Введите PIN-код ещё раз"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 88284e0..3ce60ce 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"තිර අගුලක් සකසන්න"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"ආරක්ෂාව සඳහා, මුරපදයක් සකසන්න"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"ඇඟිලි සලකුණ භාවිත කිරීමට, මුරපදයක් සකසන්න"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"ඔබගේ රටාව තෝරන්න"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"ඇඟිලි සලකුණ භාවිත කිරීමට, රටාවක් සකසන්න"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"ආරක්ෂාව සඳහා, PIN එකක් සකසන්න"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"ඇඟිලි සලකුණ භාවිත කිරීමට, PIN අංකයක් සකසන්න"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"ඔබගේ මුරපදය නැවතත් ඇතුළු කරන්න"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"ඔබගේ රටාව තහවුරු කරන්න"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ඔබගේ PIN අංකය නැවත ඇතුළු කරන්න"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 4dec48a..1033758 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -1498,10 +1498,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Nastavenie zámky obrazovky"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Z bezpečnostných dôvodov si nastavte heslo"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Ak chcete použiť odtlačok prsta, nastavte heslo"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Zvoľte si vzor"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Ak chcete použiť odtlačok prsta, nastavte vzor"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Z bezpečnostných dôvodov si nastavte kód PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Ak chcete použiť odtlačok prsta, nastavte PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Znova zadajte heslo"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potvrďte svoj vzor"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Znova zadajte kód PIN"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index ad7984e..ce132cf 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -1498,10 +1498,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Nastavitev zaklepanja zaslona"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Zaradi varnosti nastavite geslo"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Nastavite geslo za prstni odtis"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Izberite vzorec"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Nastavite vzorec za prstni odtis"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Zaradi varnosti nastavite kodo PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Nastavite kodo PIN za prstni odtis"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Znova vnesite geslo"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potrdite vzorec"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Znova vnesite kodo PIN"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index b24cb3d..ce0c313 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Cakto një kyçje të ekranit"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Për siguri, cakto një fjalëkalim"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Për të përdorur gjurmën e gishtit, vendos fjalëkalimin"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Zgjidh motivin"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Për të përdorur gjurmën e gishtit, vendos motivin"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Për siguri, cakto një kod PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Për të përdorur gjurmën e gishtit, vendos kodin PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Fut përsëri fjalëkalimin"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Konfirmo motivin"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Fut përsëri kodin PIN"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index e21226c..65a8d21 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -1485,10 +1485,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Подесите закључавање екрана"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Подесите лозинку из безбедносних разлога"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Подесите лозинку да бисте користили отисак"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Изаберите шаблон"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Подесите шаблон да бисте користили отисак"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Подесите PIN из безбедносних разлога"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Подесите PIN да бисте користили отисак"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Поново унесите лозинку"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Потврдите шаблон"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Поново унесите PIN"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 57587f8..a008b02 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Ange ett skärmlås"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Av säkerhetsskäl måste du ange ett lösenord"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Lösenord krävs för fingeravtryck"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Välj grafiskt lösenord"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Grafiskt lösenord krävs för fingeravtryck"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Av säkerhetsskäl måste du ange en pinkod"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Pinkod krävs för fingeravtryck"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Ange ditt lösenord igen"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Bekräfta grafiskt lösenord"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Ange din pinkod igen"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index cd47157..36eb7cf 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Weka mbinu ya kufunga skrini"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Kwa sababu za usalama, weka nenosiri"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Weka nenosiri ili utumie alama ya kidole"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Chagua mchoro wako"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Weka mchoro ili utumie alama ya kidole"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Kwa sababu za usalama, weka PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Weka PIN ili utumie alama ya kidole"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Weka nenosiri lako tena"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Thibitisha mchoro wako"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Weka PIN yako tena"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 6d2f160..acbb215 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"திரைப் பூட்டை அமைக்கவும்"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"பாதுகாப்பிற்கு, கடவுச்சொல்லை அமைக்கவும்"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"கடவுச்சொல்லை அமைக்கவும்"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"உங்கள் வடிவத்தைத் தேர்வுசெய்யவும்"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"வடிவத்தை அமைக்கவும்"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"பாதுகாப்பிற்கு, பின்னை அமைக்கவும்"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"பின்னை அமைக்கவும்"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"கடவுச்சொல்லை மீண்டும் உள்ளிடவும்"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"உங்கள் வடிவத்தை உறுதிப்படுத்தவும்"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"பின்னை மீண்டும் உள்ளிடவும்"</string>
@@ -3408,8 +3409,7 @@
     <string name="telephony_monitor_toast" msgid="7003764250271195384">"டெலிஃபோனி மானிட்டரில் செய்த மாற்றத்தைப் பயன்படுத்த, சாதனத்தை மறுதொடக்கம் செய்யவும்"</string>
     <string name="camera_hal_hdrplus_switch" msgid="8377365197105267466">"கேமரா HAL HDR+"</string>
     <string name="camera_hal_hdrplus_toast" msgid="2063703797270055299">"கேமரா HAL HDR+ இல் செய்த மாற்றத்தைப் பயன்படுத்த, சாதனத்தை மறுதொடக்கம் செய்யவும்"</string>
-    <!-- no translation found for camera_laser_sensor_switch (8913588990743234440) -->
-    <skip />
+    <string name="camera_laser_sensor_switch" msgid="8913588990743234440">"கேமராவின் லேசர் சென்சார்"</string>
     <string name="ota_disable_automatic_update" msgid="2319639631655915050">"தானியங்கு முறைமை புதுப்பிப்புகள்"</string>
     <string name="usage" msgid="2977875522080448986">"பயன்பாடு"</string>
     <string name="cellular_data_usage" msgid="2155683719898158203">"மொபைல் டேட்டா பயன்பாடு"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 17c2c00..24b8797 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"స్క్రీన్ లాక్‌ను సెట్ చేయండి"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"భద్రత కోసం, పాస్‌వర్డ్‌ను సెట్ చేయండి"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"వేలిముద్ర బ్యాకప్‌ను సెట్ చేయండి"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"మీ నమూనాను ఎంచుకోండి"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"వేలిముద్ర బ్యాకప్‌ను సెట్ చేయండి"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"భద్రత కోసం, పిన్‌ను సెట్ చేయండి"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"వేలిముద్ర బ్యాకప్‌ను సెట్ చేయండి"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"మీ పాస్‌వర్డ్‌ను మళ్ళీ నమోదు చేయండి"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"మీ నమూనాను నిర్ధారించండి"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"మీ పిన్‌ను మళ్లీ నమోదు చేయండి"</string>
@@ -3409,8 +3410,7 @@
     <string name="telephony_monitor_toast" msgid="7003764250271195384">"టెలిఫోనీ మానిటర్ మార్పును వర్తింపజేయాలంటే, పరికరాన్ని రీబూట్ చేయండి"</string>
     <string name="camera_hal_hdrplus_switch" msgid="8377365197105267466">"కెమెరా HAL HDR+"</string>
     <string name="camera_hal_hdrplus_toast" msgid="2063703797270055299">"కెమెరా HAL HDR+ మార్పును వర్తింపజేయడానికి, పరికరాన్ని రీబూట్ చేయండి"</string>
-    <!-- no translation found for camera_laser_sensor_switch (8913588990743234440) -->
-    <skip />
+    <string name="camera_laser_sensor_switch" msgid="8913588990743234440">"కెమెరా లేజర్ సెన్సార్"</string>
     <string name="ota_disable_automatic_update" msgid="2319639631655915050">"స్వయంచాలక సిస్టమ్ అప్‌డేట్‌లు"</string>
     <string name="usage" msgid="2977875522080448986">"వినియోగం"</string>
     <string name="cellular_data_usage" msgid="2155683719898158203">"మొబైల్ డేటా వినియోగం"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 1932ffa..329a2b6 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"ตั้งค่าการล็อกหน้าจอ"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"ตั้งรหัสผ่านเพื่อความปลอดภัย"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"หากต้องการใช้ลายนิ้วมือ ให้ตั้งรหัสผ่าน"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"เลือกรูปแบบของคุณ"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"หากต้องการใช้ลายนิ้วมือ ให้ตั้งค่ารูปแบบ"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"ตั้ง PIN เพื่อความปลอดภัย"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"หากต้องการใช้ลายนิ้วมือ ให้ตั้งค่า PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"ป้อนรหัสผ่านอีกครั้ง"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"ยืนยันรูปแบบของคุณ"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ป้อน PIN อีกครั้ง"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 6f7de0d3..c26ef32 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Magtakda ng lock ng screen"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Para sa seguridad, magtakda ng password"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Para magamit ang fingerprint, i-set ang pw"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Piliin ang iyong pattern"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Para magamit ang fingerprint, i-set ang pattern"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Para sa seguridad, magtakda ng PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Para magamit ang fingerprint, i-set ang PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Ilagay muli ang iyong password"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Kumpirmahin ang iyong pattern"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Ilagay muli ang iyong PIN"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 3e86bf4..a74ee9e 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Ekran kilidi ayarlayın"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Güvenlik için şifre ayarlayın"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Parmak izi için şifre ayarlayın"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Deseninizi seçin"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Parmak izi için desen ayarlayın"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Güvenlik için PIN ayarlayın"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Parmak izi için PIN ayarlayın"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Şifrenizi yeniden girin"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Deseninizi onaylayın"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN\'inizi yeniden girin"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index ed4ed25..8450175 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -1498,10 +1498,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Налаштуйте блокування екрана"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"З міркувань безпеки налаштуйте пароль"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Щоб користуватися відбитком пальця, налаштуйте пароль"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Створіть ключ"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Щоб користуватися відбитком пальця, налаштуйте ключ"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"З міркувань безпеки налаштуйте PIN-код"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Щоб користуватися відбитком пальця, налаштуйте PIN-код"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Введіть пароль ще раз"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Підтвердьте ключ розблокування"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Введіть PIN-код ще раз"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index af961f5..0288f11 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"اسکرین لاک سیٹ کریں"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"سیکیورٹی کیلئے پاسورڈ سیٹ کریں"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"فنگر پرنٹ کے استعمال کے لیے پاسورڈ سیٹ کریں"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"اپنا پیٹرن منتخب کریں"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"فنگر پرنٹ کے استعمال کے لیے پیٹرن سیٹ کریں"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"‏سیکیورٹی کیلئے PIN سیٹ کریں"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"‏فنگر پرنٹ کے استعمال کے لیے PIN سیٹ کریں"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"اپنا پاس ورڈ دوبارہ درج کریں"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"اپنے پیٹرن کی توثیق کریں"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"‏اپنا PIN دوبارہ درج کریں"</string>
@@ -3406,8 +3407,7 @@
     <string name="telephony_monitor_toast" msgid="7003764250271195384">"ٹیلیفونی مانیٹر کی تبدیلی لاگو کرنے کیلئے، آلہ ریبوٹ کریں"</string>
     <string name="camera_hal_hdrplus_switch" msgid="8377365197105267466">"‏کیمرا HAL HDR+‎"</string>
     <string name="camera_hal_hdrplus_toast" msgid="2063703797270055299">"‏کیمرا HAL HDR+‎ کی تبدیلی لاگو کرنے کے لیے، آلہ ریبوٹ کریں"</string>
-    <!-- no translation found for camera_laser_sensor_switch (8913588990743234440) -->
-    <skip />
+    <string name="camera_laser_sensor_switch" msgid="8913588990743234440">"کیمرا لیزر سینسر"</string>
     <string name="ota_disable_automatic_update" msgid="2319639631655915050">"خودکار سسٹم اپ ڈیٹس"</string>
     <string name="usage" msgid="2977875522080448986">"استعمال"</string>
     <string name="cellular_data_usage" msgid="2155683719898158203">"موبائل ڈیٹا کا استعمال"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 02dbbb7..4e9572c 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Ekran qulfini sozlang"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Xavfsizlik uchun parol o‘rnating"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Barmoq izidan foydalanish uchun parol o‘rnating"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Grafik kalit yarating"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Barmoq izidan foydalanish uchun grafik kalit o‘rnating"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Xavfsizlik uchun PIN kod o‘rnating"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Barmoq izidan foydalanish uchun PIN kod o‘rnating"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Parolni qayta kiriting"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Grafik kalitni tasdiqlang"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN kodni qayta kiriting"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index b6600ec..5a53bb9 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Đặt khóa màn hình"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Để bảo mật, hãy đặt mật khẩu"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Để dùng vân tay, đặt mật khẩu"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Chọn hình của bạn"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Để dùng vân tay, đặt hình m.khóa"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Để bảo mật, hãy đặt mã PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Để dùng vân tay, đặt mã PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Nhập lại mật khẩu của bạn"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Xác nhận hình của bạn"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Nhập lại mã PIN của bạn"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 3dfebf6..f77847b 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"设置屏幕锁定"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"为了安全起见,请设置密码"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"要使用指纹,请设置密码"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"选择您的图案"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"要使用指纹,请设置解锁图案"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"为了安全起见,请设置 PIN 码"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"要使用指纹,请设置 PIN 码"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"重新输入密码"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"确认您的图案"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"重新输入 PIN 码"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 8645751..39c8e76 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -1473,10 +1473,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"設定螢幕鎖定"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"為安全起見,請設定密碼"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"如要使用指紋,請設定密碼"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"選擇圖形"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"如要使用指紋,請設定上鎖圖案"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"為安全起見,請設定 PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"如要使用指紋,請設定 PIN"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"請重新輸入密碼"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"確認圖形"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"請重新輸入 PIN"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 6b01dcf..52218e4 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -1472,10 +1472,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"設定螢幕鎖定"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"為了安全起見,請設定密碼"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"如要使用指紋,請設定密碼"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"選擇圖案"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"如要使用指紋,請設定解鎖圖案"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"為了安全起見,請設定 PIN 碼"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"如要使用指紋,請設定 PIN 碼"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"請重新輸入你的密碼"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"確認圖案"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"請重新輸入你的 PIN 碼"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 0ee824c..98c02e8 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -1473,10 +1473,11 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="3872462096767152394">"Setha ukukhiya kwesikrini"</string>
     <string name="lockpassword_choose_your_password_message" msgid="1197569283524841412">"Ngokuphepha, setha iphasiwedi"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Ukuze usebenzise izigxivizo zeminwe, setha iphasiwedi"</string>
-    <string name="lockpassword_choose_your_pattern_header" msgid="6949761069941694050">"Khetha iphathini yakho"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Ukuze usebenzise izigxivizo zeminwe, setha iphethini"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="1875420718677275646">"Ngokuphepha, setha i-PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Ukuze usebenzise izigxivizo zeminwe, setha iphinikhodi"</string>
+    <!-- no translation found for lockpassword_choose_your_pattern_message (5986983400689720015) -->
+    <skip />
     <string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Faka kabusha iphasiwedi yakho"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Qinisekisa iphathini yakho"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Faka kabusha i-PIN yakho"</string>
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 736b85c..55f21fd 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -359,6 +359,15 @@
                     getResources().getString(R.string.switch_on_text));
         }
 
+        // Encryption status of device
+        if (LockPatternUtils.isDeviceEncryptionEnabled()) {
+            root.findPreference(KEY_ENCRYPTION_AND_CREDENTIALS).setSummary(
+                R.string.encryption_and_credential_settings_summary);
+        } else {
+            root.findPreference(KEY_ENCRYPTION_AND_CREDENTIALS).setSummary(
+                R.string.summary_placeholder);
+        }
+
         // Show password
         mShowPassword = (SwitchPreference) root.findPreference(KEY_SHOW_PASSWORD);
 
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java b/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java
index 21ae435..44744ec 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java
@@ -17,13 +17,13 @@
 package com.android.settings.dashboard.suggestions;
 
 import android.app.LoaderManager;
-import android.content.ComponentName;
 import android.content.Context;
 import android.content.Loader;
 import android.os.Bundle;
 import android.service.settings.suggestions.Suggestion;
 import android.util.Log;
 
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
@@ -61,9 +61,9 @@
         mContext = context.getApplicationContext();
         mHost = host;
         mSuggestionController = new SuggestionController(mContext,
-                new ComponentName(
-                        "com.android.settings.intelligence",
-                        "com.android.settings.intelligence.suggestions.SuggestionService"),
+                FeatureFactory.getFactory(mContext)
+                        .getSuggestionFeatureProvider(mContext)
+                        .getSuggestionServiceComponent(),
                 this /* serviceConnectionListener */);
         if (lifecycle != null) {
             lifecycle.addObserver(this);
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java
index b649572..1465408 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java
@@ -32,6 +32,7 @@
 
     /**
      * Whether or not the whole suggestion feature is enabled.
+     *
      * @deprecated in favor of {@link #isSuggestionV2Enabled(Context)}
      */
     @Deprecated
@@ -43,6 +44,11 @@
     boolean isSuggestionV2Enabled(Context context);
 
     /**
+     * Returns the component name for SuggestionService.
+     */
+    ComponentName getSuggestionServiceComponent();
+
+    /**
      * Returns true if smart suggestion should be used instead of xml based SuggestionParser.
      */
     boolean isSmartSuggestionEnabled(Context context);
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java
index 1c61d8e..715964b 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java
@@ -79,6 +79,13 @@
         return !isLowRamDevice && isV2Enabled();
     }
 
+    @Override
+    public ComponentName getSuggestionServiceComponent() {
+        return new ComponentName(
+                "com.android.settings.intelligence",
+                "com.android.settings.intelligence.suggestions.SuggestionService");
+    }
+
     private static boolean isV2Enabled() {
         return FeatureFlagUtils.isEnabled(FEATURE_FLAG_SUGGESTIONS_V2);
     }
diff --git a/src/com/android/settings/datausage/DataPlanUsageSummary.java b/src/com/android/settings/datausage/DataPlanUsageSummary.java
index 0743749..1905deb 100644
--- a/src/com/android/settings/datausage/DataPlanUsageSummary.java
+++ b/src/com/android/settings/datausage/DataPlanUsageSummary.java
@@ -53,7 +53,6 @@
 
 public class DataPlanUsageSummary extends DataUsageBase implements Indexable {
 
-    public static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
     public static final String KEY_DATA_PLAN_USAGE = "data_plan_usage";
 
     public static final String KEY_STATUS_HEADER = "status_header";
@@ -100,10 +99,6 @@
         }
         mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, defaultSubId);
 
-        if (!hasMobileData || !isAdmin()) {
-            removePreference(KEY_RESTRICT_BACKGROUND);
-        }
-
         if (hasMobileData) {
             addDataPlanSection(defaultSubId);
         }
diff --git a/src/com/android/settings/development/CameraLaserSensorPreferenceController.java b/src/com/android/settings/development/CameraLaserSensorPreferenceController.java
index 26bfc80..3f47b88 100644
--- a/src/com/android/settings/development/CameraLaserSensorPreferenceController.java
+++ b/src/com/android/settings/development/CameraLaserSensorPreferenceController.java
@@ -28,6 +28,10 @@
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.core.AbstractPreferenceController;
 
+/**
+ * deprecated in favor of {@link CameraLaserSensorPreferenceControllerV2}
+ */
+@Deprecated
 public class CameraLaserSensorPreferenceController extends AbstractPreferenceController
         implements PreferenceControllerMixin {
 
diff --git a/src/com/android/settings/development/CameraLaserSensorPreferenceControllerV2.java b/src/com/android/settings/development/CameraLaserSensorPreferenceControllerV2.java
new file mode 100644
index 0000000..c3a5f16
--- /dev/null
+++ b/src/com/android/settings/development/CameraLaserSensorPreferenceControllerV2.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.os.SystemProperties;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import android.text.TextUtils;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+
+public class CameraLaserSensorPreferenceControllerV2 extends
+        DeveloperOptionsPreferenceController implements
+        Preference.OnPreferenceChangeListener {
+
+    private static final String KEY_CAMERA_LASER_SENSOR_SWITCH = "camera_laser_sensor_switch";
+    @VisibleForTesting
+    static final String BUILD_TYPE = "ro.build.type";
+    @VisibleForTesting
+    static final String PROPERTY_CAMERA_LASER_SENSOR = "persist.camera.stats.disablehaf";
+    @VisibleForTesting
+    static final int ENABLED = 0;
+    @VisibleForTesting
+    static final int DISABLED = 2;
+    @VisibleForTesting
+    static final String USERDEBUG_BUILD = "userdebug";
+    @VisibleForTesting
+    static final String ENG_BUILD = "eng";
+    @VisibleForTesting
+    static final String USER_BUILD = "user";
+
+    private SwitchPreference mPreference;
+
+    public CameraLaserSensorPreferenceControllerV2(Context context) {
+        super(context);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        final String buildType = SystemProperties.get(BUILD_TYPE);
+        return mContext.getResources().getBoolean(R.bool.config_show_camera_laser_sensor) &&
+                (TextUtils.equals(USERDEBUG_BUILD, buildType) || TextUtils.equals(ENG_BUILD,
+                        buildType));
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_CAMERA_LASER_SENSOR_SWITCH;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        mPreference = (SwitchPreference) screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean isEnabled = (Boolean) newValue;
+        String value = Integer.toString(isEnabled ? ENABLED : DISABLED);
+        SystemProperties.set(PROPERTY_CAMERA_LASER_SENSOR, value);
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final boolean enabled = isLaserSensorEnabled();
+        mPreference.setChecked(enabled);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchEnabled() {
+        mPreference.setEnabled(true);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        SystemProperties.set(PROPERTY_CAMERA_LASER_SENSOR, Integer.toString(DISABLED));
+        mPreference.setChecked(false);
+        mPreference.setEnabled(false);
+    }
+
+    private boolean isLaserSensorEnabled() {
+        final String prop = SystemProperties.get(PROPERTY_CAMERA_LASER_SENSOR,
+                Integer.toString(ENABLED));
+        return TextUtils.equals(Integer.toString(ENABLED), prop);
+    }
+
+}
diff --git a/src/com/android/settings/development/CoolColorTemperaturePreferenceController.java b/src/com/android/settings/development/CoolColorTemperaturePreferenceController.java
new file mode 100644
index 0000000..894435a
--- /dev/null
+++ b/src/com/android/settings/development/CoolColorTemperaturePreferenceController.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.os.SystemProperties;
+import android.support.annotation.VisibleForTesting;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import android.widget.Toast;
+
+import com.android.settings.R;
+import com.android.settingslib.development.SystemPropPoker;
+
+public class CoolColorTemperaturePreferenceController extends
+        DeveloperOptionsPreferenceController implements
+        Preference.OnPreferenceChangeListener {
+
+    private static final String COLOR_TEMPERATURE_KEY = "color_temperature";
+
+    @VisibleForTesting
+    static final String COLOR_TEMPERATURE_PROPERTY = "persist.sys.debug.color_temp";
+
+    private SwitchPreference mPreference;
+
+    public CoolColorTemperaturePreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return mContext.getResources().getBoolean(R.bool.config_enableColorTemperature);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return COLOR_TEMPERATURE_KEY;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = (SwitchPreference) screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean isColorTemperatureEnabled = (Boolean) newValue;
+        SystemProperties.set(COLOR_TEMPERATURE_PROPERTY,
+                Boolean.toString(isColorTemperatureEnabled));
+        SystemPropPoker.getInstance().poke();
+        displayColorTemperatureToast();
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final boolean enableColorTemperature = SystemProperties.getBoolean(
+                COLOR_TEMPERATURE_PROPERTY, false /* default */);
+        mPreference.setChecked(enableColorTemperature);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchEnabled() {
+        mPreference.setEnabled(true);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        SystemProperties.set(COLOR_TEMPERATURE_PROPERTY, Boolean.toString(false));
+        mPreference.setChecked(false);
+        mPreference.setEnabled(false);
+    }
+
+    @VisibleForTesting
+    void displayColorTemperatureToast() {
+        Toast.makeText(mContext, R.string.color_temperature_toast, Toast.LENGTH_LONG).show();
+    }
+}
diff --git a/src/com/android/settings/development/DebugViewAttributesPreferenceController.java b/src/com/android/settings/development/DebugViewAttributesPreferenceController.java
new file mode 100644
index 0000000..b53b1cd
--- /dev/null
+++ b/src/com/android/settings/development/DebugViewAttributesPreferenceController.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.annotation.VisibleForTesting;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+public class DebugViewAttributesPreferenceController extends
+        DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener {
+
+    private static final String DEBUG_VIEW_ATTRIBUTES_KEY = "debug_view_attributes";
+
+    @VisibleForTesting
+    static final int SETTING_VALUE_ON = 1;
+    @VisibleForTesting
+    static final int SETTING_VALUE_OFF = 0;
+
+    private SwitchPreference mPreference;
+
+    public DebugViewAttributesPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return DEBUG_VIEW_ATTRIBUTES_KEY;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        mPreference = (SwitchPreference) screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean showViewAttr = (Boolean) newValue;
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.DEBUG_VIEW_ATTRIBUTES,
+                showViewAttr ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final int debugViewAttrMode = Settings.Global.getInt(mContext.getContentResolver(),
+                Settings.Global.DEBUG_VIEW_ATTRIBUTES, 0 /* default */);
+        mPreference.setChecked(debugViewAttrMode != SETTING_VALUE_OFF);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchEnabled() {
+        mPreference.setEnabled(true);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.DEBUG_VIEW_ATTRIBUTES, SETTING_VALUE_OFF);
+        mPreference.setChecked(false);
+        mPreference.setEnabled(false);
+    }
+}
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index d334bd0..71933b3 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -183,29 +183,29 @@
         // convert to file encryption
         controllers.add(new PictureColorModePreferenceController(context, lifecycle));
         // webview implementation
-        // cool color temperature
-        // automatic system updates
+        controllers.add(new CoolColorTemperaturePreferenceController(context));
+        controllers.add(new DisableAutomaticUpdatesPreferenceController(context));
         // system ui demo mode
         // quick settings developer tiles
         // usb debugging
         // revoke usb debugging authorizations
-        // local terminal
+        controllers.add(new LocalTerminalPreferenceController(context));
         // bug report shortcut
         // select mock location app
-        // enable view attribute inspection
+        controllers.add(new DebugViewAttributesPreferenceController(context));
         // select debug app
         // wait for debugger
         // verify apps over usb
         // logger buffer sizes
         // store logger data persistently on device
         // telephony monitor
-        // camera laser sensor
+        controllers.add(new CameraLaserSensorPreferenceControllerV2(context));
         // camera HAL HDR+
         // feature flags
-        // wireless display certification
+        controllers.add(new WifiDisplayCertificationPreferenceController(context));
         // enable wi-fi verbose logging
         // aggressive wifi to mobile handover
-        // always allow wifi roam scans
+        controllers.add(new WifiRoamScansPreferenceController(context));
         // mobile always active
         // tethering hardware acceleration
         // select usb configuration
diff --git a/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceController.java b/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceController.java
new file mode 100644
index 0000000..a1bfa90
--- /dev/null
+++ b/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceController.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.annotation.VisibleForTesting;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+public class DisableAutomaticUpdatesPreferenceController extends
+        DeveloperOptionsPreferenceController implements
+        Preference.OnPreferenceChangeListener {
+
+    private static final String OTA_DISABLE_AUTOMATIC_UPDATE_KEY = "ota_disable_automatic_update";
+
+    private SwitchPreference mPreference;
+
+    // We use the "disabled status" in code, but show the opposite text
+    // "Automatic system updates" on screen. So a value 0 indicates the
+    // automatic update is enabled.
+    @VisibleForTesting
+    final static int DISABLE_UPDATES_SETTING = 1;
+    @VisibleForTesting
+    final static int ENABLE_UPDATES_SETTING = 0;
+
+    public DisableAutomaticUpdatesPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return OTA_DISABLE_AUTOMATIC_UPDATE_KEY;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        mPreference = (SwitchPreference) screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean updatesEnabled = (Boolean) newValue;
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE,
+                updatesEnabled ? ENABLE_UPDATES_SETTING : DISABLE_UPDATES_SETTING);
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final int updatesEnabled = Settings.Global.getInt(mContext.getContentResolver(),
+                Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, 0 /* default */);
+
+        mPreference.setChecked(updatesEnabled != DISABLE_UPDATES_SETTING);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchEnabled() {
+        mPreference.setEnabled(true);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, DISABLE_UPDATES_SETTING);
+        mPreference.setChecked(false);
+        mPreference.setEnabled(false);
+    }
+}
diff --git a/src/com/android/settings/development/LocalTerminalPreferenceController.java b/src/com/android/settings/development/LocalTerminalPreferenceController.java
new file mode 100644
index 0000000..cda6e27
--- /dev/null
+++ b/src/com/android/settings/development/LocalTerminalPreferenceController.java
@@ -0,0 +1,100 @@
+package com.android.settings.development;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.UserManager;
+import android.support.annotation.VisibleForTesting;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settingslib.wrapper.PackageManagerWrapper;
+
+public class LocalTerminalPreferenceController extends
+        DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener {
+
+    private static final String ENABLE_TERMINAL_KEY = "enable_terminal";
+
+    @VisibleForTesting
+    static final String TERMINAL_APP_PACKAGE = "com.android.terminal";
+
+    private PackageManagerWrapper mPackageManager;
+    private SwitchPreference mPreference;
+    private UserManager mUserManager;
+
+    public LocalTerminalPreferenceController(Context context) {
+        super(context);
+
+        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return isPackageInstalled(TERMINAL_APP_PACKAGE);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return ENABLE_TERMINAL_KEY;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        mPreference = (SwitchPreference) screen.findPreference(getPreferenceKey());
+        mPackageManager = getPackageManagerWrapper();
+
+        if (isAvailable() && !isEnabled()) {
+            mPreference.setEnabled(false);
+        }
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean terminalEnabled = (Boolean) newValue;
+        mPackageManager.setApplicationEnabledSetting(TERMINAL_APP_PACKAGE,
+                terminalEnabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+                        : PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0 /* flags */);
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final boolean isTerminalEnabled = mPackageManager.getApplicationEnabledSetting(
+                TERMINAL_APP_PACKAGE) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+        mPreference.setChecked(isTerminalEnabled);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchEnabled() {
+        if (isEnabled()) {
+            mPreference.setEnabled(true);
+        }
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        mPackageManager.setApplicationEnabledSetting(TERMINAL_APP_PACKAGE,
+                PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0 /* flags */);
+        mPreference.setEnabled(false);
+        mPreference.setChecked(false);
+    }
+
+    @VisibleForTesting
+    PackageManagerWrapper getPackageManagerWrapper() {
+        return new PackageManagerWrapper(mContext.getPackageManager());
+    }
+
+    private boolean isPackageInstalled(String packageName) {
+        try {
+            return mContext.getPackageManager().getPackageInfo(packageName, 0 /* flags */) != null;
+        } catch (PackageManager.NameNotFoundException e) {
+            return false;
+        }
+    }
+
+    private boolean isEnabled() {
+        return mUserManager.isAdminUser();
+    }
+}
diff --git a/src/com/android/settings/development/WifiDisplayCertificationPreferenceController.java b/src/com/android/settings/development/WifiDisplayCertificationPreferenceController.java
new file mode 100644
index 0000000..009bf9c
--- /dev/null
+++ b/src/com/android/settings/development/WifiDisplayCertificationPreferenceController.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.annotation.VisibleForTesting;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+public class WifiDisplayCertificationPreferenceController extends
+        DeveloperOptionsPreferenceController implements
+        Preference.OnPreferenceChangeListener {
+
+    private static final String WIFI_DISPLAY_CERTIFICATION_KEY = "wifi_display_certification";
+
+    @VisibleForTesting
+    static final int SETTING_VALUE_ON = 1;
+    @VisibleForTesting
+    static final int SETTING_VALUE_OFF = 0;
+
+    private SwitchPreference mPreference;
+
+    public WifiDisplayCertificationPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return WIFI_DISPLAY_CERTIFICATION_KEY;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        mPreference = (SwitchPreference) screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean isEnabled = (Boolean) newValue;
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON,
+                isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final int wifiDisplayCertificationMode = Settings.Global.getInt(
+                mContext.getContentResolver(), Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON,
+                SETTING_VALUE_OFF);
+        mPreference.setChecked(wifiDisplayCertificationMode != SETTING_VALUE_OFF);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchEnabled() {
+        mPreference.setEnabled(true);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, SETTING_VALUE_OFF);
+        mPreference.setEnabled(false);
+        mPreference.setChecked(false);
+    }
+}
diff --git a/src/com/android/settings/development/WifiRoamScansPreferenceController.java b/src/com/android/settings/development/WifiRoamScansPreferenceController.java
new file mode 100644
index 0000000..b7ab5b7
--- /dev/null
+++ b/src/com/android/settings/development/WifiRoamScansPreferenceController.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.net.wifi.WifiManager;
+import android.support.annotation.VisibleForTesting;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+public class WifiRoamScansPreferenceController extends
+        DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener {
+
+    private static final String WIFI_ALLOW_SCAN_WITH_TRAFFIC_KEY = "wifi_allow_scan_with_traffic";
+
+    @VisibleForTesting
+    static final int SETTING_VALUE_ON = 1;
+    @VisibleForTesting
+    static final int SETTING_VALUE_OFF = 0;
+
+    private final WifiManager mWifiManager;
+    private SwitchPreference mPreference;
+
+    public WifiRoamScansPreferenceController(Context context) {
+        super(context);
+
+        mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return WIFI_ALLOW_SCAN_WITH_TRAFFIC_KEY;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        mPreference = (SwitchPreference) screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean isEnabled = (Boolean) newValue;
+        mWifiManager.setAllowScansWithTraffic(isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final boolean enabled = mWifiManager.getAllowScansWithTraffic() > 0;
+        mPreference.setChecked(enabled);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchEnabled() {
+        mPreference.setEnabled(true);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        mWifiManager.setAllowScansWithTraffic(SETTING_VALUE_OFF);
+        mPreference.setEnabled(false);
+        mPreference.setChecked(false);
+    }
+}
diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java
index 29eb4a3..95c9560 100644
--- a/src/com/android/settings/notification/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/AppNotificationSettings.java
@@ -21,6 +21,7 @@
 import android.app.NotificationChannelGroup;
 import android.app.NotificationManager;
 import android.content.Intent;
+import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.provider.Settings;
@@ -168,7 +169,8 @@
         } else {
             populateGroupList();
             int deletedChannelCount = mBackend.getDeletedChannelCount(mAppRow.pkg, mAppRow.uid);
-            if (deletedChannelCount > 0) {
+            if (deletedChannelCount > 0 &&
+                    getPreferenceScreen().findPreference(KEY_DELETED) == null) {
                 mDeletedChannels = new FooterPreference(getPrefContext());
                 mDeletedChannels.setSelectable(false);
                 mDeletedChannels.setTitle(getResources().getQuantityString(
@@ -322,6 +324,7 @@
         }
     }
 
+
     private Comparator<NotificationChannelGroup> mChannelGroupComparator =
             new Comparator<NotificationChannelGroup>() {
 
diff --git a/src/com/android/settings/notification/ChannelImportanceSettings.java b/src/com/android/settings/notification/ChannelImportanceSettings.java
index 26dd57f..9e9ffd6 100644
--- a/src/com/android/settings/notification/ChannelImportanceSettings.java
+++ b/src/com/android/settings/notification/ChannelImportanceSettings.java
@@ -17,6 +17,7 @@
 package com.android.settings.notification;
 
 import static android.app.NotificationChannel.USER_LOCKED_IMPORTANCE;
+import static android.app.NotificationChannel.USER_LOCKED_SOUND;
 import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
 import static android.app.NotificationManager.IMPORTANCE_HIGH;
 import static android.app.NotificationManager.IMPORTANCE_LOW;
@@ -24,6 +25,7 @@
 import static android.app.NotificationManager.IMPORTANCE_MIN;
 
 import android.content.Context;
+import android.media.RingtoneManager;
 import android.provider.SearchIndexableResource;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
@@ -125,6 +127,7 @@
 
     @Override
     public void onRadioButtonClicked(RadioButtonPreference clicked) {
+        int oldImportance = mChannel.getImportance();
         switch (clicked.getKey()) {
             case KEY_IMPORTANCE_HIGH:
                 mChannel.setImportance(IMPORTANCE_HIGH);
@@ -140,6 +143,17 @@
                 break;
         }
         updateRadioButtons(clicked.getKey());
+
+        // If you are moving from an importance level without sound to one with sound,
+        // but the sound you had selected was "Silence",
+        // then set sound for this channel to your default sound,
+        // because you probably intended to cause this channel to actually start making sound.
+        if (oldImportance < IMPORTANCE_DEFAULT && !hasValidSound(mChannel) &&
+                mChannel.getImportance() >= IMPORTANCE_DEFAULT) {
+            mChannel.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION),
+                    mChannel.getAudioAttributes());
+            mChannel.lockFields(USER_LOCKED_SOUND);
+        }
         mChannel.lockFields(USER_LOCKED_IMPORTANCE);
         mBackend.updateChannel(mAppRow.pkg, mAppRow.uid, mChannel);
     }
diff --git a/src/com/android/settings/notification/ChannelNotificationSettings.java b/src/com/android/settings/notification/ChannelNotificationSettings.java
index 5db256d..9484f7e 100644
--- a/src/com/android/settings/notification/ChannelNotificationSettings.java
+++ b/src/com/android/settings/notification/ChannelNotificationSettings.java
@@ -304,15 +304,19 @@
                 break;
             case NotificationManager.IMPORTANCE_DEFAULT:
                 title = getContext().getString(R.string.notification_importance_default_title);
-                if (hasValidSound()) {
+                if (hasValidSound(mChannel)) {
                     summary = getContext().getString(R.string.notification_importance_default);
+                } else {
+                    summary = getContext().getString(R.string.notification_importance_low);
                 }
                 break;
             case NotificationManager.IMPORTANCE_HIGH:
             case NotificationManager.IMPORTANCE_MAX:
                 title = getContext().getString(R.string.notification_importance_high_title);
-                if (hasValidSound()) {
+                if (hasValidSound(mChannel)) {
                     summary = getContext().getString(R.string.notification_importance_high);
+                } else {
+                    summary = getContext().getString(R.string.notification_importance_high_silent);
                 }
                 break;
             default:
@@ -355,10 +359,6 @@
                 Settings.System.NOTIFICATION_LIGHT_PULSE, 0) == 1;
     }
 
-    boolean hasValidSound() {
-        return mChannel.getSound() != null && !Uri.EMPTY.equals(mChannel.getSound());
-    }
-
     void updateDependents(boolean banned) {
         PreferenceGroup parent;
         if (mShowLegacyChannelConfig) {
diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java
index 92169cd..3f366e1 100644
--- a/src/com/android/settings/notification/NotificationSettingsBase.java
+++ b/src/com/android/settings/notification/NotificationSettingsBase.java
@@ -49,6 +49,7 @@
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.ResolveInfo;
 import android.content.pm.UserInfo;
+import android.net.Uri;
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
@@ -479,13 +480,20 @@
             case NotificationManager.IMPORTANCE_LOW:
                 return getContext().getString(R.string.notification_importance_low);
             case NotificationManager.IMPORTANCE_DEFAULT:
-                return getContext().getString(R.string.notification_importance_default);
+                if (hasValidSound(channel)) {
+                    return getContext().getString(R.string.notification_importance_default);
+                } else { // Silent
+                    return getContext().getString(R.string.notification_importance_low);
+                }
             case NotificationManager.IMPORTANCE_HIGH:
             case NotificationManager.IMPORTANCE_MAX:
             default:
-                return getContext().getString(R.string.notification_importance_high);
+                if (hasValidSound(channel)) {
+                    return getContext().getString(R.string.notification_importance_high);
+                } else { // Silent
+                    return getContext().getString(R.string.notification_importance_high_silent);
+                }
         }
-
     }
 
     private void setRestrictedIfNotificationFeaturesDisabled(CharSequence entry,
@@ -595,4 +603,8 @@
                 }
                 return left.getId().compareTo(right.getId());
             };
+
+    boolean hasValidSound(NotificationChannel channel) {
+        return channel.getSound() != null && !Uri.EMPTY.equals(channel.getSound());
+    }
 }
diff --git a/src/com/android/settings/search/DatabaseIndexingManager.java b/src/com/android/settings/search/DatabaseIndexingManager.java
index de71f0a..d540d2f 100644
--- a/src/com/android/settings/search/DatabaseIndexingManager.java
+++ b/src/com/android/settings/search/DatabaseIndexingManager.java
@@ -23,7 +23,24 @@
 import static com.android.settings.search.DatabaseResultLoader.COLUMN_INDEX_KEY;
 import static com.android.settings.search.DatabaseResultLoader.SELECT_COLUMNS;
 import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DOCID;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.CLASS_NAME;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_ENTRIES;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_KEY_REF;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_TITLE;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED;
 import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.ENABLED;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.ICON;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.INTENT_ACTION;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.LOCALE;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.PAYLOAD;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.SCREEN_TITLE;
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.USER_ID;
 import static com.android.settings.search.IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX;
 
 import android.content.ContentValues;
@@ -38,10 +55,12 @@
 import android.provider.SearchIndexableResource;
 import android.provider.SearchIndexablesContract;
 import android.support.annotation.VisibleForTesting;
+import android.text.TextUtils;
 import android.util.Log;
 
 import com.android.settings.overlay.FeatureFactory;
 
+import com.android.settings.search.indexing.IndexData;
 import com.android.settings.search.indexing.IndexDataConverter;
 import com.android.settings.search.indexing.PreIndexData;
 import com.android.settings.search.indexing.PreIndexDataCollector;
@@ -49,6 +68,7 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 
@@ -72,6 +92,7 @@
     final AtomicBoolean mIsIndexingComplete = new AtomicBoolean(false);
 
     private PreIndexDataCollector mCollector;
+    private IndexDataConverter mConverter;
 
     private Context mContext;
 
@@ -182,8 +203,8 @@
      * @param localeStr       the default locale for the device.
      */
     @VisibleForTesting
-    void updateDatabase(PreIndexData indexData, boolean needsReindexing, String localeStr) {
-        final Map<String, Set<String>> nonIndexableKeys = indexData.nonIndexableKeys;
+    void updateDatabase(PreIndexData preIndexData, boolean needsReindexing, String localeStr) {
+        final Map<String, Set<String>> nonIndexableKeys = preIndexData.nonIndexableKeys;
 
         final SQLiteDatabase database = getWritableDatabase();
         if (database == null) {
@@ -194,8 +215,9 @@
         try {
             database.beginTransaction();
 
-            // Add new data from Providers at initial index time, or inserted later.
-            addIndaxebleDataToDatabase(database, localeStr, indexData);
+            // Convert all Pre-index data to Index data.
+            List<IndexData> indexData = getIndexData(localeStr, preIndexData);
+            insertIndexData(database, indexData);
 
             // Only check for non-indexable key updates after initial index.
             // Enabled state with non-indexable keys is checked when items are first inserted.
@@ -209,14 +231,64 @@
         }
     }
 
-
     @VisibleForTesting
-    void addIndaxebleDataToDatabase(SQLiteDatabase database, String locale, PreIndexData data) {
-        if (data.dataToUpdate.size() == 0) {
-            return;
+    List<IndexData> getIndexData(String locale, PreIndexData data) {
+        if (mConverter == null) {
+            mConverter = new IndexDataConverter(mContext);
         }
-        IndexDataConverter manager = new IndexDataConverter(mContext, database);
-        manager.addDataToDatabase(locale, data.dataToUpdate, data.nonIndexableKeys);
+        return mConverter.convertPreIndexDataToIndexData(data, locale);
+    }
+
+    /**
+     * Inserts all of the entries in {@param indexData} into the {@param database}
+     * as Search Data and as part of the Information Hierarchy.
+     */
+    @VisibleForTesting
+    void insertIndexData(SQLiteDatabase database, List<IndexData> indexData) {
+        ContentValues values;
+
+        for (IndexData dataRow : indexData) {
+            values = new ContentValues();
+            values.put(IndexDatabaseHelper.IndexColumns.DOCID, dataRow.getDocId());
+            values.put(LOCALE, dataRow.locale);
+            values.put(DATA_TITLE, dataRow.updatedTitle);
+            values.put(DATA_TITLE_NORMALIZED, dataRow.normalizedTitle);
+            values.put(DATA_SUMMARY_ON, dataRow.updatedSummaryOn);
+            values.put(DATA_SUMMARY_ON_NORMALIZED, dataRow.normalizedSummaryOn);
+            values.put(DATA_ENTRIES, dataRow.entries);
+            values.put(DATA_KEYWORDS, dataRow.spaceDelimitedKeywords);
+            values.put(CLASS_NAME, dataRow.className);
+            values.put(SCREEN_TITLE, dataRow.screenTitle);
+            values.put(INTENT_ACTION, dataRow.intentAction);
+            values.put(INTENT_TARGET_PACKAGE, dataRow.intentTargetPackage);
+            values.put(INTENT_TARGET_CLASS, dataRow.intentTargetClass);
+            values.put(ICON, dataRow.iconResId);
+            values.put(ENABLED, dataRow.enabled);
+            values.put(DATA_KEY_REF, dataRow.key);
+            values.put(USER_ID, dataRow.userId);
+            values.put(PAYLOAD_TYPE, dataRow.payloadType);
+            values.put(PAYLOAD, dataRow.payload);
+
+            database.replaceOrThrow(TABLE_PREFS_INDEX, null, values);
+
+            if (!TextUtils.isEmpty(dataRow.className)
+                    && !TextUtils.isEmpty(dataRow.childClassName)) {
+                ContentValues siteMapPair = new ContentValues();
+                final int pairDocId = Objects.hash(dataRow.className, dataRow.childClassName);
+                siteMapPair.put(IndexDatabaseHelper.SiteMapColumns.DOCID, pairDocId);
+                siteMapPair.put(IndexDatabaseHelper.SiteMapColumns.PARENT_CLASS,
+                        dataRow.className);
+                siteMapPair.put(IndexDatabaseHelper.SiteMapColumns.PARENT_TITLE,
+                        dataRow.screenTitle);
+                siteMapPair.put(IndexDatabaseHelper.SiteMapColumns.CHILD_CLASS,
+                        dataRow.childClassName);
+                siteMapPair.put(IndexDatabaseHelper.SiteMapColumns.CHILD_TITLE,
+                        dataRow.updatedTitle);
+
+                database.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_SITE_MAP,
+                        null /* nullColumnHack */, siteMapPair);
+            }
+        }
     }
 
     /**
@@ -288,7 +360,6 @@
         disabledResults.close();
     }
 
-
     /**
      * TODO (b/64951285): Deprecate this method
      *
diff --git a/src/com/android/settings/search/indexing/IndexDataConverter.java b/src/com/android/settings/search/indexing/IndexDataConverter.java
index f900b83..90430a8 100644
--- a/src/com/android/settings/search/indexing/IndexDataConverter.java
+++ b/src/com/android/settings/search/indexing/IndexDataConverter.java
@@ -17,10 +17,8 @@
 
 package com.android.settings.search.indexing;
 
-import android.content.ContentValues;
 import android.content.Context;
 import android.content.res.XmlResourceParser;
-import android.database.sqlite.SQLiteDatabase;
 import android.provider.SearchIndexableData;
 import android.provider.SearchIndexableResource;
 import android.support.annotation.DrawableRes;
@@ -32,7 +30,6 @@
 import com.android.settings.core.PreferenceControllerMixin;
 
 import com.android.settings.search.DatabaseIndexingUtils;
-import com.android.settings.search.IndexDatabaseHelper;
 import com.android.settings.search.Indexable;
 import com.android.settings.search.ResultPayload;
 import com.android.settings.search.SearchIndexableRaw;
@@ -44,33 +41,10 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Set;
 
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.CLASS_NAME;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_ENTRIES;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_KEY_REF;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_RANK;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_TITLE;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.ENABLED;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.ICON;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.INTENT_ACTION;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.LOCALE;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.PAYLOAD;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.SCREEN_TITLE;
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns.USER_ID;
-import static com.android.settings.search.IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX;
-
 /**
  * Helper class to convert {@link PreIndexData} to {@link IndexData}.
  *
@@ -86,56 +60,65 @@
     private static final String NODE_NAME_CHECK_BOX_PREFERENCE = "CheckBoxPreference";
     private static final String NODE_NAME_LIST_PREFERENCE = "ListPreference";
 
-    private Context mContext;
+    private final Context mContext;
 
-    private SQLiteDatabase mDb;
+    private String mLocale;
 
-    public IndexDataConverter(Context context, SQLiteDatabase database) {
+    private List<IndexData> mIndexData;
+
+    public IndexDataConverter(Context context) {
         mContext = context;
-        mDb = database;
+        mLocale = Locale.getDefault().toString();
+    }
+
+    public List<IndexData> convertPreIndexDataToIndexData(PreIndexData preIndexData,
+            String locale) {
+        mLocale = locale;
+        mIndexData = new ArrayList<>();
+        List<SearchIndexableData> dataToUpdate = preIndexData.dataToUpdate;
+        Map<String, Set<String>> nonIndexableKeys = preIndexData.nonIndexableKeys;
+        parsePreIndexData(dataToUpdate, nonIndexableKeys);
+        return mIndexData;
     }
 
     /**
      * Inserts {@link SearchIndexableData} into the database.
      *
-     * @param localeStr        is the locale of the data to be inserted.
      * @param dataToUpdate     is a {@link List} of the data to be inserted.
      * @param nonIndexableKeys is a {@link Map} from Package Name to a {@link Set} of keys which
      *                         identify search results which should not be surfaced.
      */
-    public void addDataToDatabase(String localeStr, List<SearchIndexableData> dataToUpdate,
+    private void parsePreIndexData(List<SearchIndexableData> dataToUpdate,
             Map<String, Set<String>> nonIndexableKeys) {
         final long current = System.currentTimeMillis();
 
         for (SearchIndexableData data : dataToUpdate) {
             try {
-                indexOneSearchIndexableData(localeStr, data, nonIndexableKeys);
+                addOneIndexData(data, nonIndexableKeys);
             } catch (Exception e) {
                 Log.e(LOG_TAG, "Cannot index: " + (data != null ? data.className : data)
-                        + " for locale: " + localeStr, e);
+                        + " for locale: " + mLocale, e);
             }
         }
 
         final long now = System.currentTimeMillis();
-        Log.d(LOG_TAG, "Indexing locale '" + localeStr + "' took " +
+        Log.d(LOG_TAG, "Indexing locale '" + mLocale + "' took " +
                 (now - current) + " millis");
     }
 
-    @VisibleForTesting
-    void indexOneSearchIndexableData(String localeStr, SearchIndexableData data,
+    private void addOneIndexData(SearchIndexableData data,
             Map<String, Set<String>> nonIndexableKeys) {
         if (data instanceof SearchIndexableResource) {
-            indexOneResource(localeStr, (SearchIndexableResource) data, nonIndexableKeys);
+            addOneResource((SearchIndexableResource) data, nonIndexableKeys);
         } else if (data instanceof SearchIndexableRaw) {
-            indexOneRaw(localeStr, (SearchIndexableRaw) data, nonIndexableKeys);
+            addOneRaw((SearchIndexableRaw) data, nonIndexableKeys);
         }
     }
 
-    @VisibleForTesting
-    void indexOneRaw(String localeStr, SearchIndexableRaw raw, Map<String,
+    private void addOneRaw(SearchIndexableRaw raw, Map<String,
             Set<String>> nonIndexableKeysFromResource) {
         // Should be the same locale as the one we are processing
-        if (!raw.locale.toString().equalsIgnoreCase(localeStr)) {
+        if (!raw.locale.toString().equalsIgnoreCase(mLocale)) {
             return;
         }
 
@@ -149,7 +132,7 @@
         IndexData.Builder builder = new IndexData.Builder();
         builder.setTitle(raw.title)
                 .setSummaryOn(raw.summaryOn)
-                .setLocale(localeStr)
+                .setLocale(mLocale)
                 .setEntries(raw.entries)
                 .setKeywords(raw.keywords)
                 .setClassName(raw.className)
@@ -162,12 +145,11 @@
                 .setKey(raw.key)
                 .setUserId(raw.userId);
 
-        updateOneRow(builder.build(mContext));
+        addRowToData(builder.build(mContext));
     }
 
-    @VisibleForTesting
-    void indexOneResource(String localeStr, SearchIndexableResource sir,
-            Map<String, Set<String>> nonIndexableKeysFromResource) {
+    private void addOneResource(SearchIndexableResource sir,
+        Map<String, Set<String>> nonIndexableKeysFromResource) {
 
         if (sir == null) {
             Log.e(LOG_TAG, "Cannot index a null resource!");
@@ -182,7 +164,7 @@
                 nonIndexableKeys.addAll(resNonIndexableKeys);
             }
 
-            indexFromResource(localeStr, sir, nonIndexableKeys);
+            addIndexDataFromResource(sir, nonIndexableKeys);
         } else {
             if (TextUtils.isEmpty(sir.className)) {
                 Log.w(LOG_TAG, "Cannot index an empty Search Provider name!");
@@ -202,17 +184,16 @@
                     DatabaseIndexingUtils.getSearchIndexProvider(clazz);
             if (provider != null) {
                 List<String> providerNonIndexableKeys = provider.getNonIndexableKeys(sir.context);
-                if (providerNonIndexableKeys != null && providerNonIndexableKeys.size() > 0) {
+                if (providerNonIndexableKeys != null) {
                     nonIndexableKeys.addAll(providerNonIndexableKeys);
                 }
 
-                indexFromProvider(localeStr, provider, sir, nonIndexableKeys);
+                addIndexDataFromProvider(provider, sir, nonIndexableKeys);
             }
         }
     }
 
-    @VisibleForTesting
-    void indexFromResource(String localeStr, SearchIndexableResource sir,
+    private void addIndexDataFromResource(SearchIndexableResource sir,
             List<String> nonIndexableKeys) {
         final Context context = sir.context;
         XmlResourceParser parser = null;
@@ -274,7 +255,7 @@
             headerBuilder.setTitle(headerTitle)
                     .setSummaryOn(headerSummary)
                     .setKeywords(headerKeywords)
-                    .setLocale(localeStr)
+                    .setLocale(mLocale)
                     .setClassName(fragmentName)
                     .setScreenTitle(screenTitle)
                     .setIntentAction(intentAction)
@@ -308,7 +289,7 @@
 
                 builder = new IndexData.Builder();
                 builder.setTitle(title)
-                        .setLocale(localeStr)
+                        .setLocale(mLocale)
                         .setKeywords(keywords)
                         .setClassName(fragmentName)
                         .setScreenTitle(screenTitle)
@@ -339,7 +320,7 @@
                             .setPayload(payload);
 
                     // Insert rows for the child nodes of PreferenceScreen
-                    updateOneRow(builder.build(mContext));
+                    addRowToData(builder.build(mContext));
                 } else {
                     // TODO (b/33577327) We removed summary off here. We should check if we can
                     // merge this 'else' section with the one above. Put a break point to
@@ -353,13 +334,13 @@
 
                     builder.setSummaryOn(summaryOn);
 
-                    updateOneRow(builder.build(mContext));
+                    addRowToData(builder.build(mContext));
                 }
             }
 
             // The xml header's title does not match the title of one of the child settings.
             if (isHeaderUnique) {
-                updateOneRow(headerBuilder.build(mContext));
+                addRowToData(headerBuilder.build(mContext));
             }
         } catch (XmlPullParserException e) {
             throw new RuntimeException("Error parsing PreferenceScreen", e);
@@ -370,8 +351,7 @@
         }
     }
 
-    @VisibleForTesting
-    void indexFromProvider(String localeStr, Indexable.SearchIndexProvider provider,
+    private void addIndexDataFromProvider(Indexable.SearchIndexProvider provider,
             SearchIndexableResource sir, List<String> nonIndexableKeys) {
 
         final String className = sir.className;
@@ -393,7 +373,7 @@
                 SearchIndexableRaw raw = rawList.get(i);
 
                 // Should be the same locale as the one we are processing
-                if (!raw.locale.toString().equalsIgnoreCase(localeStr)) {
+                if (!raw.locale.toString().equalsIgnoreCase(mLocale)) {
                     continue;
                 }
                 boolean enabled = !nonIndexableKeys.contains(raw.key);
@@ -401,7 +381,7 @@
                 IndexData.Builder builder = new IndexData.Builder();
                 builder.setTitle(raw.title)
                         .setSummaryOn(raw.summaryOn)
-                        .setLocale(localeStr)
+                        .setLocale(mLocale)
                         .setEntries(raw.entries)
                         .setKeywords(raw.keywords)
                         .setClassName(className)
@@ -414,7 +394,7 @@
                         .setKey(raw.key)
                         .setUserId(raw.userId);
 
-                updateOneRow(builder.build(mContext));
+                addRowToData(builder.build(mContext));
             }
         }
 
@@ -426,7 +406,7 @@
                 SearchIndexableResource item = resList.get(i);
 
                 // Should be the same locale as the one we are processing
-                if (!item.locale.toString().equalsIgnoreCase(localeStr)) {
+                if (!item.locale.toString().equalsIgnoreCase(mLocale)) {
                     continue;
                 }
 
@@ -440,49 +420,16 @@
                         ? intentTargetPackage
                         : item.intentTargetPackage;
 
-                indexFromResource(localeStr, item, nonIndexableKeys);
+                addIndexDataFromResource(item, nonIndexableKeys);
             }
         }
     }
 
-    private void updateOneRow(IndexData row) {
+    private void addRowToData(IndexData row) {
         if (TextUtils.isEmpty(row.updatedTitle)) {
             return;
         }
 
-        ContentValues values = new ContentValues();
-        values.put(IndexDatabaseHelper.IndexColumns.DOCID, row.getDocId());
-        values.put(LOCALE, row.locale);
-        values.put(DATA_TITLE, row.updatedTitle);
-        values.put(DATA_TITLE_NORMALIZED, row.normalizedTitle);
-        values.put(DATA_SUMMARY_ON, row.updatedSummaryOn);
-        values.put(DATA_SUMMARY_ON_NORMALIZED, row.normalizedSummaryOn);
-        values.put(DATA_ENTRIES, row.entries);
-        values.put(DATA_KEYWORDS, row.spaceDelimitedKeywords);
-        values.put(CLASS_NAME, row.className);
-        values.put(SCREEN_TITLE, row.screenTitle);
-        values.put(INTENT_ACTION, row.intentAction);
-        values.put(INTENT_TARGET_PACKAGE, row.intentTargetPackage);
-        values.put(INTENT_TARGET_CLASS, row.intentTargetClass);
-        values.put(ICON, row.iconResId);
-        values.put(ENABLED, row.enabled);
-        values.put(DATA_KEY_REF, row.key);
-        values.put(USER_ID, row.userId);
-        values.put(PAYLOAD_TYPE, row.payloadType);
-        values.put(PAYLOAD, row.payload);
-
-        mDb.replaceOrThrow(TABLE_PREFS_INDEX, null, values);
-
-        if (!TextUtils.isEmpty(row.className) && !TextUtils.isEmpty(row.childClassName)) {
-            ContentValues siteMapPair = new ContentValues();
-            final int pairDocId = Objects.hash(row.className, row.childClassName);
-            siteMapPair.put(IndexDatabaseHelper.SiteMapColumns.DOCID, pairDocId);
-            siteMapPair.put(IndexDatabaseHelper.SiteMapColumns.PARENT_CLASS, row.className);
-            siteMapPair.put(IndexDatabaseHelper.SiteMapColumns.PARENT_TITLE, row.screenTitle);
-            siteMapPair.put(IndexDatabaseHelper.SiteMapColumns.CHILD_CLASS, row.childClassName);
-            siteMapPair.put(IndexDatabaseHelper.SiteMapColumns.CHILD_TITLE, row.updatedTitle);
-
-            mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_SITE_MAP, null, siteMapPair);
-        }
+        mIndexData.add(row);
     }
 }
diff --git a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
index 4838cc6..d163616 100644
--- a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
+++ b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
@@ -22,6 +22,8 @@
 import android.icu.text.Collator;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
+import android.os.Handler;
+import android.support.annotation.VisibleForTesting;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
 import android.util.Log;
@@ -31,6 +33,7 @@
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.search.Indexable;
+import com.android.settings.wrapper.WifiManagerWrapper;
 import com.android.settingslib.wifi.AccessPoint;
 import com.android.settingslib.wifi.AccessPointPreference;
 import com.android.settingslib.wifi.WifiSavedConfigUtils;
@@ -46,6 +49,8 @@
 public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment
         implements Indexable, WifiDialog.WifiDialogListener {
     private static final String TAG = "SavedAccessPoints";
+    @VisibleForTesting
+    static final int MSG_UPDATE_PREFERENCES = 1;
     private static final Comparator<AccessPoint> SAVED_NETWORK_COMPARATOR =
             new Comparator<AccessPoint>() {
         final Collator mCollator = Collator.getInstance();
@@ -60,20 +65,31 @@
         }
     };
 
-    private final WifiManager.ActionListener mForgetListener = new WifiManager.ActionListener() {
+    @VisibleForTesting
+    final WifiManager.ActionListener mForgetListener = new WifiManager.ActionListener() {
         @Override
         public void onSuccess() {
-            initPreferences();
+            postUpdatePreference();
         }
 
         @Override
         public void onFailure(int reason) {
-            initPreferences();
+            postUpdatePreference();
+        }
+    };
+
+    @VisibleForTesting
+    final Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(android.os.Message msg) {
+            if (msg.what == MSG_UPDATE_PREFERENCES) {
+                initPreferences();
+            }
         }
     };
 
     private WifiDialog mDialog;
-    private WifiManager mWifiManager;
+    private WifiManagerWrapper mWifiManager;
     private AccessPoint mDlgAccessPoint;
     private Bundle mAccessPointSavedState;
     private AccessPoint mSelectedAccessPoint;
@@ -105,7 +121,7 @@
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
-        mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
+        mWifiManager = new WifiManagerWrapper((WifiManager) getSystemService(Context.WIFI_SERVICE));
 
         if (savedInstanceState != null) {
             if (savedInstanceState.containsKey(SAVE_DIALOG_ACCESS_POINT_STATE)) {
@@ -116,12 +132,11 @@
     }
 
     private void initPreferences() {
-        Log.d(TAG, "Rebuilding the preferences");
         PreferenceScreen preferenceScreen = getPreferenceScreen();
         final Context context = getPrefContext();
 
         final List<AccessPoint> accessPoints =
-                WifiSavedConfigUtils.getAllConfigs(context, mWifiManager);
+                WifiSavedConfigUtils.getAllConfigs(context, mWifiManager.getWifiManager());
         Collections.sort(accessPoints, SAVED_NETWORK_COMPARATOR);
         cacheRemoveAllPrefs(preferenceScreen);
 
@@ -156,6 +171,12 @@
         }
     }
 
+    private void postUpdatePreference() {
+        if (!mHandler.hasMessages(MSG_UPDATE_PREFERENCES)) {
+            mHandler.sendEmptyMessage(MSG_UPDATE_PREFERENCES);
+        }
+    }
+
     private void showWifiDialog(@Nullable LongPressAccessPointPreference accessPoint) {
         if (mDialog != null) {
             removeDialog(WifiSettings.WIFI_DIALOG_ID);
@@ -235,7 +256,7 @@
                     Log.e(TAG, "Failed to remove Passpoint configuration for "
                             + mSelectedAccessPoint.getConfigName());
                 }
-                initPreferences();
+                postUpdatePreference();
             } else {
                 // mForgetListener will call initPreferences upon completion
                 mWifiManager.forget(mSelectedAccessPoint.getConfig().networkId, mForgetListener);
diff --git a/src/com/android/settings/wrapper/WifiManagerWrapper.java b/src/com/android/settings/wrapper/WifiManagerWrapper.java
index e24f5eb..4202691 100644
--- a/src/com/android/settings/wrapper/WifiManagerWrapper.java
+++ b/src/com/android/settings/wrapper/WifiManagerWrapper.java
@@ -15,9 +15,31 @@
     }
 
     /**
+     * Gets the real WifiManager
+     * @return the real WifiManager
+     */
+    public WifiManager getWifiManager() {
+        return mWifiManager;
+    }
+
+    /**
      * {@link WifiManager#getCurrentNetworkWpsNfcConfigurationToken}
      */
     public String getCurrentNetworkWpsNfcConfigurationToken() {
         return mWifiManager.getCurrentNetworkWpsNfcConfigurationToken();
     }
+
+    /**
+     * {@link WifiManager#removePasspointConfiguration}
+     */
+    public void removePasspointConfiguration(String fqdn) {
+        mWifiManager.removePasspointConfiguration(fqdn);
+    }
+
+    /**
+     * {@link WifiManager#removePasspointConfiguration}
+     */
+    public void forget(int netId, WifiManager.ActionListener listener) {
+        mWifiManager.forget(netId, listener);
+    }
 }
diff --git a/tests/robotests/assets/grandfather_not_in_search_index_provider_registry b/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
index a2a772b..4ee97fa 100644
--- a/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
+++ b/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
@@ -1,2 +1,3 @@
 com.android.settings.development.DevelopmentSettingsDashboardFragment
 com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard
+com.android.settings.search.indexing.FakeSettingsFragment
diff --git a/tests/robotests/res/values-mcc999/config.xml b/tests/robotests/res/values-mcc999/config.xml
new file mode 100644
index 0000000..5f9596e
--- /dev/null
+++ b/tests/robotests/res/values-mcc999/config.xml
@@ -0,0 +1,21 @@
+<!--
+  Copyright (C) 2017 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.
+  -->
+
+<resources>
+    <!-- Whether or not new device intro suggestion is supported for this device -->
+    <bool name="config_enableColorTemperature">false</bool>
+    <bool name="config_show_camera_laser_sensor">false</bool>
+</resources>
\ No newline at end of file
diff --git a/tests/robotests/res/values/config.xml b/tests/robotests/res/values/config.xml
index 156e20a..07fa08e 100644
--- a/tests/robotests/res/values/config.xml
+++ b/tests/robotests/res/values/config.xml
@@ -17,4 +17,6 @@
 <resources>
     <!-- Whether or not new device intro suggestion is supported for this device -->
     <bool name="config_new_device_intro_suggestion_supported">true</bool>
+    <bool name="config_enableColorTemperature">true</bool>
+    <bool name="config_show_camera_laser_sensor">true</bool>
 </resources>
\ No newline at end of file
diff --git a/tests/robotests/res/xml-mcc999/about_legal.xml b/tests/robotests/res/xml-mcc999/about_legal.xml
new file mode 100644
index 0000000..53a2b89
--- /dev/null
+++ b/tests/robotests/res/xml-mcc999/about_legal.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2017 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.
+
+  -->
+
+<!--
+    WARNING: This resource file is used to test Settings Search indexing.
+    If you change something in here, please run the settings robotests and
+    make sure they still pass.
+ -->
+
+<PreferenceScreen
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+        android:title="bears_bears_bears"
+        settings:keywords="keywords">
+
+    <Preference
+            android:key="pref_key_1"
+            android:title="bears_bears_bears"/>
+</PreferenceScreen>
\ No newline at end of file
diff --git a/tests/robotests/res/xml-mcc999/display_settings.xml b/tests/robotests/res/xml-mcc999/display_settings.xml
new file mode 100644
index 0000000..4e0ce6b
--- /dev/null
+++ b/tests/robotests/res/xml-mcc999/display_settings.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2017 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.
+  -->
+
+<!--
+    WARNING: This resource file is used to test Settings Search indexing.
+    If you change something in here, please run the settings robotests and
+    make sure they still pass.
+ -->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+    android:title="page_title"
+    settings:keywords="keywords">
+
+    <Preference
+        android:key="pref_key_1"
+        android:title="pref_title_1"
+        android:summary="summary_1"
+        settings:keywords="keywords1, keywords2, keywords3" />
+
+    <SwitchPreference
+        android:key="pref_key_2"
+        android:title="pref_title_2"
+        android:summary="summary_2"
+        settings:keywords="keywords1, keywords2, keywords3" />
+
+    <Preference
+        android:key="pref_key_3"
+        android:title="pref_title_3"
+        android:summary="summary_3"
+        android:icon="@drawable/ic_android"
+        settings:keywords="keywords1, keywords2, keywords3" />
+
+    <ListPreference
+        android:key="pref_key_4"
+        android:title="pref_title_4"
+        android:summary="summary_4"
+        settings:keywords="keywords1, keywords2, keywords3" />
+
+    <CheckBoxPreference
+            android:key="pref_key_5"
+            android:title="pref_title_5"
+            android:summaryOn="summary_on"
+            android:summaryOff="summary_off"
+            settings:keywords="keywords1, keywords2, keywords3" />
+</PreferenceScreen>
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java
index e42466c..6dfd67d 100644
--- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java
@@ -23,8 +23,10 @@
 
 import android.app.LoaderManager;
 import android.content.Context;
+import android.database.MatrixCursor;
 
 import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
@@ -32,6 +34,7 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.annotation.Config;
@@ -43,7 +46,7 @@
         })
 public class SuggestionControllerMixinTest {
 
-    @Mock
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mContext;
     @Mock
     private SuggestionControllerMixin.SuggestionControllerHost mHost;
@@ -53,6 +56,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
         mLifecycle = new Lifecycle();
         when(mContext.getApplicationContext()).thenReturn(mContext);
     }
diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java
index 0650d5b..5982210 100644
--- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java
@@ -135,6 +135,12 @@
     }
 
     @Test
+    public void getSuggestionServiceComponentName_shouldReturnAndroidPackage() {
+        assertThat(mProvider.getSuggestionServiceComponent().getPackageName())
+                .isEqualTo("com.android.settings.intelligence");
+    }
+
+    @Test
     public void isSuggestionCompleted_doubleTapPower_trueWhenNotAvailable() {
         SettingsShadowResources.overrideResource(
                 com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled, false);
diff --git a/tests/robotests/src/com/android/settings/development/CameraLaserSensorPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/CameraLaserSensorPreferenceControllerTest.java
index 7aab99d..25c09fe 100644
--- a/tests/robotests/src/com/android/settings/development/CameraLaserSensorPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/CameraLaserSensorPreferenceControllerTest.java
@@ -40,6 +40,10 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+/**
+ * deprecated in favour of {@link CameraLaserSensorPreferenceControllerV2}
+ */
+@Deprecated
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
         shadows = {SettingsShadowSystemProperties.class})
diff --git a/tests/robotests/src/com/android/settings/development/CameraLaserSensorPreferenceControllerV2Test.java b/tests/robotests/src/com/android/settings/development/CameraLaserSensorPreferenceControllerV2Test.java
new file mode 100644
index 0000000..87967b9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/CameraLaserSensorPreferenceControllerV2Test.java
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static com.android.settings.development.CameraLaserSensorPreferenceControllerV2.ENG_BUILD;
+import static com.android.settings.development
+        .CameraLaserSensorPreferenceControllerV2.USERDEBUG_BUILD;
+import static com.android.settings.development.CameraLaserSensorPreferenceControllerV2.USER_BUILD;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.os.SystemProperties;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.shadow.SettingsShadowSystemProperties;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+import org.robolectric.RuntimeEnvironment;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+        shadows = {SettingsShadowSystemProperties.class})
+public class CameraLaserSensorPreferenceControllerV2Test {
+
+    @Mock
+    private PreferenceScreen mScreen;
+    @Mock
+    private SwitchPreference mPreference;
+
+    private Context mContext;
+
+    private CameraLaserSensorPreferenceControllerV2 mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mController = new CameraLaserSensorPreferenceControllerV2(mContext);
+        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+        when(mPreference.getKey()).thenReturn(mController.getPreferenceKey());
+        mController.displayPreference(mScreen);
+    }
+
+    @After
+    public void tearDown() {
+        SettingsShadowSystemProperties.clear();
+    }
+
+    @Test
+    @Config(qualifiers = "mcc999")
+    public void isAvailable_withConfigNoShow_shouldReturnFalse() {
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_withUserdebugBuild_shouldReturnTrue() {
+        SettingsShadowSystemProperties.set(
+                CameraLaserSensorPreferenceControllerV2.BUILD_TYPE, USERDEBUG_BUILD);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_withEngBuild_shouldReturnTrue() {
+        SettingsShadowSystemProperties.set(
+                CameraLaserSensorPreferenceControllerV2.BUILD_TYPE, ENG_BUILD);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_withUserBuild_shouldReturnFalse() {
+        SettingsShadowSystemProperties.set(
+                CameraLaserSensorPreferenceControllerV2.BUILD_TYPE, USER_BUILD);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void updateState_cameraLaserSensorEnabled_shouldCheckedPreference() {
+        SettingsShadowSystemProperties.set(
+                CameraLaserSensorPreferenceControllerV2.PROPERTY_CAMERA_LASER_SENSOR,
+                Integer.toString(CameraLaserSensorPreferenceControllerV2.ENABLED));
+        SettingsShadowSystemProperties.set(
+                CameraLaserSensorPreferenceControllerV2.BUILD_TYPE, USERDEBUG_BUILD);
+
+        mController.updateState(mScreen);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_cameraLaserSensorEnabled_shouldUncheckedPreference() {
+        SettingsShadowSystemProperties.set(
+                CameraLaserSensorPreferenceControllerV2.PROPERTY_CAMERA_LASER_SENSOR,
+                Integer.toString(CameraLaserSensorPreferenceControllerV2.DISABLED));
+        SettingsShadowSystemProperties.set(
+                CameraLaserSensorPreferenceControllerV2.BUILD_TYPE, USERDEBUG_BUILD);
+
+        mController.updateState(mScreen);
+
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onPreferenceChange_preferenceChecked_shouldEnableCameraLaserSensor() {
+        mController.onPreferenceChange(mPreference, true);
+
+        assertThat(Integer.toString(CameraLaserSensorPreferenceControllerV2.ENABLED)).isEqualTo(
+                SystemProperties.get(
+                        CameraLaserSensorPreferenceControllerV2.PROPERTY_CAMERA_LASER_SENSOR,
+                        Integer.toString(CameraLaserSensorPreferenceControllerV2.ENABLED)));
+    }
+
+    @Test
+    public void onPreferenceChange__preferenceUnchecked_shouldDisableCameraLaserSensor() {
+        mController.onPreferenceChange(mPreference, false);
+
+        assertThat(Integer.toString(CameraLaserSensorPreferenceControllerV2.DISABLED)).isEqualTo(
+                SystemProperties.get(
+                        CameraLaserSensorPreferenceControllerV2.PROPERTY_CAMERA_LASER_SENSOR,
+                        Integer.toString(CameraLaserSensorPreferenceControllerV2.ENABLED)));
+    }
+
+    @Test
+    public void onDeveloperOptionsSwitchEnabled_preferenceShouldBeEnabled() {
+        mController.onDeveloperOptionsSwitchEnabled();
+
+        verify(mPreference).setEnabled(true);
+    }
+
+    @Test
+    public void onDeveloperOptionsSwitchDisabled_preferenceShouldBeEnabled() {
+        mController.onDeveloperOptionsSwitchDisabled();
+
+        verify(mPreference).setEnabled(false);
+        verify(mPreference).setChecked(false);
+        assertThat(Integer.toString(CameraLaserSensorPreferenceControllerV2.DISABLED)).isEqualTo(
+                SystemProperties.get(
+                        CameraLaserSensorPreferenceControllerV2.PROPERTY_CAMERA_LASER_SENSOR,
+                        Integer.toString(CameraLaserSensorPreferenceControllerV2.ENABLED)));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/CoolColorTemperaturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/CoolColorTemperaturePreferenceControllerTest.java
new file mode 100644
index 0000000..16e6c2a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/CoolColorTemperaturePreferenceControllerTest.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static com.android.settings.development.CoolColorTemperaturePreferenceController
+        .COLOR_TEMPERATURE_PROPERTY;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.SettingsShadowSystemProperties;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH,
+        sdk = TestConfig.SDK_VERSION,
+        shadows = {SettingsShadowSystemProperties.class})
+public class CoolColorTemperaturePreferenceControllerTest {
+
+    private Context mContext;
+    @Mock
+    private SwitchPreference mPreference;
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+    private CoolColorTemperaturePreferenceController mController;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mController = new CoolColorTemperaturePreferenceController(mContext);
+        when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
+                mPreference);
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void onPreferenceChanged_turnOnCoolColorTemperature() {
+        mController.onPreferenceChange(null, true);
+        final boolean mode = SettingsShadowSystemProperties.getBoolean(
+                COLOR_TEMPERATURE_PROPERTY, false);
+
+        assertThat(mode).isTrue();
+    }
+
+    @Test
+    public void onPreferenceChanged_turnOffCoolColorTemperature() {
+        mController.onPreferenceChange(null, false);
+        final boolean mode = SettingsShadowSystemProperties.getBoolean(
+                COLOR_TEMPERATURE_PROPERTY, false);
+
+        assertThat(mode).isFalse();
+    }
+
+    @Test
+    public void updateState_preferenceShouldBeChecked() {
+        SettingsShadowSystemProperties.set(COLOR_TEMPERATURE_PROPERTY,
+                Boolean.toString(true));
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_preferenceShouldNotBeChecked() {
+        SettingsShadowSystemProperties.set(COLOR_TEMPERATURE_PROPERTY,
+                Boolean.toString(false));
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsDisabled_shouldDisablePreference() {
+        mController.onDeveloperOptionsDisabled();
+
+        verify(mPreference).setEnabled(false);
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsEnabled_shouldEnablePreference() {
+        mController.onDeveloperOptionsEnabled();
+
+        verify(mPreference).setEnabled(true);
+    }
+
+    @Test
+    @Config(qualifiers = "mcc999")
+    public void isAvailable_shouldBeFalse() {
+        assertThat(mController.isAvailable()).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java
new file mode 100644
index 0000000..76efa90
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/DebugViewAttributesPreferenceControllerTest.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DebugViewAttributesPreferenceControllerTest {
+
+    @Mock
+    private SwitchPreference mPreference;
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+
+    private Context mContext;
+    private DebugViewAttributesPreferenceController mController;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mController = new DebugViewAttributesPreferenceController(mContext);
+        when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
+                mPreference);
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void onPreferenceChanged_turnOnViewAttributes() {
+        mController.onPreferenceChange(null, true);
+
+        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+                Settings.Global.DEBUG_VIEW_ATTRIBUTES, -1);
+
+        assertThat(mode).isEqualTo(DebugViewAttributesPreferenceController.SETTING_VALUE_ON);
+    }
+
+    @Test
+    public void onPreferenceChanged_turnOffViewAttributes() {
+        mController.onPreferenceChange(null, false);
+
+        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+                Settings.Global.DEBUG_VIEW_ATTRIBUTES, -1);
+
+        assertThat(mode).isEqualTo(DebugViewAttributesPreferenceController.SETTING_VALUE_OFF);
+    }
+
+    @Test
+    public void updateState_preferenceShouldBeChecked() {
+        Settings.System.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
+                DebugViewAttributesPreferenceController.SETTING_VALUE_ON);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_preferenceShouldNotBeChecked() {
+        Settings.System.putInt(mContext.getContentResolver(), Settings.Global.DEBUG_VIEW_ATTRIBUTES,
+                DebugViewAttributesPreferenceController.SETTING_VALUE_OFF);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsDisabled_shouldDisablePreference() {
+        mController.onDeveloperOptionsDisabled();
+        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+                Settings.Global.DEBUG_VIEW_ATTRIBUTES, -1);
+
+        assertThat(mode).isEqualTo(DebugViewAttributesPreferenceController.SETTING_VALUE_OFF);
+        verify(mPreference).setEnabled(false);
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsEnabled_shouldEnablePreference() {
+        mController.onDeveloperOptionsEnabled();
+
+        verify(mPreference).setEnabled(true);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java
new file mode 100644
index 0000000..b4e0755
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceControllerTest.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DisableAutomaticUpdatesPreferenceControllerTest {
+
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+    @Mock
+    private SwitchPreference mPreference;
+
+    private Context mContext;
+    private DisableAutomaticUpdatesPreferenceController mController;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mController = new DisableAutomaticUpdatesPreferenceController(mContext);
+        when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
+                mPreference);
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void onPreferenceChanged_turnOnAutomaticUpdates() {
+        mController.onPreferenceChange(null, true);
+
+        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+                Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, -1);
+
+        assertThat(mode).isEqualTo(
+                DisableAutomaticUpdatesPreferenceController.ENABLE_UPDATES_SETTING);
+    }
+
+    @Test
+    public void onPreferenceChanged_turnOffAutomaticUpdates() {
+        mController.onPreferenceChange(null, false);
+
+        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+                Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, -1);
+
+        assertThat(mode).isEqualTo(
+                DisableAutomaticUpdatesPreferenceController.DISABLE_UPDATES_SETTING);
+    }
+
+    @Test
+    public void updateState_preferenceShouldBeChecked() {
+        Settings.System
+                .putInt(mContext.getContentResolver(), Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE,
+                        DisableAutomaticUpdatesPreferenceController.ENABLE_UPDATES_SETTING);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_preferenceShouldNotBeChecked() {
+        Settings.System
+                .putInt(mContext.getContentResolver(), Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE,
+                        DisableAutomaticUpdatesPreferenceController.DISABLE_UPDATES_SETTING);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(false);
+    }
+
+
+    @Test
+    public void onDeveloperOptionsDisabled_shouldDisablePreference() {
+        mController.onDeveloperOptionsDisabled();
+
+        verify(mPreference).setEnabled(false);
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsEnabled_shouldEnablePreference() {
+        mController.onDeveloperOptionsEnabled();
+
+        verify(mPreference).setEnabled(true);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/development/LocalTerminalPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/LocalTerminalPreferenceControllerTest.java
new file mode 100644
index 0000000..bd33319
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/LocalTerminalPreferenceControllerTest.java
@@ -0,0 +1,141 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static com.android.settings.development.LocalTerminalPreferenceController
+        .TERMINAL_APP_PACKAGE;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.UserManager;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.wrapper.PackageManagerWrapper;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class LocalTerminalPreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private SwitchPreference mPreference;
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+    @Mock
+    private UserManager mUserManager;
+    @Mock
+    private PackageManagerWrapper mPackageManagerWrapper;
+
+    private LocalTerminalPreferenceController mController;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+        when(mUserManager.isAdminUser()).thenReturn(true);
+        mController = spy(new LocalTerminalPreferenceController(mContext));
+        doReturn(true).when(mController).isAvailable();
+        doReturn(mPackageManagerWrapper).when(mController).getPackageManagerWrapper();
+        when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
+                mPreference);
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void displayPreference_shouldDisablePreferenceWhenNotAdmin() {
+        when(mUserManager.isAdminUser()).thenReturn(false);
+        mController.displayPreference(mPreferenceScreen);
+
+        verify(mPreference).setEnabled(false);
+    }
+
+    @Test
+    public void onPreferenceChanged_turnOnTerminal() {
+        mController.onPreferenceChange(null, true);
+
+        verify(mPackageManagerWrapper).setApplicationEnabledSetting(TERMINAL_APP_PACKAGE,
+                PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0);
+    }
+
+    @Test
+    public void onPreferenceChanged_turnOffTerminal() {
+        mController.onPreferenceChange(null, false);
+
+        verify(mPackageManagerWrapper).setApplicationEnabledSetting(TERMINAL_APP_PACKAGE,
+                PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0);
+    }
+
+    @Test
+    public void updateState_preferenceShouldBeChecked() {
+        when(mPackageManagerWrapper.getApplicationEnabledSetting(TERMINAL_APP_PACKAGE)).thenReturn(
+                PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_preferenceShouldNotBeChecked() {
+        when(mPackageManagerWrapper.getApplicationEnabledSetting(TERMINAL_APP_PACKAGE)).thenReturn(
+                PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsSwitchDisabled_shouldDisablePreference() {
+        mController.onDeveloperOptionsSwitchDisabled();
+
+        verify(mPackageManagerWrapper).setApplicationEnabledSetting(TERMINAL_APP_PACKAGE,
+                PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0);
+        verify(mPreference).setChecked(false);
+        verify(mPreference).setEnabled(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsSwitchEnabled_shouldDoNothingWhenNotAdmin() {
+        when(mUserManager.isAdminUser()).thenReturn(false);
+        mController.onDeveloperOptionsSwitchDisabled();
+
+        verify(mPreference, never()).setEnabled(true);
+    }
+
+    @Test
+    public void onDeveloperOptionsSwitchEnabled_preferenceShouldBeEnabledWhenAdmin() {
+        mController.onDeveloperOptionsSwitchEnabled();
+
+        verify(mPreference).setEnabled(true);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java
new file mode 100644
index 0000000..c049bc1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/WifiDisplayCertificationPreferenceControllerTest.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class WifiDisplayCertificationPreferenceControllerTest {
+
+    @Mock
+    private SwitchPreference mPreference;
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+
+    private Context mContext;
+    private WifiDisplayCertificationPreferenceController mController;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mController = new WifiDisplayCertificationPreferenceController(mContext);
+        when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
+                mPreference);
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void onPreferenceChanged_turnOnWifiDisplayCertification() {
+        mController.onPreferenceChange(mPreference, true /* new value */);
+
+        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+                Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, -1 /* default */);
+
+        assertThat(mode).isEqualTo(WifiDisplayCertificationPreferenceController.SETTING_VALUE_ON);
+    }
+
+    @Test
+    public void onPreferenceChanged_turnOffWifiDisplayCertification() {
+        mController.onPreferenceChange(mPreference, false /* new value */);
+
+        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+                Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, -1 /* default */);
+
+        assertThat(mode).isEqualTo(WifiDisplayCertificationPreferenceController.SETTING_VALUE_OFF);
+    }
+
+    @Test
+    public void updateState_preferenceShouldBeChecked() {
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON,
+                WifiDisplayCertificationPreferenceController.SETTING_VALUE_ON);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_preferenceShouldNotBeChecked() {
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON,
+                WifiDisplayCertificationPreferenceController.SETTING_VALUE_OFF);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsDisabled_shouldDisablePreference() {
+        mController.onDeveloperOptionsDisabled();
+        final int mode = Settings.System.getInt(mContext.getContentResolver(),
+                Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, -1 /* default */);
+
+        assertThat(mode).isEqualTo(WifiDisplayCertificationPreferenceController.SETTING_VALUE_OFF);
+        verify(mPreference).setEnabled(false);
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsEnabled_shouldEnablePreference() {
+        mController.onDeveloperOptionsEnabled();
+
+        verify(mPreference).setEnabled(true);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/WifiRoamScansPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/WifiRoamScansPreferenceControllerTest.java
new file mode 100644
index 0000000..60e5e49
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/WifiRoamScansPreferenceControllerTest.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.net.wifi.WifiManager;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class WifiRoamScansPreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private WifiManager mWifiManager;
+    @Mock
+    private SwitchPreference mPreference;
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+
+    private WifiRoamScansPreferenceController mController;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
+        mController = new WifiRoamScansPreferenceController(mContext);
+        when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
+                mPreference);
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void onPreferenceChange_shouldEnableRoamScanning() {
+        mController.onPreferenceChange(mPreference, true /* new value */);
+
+        verify(mWifiManager).setAllowScansWithTraffic(
+                WifiRoamScansPreferenceController.SETTING_VALUE_ON);
+    }
+
+    @Test
+    public void onPreferenceChange_shouldDisableRoamScanning() {
+        mController.onPreferenceChange(mPreference, false /* new value */);
+
+        verify(mWifiManager).setAllowScansWithTraffic(
+                WifiRoamScansPreferenceController.SETTING_VALUE_OFF);
+    }
+
+    @Test
+    public void updateState_shouldEnablePreference() {
+        when(mWifiManager.getAllowScansWithTraffic()).thenReturn(1);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_shouldDisablePreference() {
+        when(mWifiManager.getAllowScansWithTraffic()).thenReturn(0);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsSwitchEnabled_shouldEnablePreference() {
+        mController.onDeveloperOptionsSwitchEnabled();
+
+        verify(mPreference).setEnabled(true);
+    }
+
+    @Test
+    public void onDeveloperOptionsSwitchDisabled_shouldDisablePreference() {
+        mController.onDeveloperOptionsSwitchDisabled();
+
+        verify(mWifiManager).setAllowScansWithTraffic(
+                WifiRoamScansPreferenceController.SETTING_VALUE_OFF);
+        verify(mPreference).setEnabled(false);
+        verify(mPreference).setChecked(false);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/search/indexing/FakeSettingsFragment.java b/tests/robotests/src/com/android/settings/search/indexing/FakeSettingsFragment.java
new file mode 100644
index 0000000..72df771
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/search/indexing/FakeSettingsFragment.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package com.android.settings.search.indexing;
+
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.SearchIndexableRaw;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Test class for Settings Search Indexing.
+ * If you change this class, please run robotests to make sure they still pass.
+ */
+public class FakeSettingsFragment extends DashboardFragment {
+
+    public static final String TITLE = "raw title";
+    public static final String SUMMARY_ON = "raw summary on";
+    public static final String SUMMARY_OFF = "raw summary off";
+    public static final String ENTRIES = "rawentries";
+    public static final String KEYWORDS = "keywords, keywordss, keywordsss";
+    public static final String SPACE_KEYWORDS = "keywords keywordss keywordsss";
+    public static final String SCREEN_TITLE = "raw screen title";
+    public static final String CLASS_NAME = FakeSettingsFragment.class.getName();
+    public static final int ICON = 0xff;
+    public static final String INTENT_ACTION = "raw action";
+    public static final String PACKAGE_NAME = "raw target package";
+    public static final String TARGET_CLASS = "raw target class";
+    public static final String TARGET_PACKAGE = "raw package name";
+    public static final String KEY = "raw key";
+    public static final boolean ENABLED = true;
+
+
+    @Override
+    public int getMetricsCategory() {
+        return MetricsProto.MetricsEvent.DISPLAY;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return "";
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return com.android.settings.R.xml.display_settings;
+    }
+
+    @Override
+    protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
+        return null;
+    }
+
+    /** Index provider used to expose this fragment in search. */
+    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {
+                @Override
+                public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) {
+                    final SearchIndexableRaw data = new SearchIndexableRaw(context);
+                    data.title = TITLE;
+                    data.summaryOn = SUMMARY_ON;
+                    data.summaryOff = SUMMARY_OFF;
+                    data.entries = ENTRIES;
+                    data.keywords = KEYWORDS;
+                    data.screenTitle = SCREEN_TITLE;
+                    data.packageName = PACKAGE_NAME;
+                    data.intentAction = INTENT_ACTION;
+                    data.intentTargetClass = TARGET_CLASS;
+                    data.intentTargetPackage = TARGET_PACKAGE;
+                    data.key = KEY;
+                    data.iconResId = ICON;
+                    data.enabled = ENABLED;
+
+                    final List<SearchIndexableRaw> result = new ArrayList<>(1);
+                    result.add(data);
+                    return result;
+                }
+
+                @Override
+                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
+                        boolean enabled) {
+                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
+
+                    final SearchIndexableResource sir = new SearchIndexableResource(context);
+                    sir.xmlResId = com.android.settings.R.xml.display_settings;
+                    result.add(sir);
+                    return result;
+                }
+
+                @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    keys.add("pref_key_1");
+                    keys.add("pref_key_3");
+                    return keys;
+                }
+
+                @Override
+                public List<AbstractPreferenceController>
+                        getPreferenceControllers(Context context) {
+                    return null;
+                }
+            };
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/search/indexing/IndexDataConverterTest.java b/tests/robotests/src/com/android/settings/search/indexing/IndexDataConverterTest.java
index ca04d2c..b5bfea0 100644
--- a/tests/robotests/src/com/android/settings/search/indexing/IndexDataConverterTest.java
+++ b/tests/robotests/src/com/android/settings/search/indexing/IndexDataConverterTest.java
@@ -18,15 +18,13 @@
 package com.android.settings.search.indexing;
 
 import android.content.Context;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
 import android.provider.SearchIndexableResource;
+import android.text.TextUtils;
 import com.android.settings.TestConfig;
-import com.android.settings.search.IndexDatabaseHelper;
+import com.android.settings.R;
 import com.android.settings.search.ResultPayload;
 import com.android.settings.search.ResultPayloadUtils;
 import com.android.settings.search.SearchIndexableRaw;
-import com.android.settings.search.SearchIndexableResources;
 import com.android.settings.testutils.DatabaseTestUtils;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import org.junit.After;
@@ -36,58 +34,70 @@
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Locale;
-import java.util.Map;
 import java.util.Set;
 
-import static com.android.settings.R.*;
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Mockito.spy;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, qualifiers = "mcc999")
 public class IndexDataConverterTest {
 
     private final String localeStr = "en_US";
 
-    private final String title = "title\u2011title";
-    private final String updatedTitle = "title-title";
-    private final String normalizedTitle = "titletitle";
-    private final String summaryOn = "summary\u2011on";
-    private final String updatedSummaryOn = "summary-on";
-    private final String normalizedSummaryOn = "summaryon";
-    private final String summaryOff = "summary\u2011off";
-    private final String updatedSummaryOff = "summary-off";
-    private final String normalizedSummaryOff = "summaryoff";
-    private final String entries = "entries";
-    private final String keywords = "keywords, keywordss, keywordsss";
-    private final String spaceDelimittedKeywords = "keywords keywordss keywordsss";
-    private final String screenTitle = "screen title";
-    private final String className = "class name";
-    private final int iconResId = 0xff;
-    private final int noIcon = 0;
-    private final String action = "action";
-    private final String targetPackage = "target package";
-    private final String targetClass = "target class";
-    private final String packageName = "package name";
-    private final String key = "key";
-    private final int userId = -1;
-    private final boolean enabled = true;
+    private static final String title = "title\u2011title";
+    private static final String updatedTitle = "title-title";
+    private static final String normalizedTitle = "titletitle";
+    private static final String summaryOn = "summary\u2011on";
+    private static final String updatedSummaryOn = "summary-on";
+    private static final String normalizedSummaryOn = "summaryon";
+    private static final String summaryOff = "summary\u2011off";
+    private static final String updatedSummaryOff = "summary-off";
+    private static final String normalizedSummaryOff = "summaryoff";
+    private static final String entries = "entries";
+    private static final String keywords = "keywords, keywordss, keywordsss";
+    private static final String spaceDelimittedKeywords = "keywords keywordss keywordsss";
+    private static final String screenTitle = "screen title";
+    private static final String className = "class name";
+    private static final int iconResId = 0xff;
+    private static final String action = "action";
+    private static final String targetPackage = "target package";
+    private static final String targetClass = "target class";
+    private static final String packageName = "package name";
+    private static final String key = "key";
+    private static final int userId = -1;
+    private static final boolean enabled = true;
+
+    // There are 6 entries in the fake display_settings.xml preference.
+    private final int NUM_DISPLAY_ENTRIES = 6;
+    private static final String PAGE_TITLE = "page_title";
+    private static final String TITLE_ONE = "pref_title_1";
+    private static final String TITLE_TWO = "pref_title_2";
+    private static final String TITLE_THREE = "pref_title_3";
+    private static final String TITLE_FOUR = "pref_title_4";
+    private static final String TITLE_FIVE = "pref_title_5";
+    private static final String DISPLAY_SPACE_DELIM_KEYWORDS = "keywords1 keywords2 keywords3";
+
+    // There are 6 display entries from resources, and 1 raw.
+    private static final int NUM_FAKE_FRAGMENT_ENTRIES = 7;
+    private static final int NUM_ENABLED_FAKE_FRAGMENT_ENTRIES = 5;
+    private static final String FAKE_CLASS_NAME =
+            "com.android.settings.search.indexing.FakeSettingsFragment";
+
+    // There is a title and one preference.
+    private final int NUM_LEGAL_SETTINGS = 2;
 
     private Context mContext;
 
     private IndexDataConverter mConverter;
-    private SQLiteDatabase mDb;
 
     @Before
     public void setUp() {
         mContext = spy(RuntimeEnvironment.application);
-        mDb = IndexDatabaseHelper.getInstance(mContext).getWritableDatabase();
-        mConverter = spy(new IndexDataConverter(mContext, mDb));
+        mConverter = spy(new IndexDataConverter(mContext));
     }
 
     @After
@@ -96,82 +106,67 @@
     }
 
     @Test
-    public void testInsertRawColumn_rowInserted() {
-        SearchIndexableRaw raw = getFakeRaw();
-        mConverter.indexOneSearchIndexableData(localeStr, raw,
-                new HashMap<>()/* Non-indexable keys */);
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index", null);
-        assertThat(cursor.getCount()).isEqualTo(1);
-    }
+    public void testInsertRawColumn_rowConverted() {
+        final SearchIndexableRaw raw = getFakeRaw();
+        final PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(raw);
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
 
-    @Test
-    public void testInsertRawColumn_nonIndexableKey_resultIsDisabled() {
-        SearchIndexableRaw raw = getFakeRaw();
-        Map<String, Set<String>> niks = new HashMap<>();
-        Set<String> keys = new HashSet<>();
-        keys.add(raw.key);
-        niks.put(raw.intentTargetPackage, keys);
+        assertThat(indexData.size()).isEqualTo(1);
+        final IndexData row = indexData.get(0);
 
-        mConverter.indexOneSearchIndexableData(localeStr, raw, niks);
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 0", null);
-        assertThat(cursor.getCount()).isEqualTo(1);
-    }
-
-    @Test
-    public void testInsertRawColumn_rowMatches() {
-        SearchIndexableRaw raw = getFakeRaw();
-        mConverter.indexOneSearchIndexableData(localeStr, raw,
-                new HashMap<>()/* Non-indexable keys */);
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index", null);
-        cursor.moveToPosition(0);
-
-        // Locale
-        assertThat(cursor.getString(0)).isEqualTo(localeStr);
-        // Data Title
-        assertThat(cursor.getString(2)).isEqualTo(updatedTitle);
-        // Normalized Title
-        assertThat(cursor.getString(3)).isEqualTo(normalizedTitle);
-        // Summary On
-        assertThat(cursor.getString(4)).isEqualTo(updatedSummaryOn);
-        // Summary On Normalized
-        assertThat(cursor.getString(5)).isEqualTo(normalizedSummaryOn);
-        // Entries
-        assertThat(cursor.getString(8)).isEqualTo(raw.entries);
-        // Keywords
-        assertThat(cursor.getString(9)).isEqualTo(spaceDelimittedKeywords);
-        // Screen Title
-        assertThat(cursor.getString(10)).isEqualTo(raw.screenTitle);
-        // Class Name
-        assertThat(cursor.getString(11)).isEqualTo(raw.className);
-        // Icon
-        assertThat(cursor.getInt(12)).isEqualTo(raw.iconResId);
-        // Intent Action
-        assertThat(cursor.getString(13)).isEqualTo(raw.intentAction);
-        // Target Package
-        assertThat(cursor.getString(14)).isEqualTo(raw.intentTargetPackage);
-        // Target Class
-        assertThat(cursor.getString(15)).isEqualTo(raw.intentTargetClass);
-        // Enabled
-        assertThat(cursor.getInt(16) == 1).isEqualTo(raw.enabled);
-        // Data ref key
-        assertThat(cursor.getString(17)).isNotNull();
-        // User Id
-        assertThat(cursor.getInt(18)).isEqualTo(raw.userId);
-        // Payload Type - default is 0
-        assertThat(cursor.getInt(19)).isEqualTo(0);
-        // Payload
-        byte[] payload = cursor.getBlob(20);
-        ResultPayload unmarshalledPayload = ResultPayloadUtils.unmarshall(payload,
+        assertThat(row.normalizedTitle).isEqualTo(normalizedTitle);
+        assertThat(row.updatedTitle).isEqualTo(updatedTitle);
+        assertThat(row.locale).isEqualTo(localeStr);
+        assertThat(row.updatedSummaryOn).isEqualTo(updatedSummaryOn);
+        assertThat(row.entries).isEqualTo(entries);
+        assertThat(row.spaceDelimitedKeywords).isEqualTo(spaceDelimittedKeywords);
+        assertThat(row.screenTitle).isEqualTo(screenTitle);
+        assertThat(row.className).isEqualTo(className);
+        assertThat(row.iconResId).isEqualTo(iconResId);
+        assertThat(row.intentAction).isEqualTo(action);
+        assertThat(row.intentTargetPackage).isEqualTo(targetPackage);
+        assertThat(row.intentTargetClass).isEqualTo(targetClass);
+        assertThat(row.enabled).isEqualTo(enabled);
+        assertThat(row.key).isEqualTo(key);
+        assertThat(row.userId).isEqualTo(userId);
+        assertThat(row.payloadType).isEqualTo(0);
+        ResultPayload unmarshalledPayload = ResultPayloadUtils.unmarshall(row.payload,
                 ResultPayload.CREATOR);
         assertThat(unmarshalledPayload).isInstanceOf(ResultPayload.class);
     }
 
     @Test
+    public void testInsertRawColumn_nonIndexableKey_resultIsDisabled() {
+        final SearchIndexableRaw raw = getFakeRaw();
+        // Add non-indexable key for raw row.
+        Set<String> keys = new HashSet<>();
+        keys.add(raw.key);
+
+        final PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(raw);
+        preIndexData.nonIndexableKeys.put(raw.intentTargetPackage, keys);
+
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
+
+        assertThat(indexData.size()).isEqualTo(1);
+        assertThat(indexData.get(0).enabled).isFalse();
+    }
+
+    /**
+     * TODO (b/66916397) investigate why locale is attached to IndexData
+     */
+    @Test
     public void testInsertRawColumn_mismatchedLocale_noRowInserted() {
-        SearchIndexableRaw raw = getFakeRaw("ca-fr");
-        mConverter.indexOneSearchIndexableData(localeStr, raw, null /* Non-indexable keys */);
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index", null);
-        assertThat(cursor.getCount()).isEqualTo(0);
+        final SearchIndexableRaw raw = getFakeRaw("ca-fr");
+        PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(raw);
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
+
+        assertThat(indexData).isEmpty();
     }
 
     // Tests for the flow: IndexOneResource -> IndexFromResource ->
@@ -179,421 +174,202 @@
 
     @Test
     public void testNullResource_NothingInserted() {
-        mConverter.indexOneSearchIndexableData(localeStr, null /* searchIndexableResource */,
-                new HashMap<>());
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index", null);
-        assertThat(cursor.getCount()).isEqualTo(0);
+        PreIndexData preIndexData = new PreIndexData();
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
+
+        assertThat(indexData).isEmpty();
     }
 
     @Test
     public void testAddResource_RowsInserted() {
-        SearchIndexableResource resource = getFakeResource(xml.display_settings);
-        mConverter.indexOneSearchIndexableData(localeStr, resource, new HashMap<>());
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index", null);
-        assertThat(cursor.getCount()).isEqualTo(17);
+        final SearchIndexableResource resource = getFakeResource(R.xml.display_settings);
+        final PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(resource);
+
+        final List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
+        int numEnabled = getEnabledResultCount(indexData);
+
+        assertThat(numEnabled).isEqualTo(NUM_DISPLAY_ENTRIES);
     }
 
     @Test
     public void testAddResource_withNIKs_rowsInsertedDisabled() {
-        SearchIndexableResource resource = getFakeResource(xml.display_settings);
-        // Only add 2 of 16 items to be disabled.
-        String[] keys = {"brightness", "wallpaper"};
-        Map<String, Set<String>> niks = getNonIndexableKeys(keys);
+        final SearchIndexableResource resource = getFakeResource(R.xml.display_settings);
+        Set<String> keys = new HashSet<>();
+        keys.add("pref_key_1");
+        keys.add("pref_key_3");
 
-        mConverter.indexOneSearchIndexableData(localeStr, resource, niks);
+        final PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(resource);
+        preIndexData.nonIndexableKeys.put(packageName, keys);
 
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 0", null);
-        assertThat(cursor.getCount()).isEqualTo(2);
-        cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 1", null);
-        assertThat(cursor.getCount()).isEqualTo(15);
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
+
+        assertThat(indexData.size()).isEqualTo(NUM_DISPLAY_ENTRIES);
+        assertThat(getEnabledResultCount(indexData)).isEqualTo(NUM_DISPLAY_ENTRIES - 2);
     }
 
     @Test
     public void testAddResourceHeader_rowsMatch() {
-        SearchIndexableResource resource = getFakeResource(xml.application_settings);
-        mConverter.indexOneSearchIndexableData(localeStr, resource, new HashMap<>());
+        final SearchIndexableResource resource = getFakeResource(R.xml.display_settings);
+        final PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(resource);
 
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index ORDER BY data_title", null);
-        cursor.moveToPosition(1);
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
 
-        // Locale
-        assertThat(cursor.getString(0)).isEqualTo(localeStr);
-        // Data Title
-        assertThat(cursor.getString(2)).isEqualTo("App info");
-        // Normalized Title
-        assertThat(cursor.getString(3)).isEqualTo("app info");
-        // Summary On
-        assertThat(cursor.getString(4)).isEqualTo("Manage apps, set up quick launch shortcuts");
-        // Summary On Normalized
-        assertThat(cursor.getString(5)).isEqualTo("manage apps, set up quick launch shortcuts");
-        // Entries - only on for list preferences
-        assertThat(cursor.getString(8)).isNull();
-        // Keywords
-        assertThat(cursor.getString(9)).isEmpty();
-        // Screen Title
-        assertThat(cursor.getString(10)).isEqualTo("App info");
-        // Class Name
-        assertThat(cursor.getString(11)).isEqualTo(className);
-        // Icon
-        assertThat(cursor.getInt(12)).isEqualTo(0);
-        // Intent Action
-        assertThat(cursor.getString(13)).isEqualTo(action);
-        // Target Package
-        assertThat(cursor.getString(14)).isEqualTo(targetPackage);
-        // Target Class
-        assertThat(cursor.getString(15)).isEqualTo(targetClass);
-        // Enabled
-        assertThat(cursor.getInt(16) == 1).isEqualTo(enabled);
-        // Data ref key
-        assertThat(cursor.getString(17)).isEqualTo("applications_settings");
-        // User Id
-        assertThat(cursor.getInt(18)).isEqualTo(userId);
-        // Payload Type - default is 0
-        assertThat(cursor.getInt(19)).isEqualTo(0);
-        // Payload - should be updated to real payloads as controllers are added
-        byte[] payload = cursor.getBlob(20);
-        ResultPayload unmarshalledPayload = ResultPayloadUtils.unmarshall(payload,
-                ResultPayload.CREATOR);
-        assertThat(unmarshalledPayload).isInstanceOf(ResultPayload.class);
-    }
+        final IndexData row = findIndexDataForTitle(indexData, PAGE_TITLE);
 
-    @Test
-    public void testAddResource_customSetting_rowsMatch() {
-        SearchIndexableResource resource = getFakeResource(xml.swipe_to_notification_settings);
-        mConverter.indexOneSearchIndexableData(localeStr, resource, new HashMap<>());
-        final String prefTitle =
-                mContext.getString(string.fingerprint_swipe_for_notifications_title);
-        final String prefSummary =
-                mContext.getString(string.fingerprint_swipe_for_notifications_summary);
-        final String keywords = mContext.getString(string.keywords_gesture);
-        Cursor cursor = mDb.rawQuery(
-                "SELECT * FROM prefs_index where data_title='" + prefTitle + "'", null);
-        cursor.moveToFirst();
-
-        // Locale
-        assertThat(cursor.getString(0)).isEqualTo(localeStr);
-        // Data Title
-        assertThat(cursor.getString(2)).isEqualTo(prefTitle);
-        // Normalized Title
-        assertThat(cursor.getString(3)).isEqualTo(prefTitle.toLowerCase());
-        // Summary On
-        assertThat(cursor.getString(4)).isEqualTo(prefSummary);
-        // Summary On Normalized
-        assertThat(cursor.getString(5)).isEqualTo(prefSummary.toLowerCase());
-        // Entries - only on for list preferences
-        assertThat(cursor.getString(8)).isNull();
-        // Keywords
-        assertThat(cursor.getString(9)).isEqualTo(keywords);
-        // Screen Title
-        assertThat(cursor.getString(10)).isEqualTo(
-                mContext.getString(string.fingerprint_swipe_for_notifications_title));
-        // Class Name
-        assertThat(cursor.getString(11)).isEqualTo(className);
-        // Icon
-        assertThat(cursor.getInt(12)).isEqualTo(noIcon);
-        // Intent Action
-        assertThat(cursor.getString(13)).isEqualTo(action);
-        // Target Package
-        assertThat(cursor.getString(14)).isEqualTo(targetPackage);
-        // Target Class
-        assertThat(cursor.getString(15)).isEqualTo(targetClass);
-        // Enabled
-        assertThat(cursor.getInt(16) == 1).isEqualTo(enabled);
-        // Data ref key
-        assertThat(cursor.getString(17)).isEqualTo("gesture_swipe_down_fingerprint");
-        // User Id
-        assertThat(cursor.getInt(18)).isEqualTo(userId);
-        // Payload Type - default is 0
-        assertThat(cursor.getInt(19)).isEqualTo(0);
-        // Payload - should be updated to real payloads as controllers are added
-        byte[] payload = cursor.getBlob(20);
-        ResultPayload unmarshalledPayload = ResultPayloadUtils.unmarshall(payload,
-                ResultPayload.CREATOR);
-        assertThat(unmarshalledPayload).isInstanceOf(ResultPayload.class);
+        // Header exists
+        assertThat(row).isNotNull();
+        assertThat(row.spaceDelimitedKeywords).isEqualTo("keywords");
     }
 
     @Test
     public void testAddResource_checkboxPreference_rowsMatch() {
-        SearchIndexableResource resource = getFakeResource(xml.application_settings);
-        mConverter.indexOneSearchIndexableData(localeStr, resource, new HashMap<>());
+        final SearchIndexableResource resource = getFakeResource(R.xml.display_settings);
+        final PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(resource);
 
-        /* Should return 6 results, with the following titles:
-         * Advanced Settings, Apps, Manage Apps, Preferred install location, Running Services
-         */
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index ORDER BY data_title", null);
-        cursor.moveToPosition(0);
-        // Locale
-        assertThat(cursor.getString(0)).isEqualTo(localeStr);
-        // Data Title
-        assertThat(cursor.getString(2)).isEqualTo("Advanced settings");
-        // Normalized Title
-        assertThat(cursor.getString(3)).isEqualTo("advanced settings");
-        // Summary On
-        assertThat(cursor.getString(4)).isEqualTo("Enable more settings options");
-        // Summary On Normalized
-        assertThat(cursor.getString(5)).isEqualTo("enable more settings options");
-        // Entries - only on for list preferences
-        assertThat(cursor.getString(8)).isNull();
-        // Keywords
-        assertThat(cursor.getString(9)).isEmpty();
-        // Screen Title
-        assertThat(cursor.getString(10)).isEqualTo("App info");
-        // Class Name
-        assertThat(cursor.getString(11)).isEqualTo(className);
-        // Icon
-        assertThat(cursor.getInt(12)).isEqualTo(noIcon);
-        // Intent Action
-        assertThat(cursor.getString(13)).isEqualTo(action);
-        // Target Package
-        assertThat(cursor.getString(14)).isEqualTo(targetPackage);
-        // Target Class
-        assertThat(cursor.getString(15)).isEqualTo(targetClass);
-        // Enabled
-        assertThat(cursor.getInt(16) == 1).isEqualTo(enabled);
-        // Data ref key
-        assertThat(cursor.getString(17)).isEqualTo("toggle_advanced_settings");
-        // User Id
-        assertThat(cursor.getInt(18)).isEqualTo(userId);
-        // Payload Type - default is 0
-        assertThat(cursor.getInt(19)).isEqualTo(0);
-        // Payload - should be updated to real payloads as controllers are added
-        byte[] payload = cursor.getBlob(20);
-        ResultPayload unmarshalledPayload = ResultPayloadUtils.unmarshall(payload,
-                ResultPayload.CREATOR);
-        assertThat(unmarshalledPayload).isInstanceOf(ResultPayload.class);
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
+
+        String checkBoxSummaryOn = "summary_on";
+        String checkBoxSummaryOff = "summary_off";
+        String checkBoxKey = "pref_key_5";
+        final IndexData row = findIndexDataForTitle(indexData, TITLE_FIVE);
+
+        assertDisplaySetting(row, TITLE_FIVE, checkBoxSummaryOn, checkBoxSummaryOff,
+                checkBoxKey);
     }
 
     @Test
     public void testAddResource_listPreference_rowsMatch() {
-        SearchIndexableResource resource = getFakeResource(xml.application_settings);
-        mConverter.indexOneSearchIndexableData(localeStr, resource, new HashMap<>());
+        final SearchIndexableResource resource = getFakeResource(R.xml.display_settings);
+        final PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(resource);
 
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index ORDER BY data_title", null);
-        cursor.moveToPosition(3);
-        // Locale
-        assertThat(cursor.getString(0)).isEqualTo(localeStr);
-        // Data Title
-        assertThat(cursor.getString(2)).isEqualTo("Preferred install location");
-        // Normalized Title
-        assertThat(cursor.getString(3)).isEqualTo("preferred install location");
-        // Summary On
-        assertThat(cursor.getString(4)).isEqualTo(
-                "Change the preferred installation location for new apps");
-        // Summary On Normalized
-        assertThat(cursor.getString(5)).isEqualTo(
-                "change the preferred installation location for new apps");
-        // Entries - only on for list preferences
-        assertThat(cursor.getString(8)).isEqualTo("Internal device storage|Removable SD card|" +
-                "Let the system decide|");
-        // Keywords
-        assertThat(cursor.getString(9)).isEmpty();
-        // Screen Title
-        assertThat(cursor.getString(10)).isEqualTo("App info");
-        // Class Name
-        assertThat(cursor.getString(11)).isEqualTo(className);
-        // Icon
-        assertThat(cursor.getInt(12)).isEqualTo(noIcon);
-        // Intent Action
-        assertThat(cursor.getString(13)).isEqualTo(action);
-        // Target Package
-        assertThat(cursor.getString(14)).isEqualTo(targetPackage);
-        // Target Class
-        assertThat(cursor.getString(15)).isEqualTo(targetClass);
-        // Enabled
-        assertThat(cursor.getInt(16) == 1).isEqualTo(enabled);
-        // Data ref key
-        assertThat(cursor.getString(17)).isEqualTo("app_install_location");
-        // User Id
-        assertThat(cursor.getInt(18)).isEqualTo(userId);
-        // Payload Type - default is 0
-        assertThat(cursor.getInt(19)).isEqualTo(0);
-        // Payload - should be updated to real payloads as controllers are added
-        byte[] payload = cursor.getBlob(20);
-        ResultPayload unmarshalledPayload = ResultPayloadUtils.unmarshall(payload,
-                ResultPayload.CREATOR);
-        assertThat(unmarshalledPayload).isInstanceOf(ResultPayload.class);
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
+
+        String listSummary = "summary_4";
+        String listKey = "pref_key_4";
+        final IndexData row = findIndexDataForTitle(indexData, TITLE_FOUR);
+
+        assertDisplaySetting(row, TITLE_FOUR, listSummary, "", listKey);
     }
 
     @Test
     public void testAddResource_iconAddedFromXml() {
-        SearchIndexableResource resource = getFakeResource(xml.connected_devices);
-        mConverter.indexOneSearchIndexableData(localeStr, resource, new HashMap<>());
+        final SearchIndexableResource resource = getFakeResource(R.xml.display_settings);
+        final PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(resource);
 
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index ORDER BY data_title", null);
-        cursor.moveToPosition(0);
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
 
-        // Icon
-        assertThat(cursor.getInt(12)).isNotEqualTo(noIcon);
+        final IndexData row = findIndexDataForTitle(indexData, TITLE_THREE);
+
+        assertThat(row.iconResId).isGreaterThan(0);
     }
 
     // Tests for the flow: IndexOneResource -> IndexFromProvider -> IndexFromResource ->
     //                     UpdateOneRowWithFilteredData -> UpdateOneRow
 
     @Test
-    public void testResourceProvider_rowInserted() {
-        SearchIndexableResource resource = getFakeResource(xml.swipe_to_notification_settings);
-        resource.xmlResId = 0;
-        resource.className = "com.android.settings.display.ScreenZoomSettings";
+    public void testAddProviderWithResource_rowInserted() {
+        final SearchIndexableResource resource = getFakeResource(0 /* xml */);
+        resource.className = FAKE_CLASS_NAME;
+        final PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(resource);
 
-        mConverter.indexOneSearchIndexableData(localeStr, resource, new HashMap<>());
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index", null);
-        assertThat(cursor.getCount()).isEqualTo(1);
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
+
+        assertThat(indexData.size()).isEqualTo(NUM_FAKE_FRAGMENT_ENTRIES);
+        assertThat(findIndexDataForTitle(indexData, PAGE_TITLE)).isNotNull();
+        assertThat(findIndexDataForTitle(indexData, TITLE_ONE)).isNotNull();
+        assertThat(findIndexDataForTitle(indexData, TITLE_TWO)).isNotNull();
+        assertThat(findIndexDataForTitle(indexData, TITLE_THREE)).isNotNull();
+        assertThat(findIndexDataForTitle(indexData, TITLE_FOUR)).isNotNull();
+        assertThat(findIndexDataForTitle(indexData, TITLE_FIVE)).isNotNull();
+        assertThat(findIndexDataForTitle(indexData, FakeSettingsFragment.TITLE)).isNotNull();
     }
 
     @Test
-    public void testResourceProvider_rowMatches() {
-        SearchIndexableResource resource = getFakeResource(xml.swipe_to_notification_settings);
-        resource.xmlResId = 0;
-        resource.className = "com.android.settings.display.ScreenZoomSettings";
+    public void testAddProviderWithRaw_rowInserted() {
+        final SearchIndexableResource resource = getFakeResource(0 /* xml */);
+        resource.className = FAKE_CLASS_NAME;
+        final PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(resource);
 
-        mConverter.indexOneSearchIndexableData(localeStr, resource, new HashMap<>());
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index", null);
-        cursor.moveToPosition(0);
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
 
-        // Locale
-        assertThat(cursor.getString(0)).isEqualTo(localeStr);
-        // Data Title
-        assertThat(cursor.getString(2)).isEqualTo("Display size");
-        // Normalized Title
-        assertThat(cursor.getString(3)).isEqualTo("display size");
-        // Summary On
-        assertThat(cursor.getString(4)).isEmpty();
-        // Summary On Normalized
-        assertThat(cursor.getString(5)).isEmpty();
-        // Entries - only on for list preferences
-        assertThat(cursor.getString(8)).isNull();
-        // Keywords
-        assertThat(cursor.getString(9)).isEqualTo("display density screen zoom scale scaling");
-        // Screen Title
-        assertThat(cursor.getString(10)).isEqualTo("Display size");
-        // Class Name
-        assertThat(cursor.getString(11))
-                .isEqualTo("com.android.settings.display.ScreenZoomSettings");
-        // Icon
-        assertThat(cursor.getInt(12)).isEqualTo(noIcon);
-        // Intent Action
-        assertThat(cursor.getString(13)).isNull();
-        // Target Package
-        assertThat(cursor.getString(14)).isNull();
-        // Target Class
-        assertThat(cursor.getString(15)).isNull();
-        // Enabled
-        assertThat(cursor.getInt(16) == 1).isEqualTo(enabled);
-        // Data ref key
-        assertThat(cursor.getString(17)).isNull();
-        // User Id
-        assertThat(cursor.getInt(18)).isEqualTo(userId);
-        // Payload Type - default is 0
-        assertThat(cursor.getInt(19)).isEqualTo(0);
-        // Payload - should be updated to real payloads as controllers are added
-        byte[] payload = cursor.getBlob(20);
-        ResultPayload unmarshalledPayload = ResultPayloadUtils.unmarshall(payload,
+        final IndexData data = findIndexDataForTitle(indexData, FakeSettingsFragment.TITLE);
+        assertFakeFragment(data);
+    }
+
+    @Test
+    public void testAddProvider_disabledRows() {
+        // Note that in FakeSettingsFragment, preferences 1 and 3 are disabled.
+        final SearchIndexableResource resource = getFakeResource(0 /* xml */);
+        resource.className = FAKE_CLASS_NAME;
+
+        final PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(resource);
+
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
+
+        assertThat(getEnabledResultCount(indexData)).isEqualTo(NUM_ENABLED_FAKE_FRAGMENT_ENTRIES);
+    }
+
+    @Test
+    public void testResource_sameTitleForSettingAndPage_titleNotInserted() {
+        final SearchIndexableResource resource = getFakeResource(R.xml.about_legal);
+        final PreIndexData preIndexData = new PreIndexData();
+        preIndexData.dataToUpdate.add(resource);
+
+        List<IndexData> indexData = mConverter.convertPreIndexDataToIndexData(preIndexData,
+                localeStr);
+
+        int numEnabled = getEnabledResultCount(indexData);
+        final IndexData nonTitlePref = findIndexDataForKey(indexData, "pref_key_1");
+
+        assertThat(indexData.size()).isEqualTo(NUM_LEGAL_SETTINGS - 1);
+        assertThat(numEnabled).isEqualTo(NUM_LEGAL_SETTINGS - 1);
+        assertThat(nonTitlePref.enabled).isTrue();
+    }
+
+    private void assertDisplaySetting(IndexData row, String title, String summaryOn,
+            String summaryOff, String key) {
+        assertThat(row.normalizedTitle).isEqualTo(title);
+        assertThat(row.locale).isEqualTo(localeStr);
+        assertThat(row.updatedSummaryOn).isEqualTo(summaryOn);
+        assertThat(row.spaceDelimitedKeywords).isEqualTo(DISPLAY_SPACE_DELIM_KEYWORDS);
+        assertThat(row.screenTitle).isEqualTo(PAGE_TITLE);
+        assertThat(row.className).isEqualTo(className);
+        assertThat(row.enabled).isEqualTo(true);
+        assertThat(row.key).isEqualTo(key);
+        assertThat(row.payloadType).isEqualTo(0);
+        ResultPayload unmarshalledPayload = ResultPayloadUtils.unmarshall(row.payload,
                 ResultPayload.CREATOR);
         assertThat(unmarshalledPayload).isInstanceOf(ResultPayload.class);
     }
 
-    @Test
-    public void testResourceProvider_resourceRowInserted() {
-        SearchIndexableResource resource = getFakeResource(0);
-        resource.className = "com.android.settings.LegalSettings";
-
-        mConverter.indexOneSearchIndexableData(localeStr, resource, new HashMap<>());
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index", null);
-        assertThat(cursor.getCount()).isEqualTo(6);
-    }
-
-    @Test
-    public void testResourceProvider_resourceRowMatches() {
-        SearchIndexableResource resource = getFakeResource(0 /* xml */);
-        resource.className = "com.android.settings.display.ScreenZoomSettings";
-
-        mConverter.indexOneSearchIndexableData(localeStr, resource, new HashMap<>());
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index ORDER BY data_title", null);
-        cursor.moveToPosition(0);
-
-        // Locale
-        assertThat(cursor.getString(0)).isEqualTo(localeStr);
-        // Data Title
-        assertThat(cursor.getString(2)).isEqualTo("Display size");
-        // Normalized Title
-        assertThat(cursor.getString(3)).isEqualTo("display size");
-        // Summary On
-        assertThat(cursor.getString(4)).isEmpty();
-        // Summary On Normalized
-        assertThat(cursor.getString(5)).isEmpty();
-        // Entries - only on for list preferences
-        assertThat(cursor.getString(8)).isNull();
-        // Keywords
-        assertThat(cursor.getString(9)).isEqualTo(
-                "display density screen zoom scale scaling");
-        // Screen Title
-        assertThat(cursor.getString(10)).isEqualTo("Display size");
-        // Class Name
-        assertThat(cursor.getString(11))
-                .isEqualTo("com.android.settings.display.ScreenZoomSettings");
-        // Icon
-        assertThat(cursor.getInt(12)).isEqualTo(noIcon);
-        // Intent Action
-        assertThat(cursor.getString(13)).isNull();
-        // Target Package
-        assertThat(cursor.getString(14)).isNull();
-        // Target Class
-        assertThat(cursor.getString(15)).isNull();
-        // Enabled
-        assertThat(cursor.getInt(16) == 1).isEqualTo(enabled);
-        // Data ref key
-        assertThat(cursor.getString(17)).isNull();
-        // User Id
-        assertThat(cursor.getInt(18)).isEqualTo(userId);
-        // Payload Type - default is 0
-        assertThat(cursor.getInt(19)).isEqualTo(0);
-        // Payload - should be updated to real payloads as controllers are added
-        byte[] payload = cursor.getBlob(20);
-        ResultPayload unmarshalledPayload = ResultPayloadUtils.unmarshall(payload,
-                ResultPayload.CREATOR);
-        assertThat(unmarshalledPayload).isInstanceOf(ResultPayload.class);
-    }
-
-    @Test
-    public void testResourceProvider_disabledResource_rowsInserted() {
-        SearchIndexableResource resource = getFakeResource(0 /* xml */);
-        resource.className = "com.android.settings.LegalSettings";
-
-        mConverter.indexOneSearchIndexableData(localeStr, resource, new HashMap<>());
-
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 1", null);
-        assertThat(cursor.getCount()).isEqualTo(1);
-        cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 0", null);
-        assertThat(cursor.getCount()).isEqualTo(5);
-    }
-
-    @Test
-    public void testResource_withTitleAndSettingName_titleNotInserted() {
-        SearchIndexableResource resource = getFakeResource(xml.swipe_to_notification_settings);
-        mConverter.indexFromResource(localeStr, resource, new ArrayList<>());
-
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE" +
-                " enabled = 1", null);
-        assertThat(cursor.getCount()).isEqualTo(1);
-    }
-
-    @Test
-    public void testResourceProvider_nonSubsettingIntent() {
-        SearchIndexableResource resource = getFakeResource(0 /* xml */);
-        String fakeAction = "fake_action";
-        resource.className = "com.android.settings.LegalSettings";
-        resource.intentAction = fakeAction;
-        resource.intentTargetPackage = SearchIndexableResources.SUBSETTING_TARGET_PACKAGE;
-
-        mConverter.indexOneSearchIndexableData(localeStr, resource, new HashMap<>());
-        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index", null);
-        cursor.moveToPosition(0);
-
-        // Intent Action
-        assertThat(cursor.getString(13)).isEqualTo(fakeAction);
-        // Target Package
-        assertThat(cursor.getString(14))
-                .isEqualTo(SearchIndexableResources.SUBSETTING_TARGET_PACKAGE);
+    private void assertFakeFragment(IndexData row) {
+        assertThat(row.normalizedTitle).isEqualTo(FakeSettingsFragment.TITLE);
+        assertThat(row.updatedSummaryOn).isEqualTo(FakeSettingsFragment.SUMMARY_ON);
+        assertThat(row.spaceDelimitedKeywords)
+                .isEqualTo(FakeSettingsFragment.SPACE_KEYWORDS);
+        assertThat(row.screenTitle).isEqualTo(FakeSettingsFragment.SCREEN_TITLE);
+        assertThat(row.className).isEqualTo(FakeSettingsFragment.CLASS_NAME);
+        assertThat(row.enabled).isEqualTo(FakeSettingsFragment.ENABLED);
+        assertThat(row.key).isEqualTo(FakeSettingsFragment.KEY);
     }
 
     private SearchIndexableRaw getFakeRaw() {
@@ -634,11 +410,34 @@
         return sir;
     }
 
-    private Map<String, Set<String>> getNonIndexableKeys(String[] keys) {
-        Map<String, Set<String>> niks = new HashMap<>();
-        Set<String> keysList = new HashSet<>();
-        keysList.addAll(Arrays.asList(keys));
-        niks.put(packageName, keysList);
-        return niks;
+    private static int getEnabledResultCount(List<IndexData> indexData) {
+        int enabledCount = 0;
+        for (IndexData data : indexData) {
+            if (data.enabled) {
+                enabledCount++;
+            }
+        }
+        return enabledCount;
+    }
+
+    private static IndexData findIndexDataForTitle(List<IndexData> indexData,
+            String indexDataTitle) {
+        for (int i = 0; i < indexData.size(); i++) {
+            IndexData row = indexData.get(i);
+            if (TextUtils.equals(row.updatedTitle, indexDataTitle)) {
+                return row;
+            }
+        }
+        return null;
+    }
+
+    private static IndexData findIndexDataForKey(List<IndexData> indexData, String indexDataKey) {
+        for (int i = 0; i < indexData.size(); i++) {
+            IndexData row = indexData.get(i);
+            if (TextUtils.equals(row.key, indexDataKey)) {
+                return row;
+            }
+        }
+        return null;
     }
 }
diff --git a/tests/robotests/src/com/android/settings/wifi/SavedAccessPointsWifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/SavedAccessPointsWifiSettingsTest.java
new file mode 100644
index 0000000..f9eb328
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/SavedAccessPointsWifiSettingsTest.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.wifi;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.os.Handler;
+
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.wrapper.WifiManagerWrapper;
+import com.android.settingslib.wifi.AccessPoint;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+import org.robolectric.util.ReflectionHelpers;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class SavedAccessPointsWifiSettingsTest {
+
+    @Mock
+    private Handler mHandler;
+
+    private SavedAccessPointsWifiSettings mSettings;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mSettings = new SavedAccessPointsWifiSettings();
+        ReflectionHelpers.setField(mSettings, "mHandler", mHandler);
+    }
+
+    @Test
+    public void onForget_isPasspointConfig_shouldSendMessageToHandler() {
+        final AccessPoint accessPoint = mock(AccessPoint.class);
+        when(accessPoint.isPasspointConfig()).thenReturn(true);
+        ReflectionHelpers.setField(mSettings, "mSelectedAccessPoint", accessPoint);
+        ReflectionHelpers.setField(mSettings, "mWifiManager", mock(WifiManagerWrapper.class));
+
+        mSettings.onForget(null);
+
+        verify(mHandler).sendEmptyMessage(mSettings.MSG_UPDATE_PREFERENCES);
+    }
+
+    @Test
+    public void onForget_onSuccess_shouldSendMessageToHandler() {
+        mSettings.mForgetListener.onSuccess();
+
+        verify(mHandler).sendEmptyMessage(mSettings.MSG_UPDATE_PREFERENCES);
+    }
+
+    @Test
+    public void onForget_onFailure_shouldSendMessageToHandler() {
+        mSettings.mForgetListener.onFailure(0);
+
+        verify(mHandler).sendEmptyMessage(mSettings.MSG_UPDATE_PREFERENCES);
+    }
+}